(57)【要約】      （修正有）【課題】キャリブレーション時間を短縮することができるメモリコントローラ及び印刷装置を提供する。【解決手段】メモリコントローラ１０は、メモリデバイス情報取得部１１と、設定格納部１２と、電源制御部１３と、及びメモリバスＩ／Ｆ制御部１４とを備える。メモリデバイス情報取得部１１で取得したメモリデバイス情報に基づいて、電源制御部１３及びメモリバスＩ／Ｆ制御部１４によって設定したメモリ構成により実行したキャリブレーションの結果を設定格納部１２に格納し、格納されたキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を設定する。【選択図】図３
2015056129.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリデバイスを制御するメモリコントローラであって、
前記複数のメモリデバイスの少なくとも１つの電源のＯＮ／ＯＦＦ切替を制御するＯＮ／ＯＦＦ切替制御手段と、
前記ＯＮ／ＯＦＦ切替制御手段によりメモリ構成を設定するメモリ構成設定手段と、
前記メモリ構成設定手段によって設定されるすべてのメモリ構成のキャリブレーションを実行するキャリブレーション手段と、
前記キャリブレーション手段によって実行されたキャリブレーションの結果を格納する格納手段と、
前記格納手段によって格納されたキャリブレーションの結果を前記メモリコントローラ及び前記メモリデバイスに設定する設定手段と
を備えることを特徴とするメモリコントローラ。
【請求項２】
前記複数のメモリデバイスの情報を取得するメモリデバイス情報取得手段をさらに備え、
前記ＯＮ／ＯＦＦ切替制御手段は、前記メモリデバイス情報取得手段によって取得された前記メモリデバイスの情報に基づいて前記電源のＯＮ／ＯＦＦ切替を制御することを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
前記メモリデバイスの情報は前記メモリデバイスのメモリ容量であることを特徴とする請求項２記載のメモリコントローラ。
【請求項４】
前記メモリデバイスの情報は前記メモリデバイスの種類であることを特徴とする請求項２記載のメモリコントローラ。
【請求項５】
前記ＯＮ／ＯＦＦ切替制御手段は、前記メモリコントローラに設定された設定値に基づいて電源のＯＮ／ＯＦＦ切替を制御することを特徴とする請求項１記載のメモリコントローラ。
【請求項６】
前記設定手段は、前記メモリデバイスが揮発性である場合且つ前記メモリデバイスの設定の更新が必要である場合のみ、前記キャリブレーションの結果を前記メモリデバイスに設定を行うことを特徴とする請求項１乃至５のいずれか１項に記載のメモリコントローラ。
【請求項７】
前記複数のメモリデバイスの情報を更新する情報更新手段をさらに備え、前記情報更新手段によって前記メモリデバイスの情報が更新された場合、前記格納されたキャリブレーションの結果を更新するキャリブレーション結果更新手段をさらに備えることを特徴とする請求項１乃至６のいずれか１項に記載のメモリコントローラ。
【請求項８】
複数のメモリデバイスと、
前記複数のメモリデバイスを制御するメモリコントローラと、
前記複数のメモリデバイス及び前記メモリコントローラを制御する中央演算処理装置とを備え、
前記中央演算処理装置は、前記複数のメモリデバイスの少なくとも１つの電源のＯＮ／ＯＦＦ切替を制御するＯＮ／ＯＦＦ切替制御手段と、
前記ＯＮ／ＯＦＦ切替制御手段によりメモリ構成を設定するメモリ構成設定手段と、
前記メモリ構成設定手段によって設定されるすべてのメモリ構成のキャリブレーションを前記メモリコントローラに実行させるキャリブレーション制御手段と、
前記キャリブレーション制御手段によって前記メモリコントローラが実行したキャリブレーションの結果を格納する格納手段と、
前記格納手段によって格納されたキャリブレーションの結果を前記メモリコントローラ及び前記メモリデバイスに設定するように前記メモリコントローラを制御する設定制御手段と
を備えることを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及び印刷装置に関し、特に、高速インターフェースを有するメモリデバイスに対するデータのライト／リード等のタイミング調整を行うメモリコントローラ及び印刷装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩ設計を行う上で要求されるメモリデバイスのデータ転送速度の高速化は、同期型メモリデバイスを用いることにより行われる。同期型メモリデバイスとしてＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）が挙げられる。
【０００３】
ＳＤＲＡＭは、ＬＳＩのシステムクロック（ＣＬＫ）に同期して動作する。例えば、ＳＤＲＡＭは、ＣＬＫの立ち上りエッジに同期してＲＡＳ，ＣＡＳ，ＷＥ等の制御信号を受信し、これらの入力信号の「１」、「０」を組み合わせて制御命令（コマンド）を決定し、さらにアドレス信号やデータ信号もＣＬＫの立ち上りエッジに同期して受信する。
【０００４】
これらのメモリデバイスのデータ転送速度の高速化の問題点は、高速のＣＬＫに同期させるために入力信号のセットアップ時間及びホールド時間が短くなることである。このため、同期型メモリデバイスが入力信号のセットアップ時間及びホールド時間を確保することを目的として、アドレス信号やデータ信号等の入力信号がメモリデバイスの初段回路に送信されるタイミングを知らせるデータストローブ信号（ＤＱＳ）を用いる技術が知られている。ＤＱＳを用いるメモリデバイスとしては、ＤＤＲ（Double Data Rate）２ ＳＤＲＡＭ、ＤＤＲ３ ＳＤＲＡＭ等が挙げられる。
【０００５】
一般的に、上記メモリデバイスとＣＰＵとの間には、メモリコントローラが介在し、このメモリコントローラは、実装基板の配線の引き回しを考慮した実装基板シミュレーションの結果に基づいてデータのライト／リード等のタイミング調整を行う。
【０００６】
このメモリコントローラは、同期させるＣＬＫの高速化に伴い、より高精度のタイミング調整を行う必要があり、さらにＬＳＩ微細化に伴うプロセス精度のばらつき、ＬＳＩの低消費電力化に伴うＬＳＩ内部回路用電源の低電圧化、及び実装基板の温度等に応じて変化する入出力バッファの遅延時間のばらつきも考慮したタイミング調整を行う必要があり、加えて、遅延時間のばらつきを吸収するために、ＬＳＩ実装後に入出力バッファの個体差に応じて変化する遅延時間を調整する必要がある。
【０００７】
例えば、上記メモリコントローラは、高速メモリデバイスのデータのライト／リードを行うために、特にメモリデバイスから出力されたリードデータを内部のフリップフロップで保持する回路部分、及びこのフリップフロップで保持されたリードデータをＣＬＫに同期させる回路部分等に適切なタイミング調整を行う必要がある。
【０００８】
上記メモリコントローラは、上記ＣＬＫに同期したリードデータの有効範囲を決定するために、メモリコントローラから出力したＣＬＫがメモリデバイスを経由してＤＱＳとしてメモリコントローラに戻ってくるまでのラウンドトリップディレイ（Round Trip Delay）を算出する。
【０００９】
上記メモリコントローラがＤＤＲ３ ＳＤＲＡＭである場合、このメモリコントローラは、ＪＥＤＥＣ仕様において、ライト／リードアクセスのタイミング調整を行うためのライトレベリング機能及びリードレベリング機能を有する。
【００１０】
ライトレベリング機能において、メモリコントローラは、メモリデバイスのＭＲ１レジスタのライトレベリングイネーブルに「１」を設定すると、ＣＬＫ−ＤＱＳ間のスキュー値を出力する。具体的には、メモリデバイスは、メモリコントローラが発行するＤＱＳの立ち上がりエッジに対してＣＬＫをサンプリングしてＤＱＳに同期したデータ信号（ＤＱ）に「１」を返し、メモリコントローラは、ＣＬＫとＤＱＳの位相を少しずつずらしてＤＱの結果から最もタイミングの余裕が持てるようにタイミング調整を行う（図１５Ａ
及び図１５Ｂ）。
【００１１】
図１５Ａ及び図１５Ｂは、メモリコントローラ及びメモリデバイスの各々におけるＣＬＫ，ＤＱＳのタイミングチャートを示し、図１５Ａは、メモリコントローラがタイミング調整を行う前を示し、図１５Ｂは、メモリコントローラがタイミング調整を行った後を示す。
【００１２】
図１５Ａにおいて、メモリコントローラがＤＱＳの立ち上がりタイミングをＣＬＫのものに合わせて出力する場合、配線長及び配線負荷等の影響によりメモリデバイスにおけるＣＬＫとＤＱＳの立ち上がりタイミングが異なり、これにより、メモリデバイスは、ＤＱＳ立ち上がりエッジでＣＬＫをサンプリングできていないため、ＤＱに「０」を返し、また、メモリコントローラは、ＣＬＫとＤＱＳの出力タイミングをずらしていき、図１５Ｂに示すようにＤＱが「０」から「１」に変化する点を探す。メモリデバイスがＤＱに「１」を返すと、ＤＱＳ立ち上がりエッジでＣＬＫをサンプリングできたことを示す。
【００１３】
一方、リードレベリング機能において、メモリコントローラは、ＭＰＲ（Multi Purpose Register）として設定されると、他のメモリデバイスが予め決められたデータパターンを保持して且つ出力することで、当該データパターンを受信するタイミングを知ることができるので、リードコマンドを発行した後のリードデータが受信されるレイテンシを調整することができる。
【００１４】
リードアクセス時において、メモリデバイスはＤＱＳを出力し、メモリコントローラは、リードコマンドを発行してからのデータが受信されるまでのサイクル数を検出し、ＣＬＫ−ＤＱＳ間のスキュー値を調整するために、内部のＤＱＳが検出されてからリードデータが読み込まれるまでのタイミングを少しずつずらし、最も良い変化点を検出する。
【００１５】
また、メモリコントローラは、ＺＱキャリブレーションコマンドを発行して動作中におけるＰＶＴ（プロセス、電圧、温度）変化に対する補正を行い、且つＯＤＴ（On Die Termination）による信号品質の向上を図る。
【００１６】
しかしながら、メモリコントローラは、起動時や動作中にキャリブレーションを実行することで、メモリデバイスとＣＰＵ間のデータ転送に影響を与えてしまい、その結果、パフォーマンスが低下してしまうという問題がある。
【００１７】
この問題に対して、装置内部の環境変化に合ったキャリブレーション方法でパラメータを設定することが考えられている（例えば、特許文献１参照）。
【００１８】
特許文献１の技術では、設定時間毎又は所定時間毎に測定した温度に大きな変化がなければ、キャリブレーションを簡略化して実行し、又はメモリデバイス内部に格納した設定値を用いることによりキャリブレーション時間を短縮している。
【００１９】
一方、携帯電話をはじめとする情報機器の多機能化に伴い、これら情報機器内部のＬＳＩにおける消費電力の増大が深刻化している。
【００２０】
このため、ＬＳＩ内部のメモリデバイスでは、一部のメモリデバイスのスリープモードへの移行や、一部のメモリデバイスの電源をＯＦＦすることによる低電力設計が求められている。
【００２１】
一部のメモリデバイスの電源がＯＦＦされる場合、揮発性メモリデバイスは、電源が供給されていないとデータを保持できないので、電源が供給されていなくてもデータを保持できる不揮発性メモリデバイスへデータを退避させる必要がある。このため、電源をＯＮ／ＯＦＦ切替するときは、上記不揮発性メモリデバイスへデータを退避する実行時間が多くかかるという問題がある。
【００２２】
この問題に対して、ＤＤＲ３等の揮発性メモリデバイスの代替として、不揮発性メモリデバイスであるＭＲＡＭ（Magnetoresistive Random Access Memory）等が開発されている。
【００２３】
ＭＲＡＭは、高速通信も可能で、さらにメモリデバイスの電源をＯＦＦしても磁気によってデータを保持し、上記揮発性メモリデバイスのように他の不揮発性メモリデバイスへデータを退避する必要がないので、電源をＯＮ／ＯＦＦ切替するときでも、他のメモリデバイスへデータを退避する時間を省略することができる。
【００２４】
このため、最初の電源投入時にＭＲＡＭへ起動プログラムを格納し、その後の電源投入時からＭＲＡＭに格納された起動プログラムを実行することで高速起動を実現する技術がある。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２０１１−５９７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
しかしながら、メモリデバイスを搭載した機器の起動中にメモリバス上の一部のメモリデバイスの電源がＯＦＦされた場合、メモリバス上の配線負荷容量が変化するため、配線負荷容量の変化に対応するためにメモリデバイスのキャリブレーションが必要となり、再度起動時と同様のキャリブレーションを実行しなければならず、キャリブレーション時間の短縮ができない。
【００２７】
本発明の目的は、キャリブレーション時間を短縮することができるメモリコントローラ及び印刷装置を提供することにある。
【課題を解決するための手段】
【００２８】
上記目的を達成するために、請求項１記載のメモリコントローラは、複数のメモリデバイスを制御するメモリコントローラであって、前記複数のメモリデバイスの少なくとも１つの電源のＯＮ／ＯＦＦ切替を制御するＯＮ／ＯＦＦ切替制御手段と、前記ＯＮ／ＯＦＦ切替制御手段によりメモリ構成を設定するメモリ構成設定手段と、前記メモリ構成設定手段によって設定されるすべてのメモリ構成のキャリブレーションを実行するキャリブレーション手段と、前記キャリブレーション手段によって実行されたキャリブレーションの結果を格納する格納手段と、前記格納手段によって格納されたキャリブレーションの結果を前記メモリコントローラ及び前記メモリデバイスに設定する設定手段とを備えること特徴とする。
【発明の効果】
【００２９】
本発明によれば、キャリブレーション時間を短縮することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の形態に係るメモリコントローラを備える複合機を含むネットワークシステムの構成を概略的に示すブロック図である。
【図２】図１におけるメモリコントローラの作動を説明するのに用いられるブロック図である。
【図３】図２におけるメモリコントローラの内部構成を概略的に示すブロック図である。
【図４】図３のメモリコントローラによって実行されるキャリブレーション結果格納処理の手順を示すフローチャートである。
【図５】図３のメモリコントローラがメモリデバイスのＳＰＤから読み取る情報の一例を示す表である。
【図６】図４における通常動作時のメモリ構成のキャリブレーションの結果の一例を示す表である。
【図７】図４におけるステップＳ１０６のメモリ構成切替の設定の一例を示す表である。
【図８】図４におけるスタンバイ時のメモリ構成のキャリブレーションの結果の一例を示す表である。
【図９】図３のメモリコントローラによって実行されるメモリ構成切替設定処理の手順を示すフローチャートである。
【図１０】本実施の形態の変形例におけるＣＰＵ及びメモリコントローラの作動を説明するのに用いられるブロック図である。
【図１１】図１０におけるＣＰＵ及びメモリコントローラによって実行されるキャリブレーション結果格納処理の手順を示すフローチャートである。
【図１２】図１０のＣＰＵがメモリデバイスのＳＰＤから読み取る情報の一例を示す表である。
【図１３】図１０におけるＣＰＵによって実行されるＣＰＵメモリ構成切替設定処理の手順を示すフローチャートである。
【図１４】図１０におけるＣＰＵ及びメモリコントローラを備えたコントローラ部によって実行されるメモリ構成切替設定処理の手順を示すフローチャートである。
【図１５Ａ】メモリコントローラ及びメモリデバイスの各々におけるＣＬＫ，ＤＱＳのタイミングチャートであり、メモリコントローラがタイミング調整を行う前を示す。
【図１５Ｂ】メモリコントローラ及びメモリデバイスの各々におけるＣＬＫ，ＤＱＳのタイミングチャートであり、メモリコントローラがタイミング調整を行った後を示す。
【発明を実施するための形態】
【００３１】
以下、本発明の実施の形態に係るメモリコントローラ及び印刷装置について図面を参照しながら詳述する。
【００３２】
図１は、本発明の実施の形態に係るメモリコントローラ１０を備える複合機１００を含むネットワークシステムの構成を概略的に示すブロック図である。
【００３３】
図１のネットワークシステムは、外部ネットワーク１９０を介して互いに接続された複合機１００とホストコンピュータ２００からなる。
【００３４】
ホストコンピュータ２００は、互いに直列に接続されたアプリケーション２０１、プリンタドライバ２０２、及びネットワークＩ／Ｆ２０３で構成される。
【００３５】
アプリケーション２０１は、ホストコンピュータ２００上で動作し、ページレイアウト文書やワードプロセッサ文書、グラフィック文書等のデジタル文書データを作成する。アプリケーション２０１によって作成されたデジタル文書データはプリンタドライバ２０２に送信され、プリンタドライバ２０２は、デジタル文書データに基づいた描画コマンドを生成する。
【００３６】
この描画コマンドとしては、ＰＤＬ（Page Description Language）と呼ばれるページ画像データを作成するためのプリンタ記述言語が一般的である。本実施の形態における描画コマンドは、通常、文字やグラフィックス、イメージ等のデータの描画指示を含む。
【００３７】
ネットワークＩ／Ｆ２０３は、プリンタドライバ２０２によって生成された描画コマンドを外部ネットワーク１９０を介して複合機１００に送信する。
【００３８】
複合機１００は、コントローラ部１０１とプリンタ部１０２で構成され、ホストコンピュータ２００から描画コマンドを受け取り、この描画コマンドを出力可能な画像データに変換して紙面に印刷する処理を行う。
【００３９】
コントローラ部１０１は、ネットワークＩ／Ｆ１１０、ＣＰＵ１１２、ＲＯＭ１１３、メモリコントローラ１０、操作部１１５、表示部１１６、インタプリタ１１７、レンダラ１１８、及び画像処理部１１９を備え、これらはデータバス１１１を介して互いに接続されている。また、コントローラ部１０１は、メモリコントローラ１０に接続されたＲＡＭ２５を備える。
【００４０】
ネットワークＩ／Ｆ１１０は、インターフェースモジュールとして外部ネットワーク１９０に接続され、イーサネット(登録商標)等の通信プロトコルに基づいて、ネットワーク１９０を介して他の機器から描画コマンドを受信し、複合機１００のデバイス情報（ジャム情報や紙サイズ情報等）を送信する双方向データ通信を行う。
【００４１】
ＲＡＭ２５は、ＲＯＭ１１３に格納されているプログラムデータをロードし、一時記憶し、さらに、各モジュールが命令実行する際に生成されるデータ等も一時記憶する。
【００４２】
ＣＰＵ１１２（中央演算処理装置）は、ＲＡＭ２５にロードされたプログラムに従って、コントローラ部１０１の各構成要素を制御して複合機１００を動作させる。
【００４３】
操作部１１５は、ユーザからの入力を受け付けるためのインターフェースである。表示部１１６は、ユーザへの指示や複合機１００の状態を表すＵＩ（User Interface）画面を表示する。インタプリタ１１７は、ネットワークＩ／Ｆ１１０を介して受信した描画コマンドを解釈して中間言語データを生成する。
【００４４】
レンダラ１１８は、インタプリタ１１７によって生成された中間言語データからラスター画像を生成する。画像処理部１１９は、レンダラ１１８によって生成されたラスター画像に対して、色変換処理やルックアップテーブルによるγ補正処理、擬似中間処理等の画像処理を行い、出力可能な画像データに変換する。
【００４５】
メモリコントローラ１０は、ＲＡＭ２５とのデータ送受信制御を行う。メモリコントローラ１０の詳細な説明は図２〜図９を用いて後述する。
【００４６】
プリンタ部１０２は、コントローラ部１０１と接続され、画像処理部１１９によって変換された画像データに基づいて、トナーを用いて紙面上に画像データを形成する。
【００４７】
なお、本実施の形態に係るコントローラ部１０１は、各構成要素をハードウェアとして構成されているが、ＲＯＭ１１３に格納されたプログラムに基づいて、ＣＰＵ１１２が各構成要素の処理を実行してもよい。その場合、上記プログラムは、ＲＡＭ２５への画像データのライト機能及びリード機能も有する。
【００４８】
図２は、図１におけるメモリコントローラ１０の作動を説明するのに用いられるブロック図である。
【００４９】
図２において、メモリコントローラ１０は、メモリバス４０を介してバススイッチ３０に接続されている。バススイッチ３０には、メモリバス４１を介してメモリデバイス２０が、メモリバス４２を介してメモリデバイス２１が夫々接続されている。
【００５０】
メモリバス４０は、メモリコントローラ１０とバススイッチ３０を接続する高速通信バスであり、メモリバス４１，４２は、バススイッチ３０とメモリデバイス２０，２１を夫々接続する高速通信バスである。
【００５１】
メモリコントローラ１０は、メモリデバイス２０，２１の制御を行う。メモリコントローラ１０は、バススイッチ３０を介して、メモリデバイス２０，２１にアクセスし、メモリデバイス２０，２１と高速通信を行うためのライト／リードアクセスのタイミング調整を行うキャリブレーションを実行し、バススイッチ３０のバス切り替え及び電源スイッチ５０，５１の電源切替制御をする。
【００５２】
メモリデバイス２０，２１は、入出力バッファと内部回路で構成されると共に所定のプロトコルに則ってデータを読み書きすることができ、ＳＰＤ（Serial Presence Detect）を有するメモリモジュールを構成する。また、メモリデバイス２０，２１は、ＤＤＲ３からなる。
【００５３】
メモリデバイス２０，２１は、ＳＤＲＡＭ，ＤＤＲ，ＤＤＲ２，ＤＤＲ４，ＳＲＡＭ等の揮発性メモリデバイスや、フラッシュＲＯＭ，ＭＲＡＭ等の不揮発性メモリデバイスであってもよく、上記２種以上の複数のメモリデバイスを搭載してメモリモジュールを構成してもよい。
【００５４】
メモリデバイス２０，２１は、メモリコントローラ１０に制御信号０，１を夫々送信し、メモリコントローラ１０は、バススイッチ３０に制御信号２を、電源スイッチ５０に制御信号３を、電源スイッチ５１に制御信号４を夫々送信する。
【００５５】
バススイッチ３０は、メモリバス４０とメモリバス４１，４２の端子の接続を切り替えるための回路である。バススイッチ３０は、メモリコントローラ１０から受信した制御信号２に基づいて、メモリバス４０に対してメモリバス４１，４２の両方を接続するか、又はメモリバス４１，４２のいずれか一方のみを接続することができる。バススイッチ３０又はメモリデバイス２０，２１には、メモリバス４１，４２の一方が切り離されているときに、他の信号の波形品質を落とさぬよう、切り離された端子の終端処理を行う回路が実装されているのが好ましく、さらに、メモリデバイス２０，２１の電源ＯＮ／ＯＦＦは、入出力バッファのみ電源をＯＮし、内部回路の電源をＯＦＦするようにしてもよい。
【００５６】
電源スイッチ５０は、メモリコントローラ１０からの制御信号３によってメモリデバイス２０の電源をＯＮ／ＯＦＦ切替制御するためのスイッチであり、電源スイッチ５１は、メモリコントローラ１０からの制御信号４によってメモリデバイス２１の電源をＯＮ／ＯＦＦ切替制御するためのスイッチである。
【００５７】
図３は、図２におけるメモリコントローラ１０の内部構成を概略的に示すブロック図である。
【００５８】
図３において、メモリコントローラ１０は、メモリデバイス情報取得部１１、設定格納部１２、電源制御部１３、及びメモリバスＩ／Ｆ制御部１４を備える。
【００５９】
メモリデバイス情報取得部１１は、制御信号０，１を介してメモリデバイス２０，２１の情報、例えば、各メモリモジュールに実装されているＳＰＤから最大クロック周波数、メモリ容量及び信号タイミング等の当該メモリモジュールの情報を取得する。メモリデバイス情報取得部１１は、図示しない外部のＣＰＵの動作プログラムからメモリモジュールの情報を取得してもよい。
【００６０】
設定格納部１２は、キャリブレーションの結果を格納し、例えば、ライトレベリングの結果としてのＣＬＫ−ＤＱＳ間のスキュー値や、リードレベリングの結果としてのリードレイテンシ値を格納する。なお、設定格納部１２は、キャリブレーションの結果をメモリデバイス２０，２１毎に、さらにメモリデバイス２０，２１の電源ＯＮ／ＯＦＦ状態に応じて変化するメモリ構成毎に格納することができる。設定格納部１２としては、例えば、図２の構成の場合、メモリデバイス２０，２１の電源が（ＯＮ，ＯＦＦ）、（ＯＦＦ，ＯＮ）、（ＯＮ，ＯＮ）の３種類のメモリ構成が考えられ、設定格納部１２は、夫々のメモリ構成に対してキャリブレーションの結果を格納することができる。
【００６１】
電源制御部１３は、メモリデバイス情報取得部１１で取得したメモリモジュールの情報に基づいて、制御信号３，４を用いて電源スイッチ５０，５１を制御することでメモリデバイス２０，２１の電源をＯＮ／ＯＦＦする。
【００６２】
メモリバスＩ／Ｆ制御部１４は、制御信号２を用いてバススイッチ３０を制御することでメモリバス４０とメモリバス４１，４２の接続を切り替える。
【００６３】
メモリデバイス２０，２１の両方が電源ＯＮ状態のメモリ構成を設定するために、電源制御部１３は、制御信号３，４により電源スイッチ５０，５１を制御してメモリデバイス２０，２１の電源をＯＮし、メモリバスＩ／Ｆ制御部１４は、制御信号２によりバススイッチ３０を制御してメモリバス４０とメモリバス４１，４２を接続する。
【００６４】
また、メモリデバイス２０のみが電源ＯＮ状態のメモリ構成を設定するために、メモリバスＩ／Ｆ制御部１４は制御信号２によりバススイッチ３０を制御してメモリバス４０とメモリバス４２を切り離し、電源制御部１３は制御信号４により電源スイッチ５１を制御してメモリデバイス２１の電源をＯＦＦする。
【００６５】
ここで、電源制御部１３による電源のＯＮ／ＯＦＦや、メモリバスＩ／Ｆ制御部１４によるバススイッチ３０の制御は、メモリデバイス２０，２１へのメモリアクセスが実施されていないときに実行される。
【００６６】
制御信号３，４は、メモリコントローラ１０からではなく、図示しない外部のＣＰＵから送信されてもよい。
【００６７】
図４は、図３のメモリコントローラ１０によって実行されるキャリブレーション結果格納処理の手順を示すフローチャートである。
【００６８】
図４のキャリブレーション結果格納処理は、複合機１００の起動時にメモリコントローラ１０によって実行される処理であり、メモリコントローラ１０は、複合機１００の起動時に設定されたメモリ構成で実行したキャリブレーションの結果を格納し、次いで、起動時に設定されたメモリ構成以外のメモリ構成で実行したキャリブレーションの結果を格納し、起動時のメモリ構成に戻した上で、上記格納したキャリブレーションの結果を用いてメモリコントローラ１０自身の設定及びメモリデバイス２０，２１の各設定を行う。
【００６９】
本実施の形態では、メモリデバイス２０，２１のいずれか一方の電源をＯＮ／ＯＦＦすることができるが、以下の説明では、メモリデバイス２１の電源のみをＯＮ／ＯＦＦするものとして記載する。
【００７０】
図４において、まず、メモリコントローラ１０は、複合機１００の起動時に電源が投入されると、電源スイッチ５０，５１にも同時に電源が投入されるように制御信号３，４を電源スイッチ５０，５１に夫々送信し（ステップＳ１０１）、制御信号０を介して、メモリデバイス２０のＳＰＤからメモリデバイス２０の情報を読み取り、同様に制御信号１を介して、メモリデバイス２１のＳＰＤからメモリデバイス２１の情報を読み取ることにより、図５のメモリデバイス情報を取得する（ステップＳ１０２）。メモリコントローラ１０は、取得されたメモリデバイス情報をメモリデバイス情報取得部１１に格納し、取得されたメモリデバイス情報に基づいて、メモリデバイス２０，２１がＤＤＲ３  ＳＤＲＡＭ，１Ｇｂｉｔ，８ｂａｎｋであることを認識する。
【００７１】
なお、図５における情報は一例であり、タイミングパラメータの項目等、記載事項以外に必要な事項が含まれる。
【００７２】
図４に戻り、メモリコントローラ１０は、複合機１００の起動時に設定されたメモリ構成のメモリモジュールに対し、ライトレベリング、リードレベリングの両方の調整を行うために、メモリ初期化のキャリブレーションを実行する（ステップＳ１０３）。ここで、メモリモジュールはメモリデバイス２０，２１で構成される。
【００７３】
次いで、メモリコントローラ１０は、図６に示すキャリブレーションの結果として、メモリデバイス２０，２１のバンク毎のライトアクセス時及びリードアクセス時におけるＣＬＫ−ＤＱＳ間のスキュー値とリードレイテンシ値を設定格納部１２に格納し（ステップＳ１０４）、必要なメモリ容量に基づいてメモリデバイス２０，２１のいずれか一方の電源をＯＦＦするか否かを判別する（ステップＳ１０５）。
【００７４】
ステップＳ１０５の判別の結果、メモリデバイス２０，２１のいずれか一方の電源をＯＦＦするときは、メモリコントローラ１０は、起動時に設定されたメモリ構成以外のメモリ構成のキャリブレーションを行うために、ステップＳ１０２で取得したメモリデバイス情報から制御信号２，３，４を用いて後述する図７のメモリ構成切替の設定を行い（メモリ構成設定手段）、図７の設定に基づいて順次キャリブレーションを行う（ステップＳ１０６）。
【００７５】
図７の設定では、メモリコントローラ１０は、スタンバイ時に必要なメモリ容量が５１２Ｍｂｉｔ、通常動作時に必要なメモリ容量が２０４８Ｍｂｉｔとして予め設定されている。メモリコントローラ１０は、ステップＳ１０２で取得したメモリデバイス情報のメモリ容量から、スタンバイ時はメモリデバイス２０のみの電源をＯＮする必要があり、通常動作時はメモリデバイス２０，２１の両方の電源をＯＮする必要があると判断する。
【００７６】
本実施の形態では、メモリコントローラ１０は、制御信号２，４を制御することにより、図７の設定でスタンバイ時と通常動作時の２つのメモリ構成を設定する。なお、バススイッチ３０は、スタンバイ時のメモリ構成でメモリデバイス２０のみが電源ＯＮ状態のとき、メモリバス４０，４１の信号品質を確保するために、バススイッチ３０内部でメモリバス４２の端子の終端処理を行う。
【００７７】
図４に戻り、メモリコントローラ１０は、メモリデバイス２０，２１の夫々に対し、メモリ初期化及びキャリブレーションを実行し（ステップＳ１０７）、メモリデバイス２０のみが電源ＯＮ状態のメモリ構成で図８に示すキャリブレーションの結果を設定格納部１２に格納し（ステップＳ１０８）、メモリデバイス２０，２１の電源が（ＯＮ，ＯＦＦ）、（ＯＦＦ，ＯＮ）、（ＯＮ，ＯＮ）のすべてのメモリ構成のキャリブレーションが完了したときは（ステップＳ１０９でＹＥＳ）、ステップＳ１０６と同様な方法で起動時に設定されたメモリ構成に戻すためにメモリ構成切替の設定を行う（ステップＳ１１０）。
【００７８】
続くステップＳ１１１では、メモリコントローラ１０は、上記格納されたキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を選択し（例えば、起動時にスタンバイ時のメモリ構成が設定されている場合は、スタンバイ時のメモリ構成のキャリブレーションの結果である図８のキャリブレーションの結果を選択する。）、該選択したキャリブレーションの結果を用いて、メモリコントローラ１０自身の設定及びメモリデバイス２０，２１の各設定を行って（ステップＳ１１２）、本処理を終了する。
【００７９】
ステップＳ１０５の判別の結果、メモリデバイス２０，２１のいずれか一方の電源をＯＦＦしないときは、メモリコントローラ１０は、メモリ構成を切り替える必要がないので、直ちにステップＳ１１２を実行して、本処理を終了する。
【００８０】
図４の処理によれば、複合機１００の起動時に設定されたメモリ構成で実行したキャリブレーションの結果（図６）及び上記メモリ構成以外のメモリ構成で実行したキャリブレーションの結果（図８）を夫々格納し（ステップＳ１０４又はＳ１０８）、格納されたキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を用いてメモリコントローラ１０の設定及びメモリデバイス２０，２１の各設定を行う（ステップＳ１１２）ので、複合機１００の起動時にキャリブレーション時間を短縮することができる。
【００８１】
例えば、ステップＳ１１１において、メモリコントローラ１０は、図８のキャリブレーションの結果のライトアクセス時及びリードアクセス時におけるＣＬＫ−ＤＱＳ間の複数のスキュー値の中から、ライトアクセス及びリードアクセスで最も余裕があるタイミングパラメータを選択する。
【００８２】
また、図４の処理では、メモリデバイス２０，２１のいずれか一方の電源をＯＦＦするか否かを取得したメモリデバイス情報（ステップＳ１０２）のメモリ容量に基づいて判別しているが、メモリデバイス２０，２１の種類、又は予めメモリコントローラ１０に備えられた動作モードの設定レジスタによって設定された設定値に基づいて判別してもよい。
【００８３】
図９は、図３のメモリコントローラ１０によって実行されるメモリ構成切替設定処理の手順を示すフローチャートである。
【００８４】
図９のメモリ構成切替設定処理は、複合機１００の起動後における動作中に途中でメモリコントローラ１０によってメモリデバイス２０，２１の電源の設定を切り替える場合に実行される処理である。
【００８５】
以下の説明では、メモリコントローラ１０がスタンバイ時から通常動作時に電源の設定を切り替える場合の処理について説明する。
【００８６】
図９において、まず、メモリコントローラ１０は、メモリコントローラ１０への制御信号０，１に基づいてメモリ構成をスタンバイ時のメモリ構成から通常動作時のメモリ構成に切り替えると判別すると（ステップＳ２０１でＹＥＳ）、メモリコントローラ１０は、制御信号２，４に基づいてメモリ構成切替の設定を行い（ステップＳ２０２）、図４のステップＳ１０４やＳ１０８で格納したキャリブレーションの結果の中から通常動作時におけるメモリ構成のキャリブレーションの結果を選択し（ステップＳ２０３）、ステップＳ２０３で選択されたキャリブレーションの結果を用いて、メモリコントローラ１０自身の設定及びメモリデバイス２０，２１への各設定を行い（ステップＳ２０４）、本処理を終了する。
【００８７】
上記ステップＳ２０３では、例えば、メモリコントローラ１０は、図６のキャリブレーションの結果のライトアクセス時及びリードアクセス時におけるＣＬＫ−ＤＱＳ間の複数のスキュー値の中から、ライトアクセス及びリードアクセスで最も余裕があるタイミングパラメータを選択する。
【００８８】
一方、メモリコントローラ１０が通常動作時からスタンバイ時に電源の設定を切り替える場合、メモリコントローラ１０は、図４のステップＳ１０４やＳ１０８で格納したキャリブレーションの結果の中からスタンバイ時におけるメモリ構成のキャリブレーションの結果を選択し（ステップＳ２０３）、スタンバイ時におけるメモリ構成のキャリブレーションの結果を用いて、メモリコントローラ１０自身の設定及びメモリデバイス２０，２１への各設定を行う（ステップＳ２０４）。
【００８９】
図９の処理によれば、複合機１００の起動時に格納したキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を用いてメモリコントローラ１０の設定及びメモリデバイス２０，２１の各設定を行う（ステップＳ２０４）ので、複合機１００の動作中にメモリデバイス２０，２１の電源の設定を切り替えてもキャリブレーション時間を短縮することができる。
【００９０】
なお、メモリコントローラ１０は、メモリコントローラ１０自身がメモリデバイス２０，２１とのメモリアクセスを実施していないことを判断した上でメモリ構成切替を行う。
【００９１】
本実施の形態では、電源投入時にキャリブレーションを実行することを前提としているが（図４におけるステップＳ１０３及びＳ１０７）、複合機１００の起動後における動作中に途中でメモリコントローラ１０によって電源の設定を切り替える場合、電源がＯＦＦ状態からＯＮ状態になったメモリデバイス２０，２１の夫々のＳＰＤから情報を読み取ったときにメモリデバイス情報が変更された場合には（情報更新手段）、キャリブレーションを再度実行してキャリブレーションの結果を更新（キャリブレーション結果更新手段）してもよい。
【００９２】
次に、本実施の形態の変形例について説明する。
【００９３】
図１０は、本実施の形態の変形例におけるＣＰＵ１１２及びメモリコントローラ１０の作動を説明するのに用いられるブロック図である。
【００９４】
図１０において、メモリコントローラ１０は、メモリバス４０を介してバススイッチ３０に接続され、制御バス５を介してＣＰＵ１１２に接続されている。バススイッチ３０には、メモリバス４１を介してメモリデバイス２０が、メモリバス４２を介してメモリデバイス２１が夫々接続されている。図１０の各構成要素において、図２の構成要素と同じ要素については同一の符号を付して重複した説明を省略し、以下に異なる構成要素のみ説明する。
【００９５】
図１０におけるメモリコントローラ１０は、図３における電源制御部１３及びメモリバスＩ／Ｆ制御部１４を有さず、メモリデバイス２０，２１は、データを所定のプロトコルに則って読み書きできるＭＲＡＭであり、ＤＤＲ３ ＳＤＲＡＭと同等の機能を有し、メモリデバイス２０，２１の電源がＯＦＦ状態でも各種モードやパラメータの設定及びデータを保持することができる不揮発性メモリデバイスである。
【００９６】
ＣＰＵ１１２は、ＲＡＭ２５に展開されたプログラムで実現されるモジュールであり、様々な数値計算や情報処理装置の制御等を行い、図３におけるメモリコントローラ１０の電源制御部１３及びメモリバスＩ／Ｆ制御部１４の機能を備える。また、ＣＰＵ１１２は、メモリコントローラ１０やメモリデバイス２０，２１等の情報をＲＡＭ２５又は図示しないＨＤＤ等に格納する。
【００９７】
制御バス５は、ＣＰＵ１１２，メモリコントローラ１０間の通信をするためのバスであり、ＣＰＵ１１２は所定のプロトコルで制御バス５を介してメモリコントローラ１０を制御する。
【００９８】
図１１は、図１０におけるＣＰＵ１１２及びメモリコントローラ１０によって実行されるキャリブレーション結果格納処理の手順を示すフローチャートである。
【００９９】
図１１のキャリブレーション結果格納処理は、複合機１００の起動時にＣＰＵ１１２及びメモリコントローラ１０によって実行される処理であり、ＣＰＵ１１２は、複合機１００の起動時に設定されたメモリ構成で実行したキャリブレーションの結果を格納し、次いで、起動時に設定されたメモリ構成以外のメモリ構成で実行したキャリブレーションの結果を格納し、起動時のメモリ構成に戻した上で、上記格納したキャリブレーションの結果を用いてメモリコントローラ１０にメモリコントローラ１０自身の設定及びメモリデバイス２０，２１の各設定を行わせるように制御する。
【０１００】
図１０の構成では、メモリデバイス２０，２１のいずれか一方の電源をＯＮ／ＯＦＦすることができるが、以下の説明では、メモリデバイス２１の電源のみをＯＮ／ＯＦＦするものとする。
【０１０１】
図１１において、まず、ＣＰＵ１１２は、複合機１００の起動時に電源が投入されると、電源スイッチ５０，５１にも同時に電源が投入されるように制御信号３，４を電源スイッチ５０，５１に夫々送信し（ステップＳ３０１）、制御信号０を介して、メモリデバイス２０のＳＰＤからメモリデバイス２０の情報を読み取り、同様に制御信号１を介して、メモリデバイス２１のＳＰＤからメモリデバイス２１の情報を読み取ることにより、図１２のメモリデバイス情報を取得する（ステップＳ３０２）。ＣＰＵ１１２は、図示しないＨＤＤに取得されたメモリデバイス情報を格納し、取得されたメモリデバイス情報に基づいて、メモリデバイス２０，２１がＤＤＲ３ ＭＲＡＭ，１Ｇｂｉｔ，８ｂａｎｋであることを認識する。
【０１０２】
なお、図１２における情報は一例であり、タイミングパラメータの項目等、記載事項以外に必要な事項が含まれる。
【０１０３】
図１１に戻り、ＣＰＵ１１２は、複合機１００の起動時に設定されたメモリ構成のメモリモジュールに対し、ライトレベリング、リードレベリングの両方の調整を行うために、メモリ初期化のキャリブレーションを実行するように制御バス５を介してメモリコントローラ１０を制御する（キャリブレーション制御手段）（ステップＳ３０３）。ここで、メモリモジュールはメモリデバイス２０，２１で構成される。
【０１０４】
次いで、ＣＰＵ１１２は、図６に示すキャリブレーションの結果として、メモリデバイス２０，２１のバンク毎のライトアクセス時とリードアクセス時におけるＣＬＫ−ＤＱＳ間のスキュー値及びリードレイテンシ値をメモリコントローラ１０に送信するように要求し、メモリコントローラ１０から送信されたキャリブレーションの結果を図示しないＨＤＤに格納し（ステップＳ３０４）、必要なメモリ容量に基づいてメモリデバイス２０，２１のいずれか一方の電源をＯＦＦするか否かを判別する（ステップＳ３０５）。
【０１０５】
ステップＳ３０５の判別の結果、メモリデバイス２０，２１のいずれか一方の電源をＯＦＦするときは、ＣＰＵ１１２は、図４の処理同様、起動時に設定されたメモリ構成以外のメモリ構成のキャリブレーションを行うために、ステップＳ３０２で取得したメモリデバイス情報から制御信号２，３，４を用いて図７のメモリ構成切替の設定を行う（ステップＳ３０６）。
【０１０６】
本実施の形態では、ＣＰＵ１１２は、制御信号２，４を制御することにより、図７の設定でスタンバイ時と通常動作時の２つのメモリ構成を設定する。なお、バススイッチ３０は、スタンバイ時のメモリ構成であって、メモリデバイス２０のみが電源ＯＮ状態のとき、メモリバス４０，４１の信号品質を確保するために、バススイッチ３０内部でメモリバス４２の端子の終端処理を行う。
【０１０７】
図１１に戻り、ＣＰＵ１１２は、メモリデバイス２０，２１の夫々に対し、メモリ初期化及びキャリブレーションを実行するように制御バス５を介してメモリコントローラ１０を制御し（ステップＳ３０７）、メモリコントローラ１０に当該キャリブレーションの結果を送信するように要求し、例えば、メモリデバイス２０のみが電源ＯＮ状態のメモリ構成で図８に示すメモリコントローラ１０から送信されたキャリブレーションの結果を図示しないＨＤＤに格納し（ステップＳ３０８）、メモリデバイス２０，２１の電源が（ＯＮ，ＯＦＦ）、（ＯＦＦ，ＯＮ）、（ＯＮ，ＯＮ）のすべてのメモリ構成のキャリブレーションが完了したときは（ステップＳ３０９でＹＥＳ）、ステップＳ３０６と同様な方法で起動時に設定されたメモリ構成に戻すために、メモリ構成切替の設定を行う（ステップＳ３１０）。
【０１０８】
続くステップＳ３１１では、ＣＰＵ１１２は、上記格納されたキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を選択し（例えば、起動時にスタンバイ時のメモリ構成が設定されている場合は、スタンバイ時のメモリ構成のキャリブレーションの結果である図８のキャリブレーションの結果を選択する。）、該選択したキャリブレーションの結果を用いて、メモリコントローラ１０自身及びメモリデバイス２０，２１の各設定を行うように制御バス５を介してメモリコントローラ１０を制御して（設定制御手段）（ステップＳ３１２）、本処理を終了する。
【０１０９】
ステップＳ３０５の判別の結果、メモリデバイス２０，２１のいずれか一方の電源をＯＦＦしないときは、ＣＰＵ１１２は、メモリ構成を切り替えないので、直ちにステップＳ３１２を実行して、本処理を終了する。
【０１１０】
図１１の処理によれば、複合機１００の起動時に設定されたメモリ構成で実行したキャリブレーションの結果（図６）及び上記メモリ構成以外のメモリ構成で実行したキャリブレーションの結果（図８）を夫々格納し（ステップＳ３０４又はＳ３０８）、格納されたキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を用いてメモリコントローラ１０の設定及びメモリデバイス２０，２１の各設定を行う（ステップＳ３１２）ので、複合機１００の起動時にキャリブレーション時間を短縮することができる。
【０１１１】
例えば、図４のステップＳ１１１同様、ステップＳ３１１において、ＣＰＵ１１２は、図８のキャリブレーションの結果のライトアクセス時及びリードアクセス時におけるＣＬＫ−ＤＱＳ間の複数のスキュー値の中から、ライトアクセス及びリードアクセスで最も余裕があるタイミングパラメータを選択する。
【０１１２】
また、図１１の処理では、メモリデバイス２０，２１のいずれか一方の電源をＯＦＦするか否かを、取得したメモリデバイス情報（ステップＳ３０２）のメモリ容量に基づいて判別しているが、メモリデバイス２０，２１の種類、又は予めＣＰＵ１１２若しくはメモリコントローラ１０に備えられた動作モードの設定レジスタによって設定された設定値に基づいて判別してもよい。
【０１１３】
図１３は、図１０におけるＣＰＵ１１２によって実行されるＣＰＵメモリ構成切替設定処理の手順を示すフローチャートである。
【０１１４】
図１３のＣＰＵメモリ構成切替設定処理は、複合機１００の起動後における動作中に途中でＣＰＵ１１２によってメモリデバイス２０，２１の電源の設定を切り替える場合に実行される処理である。
【０１１５】
以下の説明では、ＣＰＵ１１２がスタンバイ時から通常動作時に電源の設定を切り替える場合の処理について説明する。
【０１１６】
図１３におけるステップＳ２０１〜Ｓ２０３では、図９におけるステップＳ２０１〜Ｓ２０３と同様の処理を行い、ＣＰＵ１１２は、ＣＰＵ１１２への制御信号０，１に基づいてメモリ構成をスタンバイ時のメモリ構成から通常動作時のメモリ構成に切り替えると判別すると（ステップＳ２０１でＹＥＳ）、ＣＰＵ１１２は、制御信号２，４に基づいてメモリ構成切替の設定を行い（ステップＳ２０２）、図１１のステップＳ３０４又はＳ３０８で格納したキャリブレーションの結果の中から通常動作時におけるメモリ構成のキャリブレーションの結果を選択する（ステップＳ２０３）。
【０１１７】
例えば、停電などの影響で一時的に複合機１００の電源がＯＦＦ状態となった後に電源が復旧してＯＮ状態に戻った場合（このとき、メモリモジュールの電源はＯＮ状態〜ＯＦＦ状態〜ＯＮ状態と変化する。）、メモリモジュールがすべて不揮発性メモリデバイスで構成されていると、各メモリデバイスは電源がＯＦＦ状態となる前のデータを保持しているので、ＣＰＵ１１２は、電源が復旧した後に電源がＯＦＦ状態となる前と同じ設定で処理を行うことを想定し、一時的に複合機１００の電源がＯＦＦ状態となる前の不揮発性メモリデバイスの設定を維持する。一方、メモリモジュールが揮発性メモリデバイスを含むと、揮発性メモリデバイスは電源がＯＦＦ状態となる前のデータを保持できないので、ＣＰＵ１１２は、電源が復旧した後に電源がＯＦＦ状態となる前と異なる設定で処理を行うことを想定し、新たに各メモリデバイスの設定を行う。これに対応して、ステップＳ４０４で、ＣＰＵ１１２は、ステップＳ２０２で設定されたメモリ構成の中で電源がＯＮ状態となるメモリデバイス２０，２１が不揮発性か否かを夫々判別し、続くステップＳ４０５で、不揮発性メモリデバイスの設定の更新が必要か否かを夫々判別する。
【０１１８】
具体的には、ステップＳ４０４及びステップＳ４０５において、ＣＰＵ１１２は、一時的に複合機１００の電源がＯＦＦ状態となる前後のメモリ構成にて選択されたキャリブレーションの結果が同じ場合には、メモリモジュールがすべて不揮発性メモリデバイスで構成されていると判別して不揮発性メモリデバイスの設定の更新が不要と判別する。一方、選択されたキャリブレーションの結果が異なる場合には、メモリモジュールが揮発性メモリデバイスを含むと判別して不揮発性メモリデバイスの設定の更新が必要と判別する。
【０１１９】
ステップＳ４０４及びＳ４０５の各判別の結果、通常動作時に電源がＯＮ状態となるメモリデバイス２０，２１が不揮発性であり、且つ不揮発性メモリデバイスの設定の更新が不要であるときに、ＣＰＵ１１２は、メモリデバイス２０，２１の夫々の設定がすべて完了すると（ステップＳ４０７でＹＥＳ）、ステップＳ２０３で選択された通常動作時におけるメモリ構成のキャリブレーションの結果を用いてメモリコントローラ１０自身の設定を行うように制御バス５を介してメモリコントローラ１０を制御し（ステップＳ４０８）、本処理を終了する。
【０１２０】
ステップＳ４０４及びＳ４０５の各判別の結果、通常動作時に電源がＯＮ状態となるメモリデバイス２０，２１が不揮発性でないとき、又は不揮発性メモリデバイスの設定の更新が必要なときに、ＣＰＵ１１２は、ステップＳ２０３で選択された通常動作時におけるメモリ構成のキャリブレーションの結果を用いてメモリデバイス２０，２１の設定を行うように制御バス５を介してメモリコントローラ１０を制御し（ステップＳ４０６）、ステップＳ４０７以降の処理を実行して、本処理を終了する。
【０１２１】
一方、メモリコントローラ１０が通常動作時からスタンバイ時に電源の設定を切り替える場合に、ＣＰＵ１１２は、図１１のステップＳ３０４又はＳ３０８で格納したキャリブレーションの結果の中からスタンバイ時におけるメモリ構成のキャリブレーションの結果を選択し（ステップＳ２０３）、ステップＳ４０４及びＳ４０５の処理を実行して、ステップＳ２０３で選択されたスタンバイ時におけるメモリ構成のキャリブレーションの結果を用いてメモリデバイス２０，２１の設定を行うように制御バス５を介してメモリコントローラ１０を制御し（ステップＳ４０６）、また、ステップＳ４０４及びＳ４０５の各判別の結果、電源がＯＮ状態となるメモリデバイス２０，２１が不揮発性でないとき、又は不揮発性メモリデバイスの設定の更新が必要なときに、ＣＰＵ１１２は、ステップＳ２０３で選択された通常動作時におけるメモリ構成のキャリブレーションの結果を用いてメモリデバイス２０，２１の設定を行うように制御バス５を介してメモリコントローラ１０を制御する（ステップＳ４０６）。
【０１２２】
図１３の処理によれば、複合機１００の起動時に格納したキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を用いてメモリコントローラ１０の設定を行う（ステップＳ４０８）ので、複合機１００の動作中にメモリデバイス２０，２１の電源の設定を切り替えてもキャリブレーション時間を短縮することができる。
【０１２３】
図１３の処理において、電源がＯＮ状態となるメモリデバイス２０，２１が不揮発性でないとき、又は不揮発性メモリデバイスの設定の更新が必要なとき（ステップＳ４０４又はＳ４０５でＮＯ）のみ、複合機１００の起動時に格納したキャリブレーションの結果の中からスタンバイ時又は通常動作時等の用途に応じたメモリ構成のキャリブレーションの結果を用いてメモリデバイス２０，２１の設定を行うので、メモリデバイス２０，２１の設定を簡略化することができる。
【０１２４】
また、図１３の処理では、電源投入時にキャリブレーションを実行することを前提としているが（図１１におけるステップＳ３０３及びＳ３０７）、複合機１００の起動後における動作中に途中でＣＰＵ１１２によって電源の設定を切り替える場合、電源がＯＦＦ状態からＯＮ状態になったメモリデバイス２０，２１の夫々のＳＰＤから情報を読み取ったときにメモリデバイス情報が変更された場合には、キャリブレーションを再度実行してキャリブレーションの結果を更新してもよい。
【０１２５】
さらに、メモリデバイス２０，２１の設定を行うステップＳ４０６とメモリコントローラ１０の設定を行うステップＳ４０８とは同時に処理されてもよい。
【０１２６】
次に、本実施の形態にかかる変形例を用いた複合機１００について説明する。
【０１２７】
図１４は、図１０におけるＣＰＵ１１２及びメモリコントローラ１０を備えたコントローラ部１０１によって実行されるメモリ構成切替設定処理の手順を示すフローチャートである。
【０１２８】
図１４のメモリ構成切替設定処理は、図１０の各構成要素を備えたコントローラ部１０１によって実行される処理である。
【０１２９】
複合機１００でコピー動作やプリント動作や送信動作が行われるとき、複合機１００内部のコントローラ部１０１で一時的にファイルを格納等するために必要なワークメモリのメモリ容量は、上記動作（ジョブ）毎に異なるので、コントローラ部１０１は、上記動作（ジョブ）毎にメモリ構成切替の判断とメモリ構成切替の設定を行う。
【０１３０】
ここで、コピー動作は、複合機１００のフィーダに配置された原稿からスキャナで画像を取り込み、内部で色変換、濃度変換、エッジ強調処理、及びスクリーン処理等の画像処理を施して印刷部で紙に画像を形成して出力する動作である。
【０１３１】
プリント動作は、ＰＣやＵＳＢ等の外部Ｉ／ＦからＰＤＬ及びＪＰＥＧ等の画像データを受信し、コントローラ部１０１の内部でレンダリング処理、色変換、濃度変換、エッジ強調処理、及びスクリーン処理等の画像処理を施して印刷部で紙に画像を形成して出力する動作である。
【０１３２】
送信動作は、複合機１００のフィーダに配置された原稿からスキャナで画像を取り込み、内部で色変換、濃度変換、エッジ強調処理、及びスクリーン処理等の画像処理を施してＪＰＥＧ形式等のファイルを生成し、さらに指定されたＥ−ｍａｉｌアドレスにネットワークを介してファイルを送信する動作である。
【０１３３】
図１４において、まず、コントローラ部１０１を構成するＣＰＵ１１２は、複合機１００の起動時に電源が投入されると、メモリ構成をスタンバイ時のメモリ構成に設定し、図１１におけるステップＳ３０３のキャリブレーションの実行処理を行い、ジョブが投入されるまで当該メモリ構成を維持する（ステップＳ５０１）。
【０１３４】
次いで、ＣＰＵ１１２は、ジョブが投入されると（ステップＳ５０２でＹＥＳ）、ジョブがコピー動作か否かを判別し（ステップＳ５０３）、ジョブがプリント動作か否かを判別し（ステップＳ５０４）、さらに、ジョブが送信動作か否かを判別する（ステップＳ５０５）。
【０１３５】
ステップＳ５０３、Ｓ５０４及びＳ５０５の判別の結果、ジョブがコピー動作でなく、ジョブがプリント動作でなく、且つジョブが送信動作でないときに、ＣＰＵ１１２は、投入されたすべてのジョブが完了すると（ステップＳ５０７でＹＥＳ）、次のジョブがあるか否かを判別し（ステップＳ５０８）、ステップＳ５０８の判別の結果、次のジョブがあるときは、ステップＳ５０３に戻り、次のジョブがないときは、ステップＳ５０１に戻ってスタンバイ時のメモリ構成に設定する。
【０１３６】
ステップＳ５０３、Ｓ５０４及びＳ５０５の判別の結果、ジョブがコピー動作であるか、ジョブがプリント動作であるか、又はジョブが送信動作であるときに、ＣＰＵ１１２は、投入されたジョブの種類に応じて、図１３のステップＳ２０１〜Ｓ４０８の処理（ＣＰＵメモリ構成切替設定処理）を実行する（ステップＳ５０６）。
【０１３７】
例えば、ステップＳ５０３で、ＣＰＵ１１２は、スキャンしたデータを一時保存するために用紙サイズ等に基づいてワークメモリ領域を計算し、図１１のステップＳ３０２において取得されたメモリデバイス情報によって、必要なワークメモリ容量がメモリデバイス２０のみでは足りないと判断したとき、スタンバイ動作時のメモリ構成を通常動作時のメモリ構成に変更する。
【０１３８】
ステップＳ５０４で、ＣＰＵ１１２は、ＰＤＬデータのレンダリングで一時保存するために用紙サイズ等に基づいてワークメモリ領域を計算し、図１１のステップＳ３０２において取得されたメモリデバイス情報によって、必要なワークメモリ容量がメモリデバイス２０のみでは足りないと判断したとき、スタンバイ時のメモリ構成を通常動作時のメモリ構成に変更する。
【０１３９】
ステップＳ５０５で、ＣＰＵ１１２は、スキャンしたデータを一時保存するために用紙サイズ等に基づいてワークメモリ領域を計算し、図１１のステップＳ３０２において取得されたメモリデバイス情報によって、必要なワークメモリ容量がメモリデバイス２０のみで足りると判断したとき、スタンバイ動作時のメモリ構成を変更しない。
【０１４０】
図１４の処理によれば、複合機１００の起動時に格納したキャリブレーションの結果の中から投入されたジョブの種類に応じたメモリ構成のキャリブレーションの結果を用いてメモリコントローラ１０の設定及びメモリデバイス２０，２１の各設定を行う（ステップＳ５０６）ので、複合機１００の動作中に電源制御を実施してもキャリブレーション時間を短縮することができる。
【符号の説明】
【０１４１】
１０  メモリコントローラ
１１  メモリデバイス情報取得部
１２  設定格納部
１３  電源制御部
１４  メモリバスＩ／Ｆ制御部
２０，２１  メモリデバイス
３０  バススイッチ
４０，４１，４２  メモリバス
５０，５１  電源スイッチ
１１２  ＣＰＵ
【図１】
2015056129.tif 000003
【図２】
2015056129.tif 000004
【図３】
2015056129.tif 000005
【図４】
2015056129.tif 000006
【図５】
2015056129.tif 000007
【図６】
2015056129.tif 000008
【図７】
2015056129.tif 000009
【図８】
2015056129.tif 000010
【図９】
2015056129.tif 000011
【図１０】
2015056129.tif 000012
【図１１】
2015056129.tif 000013
【図１２】
2015056129.tif 000014
【図１３】
2015056129.tif 000015
【図１４】
2015056129.tif 000016
【図１５Ａ】
2015056129.tif 000017
【図１５Ｂ】
2015056129.tif 000018