(57)【要約】【課題】  データの退避用のメモリブロックを含むメモリ装置の消費電力を削減する。【解決手段】  アクセス要求に基づいて第１メモリブロックまたは第２メモリブロックにアクセスする第１コマンドを生成し、第１メモリブロックにアクセスする第２コマンドを生成し、第２コマンドに応じて第１メモリブロックから読み出されるデータのエラーを検出し、所定回数のエラーの検出に基づいて、第１メモリブロックに保持されたデータを第２メモリブロックに退避する第３コマンドを生成し、所定回数のエラーの検出前に、第１コマンド生成部から受ける第１コマンドおよび第２コマンド生成部から受ける第２コマンドを、所定比率で交互に第１メモリブロックに出力し、第２メモリブロックへのデータの退避後に、第１コマンドを第２メモリブロックに出力する。【選択図】    図１
2014038461.tif 000002
【特許請求の範囲】
【請求項１】
第１メモリブロックおよび第２メモリブロックを含むメモリ装置のアクセスを制御するメモリ制御装置において、
アクセス要求に基づいて前記第１メモリブロックまたは前記第２メモリブロックにアクセスする第１コマンドを生成する第１コマンド生成部と、
前記第１メモリブロックにアクセスする第２コマンドを生成する第２コマンド生成部と、
前記第２コマンドに応じて前記第１メモリブロックから読み出されるデータのエラーを検出する検出部と、
前記検出部による所定回数の前記エラーの検出に基づいて、前記第１メモリブロックに保持されたデータを前記第２メモリブロックに退避する第３コマンドを生成する第３コマンド生成部と、
前記検出部による前記所定回数の前記エラーの検出前に、前記第１コマンド生成部から受ける前記第１コマンドおよび前記第２コマンド生成部から受ける前記第２コマンドを、所定比率で交互に前記第１メモリブロックに出力し、前記第２メモリブロックへのデータの退避後に、前記第１コマンドを前記第２メモリブロックに出力するアクセス制御部と
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記アクセス制御部は、前記第２メモリブロックにデータを退避する退避期間中に、データが退避された前記第１メモリブロックの記憶領域に対する前記第１コマンドを前記第２メモリブロックに出力すること
を特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記アクセス制御部は、前記第１コマンド生成部から受ける前記第１コマンドおよび前記第３コマンド生成部から受ける前記第３コマンドを、所定比率で交互に前記メモリ装置に出力すること
を特徴とする請求項１または請求項２に記載のメモリ制御装置。
【請求項４】
前記アクセス制御部は、リードモディファイライトコマンドに基づく読み出しコマンドおよび書き込みコマンドを前記第３コマンドとして受け、前記読み出しコマンドを前記第１メモリブロックに出力し、前記書き込みコマンドを前記第２メモリブロックに出力すること
を特徴とする請求項１ないし請求項３のいずれか１項に記載のメモリ制御装置。
【請求項５】
前記アクセス制御部は、リードモディファイライトコマンドである前記第３コマンドによりアクセスされるアドレスと、リードモディファイライトコマンドである前記第１コマンドによりアクセスされるアドレスとが同じ場合、前記第１コマンドに対応する書き込みコマンドを、前記第３コマンドに対応する書き込みコマンドの出力後に前記第２メモリブロックに出力すること
を特徴とする請求項４に記載のメモリ制御装置。
【請求項６】
前記検出部による前記所定回数の前記エラーの検出後、前記第２メモリブロックへのデータの退避が開始される前に、前記第２メモリブロックに所定データを書き込む第４コマンドを生成する第４コマンド生成部と、
前記第２メモリブロックへの前記所定データの書き込み後、前記第２メモリブロックへのデータの退避が開始される前に、前記第２メモリブロックのエラーを検出する第５コマンドを生成する第５コマンド生成部と
を備え、
前記第３コマンド生成部は、前記第５コマンドに基づいて前記第２メモリブロックが正常に動作すると判断された場合に、前記第３コマンドを生成すること
を特徴とする請求項１ないし請求項５のいずれか１項に記載のメモリ制御装置。
【請求項７】
前記アクセス制御部は、
前記第１コマンド生成部から受ける前記第１コマンドおよび前記第４コマンド生成部から受ける前記第４コマンドを、所定比率で交互に前記第１メモリブロックおよび前記第２メモリブロックにそれぞれ出力し、
前記第１コマンド生成部から受ける前記第１コマンドおよび前記第５コマンド生成部から受ける前記第５コマンドを、所定比率で交互に前記第１メモリブロックおよび前記第２メモリブロックにそれぞれ出力すること
を特徴とする請求項６に記載のメモリ制御装置。
【請求項８】
前記アクセス制御部は、前記第４コマンドが出力される前に、前記第２メモリブロックに設定された低電力モードを解除すること
を特徴とする請求項７に記載のメモリ制御装置。
【請求項９】
前記アクセス制御部は、
前記第２メモリブロックに書き込む前記所定データを期待値として保持し、
前記第５コマンドに応じて前記第２メモリブロックから読み出されるデータを前記期待値と比較することにより、前記第２メモリブロックのエラーを検出すること
を特徴とする請求項８に記載のメモリ制御装置。
【請求項１０】
前記第３コマンド生成部は、前記検出部により、前記第１メモリブロック内の同じアドレスの記憶領域から読み出されるデータに訂正可能なエラーが複数回検出された場合に、前記第３コマンドを生成すること
を特徴とする請求項１ないし請求項９のいずれか１項に記載のメモリ制御装置。
【請求項１１】
前記所定比率を前記メモリ制御装置の外部から設定可能な設定部を備え、
前記アクセス制御部は、前記設定部に設定された前記所定比率に基づいて動作すること
を特徴とする請求項１ないし請求項１０のいずれか１項に記載のメモリ制御装置。
【請求項１２】
第１メモリブロックおよび第２メモリブロックを含むメモリ装置と、
アクセス要求に基づいて第１コマンドを前記メモリ装置に出力するメモリ制御装置と、
前記アクセス要求を発行するコントローラと
を含む情報処理装置において、
前記メモリ制御装置は、
前記アクセス要求に基づいて前記第１メモリブロックまたは前記第２メモリブロックにアクセスする前記第１コマンドを生成する第１コマンド生成部と、
前記第１メモリブロックにアクセスする第２コマンドを生成する第２コマンド生成部と、
前記第２コマンドに応じて前記第１メモリブロックから読み出されるデータのエラーを検出する検出部と、
前記検出部による所定回数の前記エラーの検出に基づいて、前記第１メモリブロックに保持されたデータを前記第２メモリブロックに退避する第３コマンドを生成する第３コマンド生成部と、
前記検出部による前記所定回数の前記エラーの検出前に、前記第１コマンド生成部から受ける前記第１コマンドおよび前記第２コマンド生成部から受ける前記第２コマンドを、所定比率で交互に前記第１メモリブロックに出力し、前記第２メモリブロックへのデータの退避後に、前記第１コマンドを前記第２メモリブロックに出力するアクセス制御部と
を備えることを特徴とする情報処理装置。
【請求項１３】
第１メモリブロックおよび第２メモリブロックを含むメモリ装置のアクセスを制御するメモリ制御装置の制御方法において、
アクセス要求に基づいて前記第１メモリブロックまたは前記第２メモリブロックにアクセスする第１コマンドを生成し、
前記第１メモリブロックにアクセスする第２コマンドを生成し、
前記第２コマンドに応じて前記第１メモリブロックから読み出されるデータのエラーを検出し、
所定回数の前記エラーの検出に基づいて、前記第１メモリブロックに保持されたデータを前記第２メモリブロックに退避する第３コマンドを生成し、
前記所定回数の前記エラーの検出前に、前記第１コマンドおよび前記第２コマンドを、所定比率で交互に前記第１メモリブロックに出力し、前記第２メモリブロックへのデータの退避後に、前記第１コマンドを前記第２メモリブロックに出力すること
を特徴とするメモリ制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置、情報処理装置およびメモリ制御装置の制御方法に関する。
【背景技術】
【０００２】
書き込み命令に応答して、運用系のメモリブロックと退避系のメモリブロックとに同一のデータを書き込むことで、情報処理装置で扱うデータの信頼性は向上する。例えば、訂正不可能なエラーが、運用系のメモリブロックから読み出されるデータに存在することを検出した場合に、運用系のメモリブロックを無効にし、退避系のメモリブロックにアクセスするメモリ制御装置が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１０２６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
書き込み命令に応答して複数のメモリブロックに同一のデータを書き込む場合、複数のメモリブロックを常に同時に動作させる必要があり、ピーク電流は増加し、消費電力は増加する。
【０００５】
１つの側面では、本発明の目的は、データの退避用のメモリブロックを含むメモリ装置の消費電力を削減することである。
【課題を解決するための手段】
【０００６】
本発明の一形態では、第１メモリブロックおよび第２メモリブロックを含むメモリ装置のアクセスを制御するメモリ制御装置は、アクセス要求に基づいて第１メモリブロックまたは第２メモリブロックにアクセスする第１コマンドを生成する第１コマンド生成部と、第１メモリブロックにアクセスする第２コマンドを生成する第２コマンド生成部と、第２コマンドに応じて第１メモリブロックから読み出されるデータのエラーを検出する検出部と、検出部による所定回数のエラーの検出に基づいて、第１メモリブロックに保持されたデータを第２メモリブロックに退避する第３コマンドを生成する第３コマンド生成部と、検出部による所定回数のエラーの検出前に、第１コマンド生成部から受ける第１コマンドおよび第２コマンド生成部から受ける第２コマンドを、所定比率で交互に第１メモリブロックに出力し、第２メモリブロックへのデータの退避後に、第１コマンドを第２メモリブロックに出力するアクセス制御部とを備える。
【０００７】
本発明の別の形態では、情報処理装置は、第１メモリブロックおよび第２メモリブロックを含むメモリ装置と、アクセス要求に基づいて第１コマンドをメモリ装置に出力する上記メモリ制御装置と、アクセス要求を発行するコントローラとを含む。
【０００８】
本発明の別の形態では、第１メモリブロックおよび第２メモリブロックを含むメモリ装置のアクセスを制御するメモリ制御装置の制御方法は、アクセス要求に基づいて第１メモリブロックまたは第２メモリブロックにアクセスする第１コマンドを生成し、第１メモリブロックにアクセスする第２コマンドを生成し、第２コマンドに応じて第１メモリブロックから読み出されるデータのエラーを検出し、所定回数のエラーの検出に基づいて、第１メモリブロックに保持されたデータを第２メモリブロックに退避する第３コマンドを生成し、所定回数のエラーの検出前に、第１コマンド生成部から受ける第１コマンドおよび第２コマンド生成部から受ける第２コマンドを、所定比率で交互に第１メモリブロックに出力し、第２メモリブロックへのデータの退避後に、第１コマンドを第２メモリブロックに出力する。
【発明の効果】
【０００９】
データの退避用の第２メモリブロックを、第１メモリブロックのエラーが検出された後にアクセスすることで、メモリ装置の消費電力を削減できる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態におけるメモリ制御装置、情報処理装置およびメモリ制御装置の制御方法の例を示している。
【図２】別の実施形態におけるメモリ制御装置、情報処理装置およびメモリ制御装置の制御方法の例を示している。
【図３】図２に示したコマンド制御部の例を示している。
【図４】図３に示したコマンド制御部の動作の例を示している。
【図５】図２に示した診断制御部の例を示している。
【図６】図２に示したコマンド調停部の例を示している。
【図７】図２に示したコマンド制御部、診断制御部およびコマンド調停部により実行される退避期間の動作の例を示している。
【図８】図２に示したアクセス制御部の例を示している。
【図９】図２に示したメモリ制御装置のコマンドの流れの例を示している。
【図１０】図２に示した情報処理装置の動作の概要を示している。
【図１１】図１０に示した診断期間の動作フローの例を示している。
【図１２】図１０に示した退避準備期間の動作フローの例を示している。
【図１３】図１０に示した退避期間の動作フローの例を示している。
【図１４】図１１に示した診断期間の動作の例を示している。
【図１５】図１２に示した退避準備期間の動作の例を示している。
【図１６】図１３に示した退避期間の動作の例を示している。
【図１７】図１０に示した運用系メモリブロックの交替動作の例を示している。
【図１８】別の実施形態におけるメモリ制御装置、情報処理装置およびメモリ制御装置の制御方法の例を示している。
【図１９】図１８に示したコマンド調停部により実行される退避期間の動作フローの例を示している。
【図２０】図１８に示したコマンド制御部、診断制御部およびコマンド調停部により実行される退避期間の動作の例を示している。
【図２１】図１８に示したコマンド制御部、診断制御部およびコマンド調停部により実行される退避期間の動作の別の例を示している。
【図２２】図１８に示したメモリ制御装置の退避期間における動作の例を示している。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。
【００１２】
図１は、一実施形態におけるメモリ制御装置、情報処理装置およびメモリ制御装置の制御方法の例を示している。情報処理装置は、メモリ制御装置ＭＣＮＴ、コントローラＣＮＴＬおよびメモリ装置ＭＥＭを有する。例えば、情報処理装置は、サーバやＰＣ（Personal Computer）である。メモリ制御装置ＭＣＮＴおよびコントローラＣＮＴＬは、独立の半導体チップでもよく、１つの半導体チップに集積されていてもよい。
【００１３】
メモリ装置ＭＥＭは、メモリブロック３２、３４を有しており、メモリブロック３２、３４に共通の制御端子（ライトイネーブル端子等）、アドレス端子およびデータ端子を有する。メモリブロック３２、３４は、ブロックアドレス端子に供給されるブロックアドレス信号により選択され、あるいは、メモリブロック３２、３４毎に設けられるチップセレクト端子に供給されるチップセレクト信号により選択される。
【００１４】
例えば、メモリブロック３２、３４は、互いに同じメモリ容量を有し、ワード構成およびビット構成は、互いに同じである。メモリ装置ＭＥＭは、複数の半導体メモリチップが搭載される単一のメモリモジュールであり、あるいは単一の半導体メモリチップである。半導体メモリチップは、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）、強誘電体メモリ、ＭＲＡＭ（Magnetic RAM）、相変化メモリ（Phase change RAM）またはＲｅＲＡＭ（Resistive RAM）等である。
【００１５】
例えば、メモリブロック３２は、アクセス要求に基づいてコントローラＣＮＴＬからメモリ装置ＭＥＭに供給されるデータＤＴを記憶する運用系メモリブロックである。メモリブロック３４は、メモリブロック３２にエラーが発生した場合に、メモリブロック３２の代わりに動作してデータＤＴを記憶する退避系メモリブロックである。
【００１６】
なお、例えば、メモリ装置ＭＥＭは、４つのメモリブロックを含んでもよい。この場合、１つのメモリブロックが運用系メモリブロックに割り当てられ、残りの３つのブロックが退避系メモリブロックに割り当てられる。そして、運用系メモリブロックに不良が発生した場合、退避系メモリブロックの１つが新たな運用系メモリブロックとして動作する。新たな運用系メモリブロックにエラーが発生した場合、次の退避系メモリブロックが運用系メモリブロックとして順次に動作する。
【００１７】
あるいは、４つのメモリブロックのうちの２つが運用系メモリブロックに割り当てられ、残りの２つが退避系メモリブロックに割り当てられてもよい。この場合、１つの運用系メモリブロックと１つの退避系メモリブロックとが対応付けられ、あるいは、２つの退避系メモリブロックは、２つの運用系メモリブロックの１つにエラーが発生した場合に順次に使用される。さらに、４つのメモリブロックのうちの３つが運用系メモリブロックに割り当てられ、残りの１つが退避系メモリブロックに割り当てられてもよい。このように、メモリ装置ＭＥＭは、少なくとも１つの運用系メモリブロックと、少なくとも１つの退避系メモリブロックとを有する。
【００１８】
メモリ制御装置ＭＣＮＴは、コントローラＣＮＴＬとメモリ装置ＭＥＭとの間に接続され、コントローラＣＮＴＬからのアクセス要求ＡＲＥＱに基づいてメモリ装置ＭＥＭのアクセスを制御する。メモリ制御装置ＭＣＮＴは、コマンド生成部１０、１２、１４、アクセス制御部１６および検出部１８を有する。
【００１９】
コマンド生成部１０は、コントローラＣＮＴＬからのアクセス要求ＡＲＥＱに基づいてアクセスコマンドＡＣＭＤを生成し、生成したアクセスコマンドＡＣＭＤをアクセス制御部１６に出力する。コマンド生成部１０は、アクセス要求ＡＲＥＱに基づいてメモリブロック３２またはメモリブロック３４にアクセスするアクセスコマンドＡＣＭＤを生成する第１コマンド生成部の一例である。アクセスコマンドＡＣＭＤは、第１コマンドの一例である。
【００２０】
コマンド生成部１２は、メモリブロック３２にアクセスする診断コマンドＤＣＭＤを生成する。診断コマンドＤＣＭＤは、運用系メモリブロックであるメモリブロック３２からデータを読み出し、読み出したデータのエラーを検出するコマンドであり、第２コマンドの一例である。エラーは、検出部１８により検出される。コマンド生成部１２は、メモリブロック３２にアクセスする診断コマンドＤＣＭＤを生成する第２コマンド生成部の一例である。
【００２１】
コマンド生成部１２は、検出部１８から検出通知ＥＤＥＴを受けない場合、すなわち、メモリブロック３２からの読み出しデータにエラーが検出されない場合、次のアドレスの診断コマンドＤＣＭＤを出力する。そして、メモリブロック３２のメモリ領域が巡回的にアクセスさせ、読み出しデータのエラーの有無が検出される。
【００２２】
コマンド生成部１２は、訂正可能なエラーが検出されたことを示す検出通知ＥＤＥＴを受けた場合、同じアドレスの診断コマンドＤＣＭＤを再度出力する。コマンド生成部１２は、同じアドレスの読み出しデータに訂正可能なエラーがあることを示す検出通知ＥＤＥＴを再度受けた場合、診断コマンドＤＣＭＤの生成を停止する。そして、コマンド生成部１２は、コマンド生成部１４に開始要求ＣＲＥＱを出力し、メモリブロック３２からメモリブロック３４へのデータの退避の開始を指示する。
【００２３】
コマンド生成部１４は、開始要求ＣＲＥＱに応答して、退避コマンドＣＣＭＤを生成する。コマンド生成部１４は、検出部１８による所定回数のエラーの検出に基づいて、メモリブロック３２に保持されたデータをメモリブロック３４に退避する退避コマンドＣＣＭＤを生成する第３コマンド生成部の一例である。退避コマンドＣＣＭＤは、メモリブロック３２に保持されたデータをメモリブロック３４に退避するコマンドであり、第３コマンドの一例である。
【００２４】
アクセス制御部１６は、受け付けたアクセスコマンドＡＣＭＤ、診断コマンドＤＣＭＤおよび退避コマンドＣＣＭＤを、予め設定された優先順にしたがってメモリ装置ＭＥＭに出力する。アクセス制御部１６からメモリ装置ＭＥＭに出力される各アクセスコマンドＣＭＤは、アクセスコマンドＡＣＭＤ、診断コマンドＤＣＭＤおよび退避コマンドＣＣＭＤのいずれかである。
【００２５】
アクセス制御部１６は、検出部１８による所定回数のエラーの検出前に、アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤをアクセスコマンドＣＭＤとして、所定比率で交互にメモリブロック３２に出力する。すなわち、アクセス制御部１６は、診断コマンドＤＣＭＤを、アクセスコマンドＡＣＭＤの合間にメモリ装置ＭＥＭに出力する。また、アクセス制御部１６は、メモリブロック３２からメモリブロック３４へのデータの退避後に、アクセスコマンドＡＣＭＤをアクセスコマンドＣＭＤとしてメモリブロック３４に出力する。
【００２６】
なお、アクセス制御部１６は、メモリブロック３２からメモリブロック３４にデータを退避する退避期間に、アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤをアクセスコマンドＣＭＤとして、所定比率で交互にメモリ装置ＭＥＭに出力してもよい。すなわち、アクセス制御部１６は、退避コマンドＣＣＭＤを、アクセスコマンドＡＣＭＤの合間にメモリ装置ＭＥＭに出力してもよい。
【００２７】
検出部１８は、診断コマンドＤＣＭＤに応答してメモリブロック３２から読み出されるデータＤＴに訂正可能なエラーがあることを複数回検出した場合に、検出信号ＥＤＥＴをコマンド生成部１２に出力する。例えば、検出部１８は、メモリブロック３２内の同じアドレスの記憶領域から読み出されるデータに、訂正可能なエラーが複数回検出された場合に、検出信号ＥＤＥＴを出力する。なお、コマンド生成部１４は、開始要求ＣＲＥＱの代わりに検出通知ＥＤＥＴを受けて、退避コマンドＣＣＭＤの生成を開始してもよい。
【００２８】
コントローラＣＮＴＬは、プログラムの実行に基づいてメモリ装置ＭＥＭにアクセスするＣＰＵ（Central Processing Unit）等のプロセッサ、または情報処理装置に搭載されるキャッシュメモリのアクセスを制御するキャッシュコントローラである。キャッシュコントローラは、キャッシュメモリに所望のデータが格納されていない場合に、メモリ装置ＭＥＭから所望のデータを読み出すアクセス要求ＡＲＥＱを生成する。また、キャッシュコントローラは、キャッシュメモリとメモリ装置ＭＥＭとのデータを一致させるために、メモリ装置ＭＥＭにデータを書き込むアクセス要求ＡＲＥＱを生成する。
【００２９】
この実施形態では、メモリ制御装置ＭＣＮＴは、メモリブロック３２にエラーが発生するまで、メモリブロック３４をアクセスしない。このため、メモリブロック３４へのデータの退避前にメモリブロック３２、３４の両方を動作させる場合に比べて、メモリ装置ＭＥＭの消費電力を削減できる。例えば、メモリブロック３４へのデータの退避を開始するまで、メモリブロック３４を低電力モードに設定することにより、メモリ装置ＭＥＭの消費電力をさらに削減可能である。メモリ装置ＭＥＭがＤＲＡＭの場合、退避系メモリブロックのリフレッシュ動作が低電力モード中に禁止されてもよい。
【００３０】
また、メモリ制御装置ＭＣＮＴは、アクセスコマンドＡＣＭＤの合間に診断コマンドＤＣＭＤおよび退避コマンドＣＣＭＤをメモリ装置ＭＥＭに出力する。これにより、メモリブロック３２のエラーを検出する診断期間およびメモリブロック３４にデータを退避する退避期間においても、アクセス要求ＡＲＥＱに基づいてメモリブロック３４にアクセスできる。この結果、コントローラＣＮＴＬは、所定の頻度でメモリ装置ＭＥＭにアクセスでき、情報処理装置の性能が低下することを抑制できる。また、コントローラＣＮＴＬは、診断期間および退避期間を認識する回路や、診断期間および退避期間にアクセス要求ＡＲＥＱを蓄積するバッファ等を持たない。
【００３１】
図２は、別の実施形態におけるメモリ制御装置、情報処理装置およびメモリ制御装置の制御方法の例を示している。図１に示した実施形態で説明した要素と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００３２】
この実施形態の情報処理装置は、メモリ制御装置ＭＣＮＴ、コントローラＣＮＴＬおよびメモリモジュールＤＩＭＭ（Dual Inline Memory Module）を有する。メモリモジュールＤＩＭＭは、メモリ装置の一例であり、例えば、複数のＤＲＡＭチップを有する。例えば、情報処理装置は、サーバやＰＣ（Personal Computer）である。メモリ制御装置ＭＣＮＴおよびコントローラＣＮＴＬは、独立の半導体チップでもよく、１つの半導体チップに集積されていてもよい。
【００３３】
例えば、メモリモジュールＤＩＭＭは、４つのバンクＢＡＮＫ（ＢＡＮＫ０、ＢＡＮＫ１、ＢＡＮＫ２、ＢＡＮＫ３）を各々含む２つのランクＲＡＮＫ（ＲＡＮＫ０、ＲＡＮＫ１）を有する。ランクＲＡＮＫ０、ＲＡＮＫ１は、メモリブロックの一例である。
【００３４】
ランクＲＡＮＫ０、ＲＡＮＫ１は、メモリモジュールＤＩＭＭのアドレス端子に供給されるランクアドレス信号により選択され、あるいは、メモリモジュールＤＩＭＭの２つのチップセレクト端子にそれぞれ供給されるチップセレクト信号により選択される。この実施形態では、ランクＲＡＮＫ０は、運用系メモリブロックに割り当てられ、ランクＲＡＮＫ１は、退避系メモリブロックに割り当てられる。なお、図１と同様に、メモリモジュールＤＩＭＭは、ＤＲＡＭチップの代わりに、ＳＲＡＭ、強誘電体メモリ、ＭＲＡＭ、相変化メモリまたはＲｅＲＡＭ等の半導体メモリチップを含んでもよい。
【００３５】
メモリ制御装置ＭＣＮＴは、コントローラＣＮＴＬとメモリモジュールＤＩＭＭとの間に接続され、コントローラＣＮＴＬからのアクセス要求ＡＲＥＱに基づいてメモリモジュールＤＩＭＭのアクセスを制御する。メモリ制御装置ＭＣＮＴは、コマンド制御部１００、診断制御部２００、コマンド調停部３００、メモリインタフェース部４００およびデータバッファ５００を有する。
【００３６】
コマンド制御部１００は、コントローラＣＮＴＬからのアクセス要求ＡＲＥＱを保持する複数の領域を有する。コマンド制御部１００は、保持したアクセス要求ＡＲＥＱのうち、アクセス可能なバンクＢＡＮＫ０−ＢＡＮＫ３に対応する最も早く受けたアクセス要求ＡＲＥＱを選択し、選択したアクセス要求ＡＲＥＱをアクセスコマンドＡＣＭＤおよび要求通知ＲＥＱＡとして出力する。
【００３７】
コマンド制御部１００は、許可通知ＰＥＲＡの受信に応答して、アクセスコマンドＡＣＭＤがコマンド調停部３００に受け付けられたことを認識し、受け付けられたアクセス要求ＡＲＥＱを削除または無効にする。そして、コマンド制御部１００は、アクセス可能なバンクＢＡＮＫ０−ＢＡＮＫ３に対応する最も早く受けた次のアクセス要求ＡＲＥＱを選択し、選択したアクセス要求ＡＲＥＱをアクセスコマンドＡＣＭＤおよび要求通知ＲＥＱＡとして出力する。コマンド制御部１００は、アクセス要求ＡＲＥＱに基づいてランクＲＡＮＫ０またはランクＲＡＮＫ１にアクセスするアクセスコマンドＡＣＭＤを生成する第１コマンド生成部の一例である。コマンド制御部１００の例は、図３および図４に示す。
【００３８】
診断制御部２００は、診断コマンドＤＣＭＤまたは退避コマンドＣＣＭＤを要求通知ＲＥＱＤとともに出力する。診断コマンドＤＣＭＤは、運用系メモリブロックであるランクＲＡＮＫ０からデータを読み出し、読み出したデータに訂正可能なエラーが含まれるか否かを検出する診断期間に生成される。退避コマンドＣＣＭＤは、ランクＲＡＮＫ０内の同じアドレスの記憶領域に訂正可能なエラーが連続して検出された後、ランクＲＡＮＫ０に保持されたデータを、ランクＲＡＮＫ１に退避する退避期間に生成される。診断期間および退避期間は、図１０で説明する。
【００３９】
また、診断制御部２００は、許可通知ＰＥＲＤの受信に応答して、診断コマンドＤＣＭＤまたは退避コマンドＣＣＭＤがコマンド調停部３００に受け付けられたことを認識する。診断制御部２００は、診断コマンドＤＣＭＤの実行結果ＲＳＬＴＤおよび退避コマンドＣＣＭＤの実行結果ＲＳＬＴＣをメモリインタフェース部４００から受ける。
【００４０】
そして、診断制御部２００は、実行結果ＲＳＬＴＤ、ＲＳＬＴＣに基づいて、次の診断コマンドＤＣＭＤまたは退避コマンドＣＣＭＤを要求通知ＲＥＱＤとともに出力する。さらに、診断制御部２００は、診断処理の開始を宣言する通知ＮＴＣＤおよび退避処理の開始を宣言する通知ＮＴＣＣを出力する。診断制御部２００の例および実行結果ＲＳＬＴＤ、ＲＳＬＴＣおよび通知ＮＴＣＤ、ＮＴＣＣの例は、図５で説明する。
【００４１】
コマンド調停部３００は、受け付けたアクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤを所定比率で交互にアクセスコマンドＩＣＭＤとしてメモリインタフェース部４００に出力する。コマンド調停部３００は、受け付けたアクセスコマンドＡＣＭＤおよび退避コマンドＣＣＭＤを所定比率で交互にアクセスコマンドＩＣＭＤとしてメモリインタフェース部４００に出力する。また、コマンド調停部３００は、アクセスコマンドＡＣＭＤ、診断コマンドＤＣＭＤおよび退避コマンドＣＣＭＤに含まれるアドレスをアドレスＩＡＤとして、アクセスコマンドＩＣＭＤとともにメモリインタフェース部４００に出力する。
【００４２】
例えば、コマンド調停部３００は、アクセスコマンドＡＣＭＤの受け付け比率と診断コマンドＤＣＭＤの受け付け比率を、２：１に設定し、アクセスコマンドＡＣＭＤの受け付け比率と退避コマンドＣＣＭＤの受け付け比率を、２：１に設定する。そして、コマンド調停部３００は、アクセスコマンドＡＣＭＤを受け付け可能な期間に許可通知ＰＥＲＡを出力し、診断コマンドＤＣＭＤまたは退避コマンドＣＣＭＤを受け付け可能な期間に許可通知ＰＥＲＤを出力する。コマンド調停部３００の例は、図６に示す。
【００４３】
メモリインタフェース部４００は、コマンド調停部３００からのアクセスコマンドＩＣＭＤをメモリモジュールＤＩＭＭのインタフェース仕様に合わせたアクセスコマンドＣＭＤに変換し、変換したアクセスコマンドＣＭＤをメモリモジュールＤＩＭＭに出力する。メモリインタフェース部４００は、アクセス要求ＡＲＥＱが書き込みコマンドの場合、データバッファ５００から書き込みデータＤＴを受け、書き込みデータＤＴＭとしてメモリモジュールＤＩＭＭに出力する。
【００４４】
メモリインタフェース部４００は、アクセス要求ＡＲＥＱが読み出しコマンドの場合、メモリモジュールＤＩＭＭから読み出しデータＤＴＭを受け、読み出しデータＤＴとしてデータバッファ５００に出力する。メモリインタフェース部４００は、書き込みデータからエラー訂正コードを生成する機能と、読み出しデータとともにメモリモジュールＤＩＭＭから読み出されるエラー訂正コードを用いて読み出しデータのエラーを検出する機能とを有する。メモリインタフェース部４００の例は、図８に示す。
【００４５】
データバッファ５００は、コントローラＣＮＴＬから受ける書き込みデータＤＴＣを保持し、保持した書き込みデータをメモリインタフェース部４００の動作タイミングに合わせて書き込みデータＤＴとして出力する。データバッファ５００は、メモリインタフェース部４００から受ける読み出しデータＤＴを保持し、保持した読み出しデータをコントローラＣＮＴＬの動作タイミングに合わせて書き込みデータＤＴＣとして出力する。
【００４６】
図３は、図２に示したコマンド制御部１００の例を示している。コマンド制御部１００は、コマンド保持部１１０、ビジー検出部１２０およびコマンド送信部１３０を有する。
【００４７】
コマンド保持部１１０は、アクセス要求ＡＲＥＱを保持する複数の保持領域ＨＬＤ（ＨＬＤａ、ＨＬＤｂ、ＨＬＤｃ、ＨＬＤｄ）を有する。図３では、説明を簡単にするために、４つの保持領域ＨＬＤを示しているが、保持領域ＨＬＤの数は４つに限定されない。
【００４８】
アクセス要求ＡＲＥＱは、アクセスコマンドおよびメモリモジュールＤＩＭＭ内のアクセスする記憶領域を示すアクセスアドレスを含む。アクセスアドレスは、バンクＢＡＮＫ０−ＢＡＮＫ３を示すバンクアドレスおよびＢＡＮＫ０−ＢＡＮＫ３内の記憶領域を示すアドレスを含む。なお、この実施形態では、アクセス要求ＡＲＥＱによりアクセス可能なメモリ領域は、ランクＲＡＮＫ０またはランクＲＡＮＫ１のいずれかのため、アクセスアドレスは、ランクＲＡＮＫを示すランクアドレスは含まない。
【００４９】
保持領域ＨＬＤａは、保持したアクセス要求ＡＲＥＱに含まれるアクセスアドレスのうちバンクアドレスに対応するバンク信号ＢＫａ（ＢＫａ０、ＢＫａ１、ＢＫａ２、ＢＫａ３のいずれか）を出力する。バンク信号ＢＫａ０は、保持領域ＨＬＤａに保持されたバンクアドレスがバンクＢＡＮＫ０を示す場合に出力される。バンク信号ＢＫａ１は、保持領域ＨＬＤａに保持されたバンクアドレスがバンクＢＡＮＫ１を示す場合に出力される。バンク信号ＢＫａ２は、保持領域ＨＬＤａに保持されたバンクアドレスがバンクＢＡＮＫ２を示す場合に出力される。バンク信号ＢＫａ３は、保持領域ＨＬＤａに保持されたバンクアドレスがバンクＢＡＮＫ３を示す場合に出力される。また、保持領域ＨＬＤａは、アクセス要求ＡＲＥＱに含まれるアクセスコマンドをアクセス要求ＡＲＥＱａとして出力する。
【００５０】
保持領域ＨＬＤｂは、保持したアクセス要求ＡＲＥＱに含まれるバンクアドレスに対応するバンク信号ＢＫｂ（ＢＫｂ０、ＢＫｂ１、ＢＫｂ２、ＢＫｂ３のいずれか）を出力する。バンク信号ＢＫｂ０、ＢＫｂ１、ＢＫｂ２、ＢＫｂ３は、保持領域ＨＬＤｂに保持されたバンクアドレスがバンクＢＡＮＫ０、ＢＡＮＫ１、ＢＡＮＫ２、ＢＡＮＫ３を示す場合にそれぞれ出力される。また、保持領域ＨＬＤｂは、アクセス要求ＡＲＥＱに含まれるアクセスコマンドをアクセス要求ＡＲＥＱｂとして出力する。
【００５１】
保持領域ＨＬＤｃは、保持したアクセス要求ＡＲＥＱに含まれるバンクアドレスに対応するバンク信号ＢＫｃ（ＢＫｃ０、ＢＫｃ１、ＢＫｃ２、ＢＫｃ３のいずれか）を出力する。バンク信号ＢＫｃ０、ＢＫｃ１、ＢＫｃ２、ＢＫｃ３は、保持領域ＨＬＤｃに保持されたバンクアドレスがバンクＢＡＮＫ０、ＢＡＮＫ１、ＢＡＮＫ２、ＢＡＮＫ３を示す場合にそれぞれ出力される。また、保持領域ＨＬＤｃは、アクセス要求ＡＲＥＱに含まれるアクセスコマンドをアクセス要求ＡＲＥＱｃとして出力する。
【００５２】
保持領域ＨＬＤｄは、保持したアクセス要求ＡＲＥＱに含まれるバンクアドレスに対応するバンク信号ＢＫｄ（ＢＫｄ０、ＢＫｄ１、ＢＫｄ２、ＢＫｄ３のいずれか）を出力する。バンク信号ＢＫｄ０、ＢＫｄ１、ＢＫｄ２、ＢＫｄ３は、保持領域ＨＬＤｂに保持されたバンクアドレスがバンクＢＡＮＫ０、ＢＡＮＫ１、ＢＡＮＫ２、ＢＡＮＫ３を示す場合にそれぞれ出力される。また、保持領域ＨＬＤｄは、アクセス要求ＡＲＥＱに含まれるアクセスコマンドをアクセス要求ＡＲＥＱｄとして出力する。バンク信号ＢＫ（ＢＫａ、ＢＫｂ、ＢＫｃ、ＢＫｄ）の末尾の数字は、アクセスされるバンクＢＡＮＫの番号を示している。
【００５３】
ビジー検出部１２０は、バンク信号ＢＫ（ＢＫａ、ＢＫｂ、ＢＫｃ、ＢＫｄ）と、運用系メモリブロックの各バンクＢＡＮＫ０−ＢＡＮＫ３がビジー状態であることを示すビジー信号ＢＳＹ（ＢＳＹ０、ＢＳＹ１、ＢＳＹ２、ＢＳＹ３）とを受ける。ビジー状態は、対応するバンクＢＡＮＫがアクティブ状態であり、バンクＢＡＮＫ内のメモリセルに接続されたワード線のいずれかが活性化された状態である。なお、運用系メモリブロックは、初期状態ではランクＲＡＮＫ０であり、ランクＲＡＮＫ０のエラーの発生により、ランクＲＡＮＫ０からランクＲＡＮＫ１にデータが退避された後、切り替えによりランクＲＡＮＫ１になる。
【００５４】
ビジー信号ＢＳＹの末尾の数字は、バンクＢＡＮＫの番号を示している。ビジー検出部１２０は、各バンク信号ＢＫとビジー信号ＢＳＹとを比較し、ビジー状態でないバンクＢＡＮＫ（すなわち、レディ状態のバンクＢＡＮＫ）に対応するバンク信号ＢＫを選択する。レディ状態は、対応するバンクＢＡＮＫがインアクティブ状態（スタンバイ状態）であり、バンクＢＡＮＫ内のメモリセルに接続された全てのワード線が非活性化された状態である。
【００５５】
そして、ビジー検出部１２０は、選択したレディ状態のバンク信号ＢＫ（ＢＫａ、ＢＫｂ、ＢＫｃ、ＢＫｄ）に対応するレディ信号ＲＤＹ（ＲＤＹａ、ＲＤＹｂ、ＲＤＹｃ、ＲＤＹｄ）をコマンド送信部１３０に出力する。レディ信号ＲＤＹの末尾のａ、ｂ、ｃ、ｄは、レディ状態のバンクＢＡＮＫに対するアクセス要求ＡＲＥＱを保持した保持領域ＨＬＤを示している。例えば、レディ信号ＲＤＹａは、保持領域ＨＬＤａに保持されたアクセス要求ＡＲＥＱａにより選択されるバンクＢＡＮＫがアクセス可能（レディ状態）であることを示している。
【００５６】
コマンド送信部１３０は、レディ信号ＲＤＹが示す保持領域ＨＬＤから出力されたアクセス要求ＡＲＥＱ（ＡＲＥＱａ、ＡＲＥＱｂ、ＡＲＥＱｃ、ＡＲＥＱｄ）を選択する。コマンド送信部１３０は、選択したアクセス要求ＡＲＥＱの中で最も早くコマンド制御部１００が受けたアクセス要求ＡＲＥＱを選択し、選択したアクセス要求ＡＲＥＱをアクセスコマンドＡＣＭＤとして図２に示したコマンド調停部３００に出力する。また、コマンド送信部１３０は、アクセス要求ＡＲＥＱの発生を示す要求通知ＲＥＱＡをコマンド調停部３００に出力する。なお、コマンド送信部１３０は、許可通知ＰＥＲＡを受けたか否かに拘わりなく、アクセスコマンドＡＣＭＤおよび要求通知ＲＥＱＡを出力可能である。
【００５７】
コマンド送信部１３０は、アクセス要求ＡＲＥＱが読み出しコマンドの場合、読み出しコマンドを示すアクセスコマンドＡＣＭＤをコマンド調停部３００に出力する。コマンド送信部１３０は、アクセス要求ＡＲＥＱが書き込みコマンドの場合、書き込みコマンドを示すアクセスコマンドＡＣＭＤをコマンド調停部３００に出力する。コマンド送信部１３０は、アクセス要求ＡＲＥＱがリードモディファイライトコマンドの場合、まず、読み出しコマンドを示すアクセスコマンドＡＣＭＤをコマンド調停部３００に出力する。次に、コマンド送信部１３０は、許可通知ＰＥＲＡを受けた後に、リードモディファイライトコマンド用の書き込みコマンドを示すアクセスコマンドＡＣＭＤをコマンド調停部３００に出力する。
【００５８】
図４は、図３に示したコマンド制御部１００の動作の例を示している。この例では、バンクＢＡＮＫ０に対するアクセス要求ＡＲＥＱａ、ＡＲＥＱｃが保持領域ＨＬＤａ、ＨＬＤｃにそれぞれ保持され、バンクＢＡＮＫ１に対するアクセス要求ＡＲＥＱｂが保持領域ＨＬＤｂに保持される。コマンド保持部１１０は、アクセス要求ＡＲＥＱａ、ＡＲＥＱｂ、ＡＲＥＱｃを、この順で受けて保持する。保持領域ＨＬＤａは、バンク信号ＢＫａ０を出力し、保持領域ＨＬＤｂは、バンク信号ＢＫｂ１を出力し、保持領域ＨＬＤｃは、バンク信号ＢＫｃ０を出力する。
【００５９】
運用系メモリブロックであるランクＲＡＮＫ０では、網掛けで示したバンクＢＡＮＫ１がビジー状態であり、図２に示したメモリインタフェース部４００は、ビジー信号ＢＳＹ１を出力する。ランクＲＡＮＫ０の他のバンクＢＡＮＫ０、ＢＡＮＫ２、ＢＡＮＫ３は、レディ状態であり、ビジー信号ＢＳＹ０、ＢＳＹ２、ＢＳＹ３は出力されていない。
【００６０】
ビジー検出部１２０は、ビジー信号ＢＳＹ１を受け、ビジー状態のバンクＢＡＮＫを除くバンクＢＡＮＫ０、ＢＡＮＫ２、ＢＡＮＫ３に対応するバンク信号ＢＫを選択する。この例では、ビジー検出部１２０は、バンク信号ＢＫａ０、ＢＫｃ０を選択し、レディ信号ＲＤＹａ、ＲＤＹｃを出力し、ビジー状態のバンクＢＡＮＫ１に対応するレディ信号ＲＤＹｂの出力を禁止する。
【００６１】
コマンド送信部１３０は、レディ信号ＲＤＹａ、ＲＤＹｃに対応して保持領域ＨＬＤａ、ＨＬＤｃから出力されたアクセス要求ＡＲＥＱａ、ＡＲＥＱｃの中でコマンド制御部１００が最も早く受けたアクセス要求ＡＲＥＱａを選択する。そして、コマンド送信部１３０は、アクセスコマンドＡＣＭＤ（ＡＲＥＱａ）および要求通知ＲＥＱＡを出力する。
【００６２】
この後、アクセス要求ＡＲＥＱａに応答して、メモリインタフェース部４００からメモリモジュールＤＩＭＭにアクティブコマンドが供給されて、バンクＢＡＮＫ０はアクティブ状態になる。メモリインタフェース部４００は、ビジー信号ＢＳＹ０を出力し、読み出しコマンドまたは書き込みコマンドをメモリモジュールＤＩＭＭに出力する。ビジー検出部１２０は、ビジー信号ＢＳＹ０を受け、レディ信号ＲＤＹｃの出力を停止する。
【００６３】
コマンド保持部１１０の保持部ＨＬＤａに保持されたアクセス要求ＡＲＥＱａは、コマンド送信部１３０による選択に応じて削除され、あるいは無効にされる。保持部ＨＬＤａは、アクセス要求ＡＲＥＱを保持していない空の状態になり、バンク信号ＢＫａ０の出力を停止する。これにより、コマンド保持部１１０は、バンクＢＫｂ１、ＢＫｃ０を出力する。
【００６４】
アクセス要求ＡＲＥＱｃに含まれるアドレスにより選択されるワード線が、アクセス要求ＡＲＥＱａにより選択されるワード線と同じ場合、コマンド送信部１３０は、ビジー信号ＢＳＹ０の出力中にアクセス要求ＡＲＥＱｃを出力可能である。この場合、コマンド送信部１３０は、次の許可通知ＰＥＲＡを受けて、アクセスコマンドＡＣＭＤ（ＡＲＥＱｃ）および要求通知ＲＥＱＡを出力する。メモリインタフェース部４００は、バンクＢＡＮＫ０に対するプリチャージコマンドを出力することなく、読み出しコマンドまたは書き込みコマンドをメモリモジュールＤＩＭＭに出力する。これにより、アクティブ状態のバンクＢＡＮＫ０をインアクティブ状態にすることなく、アクセス要求ＡＲＥＱｃを連続してメモリモジュールＤＩＭＭに供給でき、アクセス効率を向上できる。
【００６５】
一方、アクセス要求ＡＲＥＱｃに含まれるアドレスにより選択されるワード線が、アクセス要求ＡＲＥＱａにより選択されるワード線と異なる場合、コマンド送信部１３０は、次のように動作する。すなわち、ビジー検出部１２０がビジー信号ＢＳＹ１の出力の停止を受け、レディ信号ＲＤＹｂを出力する場合、コマンド送信部１３０は、レディ信号ＲＤＹｂに応じて、アクセスコマンドＡＣＭＤ（ＡＲＥＱｂ）および要求通知ＰＥＲＡを出力する。ビジー検出部１２０がビジー信号ＢＳＹ０の出力の停止を受け、レディ信号ＲＤＹｃを出力する場合、コマンド送信部１３０は、レディ信号ＲＤＹｃに応じて、アクセスコマンドＡＣＭＤ（ＡＲＥＱｃ）および要求通知ＰＥＲＡを出力する。
【００６６】
図５は、図２に示した診断制御部２００の例を示している。診断制御部２００は、診断コマンド生成部２１０、退避コマンド生成部２２０およびコマンド送信部２３０を有する。
【００６７】
診断コマンド生成部２１０は、診断コマンドＤＣＭＤ０をコマンド送信部２３０に出力し、通知ＮＴＣＤをメモリインタフェース部４００に出力し、診断コマンドＤＣＭＤの実行結果ＲＳＬＴＤをメモリインタフェース部４００から受ける。また、診断コマンド生成部２１０は、エラー訂正可能なエラーＣＥが同じアドレスで連続して２回検出されたことを、実行結果ＲＳＬＴＤにより認識した場合、データの退避の開始要求ＣＲＥＱを退避コマンド生成部２２０に出力する。
【００６８】
診断コマンドＤＣＭＤ０は、運用系メモリブロックのエラーを診断する読み出しコマンドＲＤＤを含む。通知ＮＴＣＤは、読み出しコマンドＲＤＤが生成される診断期間の開始の通知および退避系メモリブロックのリフレッシュ動作の開始要求の通知を含む。診断期間の例は、図１０に示す。実行結果ＲＳＬＴＤは、読み出しコマンドＲＤＤに対応する読み出しデータのエラーの有無とエラーの種類およびリフレッシュ動作の開始通知を含む。診断コマンド生成部２１０は、運用系メモリブロックにアクセスする診断コマンドＤＣＭＤを生成する第２コマンド生成部の一例である。
【００６９】
退避コマンド生成部２２０は、退避コマンドＣＣＭＤ０をコマンド送信部２３０に出力し、通知ＮＴＣＣをメモリインタフェース部４００に出力し、退避コマンドＣＣＭＤの実行結果ＲＳＬＴＣをメモリインタフェース部４００から受ける。退避コマンドＣＣＭＤ０は、退避系メモリブロックに初期値を書き込む書き込みコマンドＷＲＣ、退避系メモリブロックのエラーを診断する読み出しコマンドＲＤＣおよびリードモディファイライトコマンドＲＭＷＣを含む。リードモディファイライトコマンドＲＭＷＣは、運用系メモリブロックから退避系メモリブロックへのデータの退避に使用される。
【００７０】
通知ＮＴＣＣは、書き込みコマンドＷＲＣおよび読み出しコマンドＲＤＣが生成される退避準備期間の開始の通知、およびリードモディファイライトコマンドＲＭＷＣが生成される退避期間の開始の通知を含む。退避準備期間および退避期間の例は、図１０に示す。実行結果ＲＳＬＴＣは、読み出しコマンドＲＤＣおよびリードモディファイライトコマンドＲＭＷＣによりメモリモジュールＤＩＭＭから読み出されるデータのエラーの有無とエラーの種類、および書き込みコマンドＷＲＣに対応する書き込み動作の完了とを含む。
【００７１】
退避コマンド生成部２２０は、運用系メモリブロックの所定回数のエラーの検出に基づいて、運用系メモリブロックに保持されたデータを退避系メモリブロックに退避するリードモディファイライトコマンドＲＭＷＣを生成する第３コマンド生成部の一例である。また、退避コマンド生成部２２０は、退避系メモリブロックへのデータの退避が開始される前に、退避系メモリブロックに所定データを書き込む書き込みコマンドＷＲＣを生成する第４コマンド生成部の一例である。さらに、退避コマンド生成部２２０は、退避系メモリブロックへの所定データの書き込み後、退避系メモリブロックへのデータの退避が開始される前に、退避系メモリブロックのエラーを検出する読み出しコマンドＲＤＣを生成する第５コマンド生成部の一例である。
【００７２】
コマンド送信部２３０は、許可通知ＰＥＲＤを受ける期間に、診断コマンドＤＣＭＤ０を診断コマンドＤＣＭＤ（読み出しコマンドＲＤＤ）として要求通知ＲＥＱＤとともにコマンド調停部３００に出力する。あるいは、コマンド送信部２３０は、許可通知ＰＥＲＤを受ける期間に、退避コマンドＣＣＭＤ０を退避コマンドＣＣＭＤ（書き込みコマンドＷＲＣまたは読み出しコマンドＲＤＣ）として要求通知ＲＥＱＤとともにコマンド調停部３００に出力する。なお、コマンド送信部２３０は、リードモディファイライトコマンドＲＭＷＣを受けた場合、読み出しコマンドＲＤおよび書き込みコマンドＷＲを要求通知ＲＥＱＤとともにコマンド調停部３００に順次に出力する。
【００７３】
診断コマンドＤＣＭＤは、退避コマンドＣＣＭＤの供給期間に生成されず、退避コマンドＣＣＭＤは、診断コマンドＤＣＭＤの供給期間に生成されない。このため、コマンド送信部２３０は、診断コマンドＤＣＭＤと退避コマンドＣＣＭＤとの優先順を判断する回路を持たない。
【００７４】
図６は、図２に示したコマンド調停部３００の例を示している。コマンド調停部３００は、コマンド選択部３１０およびコマンド調整部３２０を有する。コマンド選択部３１０は、イネーブル信号ＥＮＡを受ける期間に、アクセスコマンドＡＣＭＤをアクセスコマンドＩＣＭＤおよびアドレスＩＡＤとしてメモリインタフェース部４００に出力する。コマンド選択部３１０は、イネーブル信号ＥＮＤを受ける期間に、診断コマンドＤＣＭＤまたは退避コマンドＣＣＭＤをアクセスコマンドＩＣＭＤおよびアドレスＩＡＤとしてメモリインタフェース部４００に出力する。
【００７５】
コマンド調整部３２０は、所定比率を示す値がメモリ制御装置ＭＣＮＴの外部から書き換え可能に設定されるレジスタＲＲＥＱを有する。レジスタＲＲＥＱは、設定部の一例である。例えば、レジスタＲＲＥＱは、情報処理装置の初期化シーケンスにおいて、コントローラＣＮＴＬによって設定される。コマンド調整部３２０は、レジスタＲＲＥＧに設定された比率にしたがって、許可通知ＰＥＲＡ、ＰＥＲＤを出力する。
【００７６】
例えば、レジスタＲＲＥＧに”２”が設定された場合、コマンド調整部３２０は、許可通知ＰＥＲＡを２回出力する毎に、許可通知ＰＥＲＤを１回出力する。これにより、アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤのメモリインタフェース部４００への出力回数の比率は、２：１になる。また、アクセスコマンドＡＣＭＤおよび退避コマンドＤＣＭＤのメモリインタフェース部４００への出力回数の比率は、２：１になる。
【００７７】
例えば、レジスタＲＲＥＧに”３”が設定された場合、コマンド調整部３２０は、許可通知ＰＥＲＡを３回出力する毎に、許可通知ＰＥＲＤを１回出力する。これにより、アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤのメモリインタフェース部４００への出力回数の比率は、３：１になる。また、アクセスコマンドＡＣＭＤおよび退避コマンドＤＣＭＤのメモリインタフェース部４００への出力回数の比率は、３：１になる。
【００７８】
なお、コマンド調整部３２０は、許可通知ＰＥＲＡ用のレジスタＲＲＥＧと許可通知ＰＥＲＤ用のレジスタＲＲＥＧとを有していてもよい。この場合、許可通知ＰＥＲＡの出力回数と許可通知ＰＥＲＤの出力回数との比率を任意に設定可能である。レジスタＲＲＥＧにより、アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤの出力回数の比率と、アクセスコマンドＡＣＭＤおよび退避コマンドＣＣＭＤの出力回数の比率を、情報処理装置の仕様やメモリ装置ＭＥＭのアクセス速度に合わせて設定できる。すなわち、情報処理装置の性能の低下と退避期間の長さとのバランスを最適に設定できる。
【００７９】
コマンド調整部３２０は、許可通知ＰＥＲＡを出力中に要求通知ＲＥＱＡを受けた場合に、イネーブル信号ＥＮＡを出力し、許可通知ＰＥＲＤを出力中に要求通知ＲＥＱＤを受けた場合に、イネーブル信号ＥＮＤを出力する。但し、コマンド調整部３２０は、メモリインタフェース部４００からビジー信号ＢＳＹを受ける間、許可通知ＰＥＲＡ、ＰＥＲＤの出力を禁止する。例えば、ビジー信号ＢＳＹは、メモリインタフェース部４００からメモリモジュールＤＩＭＭにリフレッシュ要求が発行される場合、あるいは、バンクＢＡＮＫ内のアクセスするワード線をアクティブ状態に設定する場合に生成される。
【００８０】
図７は、図２に示したコマンド制御部１００、診断制御部２００およびコマンド調停部３００により実行される退避期間の動作の例を示している。この例では、アクセスコマンドＡＣＭＤと診断コマンドＤＣＭＤの実行比率は、２：１に設定される。このため、コマンド調停部３００は、２回の許可通知ＰＥＲＡのハイレベルの出力と、１回の許可通知ＰＥＲＤのハイレベルの出力とを繰り返す。図７は、図１０に示す診断期間の動作の例を示しているが、図１０の退避準備期間および退避期間の動作は、診断コマンドＤＣＭＤを退避コマンドＣＣＭＤに置き換えることで示される。
【００８１】
例えば、コマンド送信部１３０は、クロックＣＬＫの立ち下がりエッジに同期してコマンドＡＣＭＤおよびハイレベルの要求通知ＲＥＱＡを出力する（図７（ａ））。同様に、コマンド送信部２３０は、クロックＣＬＫの立ち下がりエッジに同期してコマンドＤＣＭＤおよびハイレベルの要求通知ＲＥＱＤを出力する（図７（ｂ））。
【００８２】
この例では、０番目のクロックＣＬＫの立ち上がりエッジより前に、許可通知ＰＥＲＡおよびイネーブル信号ＥＮＡは、ハイレベルに設定されており、許可通知ＰＥＲＤおよびイネーブル信号ＥＮＤは、ロウレベルに設定される（図７（ｃ、ｄ））。そして、コマンド調停部３００は、ハイレベルのイネーブル信号ＥＮＡに基づいて、１番目のクロックＣＬＫの立ち上がりエッジに同期してアクセスコマンドＡＣＭＤ（ＡＣＭＤ１）を選択し、アクセスコマンドＩＣＭＤとして出力する（図７（ｅ））。
【００８３】
コマンド調停部３００は、アクセスコマンドＡＣＭＤの受け付け後にハイレベルの許可通知ＰＥＲＡの出力を停止する（図７（ｆ））。コマンド送信部１３０は、許可通知ＰＥＲＡのロウレベルを受け、ハイレベルの要求通知ＲＥＱＡの出力を停止し、１番目のクロックＣＬＫの立ち下がりエッジに同期して、次のアクセスコマンドＡＣＭＤ（ＡＣＭＤ２）および要求通知ＲＥＱＡを出力する（図７（ｇ））。
【００８４】
コマンド調停部３００は、１番目のクロックＣＬＫの立ち下がりエッジに同期して、許可通知ＰＥＲＡを再度出力する（図７（ｈ））。２番目のクロックＣＬＫの立ち上がりエッジおいて、イネーブル信号ＥＮＡはハイレベルに維持される。このため、コマンド調停部３００は、２番目のクロックＣＬＫの立ち上がりエッジに同期してアクセスコマンドＡＣＭＤ（ＡＣＭＤ２）を選択し、アクセスコマンドＩＣＭＤとして出力する（図７（ｉ））。
【００８５】
コマンド調停部３００は、アクセスコマンドＡＣＭＤの受け付け後に許可通知ＰＥＲＡの出力を停止する（図７（ｊ））。コマンド送信部１３０は、許可通知ＰＥＲＡのロウレベルを受け、要求通知ＲＥＱＡの出力を停止し、２番目のクロックＣＬＫの立ち下がりエッジに同期して、次のアクセスコマンドＡＣＭＤ（ＡＣＭＤ３）および要求通知ＲＥＱＡを出力する（図７（ｋ））。
【００８６】
コマンド調停部３００は、２番目のクロックＣＬＫの立ち下がりエッジに同期して、ハイレベルのイネーブル信号ＥＮＡの出力を停止し、ハイレベルのイネーブル信号ＥＮＤを出力し、許可通知ＰＥＲＤを出力する（図７（ｌ））。そして、コマンド調停部３００は、３番目のクロックＣＬＫの立ち上がりエッジに同期して診断コマンドＤＣＭＤ（ＤＣＭＤ１）を選択し、アクセスコマンドＩＣＭＤとして出力する（図７（ｍ））。
【００８７】
コマンド調停部３００は、診断コマンドＤＣＭＤの受け付け後にハイレベルの許可通知ＰＥＲＤの出力を停止する（図７（ｎ））。コマンド送信部２３０は、許可通知ＰＥＲＤのロウレベルを受け、要求通知ＲＥＱＤの出力を停止し、３番目のクロックＣＬＫの立ち下がりエッジに同期して、次の診断コマンドＤＣＭＤ（ＤＣＭＤ２）および要求通知ＲＥＱＤを出力する（図７（ｏ））。
【００８８】
コマンド調停部３００は、３番目のクロックＣＬＫの立ち下がりエッジに同期して、イネーブル信号ＥＮＢの出力を停止し、イネーブル信号ＥＮＡを出力し、許可通知ＰＥＲＡを出力する（図７（ｐ、ｑ））。そして、コマンド調停部３００は、４番目のクロックＣＬＫの立ち上がりエッジに同期してアクセスコマンドＡＣＭＤ（ＡＣＭＤ３）を選択し、アクセスコマンドＩＣＭＤとして出力する（図７（ｒ））。
【００８９】
コマンド調停部３００は、アクセスコマンドＡＣＭＤの受け付け後に許可通知ＰＥＲＡの出力を停止する（図７（ｓ））。コマンド送信部１３０は、許可通知ＰＥＲＡのロウレベルを受け、要求通知ＲＥＱＡの出力を停止し、４番目のクロックＣＬＫの立ち下がりエッジに同期して、次のアクセスコマンドＡＣＭＤ（ＡＣＭＤ４）および要求通知ＲＥＱＡを出力する（図７（ｔ））。
【００９０】
コマンド調停部３００は４番目のクロックサイクルにおいて、ビジー信号ＢＳＹをメモリインタフェース部４００から受ける（図７（ｕ））。例えば、ビジー信号ＢＳＹは、アクティブコマンドやプリチャージコマンドのメモリモジュールＤＩＭＭへの供給に伴い、アクセスコマンドＩＣＭＤを受けられない場合に、メモリインタフェース部４００からコマンド調停部３００に出力される。
【００９１】
コマンド調停部３００は、ビジー信号ＢＳＹに応じて、イネーブル信号ＥＮＡの出力を停止し、４番目のクロックサイクルでは、許可通知ＰＥＲＡを出力しない（図７（ｖ、ｗ））。これにより、５番目のクロックＣＬＫの立ち上がりエッジでは、アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤのいずれも選択されない。そして、コマンド調停部３００は、ＮＯＰ（No Operation）コマンドをアクセスコマンドＩＣＭＤとしてメモリインタフェース部４００に出力する（図７（ｘ））。
【００９２】
コマンド調停部３００は、５番目のクロックサイクルにおいて、ロウレベルのビジー信号ＢＳＹを受け、５番目のクロックＣＬＫの立ち下がりエッジに同期して、イネーブル信号ＥＮＡを出力し、許可通知ＰＥＲＡを出力する（図７（ｙ、ｚ））。そして、コマンド調停部３００は、６番目のクロックＣＬＫの立ち上がりエッジに同期してアクセスコマンドＡＣＭＤ（ＡＣＭＤ４）を選択し、アクセスコマンドＩＣＭＤとして出力する（図７（ｚ１））。
【００９３】
この後、上述と同様に、イネーブル信号ＥＮＤ、ＥＮＡのハイレベルパルスが１：２の比率で交互に出力され、許可通知ＰＥＲＤ、ＰＥＲＡのハイレベルパルスが１：２の比率で出力される。そして、コマンド調停部３００は、診断コマンドＤＣＭＤとアクセスコマンドＡＣＭＤとを、１：２の比率でメモリインタフェース部４００に出力する。
【００９４】
図８は、図２に示したメモリインタフェース部４００の例を示している。メモリインタフェース部４００は、コマンド処理部４１０、アクセス処理部４２０およびデータ処理部４３０を有する。コマンド処理部４１０、アクセス処理部４２０および図６に示したコマンド調停部３００は、アクセス制御部の一例である。
【００９５】
コマンド処理部４１０は、コマンド調整部３００からのアクセスコマンドＩＣＭＤ（ＡＣＭＤ、ＤＣＭＤ、ＣＣＭＤ）に基づいて、メモリモジュールＤＩＭＭに出力するアクセスコマンドＣＭＤを生成する。例えば、アクセスコマンドＣＭＤは、アクティブコマンドＡＣＴ、読み出しコマンドＲＤ、書き込みコマンドＷＲ、リフレッシュコマンドＲＥＦ、プリチャージコマンドＰＲＥを含む。また、コマンド処理部４１０は、アクセスコマンドＣＭＤに基づいて、アクティブ中のバンクＢＡＮＫを示すビジー信号ＢＳＹ０−ＢＳＹ３を図４に示したビジー検出部１２０に出力する。
【００９６】
アクセス処理部４２０は、アドレスＩＡＤをバンクアドレスＢＡＤおよびアドレスＡＤとしてメモリモジュールＤＩＭＭに出力する。また、アクセス処理部４２０は、通知ＮＴＣＣ、ＮＴＣＤに応じて、ランクＲＡＮＫ０またはランクＲＡＮＫ１を示すランクアドレスＲＡＤを出力する。例えば、アクセス処理部４２０は、通知ＮＴＣＣ、ＮＴＣＤを受けていない場合、ランクＲＡＮＫ０を示すランクアドレスＲＡＤを出力する。このように、ランクＲＡＮＫ０、ＲＡＮＫ１のいずれかにアクセスするかは、アクセス処理部４２０により判断される。
【００９７】
アクセス処理部４２０は、退避系メモリブロックに対する書き込みコマンドＷＲＣおよび読み出しコマンドＲＤＣを示す通知ＮＴＣＣを受ける場合、書き込みコマンドＷＲＣおよび読み出しコマンドＲＤＣに応答して、ランクＲＡＮＫ１を示すランクアドレスＲＡＤを出力する。アクセス処理部４２０は、リードモディファイライトコマンドＲＭＷＣを示す通知ＮＴＣＣを受ける場合、リードモディファイライトコマンドＲＭＷＣの読み出しコマンドＲＤに応答して、ランクＲＡＮＫ０を示すランクアドレスＲＡＤを出力する。アクセス処理部４２０は、リードモディファイライトコマンドＲＭＷＣを示す通知ＮＴＣＣを受ける場合、リードモディファイライトコマンドＲＭＷＣのライトコマンドＷＲに応答して、ランクＲＡＮＫ１を示すランクアドレスＲＡＤを出力する。
【００９８】
さらに、アクセス処理部４２０は、アクセスコマンドＡＣＭＤに基づいて運用系メモリブロックが動作する診断期間に、クロックイネーブル信号ＣＫＥ１をロウレベルに設定し、ランクＲＡＮＫ１のリフレッシュ動作を禁止する。リフレッシュ動作の禁止により、ランクＲＡＮＫ１の状態は、低電力モードになる。
【００９９】
アクセス処理部４２０は、退避系メモリブロックのリフレッシュ動作の開始要求を示す通知ＮＴＣＣを受けた場合に、クロックイネーブル信号ＣＫＥ１をハイレベルに設定し、リフレッシュ動作の開始通知を示す実行結果ＲＳＬＴＤを出力する。メモリモジュールＤＩＭＭは、ハイレベルのクロックイネーブル信号ＣＫＥ１に基づいてランクＲＡＮＫ１のリフレッシュ動作を開始する。クロックイネーブル信号ＣＫＥ０、ＣＫＥ１は、ランクＲＡＮＫ０、ＲＡＮＫ１にそれぞれ供給され、ランクＲＡＮＫ０、ＲＡＮＫ１の消費電力を制御する。
【０１００】
また、アクセス処理部４２０は、バンクアドレスＢＡＤおよびアドレスＡＤを保持するレジスタ等の保持回路ＡＨＬＤを有する。保持回路ＡＨＬＤは、退避期間において、ランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避が完了したバンクアドレスＢＡＤおよびアドレスＡＤを保持する。
【０１０１】
そして、退避期間において、アクセスコマンドＡＣＭＤとともに供給されるアドレス値が保持回路ＡＨＬＤに保持されたアドレス値以下の場合、アクセス処理部４２０は、ランクＲＡＮＫ１を示すランクアドレスＲＡＤを出力する。これにより、アクセスコマンドＡＣＭＤに基づいて、ランクＲＡＮＫ１の読み出し動作または書き込み動作が実行される。このように、アクセスコマンドＡＣＭＤとともに供給されるアドレスの値が、データの退避が完了した記憶領域を示す場合に、ランクＲＡＮＫ１がアクセスされる。なお、図１３で説明するように、退避期間におけるランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避は、例えば、値の小さいアドレスから順に実行される。
【０１０２】
データ処理部４３０は、エラー検出訂正回路ＥＤＣＣおよび期待値の保持回路ＥＨＬＤを有する。エラー検出訂正回路ＥＤＣＣは、検出部の一例である。エラー検出訂正回路ＥＤＣＣは、書き込み動作において、図２に示したデータバッファ５００から受ける書き込みデータＤＴを用いてエラー訂正コードＥＣＣを生成する。データ処理部４３０は、書き込み動作において、書き込みデータＤＴを書き込みデータＤＴＭとしてエラー訂正コードＥＣＣとともにメモリモジュールＤＩＭＭに出力する。
【０１０３】
エラー検出訂正回路ＥＤＣＣは、アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤによる読み出し動作において、メモリモジュールＤＩＭＭからの読み出しデータＤＴＭおよびエラー検出コードＥＣＣを用いて、読み出しデータＤＴＭのエラーを検出する。エラー検出訂正回路ＥＤＣＣは、読み出しデータＤＴＭに訂正可能なエラーがある場合、エラーを訂正してメモリモジュールＤＩＭＭに書き込む。例えば、訂正可能なエラーは、１ビットエラーであり、検出可能で訂正不可能なエラーは、２ビットエラーである。
【０１０４】
また、エラー検出訂正回路ＥＤＣＣは、診断コマンドＤＣＭＤおよび退避期間に供給されるリードモディファイライトコマンドＲＭＷＣによる読み出し動作において、読み出しデータのエラーの有無を示すエラー情報を、実行結果ＲＳＬＴＤとして出力する。エラー情報は、エラーなし（ＯＫ）、訂正可能なエラー（ＣＥ；Correctable Error）、訂正不可能なエラー（ＵＣＥ；Un-Correctable Error）のいずれかである。
【０１０５】
保持回路ＥＨＬＤは、退避準備期間において、最初の書き込みコマンドＷＲＣとともに供給される書き込みデータを期待値として保持する。保持回路ＥＨＬＤに保持されたデータは、退避準備期間のその後の書き込みコマンドＷＲＣに伴う書き込みデータとして使用される。また、保持回路ＥＨＬＤに保持されたデータは、退避準備期間に供給される読み出しコマンドＲＤＣに基づいてランクＲＡＮＫ１から読み出されるデータの期待値として使用される。
【０１０６】
図９は、図２に示したメモリ制御装置ＭＣＮＴのコマンドの流れの例を示している。コマンド保持部１１０は、例えば、読み出しコマンドＲＤ、書き込みコマンドＷＲおよびリードモディファイライトコマンドＲＭＷを、コントローラＣＮＴＬからのアクセス要求ＡＲＥＱとして保持する。コマンド保持部１１０は、保持したアクセス要求ＡＲＥＱを順にコマンド送信部１３０に出力する。
【０１０７】
コマンド送信部１３０は、コマンド保持部１１０から供給されるアクセス要求ＡＲＥＱをアクセスコマンドＡＣＭＤとして、許可通知ＰＥＲＡを受ける期間に、要求通知ＲＥＱＡとともにコマンド調停部３００に出力する。例えば、コマンド送信部１３０は、リードモディファイライトコマンドＲＭＷを、読み出しコマンドＲＤ（ＲＭＷ）と書き込みコマンドＷＲ（ＲＭＷ）とに分け、分けたコマンドを１つずつ出力する。
【０１０８】
診断コマンド生成部２１０は、例えば、診断用の読み出しコマンドＲＤＤおよびリードモディファイライトコマンドＲＭＷＤを診断コマンドＤＣＭＤ０としてコマンド送信部２３０に出力する。退避コマンド生成部２２０は、例えば、退避用の書き込みコマンドＷＲＣ、読み出しコマンドＲＤＣおよびリードモディファイライトコマンドＲＭＷＣを退避コマンドＣＣＭＤ０としてコマンド送信部２３０に出力する。
【０１０９】
コマンド送信部２３０は、コマンド送信部１３０と同様に、診断コマンドＤＣＭＤ０を診断コマンドＤＣＭＤとして、許可通知ＰＥＲＤを受ける期間に、要求通知ＲＥＱＤとともにコマンド調停部３００に出力する。同様に、コマンド送信部２３０は、退避コマンドＣＣＭＤ０を退避コマンドＣＣＭＤとして、許可通知ＰＥＲＤを受ける期間に、要求通知ＲＥＱＤとともにコマンド調停部３００に出力する。
【０１１０】
コマンド送信部２３０は、リードモディファイライトコマンドＲＭＷＤを、読み出しコマンドＲＤ（ＲＭＷＤ）と書き込みコマンドＷＲ（ＲＭＷＤ）とに分け、分けたコマンドを１つずつ出力する。また、コマンド送信部２３０は、リードモディファイライトコマンドＲＭＷＣを、読み出しコマンドＲＤ（ＲＭＷＣ）と書き込みコマンドＷＲ（ＲＭＷＣ）とに分け、分けたコマンドを１つずつ出力する。
【０１１１】
なお、診断コマンドＤＣＭＤに含まれる読み出しコマンドＲＤＤと、退避コマンドＣＣＭＤに含まれる読み出しコマンドＲＤＣとは、互いに同じコードで表される。診断コマンドＤＣＭＤに含まれるリードモディファイライトコマンドＲＭＷＤと、退避コマンドＣＣＭＤに含まれるリードモディファイライトコマンドＲＭＷＣとは、互いに同じコードで表される。図１０に示すように、診断コマンドＤＣＭＤと退避コマンドＣＣＭＤとは、互いに異なる期間に生成される。このため、メモリインタフェース部４００は、同じコードの診断コマンドＤＣＭＤと退避コマンドＣＣＭＤを、通知ＮＴＣＤ、ＮＴＣＣにより識別可能である。
【０１１２】
コマンド調停部３００は、アクセスコマンドＡＣＭＤと診断コマンドＤＣＭＤとの優先順、およびアクセスコマンドＡＣＭＤと退避コマンドＣＣＭＤとの優先順を、所定比率に基づいてそれぞれ判定する。コマンド調停部３００は、判定した順にアクセスコマンドＩＣＭＤをメモリインタフェース部４００に出力する。
【０１１３】
メモリインタフェース部４００は、アクセスコマンドＩＣＭＤに応じて、アクセスコマンドＣＭＤと、ランクＲＡＮＫ０またはＲＡＮＫ１を選択するランクアドレスＲＡＤと、バンクアドレスＢＡＤ、アドレスＡＤを生成し、メモリモジュールＤＩＭＭに出力する。例えば、ＤＲＡＭチップを含むメモリモジュールＤＩＭＭでは、アクセスコマンドＣＭＤは、ロウアドレスストローブ信号／ＲＡＳ、コラムアドレスストローブ信号／ＣＡＳおよびライトイネーブル信号／ＷＥとしてメモリモジュールＤＩＭＭに供給される。
【０１１４】
また、メモリインタフェース部４００は、メモリモジュールＤＩＭＭを低電力モードに設定するためのクロックイネーブル信号ＣＫＥ０、ＣＫＥ１を出力する。クロックイネーブル信号ＣＫＥ０、ＣＫＥ１は、ランクＲＡＮＫ０、ＲＡＮＫ１をそれぞれ動作させるクロック信号ＣＬＫ０、ＣＬＫ１のランクＲＡＮＫ０、ＲＡＮＫ１内への供給を許可する信号である。クロックイネーブル信号ＣＫＥ０およびクロック信号ＣＬＫ０は、ランクＲＡＮＫ０に供給され、クロックイネーブル信号ＣＫＥ１およびクロック信号ＣＬＫ１は、ランクＲＡＮＫ１に供給される。
【０１１５】
例えば、クロックイネーブル信号ＣＫＥ０がロウレベルに設定されることで、ランクＲＡＮＫ０の内部回路の動作が停止し、クロックイネーブル信号ＣＫＥ１がロウレベルに設定されることで、ランクＲＡＮＫ１の内部回路の動作が停止する。例えば、ＤＲＡＭチップを含むメモリモジュールＤＩＭＭでは、内部回路の動作の停止は、メモリセルに保持したデータを再書き込みするリフレッシュ動作の停止を含む。ランクＲＡＮＫ０またはＲＡＮＫ１の内部回路の動作の停止により、メモリモジュールＤＩＭＭの消費電力は低くなる。
【０１１６】
ランクＲＡＮＫ０にアクセスするアクセスコマンドＣＭＤとして、ＲＤ、ＷＲ、ＲＤ（ＲＭＷ）、ＷＲ（ＲＭＷ）、ＲＤＤ、ＲＤ（ＲＭＷＣ）がある。ランクＲＡＮＫ１にアクセスするアクセスコマンドＣＭＤとして、ＷＲＣ、ＲＤＣ、ＲＤ（ＲＭＷＤ）、ＷＲ（ＲＭＷＤ）、ＷＲ（ＲＭＷＣ）がある。アクセスコマンドＣＭＤと、アクセスされるランクＲＡＮＫ０、ＲＡＮＫ１との関係は、図１０でも説明する。
【０１１７】
メモリインタフェース部４００は、読み出しコマンドＲＤＤ、ＲＤ（ＲＭＷＤ）により読み出されたデータのエラーの有無を示す実行結果ＲＳＬＴＤを診断コマンド生成部２１０に出力する。メモリインタフェース部４００は、読み出しコマンドＲＤＣ、ＲＤ（ＲＭＷＣ）により読み出されたデータのエラーの有無を示す実行結果ＲＳＬＴＣを退避コマンド生成部２２０に出力する。
【０１１８】
読み出しコマンドＲＤＤ、ＲＤ（ＲＭＷＤ）、ＲＤ（ＲＭＷＣ）により読み出されるデータのエラーチェックは、エラー検出訂正回路ＥＤＣＣにより実行される。読み出しコマンドＲＤＣにより読み出されるデータのエラーチェックは、エラー検出訂正回路ＥＤＣＣを動作させず、保持回路ＥＨＬＤに保持された期待値を比較することで実行される。後述するように、読み出しコマンドＲＤＣにより読み出されるデータの期待値は、書き込みコマンドＷＲＣによりランクＲＡＮＫ１に書き込まれるデータである。エラー検出訂正回路ＥＤＣＣの動作を、読み出しコマンドＲＤＣによるデータの読み出し時に停止させることで、エラー検出動作に必要な時間を短くできる。
【０１１９】
図１０は、図２に示した情報処理装置の動作の概要を示している。図１０において、各ランクＲＡＮＫ０、ＲＡＮＫ１の網掛けの領域は、アクセス可能な期間を示している。各ランクＲＡＮＫ０、ＲＡＮＫ１の網掛けを除く領域は、低電力モード中であることを示している。例えば、情報処理装置の動作は、診断期間、退避準備期間、退避期間に分けられる。
【０１２０】
各ランクＲＡＮＫ０、ＲＡＮＫ１の脇に示した右向きの矢印は、コマンド制御部１００から出力されるアクセスコマンドＡＣＭＤを示し、左向きの矢印は、診断制御部２００から出力される診断コマンドＤＣＭＤおよび退避コマンドＣＣＭＤを示している。
【０１２１】
診断期間は、運用系メモリブロックであるランクＲＡＮＫ０、ＲＡＮＫ１において、アクセスコマンドＡＣＭＤによるアクセス動作と、診断コマンドＤＣＭＤ（ＲＤＤ）による診断とが、所定の比率（この例では、２：１）で実行される期間である。すなわち、診断コマンドＤＣＭＤは、アクセスコマンドＡＣＭＤの合間に生成される。これにより、メモリ制御装置ＭＣＮＴは、診断期間をコントローラＣＮＴＬに認識されることなく、ランクＲＡＮＫ０のエラーをチェックできる。ランクＲＡＮＫ１は、ランクＲＡＮＫ０のデータがランクＲＡＮＫ１に退避された後、新たな運用系メモリブロックとして動作する。診断期間の動作の例は、図１１および図１４に示す。
【０１２２】
退避準備期間は、診断期間において、ランクＲＡＮＫ０に訂正可能なエラーが同じアドレスで連続して発生した場合に開始される。診断期間から退避準備期間に移行される場合、退避系メモリブロックであるランクＲＡＮＫ１のリフレッシュ動作が開始され、ランクＲＡＮＫ１は、データを保持可能になる。退避準備期間は、ランクＲＡＮＫ０のデータをランクＲＡＮＫ１に退避する退避期間の前に、ランクＲＡＮＫ１を初期化し、ランクＲＡＮＫ１が正常に動作することを確認する期間である。退避準備期間により退避用メモリブロックであるランクＲＡＮＫ１の動作を確認することで、退避期間にランクＲＡＮＫ１に退避されるデータの信頼性を向上できる。
【０１２３】
ランクＲＡＮＫ１は、クロックイネーブル信号ＣＫＥ１によりランクＲＡＮＫ１のリフレッシュ動作を開始した後、退避コマンドＣＣＭＤである書き込みコマンドＷＲＣにより固定値をメモリセルに書き込むことで初期化される。ランクＲＡＮＫ１の動作の確認は、退避コマンドＣＣＭＤである読み出しコマンドＲＤＣを用いて、メモリセルから読み出されるデータを固定値（期待値）と比較することで実行される。
【０１２４】
アクセスコマンドＡＣＭＤは、退避準備期間においてもランクＲＡＮＫ０に供給される。換言すれば、書き込みコマンドＷＲＣおよび読み出しコマンドＲＤＣは、アクセスコマンドＡＣＭＤの合間に生成される。これにより、メモリ制御装置ＭＣＮＴは、退避準備期間をコントローラＣＮＴＬに認識されることなく、ランクＲＡＮＫ１に初期値を書き込み、ランクＲＡＮＫ１が正常に動作することを確認できる。
【０１２５】
退避準備期間におけるアクセスコマンドＡＣＭＤと退避コマンドＣＣＭＤとの比率は、診断期間と同様の比率（この例では、２：１）である。退避準備期間の動作の例は、図１２および図１５に示す。
【０１２６】
なお、退避準備期間にエラーの判定に使用する”同じアドレス”とは、ロウアドレスでもよく、ロウアドレスおよびコラムアドレスの両方でもよい。ロウアドレスは、メモリセルに接続されるワード線を示すアドレスであり、コラムアドレスは、ワード線に接続されるメモリセルのうちの所定数を選択するアドレスである。ＤＲＡＭチップを含むメモリモジュールＤＩＭＭでは、ロウアドレスおよびコラムアドレスは、ロウアドレスストローブ信号／ＲＡＳおよびコラムアドレスストローブ信号／ＣＡＳにそれぞれ同期してメモリモジュールＤＩＭＭに供給される。
【０１２７】
退避期間は、退避系メモリブロックであるランクＲＡＮＫ１の初期化と動作確認とが完了した後、ランクＲＡＮＫ０のデータをランクＲＡＮＫ１に退避する期間である。ランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避は、専用のリードモディファイライトコマンドＲＭＷＣを用いて実行される。これにより、退避コマンド生成部２２０は、リードコマンドＲＤおよびライトコマンドＷＲをコマンド送信部２３０に個別に出力する代わりに、リードモディファイライトコマンドＲＭＷＣを使用でき、コマンドの生成効率を向上できる。
【０１２８】
メモリインタフェース部４００は、リードモディファイライトコマンドＲＭＷＣの読み出しコマンドＲＤ（ＲＭＷＣ）をランクＲＡＮＫ０に供給し、ランクＲＡＮＫ０からデータを読み出す。次に、メモリインタフェース部４００は、ランクＲＡＮＫ０から読み出したデータをエラー訂正し、訂正したデータを、リードモディファイライトコマンドＲＭＷＣの書き込みコマンドＷＲ（ＲＭＷＣ）とともにランクＲＡＮＫ１に供給する。そして、ランクＲＡＮＫ０から読み出されたデータがランクＲＡＮＫ１の同じアドレスの記憶領域に書き込まれる。
【０１２９】
アクセスコマンドＡＣＭＤは、退避期間においてもランクＲＡＮＫ０に供給される。退避準備期間におけるアクセスコマンドＡＣＭＤと退避コマンドＣＣＭＤとの比率は、診断期間および退避準備期間と同様の比率（この例では、２：１）である。退避期間の動作の例は、図１３および図１６に示す。
【０１３０】
退避期間では、ランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避は、アドレスを順次に更新して実行される。メモリインタフェース部４００は、退避が完了したアドレスを保持するレジスタ等の保持回路ＡＨＬＤを有する。そして、メモリインタフェース部４００は、アクセスコマンドＡＣＭＤ（書き込みコマンド）とともに受けるアドレスが、データが退避されていない記憶領域を示す場合、データをランクＲＡＮＫ０に書き込む。メモリインタフェース部４００は、アクセスコマンドＡＣＭＤ（書き込みコマンド）とともに受けるアドレスが、データが退避された記憶領域を示す場合、データをランクＲＡＮＫ１に書き込む。図１０に示した退避期間において、ランクＲＡＮＫ１に供給されるアクセスコマンドＡＣＭＤ（ＷＲ）は、ランクＲＡＮＫ１に退避された領域に対するデータの書き込み動作を示している。
【０１３１】
退避期間において、ランクＲＡＮＫ０からランクＲＡＮＫ１に全てのデータが退避された後、メモリインタフェース部４００は、運用系メモリブロックをランクＲＡＮＫ０からＲＡＮＫ１に交替する。運用系メモリブロックの交替時、ランクＲＡＮＫ０は、低電力モードに設定され、例えば、ランクＲＡＮＫ０のリフレッシュ動作が禁止される。ランクＲＡＮＫ０がアクセスされない期間に、ランクＲＡＮＫ０を低電力モードに設定することで、メモリモジュールＤＩＭＭの消費電力を削減できる。
【０１３２】
運用系メモリブロックの交替後、メモリインタフェース部４００は、アクセスコマンドＡＣＭＤをランクＲＡＮＫ１に供給する。そして、この後の診断期間では、新たな運用系メモリブロックであるランクＲＡＮＫ１において、アクセスコマンドＡＣＭＤによるアクセス動作と、診断コマンドＤＣＭＤ（ＲＤＤ１）による診断とが、所定の比率で実行される。ランクＲＡＮＫ１の診断期間の動作の例は、図１７に示す。
【０１３３】
この実施形態では、退避準備期間および退避期間において、アクセスコマンドＡＣＭＤをランクＲＡＮＫ０に供給できる。したがって、コントローラＣＮＴＬは、運用系メモリブロックに訂正可能なエラーが発生した場合にも、常に所定の頻度でメモリモジュールＤＩＭＭにアクセスでき、情報処理装置の性能は低下しない。
【０１３４】
また、退避系メモリブロックであるランクＲＡＮＫ１の動作は、運用系メモリブロックのエラーが検出されるまで禁止され、運用系メモリブロックであるランクＲＡＮＫ０の動作は、運用系メモリブロックの交替後に禁止される。この実施形態では、運用系メモリブロックと退避系メモリブロックが互いに重複して動作する期間は、退避準備期間と退避期間である。これにより、運用系メモリブロックと退避系メモリブロックのリフレッシュ動作を常に実行する場合に比べて、メモリモジュールＤＩＭＭの消費電力を削減できる。
【０１３５】
これに対して、アクセスコマンドＡＣＭＤに応答して、運用系メモリブロックと退避系メモリブロックとの両方にデータが書き込まれる場合、常に２つのメモリブロックが動作するため、１つのメモリブロックを動作させる場合に比べて、消費電力は増加する。
【０１３６】
図１１は、図１０に示した診断期間の動作フローの例を示している。図１１の動作は、図２に示したメモリ制御装置ＭＣＮＴにより実行される。なお、図１１の各ステップは、動作を分かりやすくするための区分けであり、実際には、メモリ制御装置ＭＣＮＴ内のハードウエアが連動することにより、複数のステップが並列に実行されてもよい。
【０１３７】
まず、ステップＳ１００において、メモリインタフェース部４００は、コマンド制御部１００を介してコントローラＣＮＴＬから供給されるアクセスコマンドＡＣＭＤを受け、ランクＲＡＮＫ０にアクセスする。ステップＳ１０２において、メモリインタフェース部４００は、規定回数（例えば、２回）のアクセスコマンドＡＣＭＤを受けたか否かを検出する。メモリインタフェース部４００は、アクセスコマンドＡＣＭＤを規定回数受けていない場合、図７に示した許可通知ＰＥＲＡを出力し、ステップＳ１００に戻って、アクセスコマンドＡＣＭＤを受け付ける。
【０１３８】
規定回数のアクセスコマンドＡＣＭＤを受けた場合、メモリインタフェース部４００は、ステップＳ１０４において、図７に示した許可通知ＰＥＲＤを出力し、診断制御部２００の診断コマンド生成部２１０からの診断コマンドＤＣＭＤ（ＲＤＤ）を受ける。ステップＳ１０６において、メモリインタフェース部４００は、誤り検出訂正回路ＥＤＣＣを用いて、ランクＲＡＮＫ０から読み出されるデータに訂正可能なエラーＣＥがあるか否かを検出する。訂正可能なエラーＣＥがある場合、メモリインタフェース部４００は、訂正可能なエラーＣＥを検出したことを実行結果ＲＳＬＴＤとして診断コマンド生成部２１０に出力し、ステップＳ１０８の動作を開始する。
【０１３９】
読み出したデータにエラーがない場合、ステップＳ１１２において、メモリインタフェース部４００は、訂正不可能なエラーＵＣＥがあるか否かを検出する。訂正不可能なエラーＵＣＥがある場合、メモリインタフェース部４００は、訂正不可能なエラーＵＣＥを検出したことを実行結果ＲＳＬＴＤ（エラー通知）として診断コマンド生成部２１０に出力し、診断処理を終了する。
【０１４０】
診断コマンド生成部２１０は、エラー通知に基づいて、コントローラＣＮＴＬにエラーが発生したことを通知する。例えば、コントローラＣＮＴＬは、エラー通知を情報処理装置の外部にアラームとして通知し、その後、メモリモジュールＤＩＭＭが交換される。
【０１４１】
メモリインタフェース部４００は、読み出したデータにエラーがない場合、エラーがない旨を実行結果ＲＳＬＴＤとして診断コマンド生成部２１０に出力し、診断コマンド生成部２１０にステップＳ１１４の動作を開始させる。ステップＳ１１４において、診断コマンド生成部２１０は、読み出したデータにエラーがない場合、診断用のアドレスを更新し、次の診断コマンドＤＣＭＤ（ＲＤＤ）を出力する。この後、メモリインタフェース部４００は、アクセスコマンドＡＣＭＤを再び受け付ける。
【０１４２】
一方、ステップＳ１０８において、メモリインタフェース部４００は、エラーを訂正した正しいデータをランクＲＡＮＫ０に書き込む。ステップＳ１１０において、診断コマンド生成部２１０は、実行結果ＲＳＬＴＤとして受けたエラーＣＥの通知が、同じアドレスで連続して２回検出されたか否かを判断する。エラーＣＥが同じアドレスで連続して２回検出された場合、診断コマンド生成部２１０は、診断期間の終了を示す通知ＮＴＣＤをメモリインタフェース部４００に出力し、データの退避の開始要求ＣＲＥＱを退避コマンド生成部２２０に出力する。そして、アクセス制御装置ＭＣＮＴは、退避準備動作を開始する。
【０１４３】
訂正可能なエラーが連続して２回検出される場合、メモリセル等にソリッド不良が発生した可能性がある。ソリッド不良による１ビットエラーに加えて、同じアドレスでソフトエラー等による１ビットエラーが発生した場合、エラー訂正によりデータを復帰させることは困難である。この実施形態では、２ビットエラーが発生する前に、退避準備動作および退避動作を開始することで、メモリモジュールＤＩＭＭに保持されるデータの信頼性を向上できる。
【０１４４】
診断コマンド生成部２１０は、エラーＣＥが同じアドレスで連続して２回検出されていない場合、すなわち、エラーＣＥの検出が１回目の場合、アドレスを更新することなく次の診断コマンドＤＣＭＤ（ＲＤＤ）を出力する。これにより、次のステップＳ１０４、Ｓ１０６では、同じアドレスの記憶領域からデータが再び読み出され、２回目のエラーの有無が検出される。
【０１４５】
以上のように、診断コマンドＤＣＭＤによりランクＲＡＮＫ０から読み出されるデータにエラーがない場合、あるいは、訂正可能なエラーＣＥが２回連続して検出されない場合、ランクＲＡＮＫ０が運用系メモリブロックとしてアクセスされる。訂正可能なエラーＣＥが２回連続して検出される場合、ランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避動作が実行される。診断コマンドＤＣＭＤによりランクＲＡＮＫ０から読み出されるデータに訂正不可能なエラーＵＣＥが検出される場合、メモリモジュールＤＩＭＭにエラーが発生した旨のエラー通知が実行結果ＲＳＬＴＤとして、メモリインタフェース部４００から診断コマンド生成部２１０に通知される。
【０１４６】
図１２は、図１０に示した退避準備期間の動作フローの例を示している。図１２の動作は、図２に示したメモリ制御装置ＭＣＮＴにより実行される。なお、図１２の各ステップは、動作を分かりやすくするための区分けであり、実際には、メモリ制御装置ＭＣＮＴ内のハードウエアが連動することにより、複数のステップが並列に実行されてもよい。
【０１４７】
まず、ステップＳ２００において、診断制御部２００の退避コマンド生成部２２０は、退避系メモリブロックであるランクＲＡＮＫ１にリフレッシュ動作を開始させる通知ＮＴＣＣをメモリインタフェース部４００に出力する。メモリインタフェース部４００は、通知ＮＴＣＣに基づいて、クロックイネーブル信号ＣＫＥ１を出力し、ランクＲＡＮＫ１の状態を低電力モードから通常モードに移行させ、ランクＲＡＮＫ１にリフレッシュ動作を開始させる。
【０１４８】
次に、ステップＳ２０２、Ｓ２０４において、メモリインタフェース部４００は、規定回数のアクセスコマンドＡＣＭＤを受け、ランクＲＡＮＫ０にアクセスする。ステップＳ２０２、Ｓ２０４では、図１１に示したＳ１００、Ｓ１０２と同様の動作が実行される。
【０１４９】
規定回数のアクセスコマンドＡＣＭＤを受けた場合、メモリインタフェース部４００は、ステップＳ２０６において、図７に示した許可通知ＰＥＲＤを出力し、診断制御部２００の退避コマンド生成部２２０からの退避コマンドＣＣＭＤ（ＷＲＣ）を書き込みデータおよび書き込みアドレスとともに受ける。メモリインタフェース部４００は、退避系メモリブロックであるランクＲＡＮＫ１にデータを書き込む。退避準備期間にランクＲＡＮＫ１の記憶領域に書き込まれるデータは、全て同じ値である。
【０１５０】
次に、ステップＳ２０８、Ｓ２１０において、退避コマンド生成部２２０は、ランクＲＡＮＫ１の全ての領域にデータが書き込まれるまで、書き込みアドレスを更新する。例えば、書き込みアドレスは、アドレスを小さい側から１ずつインクリメントすることで更新される。ステップＳ２１０では、退避コマンド生成部２２０は、更新した読み出しアドレスとともに、次の診断コマンドＣＣＭＤ（ＷＲＣ）を出力する。
【０１５１】
ランクＲＡＮＫ１の全ての領域に同じデータが書き込まれた場合、退避コマンド生成部２２０は、ステップＳ２１６、Ｓ２１８、Ｓ２２０、Ｓ２２２において、ランクＲＡＮＫ１の全ての領域からデータを読み出し、期待値と比較する。期待値は、ステップＳ２０６でランクＲＡＮＫ１に書き込んだ書き込みデータであり、保持回路ＥＨＬＤに保持されたデータである。ステップＳ２１２、Ｓ２１４では、ステップＳ２０２、Ｓ２０４と同様の動作が実行される。
【０１５２】
ステップＳ２１６において、メモリインタフェース部４００は、許可通知ＰＥＲＤを出力し、退避コマンド生成部２２０からの退避コマンドＣＣＭＤ（ＲＤＣ）を読み出しアドレスとともに受ける。メモリインタフェース部４００は、退避系メモリブロックであるランクＲＡＮＫ１からデータを読み出す。
【０１５３】
ステップＳ２１８において、メモリインタフェース部４００は、読み出しデータをステップＳ２０６の書き込み動作時に保持した期待値と比較する。メモリインタフェース部４００は、読み出しデータが期待値と一致しない場合、ランクＲＡＮＫ１が退避系メモリブロックとして使用できないことを示す実行結果ＲＳＬＴＣを退避コマンド生成部２２０に出力する。
【０１５４】
退避コマンド生成部２２０は、実行結果ＲＳＬＴＣを受け、退避動作を中止し、コントローラＣＮＴＬに、メモリモジュールＤＩＭＭの退避系メモリブロックにエラーが発生したことを通知する。例えば、コントローラＣＮＴＬは、エラーの通知を情報処理装置の外部にアラームとして通知し、その後、メモリモジュールＤＩＭＭが交換される。
【０１５５】
読み出しデータが期待値と一致する場合、ステップＳ２２０において、退避コマンド生成部２２０は、ランクＲＡＮＫ１の全ての領域の読み出しデータを期待値と比較したか否かを判断する。ランクＲＡＮＫ１の全ての領域の読み出しデータが期待値と比較され、ランクＲＡＮＫ１が正常に動作することが確認された場合、退避準備期間は終了し、退避期間が開始される。期待値と比較していないデータがランクＲＡＮＫ１に存在する場合、ステップＳ２２２において、退避コマンド生成部２２０は、読み出しアドレスを更新し、次の診断コマンドＣＣＭＤ（ＲＤＣ）を出力する。例えば、読み出しアドレスは、アドレスを小さい側から１ずつインクリメントすることで更新される。
【０１５６】
図１３は、図１０に示した退避期間の動作フローの例を示している。図１３の動作フローは、図２に示したメモリ制御装置ＭＣＮＴにより実行される。なお、図１３の各ステップは、動作を分かりやすくするための区分けであり、実際には、メモリ制御装置ＭＣＮＴ内のハードウエアが連動することにより、複数のステップが並列に実行されてもよい。
【０１５７】
退避期間の開始時に、退避コマンド生成部２２０は、退避期間の開始を示す通知ＮＴＣＣをメモリインタフェース部４００に出力する。メモリインタフェース部４００は、退避期間の開始を示す通知ＮＴＣＣを受け、例えば、退避期間を示すレジスタをセットする。ステップＳ３００では、図１１に示したＳ１００と同様の動作が実行される。
【０１５８】
ステップＳ３０２において、メモリインタフェース部４００は、保持回路ＡＨＬＤを参照し、アクセスコマンドＡＣＭＤとともに受けるアドレスが、ランクＲＡＮＫ０からランクＲＡＮＫ１にデータを退避した記憶領域を示すか否かを判定する。アドレスがデータを退避していない記憶領域を示す場合、ステップＳ３０４において、メモリインタフェース部４００は、運用系メモリブロックであるランクＲＡＮＫ０にアクセスコマンドＡＣＭＤを供給する。アドレスがデータを退避した記憶領域を示す場合、ステップＳ３０６において、メモリインタフェース部４００は、退避系メモリブロックであるランクＲＡＮＫ１にアクセスコマンドＡＣＭＤを供給する。なお、読み出しコマンドＲＤとともに供給されるアドレスがデータを退避した記憶領域を示す場合、メモリインタフェース部４００は、読み出しコマンドＲＤをランクＲＡＮＫ０に供給してもよい。
【０１５９】
保持回路ＡＨＬＤに保持されたアドレスがデータの退避が完了した記憶領域を示す場合に、アクセスコマンドＡＣＭＤをランクＲＡＮＫ１に供給することで、退避期間にメモリモジュールＤＩＭＭに書き込まれるデータを失うことなく保持できる。換言すれば、退避コマンドＣＣＭＤがアクセスコマンドＡＣＭＤの合間に生成され、アクセス要求ＡＲＥＱを受け付けながらデータの退避を実行する場合にも、メモリモジュールＤＩＭＭに書き込まれたデータは失われない。
【０１６０】
これに対して、もし、書き込みデータが、データの退避が完了したランクＲＡＮＫ０の記憶領域に書き込まれる場合、書き込みデータは、これ以降の退避期間において、ランクＲＡＮＫ１に退避されない。このため、退避期間の終了後、運用系メモリブロックがランクＲＡＮＫ０からランクＲＡＮＫ１に交替された時点で、書き込みデータは失われる。
【０１６１】
ステップＳ３０８では、図１１に示したＳ１０２と同様の動作が実行される。ステップＳ３１０において、メモリインタフェース部４００は、読み出しコマンドＲＤ（ＲＭＷＣ）を受けた場合、ステップＳ３１２の動作を実行し、書き込みコマンドＷＲ（ＲＭＷＣ）を受けた場合、ステップＳ３１４の動作を実行する。ステップＳ３１２の読み出し動作およびステップＳ３１４の書き込み動作は、退避コマンド生成部２２０により生成されるリードモディファイライトコマンドＲＭＷＣに基づいて実行される。なお、読み出しコマンドＲＤ（ＲＭＷＣ）および書き込みコマンドＷＲ（ＲＭＷＣ）とともにメモリインタフェース部４００に供給されるアドレスは、保持回路ＡＨＬＤに保持されたアドレスの次のアドレスであり、データの退避が完了していないアドレスである。
【０１６２】
ステップＳ３１２において、メモリインタフェース部４００は、退避期間を示すレジスタがセットされたため、運用系メモリブロックであるランクＲＡＮＫ０に読み出しコマンドを供給し、データを読み出す。なお、メモリインタフェース部４００は、読み出したデータにエラー（ＣＥまたはＵＣＥ）がある場合、退避処理を中止し、ランクＲＡＮＫ１が退避系メモリブロックとして使用できないことを示す実行結果ＲＳＬＴＣを退避コマンド生成部２２０に出力する。
【０１６３】
退避コマンド生成部２２０は、実行結果ＲＳＬＴＣを受け、退避動作を中止し、コントローラＣＮＴＬに、メモリモジュールＤＩＭＭの退避系メモリブロックにエラーが発生したことを通知する。例えば、コントローラＣＮＴＬは、エラーの通知を情報処理装置の外部にアラームとして通知し、その後、メモリモジュールＤＩＭＭが交換される。
【０１６４】
ステップＳ３１４において、メモリインタフェース部４００は、退避期間を示すレジスタがセットされたため、退避系メモリブロックであるランクＲＡＮＫ１に書き込みコマンドを供給する。そして、メモリインタフェース部４００は、ステップＳ３１２の実行によりランクＲＡＮＫ０から読み出したデータをランクＲＡＮＫ１に書き込む。
【０１６５】
データのランクＲＡＮＫ１への書き込み後、ステップＳ３１６において、メモリインタフェース部４００は、保持回路ＡＨＬＤに保持されたアドレスを更新する。例えば、アドレスは、アドレスを小さい側から１ずつインクリメントすることで更新される。
【０１６６】
ステップＳ３１８において、退避コマンド生成部２２０は、全てのデータがランクＲＡＮＫ０からランクＲＡＮＫ１に退避されたか否かを判断する。ランクＲＡＮＫ１に退避されていないデータがある場合、退避コマンド生成部２２０は、次のリードモディファイライトコマンドＲＭＷＣを更新したアドレスとともに出力し、動作はステップＳ３００に戻る。
【０１６７】
全てのデータがランクＲＡＮＫ０からランクＲＡＮＫ１に退避された場合、ステップＳ３２０において、退避コマンド生成部２２０は、運用系メモリブロックをランクＲＡＮＫ０からランクＲＡＮＫ１に交替する通知ＮＴＣＣをメモリインタフェース部４００に出力する。メモリインタフェース部４００は、運用系メモリブロックの交替の通知ＮＴＣＣを受けた以降、アクセスコマンドＡＣＭＤをランクＲＡＮＫ１に供給し、ランクＲＡＮＫ１を運用系メモリブロックとして動作させる。
【０１６８】
次に、ステップＳ３２２において、退避コマンド生成部２２０は、退避系メモリブロックであるランクＲＡＮＫ０にリフレッシュ動作を禁止させる通知ＮＴＣＣをメモリインタフェース部４００に出力する。メモリインタフェース部４００は、通知ＮＴＣＣに基づいて、クロックイネーブル信号ＣＫＥ０の出力を停止し、ランクＲＡＮＫ０の状態を通常モードから低電力モードに移行させ、ランクＲＡＮＫ０にリフレッシュ動作を禁止させる。
【０１６９】
図１４は、図１１に示した診断期間の動作の例を示している。図１４は、メモリ制御装置ＭＣＮＴの動作を示している。例えば、アクセスコマンドＡＣＭＤの規定回数は２回に設定されており、コマンド調停部３００は、アクセスコマンドＡＣＭＤを２回出力する毎に、診断コマンドＤＣＭＤを１回出力する。診断コマンド生成部２１０が診断期間に生成する診断コマンドＤＣＭＤは、読み出しコマンドＲＤＤである。末尾に付けた数字が同じ読み出しコマンドＲＤＤは、アドレスが同じであることを示している。ランクＲＡＮＫ０の読み出し動作において、読み出しコマンドＲＤの右下に付けた”＋ＷＲ”は、エラー検出訂正回路ＥＤＣＣが訂正可能なエラーを検出し、エラー訂正したデータを再書き込みすることを示している。
【０１７０】
メモリインタフェース部４００は、所定の周期でリフレッシュコマンドＲＥＦをランクＲＡＮＫ０に出力し、ランクＲＡＮＫ０にリフレッシュ動作を実行させる（図１４（ａ））。コマンド送信部１３０は、リードモディファイライトコマンドＲＭＷをアクセス要求ＡＲＥＱとして受けた場合、読み出しコマンドＲＤと書き込みコマンドＷＲとを、共通のアドレスおよびビット演算情報とともに順次に出力する（図１４（ｂ））。読み出しコマンドＲＤにより読み出したデータは、ビット演算情報とビット演算され、書き込みコマンドＷＲにより書き込むデータとして生成される。
【０１７１】
診断コマンド生成部２１０は、診断期間の最初に、診断期間の開始を示す通知ＮＴＣＤをメモリインタフェース部４００に出力する（図１４（ｃ））。メモリインタフェース部４００は、診断期間を示すレジスタをセットし、診断コマンド生成部２１０から出力される読み出しコマンドＲＤＤを、退避コマンド生成部２２０から出力される同じコードの読み出しコマンドＲＤＣと区別する。読み出しコマンドＲＤＤは、エラー検出訂正回路ＥＤＣＣにより読み出しデータのエラーを判定する点で、期待値との比較により読み出しデータのエラーを検出する読み出しコマンドＲＤＣと相違する。
【０１７２】
読み出しコマンドＲＤＤ２によるランクＲＡＮＫ０の読み出し動作において、エラー検出訂正回路ＥＤＣＣは、訂正可能なエラーＣＥを検出し、エラー訂正したデータを再書き込みする（図１４（ｄ））。メモリインタフェース部４００は、エラーＣＥの検出を実行結果ＲＳＬＴＤとして、診断コマンド生成部２１０として通知する（図１４（ｅ））。なお、診断コマンドＤＣＭＤの欄において、下側の読み出しコマンドＲＤＤは、診断コマンド生成部２１０から出力されることを示し、上側の読み出しコマンドＲＤＤは、コマンド調停部３００から出力されることを示している。
【０１７３】
診断コマンド生成部２１０は、実行結果ＲＳＬＴＤを受け、同じアドレスの読み出しコマンドＲＤＤ２を再度出力する（図１４（ｆ））。エラー検出訂正回路ＥＤＣＣは、読み出しコマンドＲＤＤ２に応じてランクＲＡＮＫ０から読み出されるデータにエラーがないことを検出する。メモリインタフェース部４００は、同じアドレスの読み出しデータに連続してエラーが発生していないため、前回のエラーを、ノイズやソフトエラー等の間欠エラーと判断する。診断コマンド生成部２１０は、２回目の読み出しコマンドＲＤＤ２による読み出しデータにエラーがないことを実行結果ＲＳＬＴＤ（ＯＫ）として受け、次のアドレスの読み出しコマンドＲＤＤ３を出力する（図１４（ｇ、ｈ））。
【０１７４】
診断コマンド生成部２１０は、読み出しコマンドＲＤＤ３による読み出しデータにエラーがないことを実行結果ＲＳＬＴＤ（ＯＫ）として受け、次のアドレスの読み出しコマンドＲＤＤ４を出力する（図１４（ｉ、ｊ））。読み出しコマンドＲＤＤ４によるランクＲＡＮＫ０の読み出し動作において、エラー検出訂正回路ＥＤＣＣは、訂正可能なエラーＣＥを検出し、エラー訂正したデータを再書き込みする（図１４（ｋ））。メモリインタフェース部４００は、エラーＣＥの検出を実行結果ＲＳＬＴＤとして、診断コマンド生成部２１０として通知する（図１４（ｌ））。
【０１７５】
診断コマンド生成部２１０は、実行結果ＲＳＬＴＤを受け、同じアドレスの読み出しコマンドＲＤＤ４を再度出力する（図１４（ｍ））。読み出しコマンドＲＤＤ４によるランクＲＡＮＫ０の読み出し動作において、エラー検出訂正回路ＥＤＣＣは、訂正可能なエラーＣＥを再度検出し、エラー訂正したデータを再書き込みする（図１４（ｎ））。メモリインタフェース部４００は、エラーＣＥの検出を実行結果ＲＳＬＴＤとして、診断コマンド生成部２１０として通知する（図１４（ｏ））。
【０１７６】
診断コマンド生成部２１０は、２回目の読み出しコマンドＲＤＤ４による読み出しデータに訂正可能なエラーがあることを実行結果ＲＳＬＴＤ（ＣＥ）として受け、ランクＲＡＮＫ０の使用を停止することを判断する。そして、診断コマンド生成部２１０は、診断期間の終了を示す通知ＮＴＣＤ（ＤＥＮＤ）をメモリインタフェース部４００に出力する（図１４（ｐ））。メモリインタフェース部４００は、診断期間を示すレジスタをリセットする。これにより、診断期間が終了する。
【０１７７】
図１５は、図１２に示した退避準備期間の動作の例を示している。図１５は、図１４の続きを示しており、メモリ制御装置ＭＣＮＴの動作を示している。図１４と同一または同様の動作については、図１４と同様に表記し、詳細な説明は省略する。末尾に付けた数字が同じ書き込みコマンドＷＲＣは、アドレスが同じであることを示している。
【０１７８】
退避準備期間の最初に、退避コマンド生成部２２０は、診断期間の開始を示す通知ＮＴＣＤをメモリインタフェース部４００に出力する（図１５（ａ））。メモリインタフェース部４００は、退避期間を示すレジスタをセットし、退避コマンド生成部２２０から出力される読み出しコマンドＲＤＣを、診断コマンド生成部２１０から出力される同じコードの読み出しコマンドＲＤＤと区別する。
【０１７９】
退避コマンド生成部２２０は、最初の書き込みコマンドＷＲＣ１を書き込みデータ（期待値）とともにメモリインタフェース部４００に出力する（図１５（ｂ））。なお、退避コマンドＣＣＭＤの欄において、下側の書き込みコマンドＷＲＣは、退避コマンド生成部２２０から出力されることを示し、上側の書き込みコマンドＷＲＣは、コマンド調停部３００から出力されることを示している。
【０１８０】
メモリインタフェース部４００は、書き込みコマンドＷＲＣ１に応答して、書き込みコマンドＷＲおよび書き込みデータをランクＲＡＮＫ１に出力し、書き込み動作を実行する（図１５（ｃ））。また、メモリインタフェース部４００は、書き込みデータをレジスタ等の保持回路に保持する。この後、メモリインタフェース部４００は、退避コマンド生成部２２０からの書き込みコマンドＷＲＣ２、ＷＲＣ３、...、ＷＲＣ４、ＷＲＣ５に応答して、書き込みコマンドＷＲおよび書き込みデータをランクＲＡＮＫ１に出力する（図１５（ｄ、ｅ、ｆ））。そして、ランクＲＡＮＫ１の書き込み動作が、アドレスを更新しながら順次に実行される。
【０１８１】
２回目以降の書き込み動作において、メモリインタフェース部４００は、レジスタ等の保持回路に保持した書き込みデータをランクＲＡＮＫ１に供給する。メモリインタフェース部４００は、退避期間を示すレジスタがセットされたことに基づいて、レジスタ等に保持したデータを書き込む書き込みコマンドＷＲＣを、他の書き込みコマンドと区別可能である。なお、メモリインタフェース部４００は、退避期間を示すレジスタのセット後に最初に書き込みコマンドＷＲＣを受けた場合、書き込みコマンドＷＲＣとともに受ける書き込みデータをランクＲＡＮＫ１に出力する。
【０１８２】
ランクＲＡＮＫ１の全ての領域にデータが書き込まれた後、退避コマンド生成部２２０は、読み出しコマンドＲＤＣおよび読み出しアドレスの出力を開始する（図１５（ｇ））。メモリインタフェース部４００は、読み出しコマンドＲＤＣを読み出しコマンドＲＤとしてランクＲＡＮＫ１に供給し、読み出し動作を実行する（図１５（ｈ））。メモリインタフェース部４００は、ランクＲＡＮＫ１から読み出されるデータを、レジスタに保持した期待値（書き込みデータ）と比較し、比較結果を実行結果ＲＳＬＴＣとして、退避コマンド生成部２２０に通知する（図１５（ｉ））。
【０１８３】
この例では、読み出しデータが期待値と一致するため、エラーがないこと示す実行結果ＲＳＬＴＣ（ＯＫ）が退避コマンド生成部２２０に出力される。読み出しデータが期待値と一致しない場合、エラーがあることを示す実行結果ＲＳＬＴＣ（ＣＥまたはＵＣＥ）が退避コマンド生成部２２０に出力される。退避コマンド生成部２２０は、エラーを示す実行結果ＲＳＬＴＣを受けた場合、退避動作を中止し、コントローラＣＮＴＬに、メモリモジュールＤＩＭＭの退避系メモリブロックにエラーが発生したことを通知する。
【０１８４】
この実施形態では、エラー検出訂正回路ＥＤＣＣを用いずに読み出しデータと期待値との比較を実行するため、エラー検出訂正回路ＥＤＣＣを用いる場合に比べて退避準備期間を短縮でき、消費電力を削減できる。
【０１８５】
図１６は、図１３に示した退避期間の動作の例を示している。図１６は、図１５の続きを示しており、メモリ制御装置ＭＣＮＴの動作を示している。図１４および図１５と同一または同様の動作については、図１４および図１５と同様に表記し、詳細な説明は省略する。末尾に付けた数字が同じ読み出しコマンドＲＤＣは、アドレスが同じであることを示している。
【０１８６】
退避コマンド生成部２２０は、読み出しアドレスを更新しながら、読み出しコマンドＲＤＣを順次に出力する（図１６（ａ、ｂ））。メモリインタフェース部４００は、読み出しコマンドＲＤＣをランクＲＡＮＫ１に供給し、ランクＲＡＮＫ１から読み出されたデータを期待値と比較する（図１６（ｃ、ｄ））。メモリインタフェース部４００は、比較結果を実行結果ＲＳＬＴＣとして、退避コマンド生成部２２０に通知する（図１６（ｅ、ｆ））。
【０１８７】
退避コマンド生成部２２０は、ランクＲＡＮＫ１から読み出した全てのデータにエラーがない場合、退避準備期間を終了し、退避期間を開始する。退避期間において、退避コマンド生成部２２０は、リードモディファイライトコマンドＲＭＷＣを、アドレスを更新しながらコマンド送信部２３０に順次に出力する（図１６（ｇ、ｈ、ｉ））。コマンド送信部２３０は、リードモディファイライトコマンドＲＭＷＣを読み出しコマンドＲＤと書き込みコマンドＷＲに分けて、メモリインタフェース部４００に順次に出力する。
【０１８８】
メモリインタフェース部４００は、コマンド送信部２３０からの読み出しコマンドＲＤをランクＲＡＮＫ０に供給し、ランクＲＡＮＫ０からデータを読み出す（図１６（ｊ、ｋ、ｌ））。メモリインタフェース部４００は、読み出したデータのエラーの有無をエラー検出訂正回路ＥＤＣＣにより検出し、検出結果を実行結果ＲＳＬＴＣとして退避コマンド生成部２２０に出力する（図１６（ｍ、ｎ、ｏ））。退避コマンド生成部２２０は、エラーＣＥまたはエラーＵＣＥを示す実行結果ＲＳＬＴＣを受けた場合、退避動作を中止し、コントローラＣＮＴＬに、メモリモジュールＤＩＭＭの退避系メモリブロックにエラーが発生したことを通知する。
【０１８９】
また、メモリインタフェース部４００は、コマンド送信部２３０からの書き込みコマンドＷＲを、ランクＲＡＮＫ０から読み出したデータとともにランクＲＡＮＫ１に供給し、ランクＲＡＮＫ１にデータを書き込む（図１６（ｐ、ｑ））。
【０１９０】
この際、リードモディファイライトコマンドＲＭＷの読み出しコマンドＲＤとともに受けるアドレスを、データを書き込むアドレスとして用いてもよい。この場合、書き込みコマンドＷＲ毎にアドレスを受ける場合に比べて、コマンド送信部１３０、２３０、コマンド調停部３００およびメモリインタフェース部４００内で動作する回路を少なくでき、消費電力を削減できる。
【０１９１】
退避期間を示すレジスタがセットされたため、メモリインタフェース部４００は、リードモディファイライトコマンドＲＭＷＣを、同じコードのリードモディファイライトコマンドＲＭＷＤと区別可能である。なお、図１６には示していないが、メモリインタフェース部４００は、ランクＲＡＮＫ１にデータを書き込む毎に、同じアドレスの読み出し動作を実行し、読み出したデータのエラーを検出してもよい。
【０１９２】
一方、アクセスコマンドＡＣＭＤとともに供給されるアドレスが、ランクＲＡＮＫ０からランクＲＡＮＫ１にデータを退避した記憶領域を示す場合、メモリインタフェース部４００は、ランクＲＡＮＫ１にアクセスコマンドＡＭＣＤを供給する（図１６（ｒ、ｓ））。なお、読み出しコマンドＲＤとともに供給されるアドレスが、データを退避した記憶領域を示す場合、メモリインタフェース部４００は、ランクＲＡＮＫ０に読み出しコマンドＲＤを供給し、ランクＲＡＮＫ０からデータを読み出してもよい。
【０１９３】
図１７は、図１０に示した運用系メモリブロックの交替動作の例を示している。図１７は、図１６の続きを示しており、メモリ制御装置ＭＣＮＴの動作を示している。図１４から図１６と同一または同様の動作については、図１４から図１６と同様に表記し、詳細な説明は省略する。
【０１９４】
まず、図１６と同様に、リードモディファイライトコマンドＲＭＷＣにより、ランクＲＡＮＫ０から読み出されたデータがランクＲＡＮＫ１に書き込まれる（図１７（ａ、ｂ））。退避コマンド生成部２２０は、ランクＲＡＮＫ０からランクＲＡＮＫ１への全てのデータの退避後、退避系メモリブロックであるランクＲＡＮＫ０のリフレッシュ動作を禁止させる通知ＮＴＣＣ（ＲＥＦ０Ｄ）をメモリインタフェース部４００に出力する（図１７（ｃ））。メモリインタフェース部４００は、通知ＮＴＣＣ（ＲＥＦ０Ｄ）に基づいて、クロックイネーブル信号ＣＫＥ０をロウレベルに設定し、ランクＲＡＮＫ０のリフレッシュ動作を禁止する。
【０１９５】
退避コマンド生成部２２０は、運用系メモリブロックをランクＲＡＮＫ０からランクＲＡＮＫ１に交替する通知ＮＴＣＣ（ＳＷ）をメモリインタフェース部４００に出力する（図１７（ｄ））。メモリインタフェース部４００は、通知ＮＴＣＣ（ＳＷ）を受けた以降、コマンド制御部１００から供給されるアクセスコマンドＡＣＭＤをランクＲＡＮＫ１に供給する。すなわち、運用系メモリブロックがランクＲＡＮＫ０からＲＡＮＫ１に交替され、ランクＲＡＮＫ１が運用系メモリブロックとして動作する。
【０１９６】
また、退避コマンド生成部２２０は、診断コマンド生成部２１０に、ランクＲＡＮＫ１が運用系メモリブロックとして動作を開始したことを通知する。診断コマンド生成部２１０は、通知を受けて、診断期間の開始を示す通知ＮＴＣＤをメモリインタフェース部４００に出力する（図１７（ｅ））。そして、ランクＲＡＮＫ１の診断期間が開始され、ランクＲＡＮＫ１において、図１４と同様に、アクセスコマンドＡＣＭＤによるアクセス動作と、診断コマンドＤＣＭＤ（ＲＤＤ）による診断とが、所定の比率で実行される。
【０１９７】
以上、この実施形態においても、図１に示した実施形態と同様に、運用系メモリブロックのエラーが検出されるまで退避系メモリブロックのリフレッシュ動作を禁止することで、メモリ装置ＭＥＭの消費電力を削減できる。さらに、診断コマンドＤＣＭＤおよび退避コマンドＣＣＭＤがアクセスコマンドＡＣＭＤの合間に供給されるため、コントローラＣＮＴＬは、診断期間、退避準備期間および退避期間を認識することなく、所定の頻度でメモリ装置ＭＥＭにアクセスできる。この結果、情報処理装置の性能が低下することを抑制できる。
【０１９８】
アクセスコマンドＡＣＭＤおよび診断コマンドＤＣＭＤの出力回数の比率と、アクセスコマンドＡＣＭＤおよび退避コマンドＣＣＭＤの出力回数の比率を、情報処理装置の仕様やメモリ装置ＭＥＭのアクセス速度に合わせて任意の値に設定できる。リードモディファイライトコマンドＲＭＷＣを用いて、運用系メモリブロックから退避系メモリブロックにデータを退避することで、退避期間におけるコマンドの生成効率を向上できる。
【０１９９】
退避準備期間において、メモリインタフェース部４００は、エラー検出訂正回路ＥＤＣＣを用いずに、読み出しデータを保持回路ＥＨＬＤに保持された期待値と比較する。このため、エラー検出訂正回路ＥＤＣＣを用いる場合に比べて退避準備期間を短縮できる。また、エラー検出訂正回路ＥＤＣＣが動作しないため、退避準備期間の消費電力を削減できる。
【０２００】
図１８は、別の実施形態におけるメモリ制御装置、情報処理装置およびメモリ制御装置の制御方法の例を示している。図２に示した実施形態で説明した要素と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、メモリ制御装置ＭＣＮＴは、図２に示したコマンド調停部３００の代わりにコマンド調停部３００Ａを有する。コマンド調停部３００Ａは、図２から図１７で説明した機能に加えて、リードモディファイライトコマンドＲＭＷ、ＲＭＷＣの競合を制御する機能を有する。メモリ制御装置ＭＣＮＴおよび情報処理装置のその他の構成は、図２と同様である。以下の説明では、リードモディファイライトコマンドＲＭＷ、ＲＭＷＣをコマンドＲＭＷ、ＲＭＷＣとも称する。
【０２０１】
リードモディファイライトコマンドＲＭＷによりメモリモジュールＤＩＭＭに書き込まれるデータは、コントローラＣＮＴＬから指示されるビット演算情報による演算後のデータである。一方、リードモディファイライトコマンドＲＭＷＣにより書き込まれるデータは、ランクＲＡＮＫ０からランクＲＡＮＫ１にコピーされるデータであり、診断期間にコントローラＣＮＴＬにより書き込まれたデータである。このため、同じアドレスの記憶領域に対するコマンドＲＭＷ、ＲＭＷＣが競合する場合、コマンドＲＭＷによる書き込みデータは、コマンドＲＭＷＣによる書き込みデータが記憶領域に書き込まれた後に書き込まれることが好ましい。
【０２０２】
図１９は、図１８に示したコマンド調停部３００Ａにより実行される退避期間の動作フローの例を示している。図１９の動作フローは、図１３に示したステップＳ３００の実行後に開始される。
【０２０３】
まず、ステップＳ４００において、コマンド調停部３００Ａは、コマンド制御部１００からコマンドＲＭＷを受けたか否かを判定する。コマンドＲＭＷを受けた場合、ステップＳ４０２において、コマンド調停部３００Ａは、コマンドＲＭＷを実行するアドレスが、メモリインタフェース部４００の保持回路ＡＨＬＤに保持された退避が完了したアドレスの次のアドレスであるか否かを判定する。すなわち、コマンド調停部３００Ａは、コマンドＲＭＷを実行するアドレスが、次のコマンドＲＭＷＣによって退避される記憶領域のアドレスであるか否かを判定する。
【０２０４】
コマンドＲＭＷを実行するアドレスが、退避が完了したアドレスの次のアドレスである場合、ステップＳ４０４において、コマンド調停部３００Ａは、コマンドＲＭＷと、退避コマンド生成部２２０から受けるコマンドＲＭＷＣとが競合するか否かを判定する。コマンドＲＭＷ、ＲＭＷＣと競合する場合、ステップＳ４０６において、コマンド調停部３００Ａは、コマンドＲＭＷをコマンドＲＭＷＣより先に受けるか否かを判定する。なお、ステップＳ４００、Ｓ４０２、Ｓ４０４、Ｓ４０６は、並列に判定されてもよい。同じアドレスのコマンドＲＭＷ、ＲＭＷＣが競合しない場合、メモリ制御装置ＭＣＮＴの動作は、図１３に示したステップＳ３０２に戻る。
【０２０５】
コマンド調停部３００Ａは、コマンドＲＭＷをコマンドＲＭＷＣにより早く受ける場合、ステップＳ４０８において、コマンドＲＭＷに伴う読み出しコマンドを出力し、ステップＳ４１０において、コマンドＲＭＷＣに伴う読み出しコマンドを出力する。メモリインタフェース部４００は、読み出しコマンドを順次に受け、コマンドＲＭＷに伴う読み出し動作を先に実行し、コマンドＲＭＷＣに伴う読み出し動作を後に実行する。
【０２０６】
コマンド調停部３００Ａは、コマンドＲＭＷをコマンドＲＭＷＣより遅く受ける場合、ステップＳ４１２において、コマンドＲＭＷＣに伴う読み出しコマンドを出力し、ステップＳ４１４において、コマンドＲＭＷに伴う読み出しコマンドを出力する。メモリインタフェース部４００は、読み出しコマンドを順次に受け、コマンドＲＭＷＣに伴う読み出し動作を先に実行し、コマンドＲＭＷに伴う読み出し動作を後に実行する。
【０２０７】
次に、ステップＳ４１６において、コマンド調停部３００Ａは、コマンドＲＭＷＣに伴う書き込みコマンドを出力する。メモリインタフェース部４００は、書き込みコマンドを受けてコマンドＲＭＷＣに伴う書き込み動作をメモリモジュールＤＩＭＭに指示し、ステップＳ４１８において、保持回路ＡＨＬＤに保持したアドレスを更新する。
【０２０８】
次に、ステップＳ４２０において、コマンド調停部３００Ａは、コマンドＲＭＷに伴う書き込みコマンドを出力する。メモリインタフェース部４００は、保持回路ＡＨＬＤに保持されたアドレスに基づいて、コマンドＲＭＷを実行するアドレスを、退避が完了したアドレスと認識し、コマンドＲＭＷに伴う書き込み動作をランクＲＡＮＫ１に対して実行する。これにより、同じアドレスの記憶領域に対するコマンドＲＭＷ、ＲＭＷＣが競合する場合にも、コマンドＲＭＷに伴う書き込みデータを、コマンドＲＭＷＣに伴う書き込みデータにより上書きすることなくメモリモジュールＤＩＭＭに保持できる。
【０２０９】
図２０は、図１８に示したコマンド制御部１００、診断制御部２００およびコマンド調停部３００Ａにより実行される退避期間の動作の例を示している。図７と同一または同様の動作については、図７と同様に表記し、詳細な説明は省略する。この例では、リフレッシュ要求が発生しないため、ビジー信号ＢＳＹはロウレベル”Ｌ”に維持される。
【０２１０】
例えば、コマンド制御部１００は、０番目のクロックサイクル以前に、コマンドＲＭＷに伴う読み出しコマンドＲＤ（ＲＭＷ）を出力する（図２０（ａ））。診断制御部２００は、０番目のクロックサイクルにおいて、コマンドＲＭＷＣに伴う読み出しコマンドＲＤ（ＲＭＷＣ）を出力する（図２０（ｂ））。すなわち、コマンドＲＭＷ、ＲＭＷＣが重複して供給される。読み出しコマンドＲＤ（ＲＭＷ）、ＲＤ（ＲＭＷＣ）によりアクセスされるアドレスは同じであり、ランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避が完了したアドレスの次のアドレスである。
【０２１１】
コマンド調停部３００Ａは、コマンドＲＭＷがコマンドＲＭＷＣより早く供給されたと判断し、１番目のクロックＣＬＫの立ち上がりエッジに同期して読み出しコマンドＲＤ（ＲＭＷ）を選択し、アクセスコマンドＩＣＭＤとして出力する（図２０（ｃ））。読み出しコマンドＲＤ（ＲＭＷ）とともに供給されるアドレスにより示されるメモリモジュールＤＩＭＭの記憶領域は、ランクＲＡＮＫ０からランクＲＡＮＫ１にデータが退避されていない領域である。このため、読み出しコマンドＲＤ（ＲＭＷ）に応答して、ランクＲＡＮＫ０の読み出し動作が実行される。
【０２１２】
コマンド調停部３００Ａは、２番目のクロックＣＬＫの立ち上がりエッジに同期して読み出しコマンドＲＤ（ＲＭＷＣ）を選択し、アクセスコマンドＩＣＭＤとして出力する（図２０（ｄ））。読み出しコマンドＲＤ（ＲＭＷＣ）に応答して、ランクＲＡＮＫ０の読み出し動作が実行される。
【０２１３】
コマンド調停部３００Ａは、３番目のクロックＣＬＫの立ち上がりエッジに同期して書き込みコマンドＷＲ（ＲＭＷＣ）を選択し、アクセスコマンドＩＣＭＤとして出力する（図２０（ｅ））。書き込みコマンドＷＲ（ＲＭＷＣ）によるランクＲＡＮＫ１への書き込み動作の実行により、退避が完了したアドレスが更新される。
【０２１４】
コマンド調停部３００Ａは、４番目のクロックＣＬＫの立ち上がりエッジに同期して書き込みコマンドＷＲ（ＲＭＷ）を選択し、アクセスコマンドＩＣＭＤとして出力する（図２０（ｆ））。この時点で、書き込みコマンドＷＲ（ＲＭＷ）とともに供給されるアドレスは、退避が完了したアドレスである。このため、書き込みコマンドＷＲ（ＲＭＷ）による書き込み動作は、ランクＲＡＮＫ１に対して実行される。
【０２１５】
図２１は、図１８に示したコマンド制御部１００、診断制御部２００およびコマンド調停部３００Ａにより実行される退避期間の動作の別の例を示している。図７および図２０と同一または同様の動作については、図７および図２０と同様に表記し、詳細な説明は省略する。
【０２１６】
例えば、コマンド制御部１００は、０番目のクロックサイクルにおいて、コマンドＲＭＷに伴う読み出しコマンドＲＤ（ＲＭＷ）を出力する（図２１（ａ））。診断制御部２００は、０番目のクロックサイクル以前に、コマンドＲＭＷＣに伴う読み出しコマンドＲＤ（ＲＭＷＣ）を出力する（図２１（ｂ））。すなわち、コマンドＲＭＷＣ、ＲＭＷが重複して供給される。読み出しコマンドＲＤ（ＲＭＷ）、ＲＤ（ＲＭＷＣ）によりアクセスされるアドレスは同じであり、ランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避が完了したアドレスの次のアドレスである。
【０２１７】
コマンド調停部３００Ａは、１番目のクロックＣＬＫの立ち上がりエッジに同期して読み出しコマンドＲＤ（ＲＭＷＣ）を選択し、アクセスコマンドＩＣＭＤとして出力する（図２１（ｃ））。読み出しコマンドＲＤ（ＲＭＷＣ）に応答して、ランクＲＡＮＫ０の読み出し動作が実行される。
【０２１８】
コマンド調停部３００Ａは、２番目のクロックＣＬＫの立ち上がりエッジに同期して読み出しコマンドＲＤ（ＲＭＷ）を選択し、アクセスコマンドＩＣＭＤとして出力する（図２１（ｄ））。読み出しコマンドＲＤ（ＲＭＷ）とともに供給されるアドレスにより示されるメモリモジュールＤＩＭＭの記憶領域は、ランクＲＡＮＫ０からランクＲＡＮＫ１にデータが退避されていない領域である。このため、読み出しコマンドＲＤ（ＲＭＷＣ）に応答して、ランクＲＡＮＫ０の読み出し動作が実行される。
【０２１９】
この後、図２０と同様に、コマンド調停部３００Ａは、書き込みコマンドＷＲ（ＲＭＷＣ）、ＷＲ（ＲＭＷ）を順に選択し、書き込みコマンドＷＲ（ＲＭＷＣ）、ＷＲ（ＲＭＷ）による書き込み動作がランクＲＡＮＫ１に対して順次に実行される（図２１（ｅ、ｆ））。このように、退避が完了したアドレスの次のアドレスに対応するコマンドＲＭＷ、ＲＭＷＣが競合する場合、コマンド調停部３００Ａは、コマンドＲＭＷ、ＲＭＷＣの先着順に拘わらず、書き込みコマンドＷＲ（ＲＭＷＣ）、ＷＲ（ＲＭＷ）を順次に出力する。
【０２２０】
図２２は、図１８に示したメモリ制御装置ＭＣＮＴの退避期間における動作の例を示している。図１４および図１６と同一または同様の動作については、図１４および図１６と同様に表記し、詳細な説明は省略する。図２２において、供給タイミングが競合するコマンドＲＭＷ、ＲＭＷＣによりアクセスされるアドレスは同じであり、ランクＲＡＮＫ０からランクＲＡＮＫ１へのデータの退避が完了したアドレスの次のアドレスである。
【０２２１】
図２０に示したように、コマンド調停部３００Ａは、コマンドＲＤ（ＲＭＷ）の先着を判断した場合、コマンドＲＤ（ＲＭＷ）、ＲＤ（ＲＭＷＣ）、ＷＲ（ＲＭＷＣ）、ＷＲ（ＲＭＷ）を、メモリインタフェース部４００に順次に出力する（図２２（ａ、ｂ））。コマンドＲＤ（ＲＭＷ）、ＲＤ（ＲＭＷＣ）に伴う読み出し動作は、ランクＲＡＮＫ０に対して実行される。コマンドＷＲ（ＲＭＷＣ）に伴う書き込み動作の実行により、保持回路ＡＨＬＤに保持された退避が完了したアドレスが更新される（図２２（ｃ））。このため、コマンドＷＲ（ＲＭＷ）に伴う書き込み動作は、ランクＲＡＮＫ１に対して実行される。
【０２２２】
一方、図２１に示したように、コマンド調停部３００Ａは、コマンドＲＤ（ＲＭＷＣ）の先着を判断した場合、ＲＤ（ＲＭＷＣ）、コマンドＲＤ（ＲＭＷ）、ＷＲ（ＲＭＷＣ）、ＷＲ（ＲＭＷ）をメモリインタフェース部４００に順次に出力する（図２２（ｄ、ｅ））。コマンドＲＤ（ＲＭＷＣ）、ＲＤ（ＲＭＷ）に伴う読み出し動作は、ランクＲＡＮＫ０に対して実行される。コマンドＷＲ（ＲＭＷＣ）に伴う書き込み動作の実行により、保持回路ＡＨＬＤに保持された退避が完了したアドレスが更新される（図２２（ｆ））。このため、コマンドＷＲ（ＲＭＷ）に伴う書き込み動作は、ランクＲＡＮＫ１に対して実行される。
【０２２３】
以上、この実施形態においても、図１−図１７に示した実施形態と同様に、運用系メモリブロックのエラーが検出されるまで退避系メモリブロックのリフレッシュ動作を禁止することで、メモリ装置ＭＥＭの消費電力を削減できる。また、診断コマンドＤＣＭＤおよび退避コマンドＣＣＭＤがアクセスコマンドＡＣＭＤの合間に供給されるため、コントローラＣＮＴＬは、診断期間、退避準備期間および退避期間を認識することなく、所定の頻度でメモリ装置ＭＥＭにアクセスできる。
【０２２４】
さらに、同じアドレスの記憶領域に対するコマンドＲＭＷ、ＲＭＷＣが競合する場合にも、コマンドＲＭＷに伴う書き込みデータを、コマンドＲＭＷＣに伴う書き込みデータにより上書きすることなくメモリモジュールＤＩＭＭに保持できる。
【０２２５】
以上の図１から図２２に示した実施形態に関し、さらに以下の付記を開示する。
（付記１）
第１メモリブロックおよび第２メモリブロックを含むメモリ装置のアクセスを制御するメモリ制御装置において、
アクセス要求に基づいて前記第１メモリブロックまたは前記第２メモリブロックにアクセスする第１コマンドを生成する第１コマンド生成部と、
前記第１メモリブロックにアクセスする第２コマンドを生成する第２コマンド生成部と、
前記第２コマンドに応じて前記第１メモリブロックから読み出されるデータのエラーを検出する検出部と、
前記検出部による所定回数の前記エラーの検出に基づいて、前記第１メモリブロックに保持されたデータを前記第２メモリブロックに退避する第３コマンドを生成する第３コマンド生成部と、
前記検出部による前記所定回数の前記エラーの検出前に、前記第１コマンド生成部から受ける前記第１コマンドおよび前記第２コマンド生成部から受ける前記第２コマンドを、所定比率で交互に前記第１メモリブロックに出力し、前記第２メモリブロックへのデータの退避後に、前記第１コマンドを前記第２メモリブロックに出力するアクセス制御部と
を備えることを特徴とするメモリ制御装置。
（付記２）
前記アクセス制御部は、前記第２メモリブロックにデータを退避する退避期間中に、データが退避された前記第１メモリブロックの記憶領域に対する前記第１コマンドを前記第２メモリブロックに出力すること
を特徴とする付記１に記載のメモリ制御装置。
（付記３）
前記アクセス制御部は、前記第１コマンド生成部から受ける前記第１コマンドおよび前記第３コマンド生成部から受ける前記第３コマンドを、所定比率で交互に前記メモリ装置に出力すること
を特徴とする付記１または付記２に記載のメモリ制御装置。
（付記４）
前記アクセス制御部は、リードモディファイライトコマンドに基づく読み出しコマンドおよび書き込みコマンドを前記第３コマンドとして受け、前記読み出しコマンドを前記第１メモリブロックに出力し、前記書き込みコマンドを前記第２メモリブロックに出力すること
を特徴とする付記１ないし付記３のいずれか１項に記載のメモリ制御装置。
（付記５）
前記アクセス制御部は、リードモディファイライトコマンドである前記第３コマンドによりアクセスされるアドレスと、リードモディファイライトコマンドである前記第１コマンドによりアクセスされるアドレスとが同じ場合、前記第１コマンドに対応する書き込みコマンドを、前記第３コマンドに対応する書き込みコマンドの出力後に前記第２メモリブロックに出力すること
を特徴とする付記４に記載のメモリ制御装置。
（付記６）
前記検出部による前記所定回数の前記エラーの検出後、前記第２メモリブロックへのデータの退避が開始される前に、前記第２メモリブロックに所定データを書き込む第４コマンドを生成する第４コマンド生成部と、
前記第２メモリブロックへの前記所定データの書き込み後、前記第２メモリブロックへのデータの退避が開始される前に、前記第２メモリブロックのエラーを検出する第５コマンドを生成する第５コマンド生成部と
を備え、
前記第３コマンド生成部は、前記第５コマンドに基づいて前記第２メモリブロックが正常に動作すると判断された場合に、前記第３コマンドを生成すること
を特徴とする付記１ないし付記５のいずれか１項に記載のメモリ制御装置。
（付記７）
前記アクセス制御部は、
前記第１コマンド生成部から受ける前記第１コマンドおよび前記第４コマンド生成部から受ける前記第４コマンドを、所定比率で交互に前記第１メモリブロックおよび前記第２メモリブロックにそれぞれ出力し、
前記第１コマンド生成部から受ける前記第１コマンドおよび前記第５コマンド生成部から受ける前記第５コマンドを、所定比率で交互に前記第１メモリブロックおよび前記第２メモリブロックにそれぞれ出力すること
を特徴とする付記６に記載のメモリ制御装置。
（付記８）
前記アクセス制御部は、前記第４コマンドが出力される前に、前記第２メモリブロックに設定された低電力モードを解除すること
を特徴とする付記７に記載のメモリ制御装置。
（付記９）
前記アクセス制御部は、
前記第２メモリブロックに書き込む前記所定データを期待値として保持し、
前記第５コマンドに応じて前記第２メモリブロックから読み出されるデータを前記期待値と比較することにより、前記第２メモリブロックのエラーを検出すること
を特徴とする付記８に記載のメモリ制御装置。
（付記１０）
前記第３コマンド生成部は、前記検出部により、前記第１メモリブロック内の同じアドレスの記憶領域から読み出されるデータに訂正可能なエラーが複数回検出された場合に、前記第３コマンドを生成すること
を特徴とする付記１ないし付記９のいずれか１項に記載のメモリ制御装置。
（付記１１）
前記所定比率を前記メモリ制御装置の外部から書き換え可能に設定される設定部を備え、
前記アクセス制御部は、前記設定部に設定された前記所定比率に基づいて動作すること
を特徴とする付記１ないし付記１０のいずれか１項に記載のメモリ制御装置。
（付記１２）
第１メモリブロックおよび第２メモリブロックを含むメモリ装置と、
アクセス要求に基づいて第１コマンドを前記メモリ装置に出力するメモリ制御装置と、
前記アクセス要求を発行するコントローラと
を含む情報処理装置において、
前記メモリ制御装置は、
前記アクセス要求に基づいて前記第１メモリブロックまたは前記第２メモリブロックにアクセスする前記第１コマンドを生成する第１コマンド生成部と、
前記第１メモリブロックにアクセスする第２コマンドを生成する第２コマンド生成部と、
前記第２コマンドに応じて前記第１メモリブロックから読み出されるデータのエラーを検出する検出部と、
前記検出部による所定回数の前記エラーの検出に基づいて、前記第１メモリブロックに保持されたデータを前記第２メモリブロックに退避する第３コマンドを生成する第３コマンド生成部と、
前記検出部による前記所定回数の前記エラーの検出前に、前記第１コマンド生成部から受ける前記第１コマンドおよび前記第２コマンド生成部から受ける前記第２コマンドを、所定比率で交互に前記第１メモリブロックに出力し、前記第２メモリブロックへのデータの退避後に、前記第１コマンドを前記第２メモリブロックに出力するアクセス制御部と
を備えることを特徴とする情報処理装置。
（付記１３）
第１メモリブロックおよび第２メモリブロックを含むメモリ装置のアクセスを制御するメモリ制御装置の制御方法において、
アクセス要求に基づいて前記第１メモリブロックまたは前記第２メモリブロックにアクセスする第１コマンドを生成し、
前記第１メモリブロックにアクセスする第２コマンドを生成し、
前記第２コマンドに応じて前記第１メモリブロックから読み出されるデータのエラーを検出し、
所定回数の前記エラーの検出に基づいて、前記第１メモリブロックに保持されたデータを前記第２メモリブロックに退避する第３コマンドを生成し、
前記所定回数の前記エラーの検出前に、前記第１コマンドおよび前記第２コマンドを、所定比率で交互に前記第１メモリブロックに出力し、前記第２メモリブロックへのデータの退避後に、前記第１コマンドを前記第２メモリブロックに出力すること
を特徴とするメモリ制御装置の制御方法。
（付記１４）
前記第２メモリブロックにデータを退避する退避期間中に、データが退避された前記第１メモリブロックの記憶領域に対する前記第１コマンドを前記第２メモリブロックに出力すること
を特徴とする付記１３に記載のメモリ制御装置の制御方法。
（付記１５）
前記第１コマンドおよび前記第３コマンドを、所定比率で交互に前記メモリ装置に出力すること
を特徴とする付記１３または付記１４に記載のメモリ制御装置の制御方法。
（付記１６）
リードモディファイライトコマンドに基づく読み出しコマンドおよび書き込みコマンドを前記第３コマンドとして受け、前記読み出しコマンドを前記第１メモリブロックに出力し、前記書き込みコマンドを前記第２メモリブロックに出力すること
を特徴とする付記１３ないし付記１５のいずれか１項に記載のメモリ制御装置の制御方法。
（付記１７）
リードモディファイライトコマンドである前記第３コマンドによりアクセスされるアドレスと、リードモディファイライトコマンドである前記第１コマンドによりアクセスされるアドレスとが同じ場合、前記第１コマンドに対応する書き込みコマンドを、前記第３コマンドに対応する書き込みコマンドの出力後に前記第２メモリブロックに出力すること
を特徴とする付記１６に記載のメモリ制御装置の制御方法。
（付記１８）
前記所定回数の前記エラーの検出後、前記第２メモリブロックへのデータの退避が開始される前に、前記第２メモリブロックに所定データを書き込む第４コマンドを生成し、
前記第２メモリブロックへの前記所定データの書き込み後、前記第２メモリブロックへのデータの退避が開始される前に、前記第２メモリブロックのエラーを検出する第５コマンドを生成し、
前記第５コマンドに基づいて前記第２メモリブロックが正常に動作すると判断した場合に、前記第３コマンドを生成すること
を特徴とする付記１３ないし付記１７のいずれか１項に記載のメモリ制御装置の制御方法。
（付記１９）
前記第１コマンドおよび前記第４コマンドを、所定比率で交互に前記第１メモリブロックおよび前記第２メモリブロックにそれぞれ出力し、
前記第１コマンドおよび前記第５コマンドを、所定比率で交互に前記第１メモリブロックおよび前記第２メモリブロックにそれぞれ出力すること
を特徴とする付記１８に記載のメモリ制御装置の制御方法。
（付記２０）
前記第４コマンドが出力される前に、前記第２メモリブロックに設定された低電力モードを解除すること
を特徴とする付記１９に記載のメモリ制御装置の制御方法。
（付記２１）
前記第２メモリブロックに書き込む前記所定データを期待値として保持し、
前記第５コマンドに応じて前記第２メモリブロックから読み出されるデータを前記期待値と比較することにより、前記第２メモリブロックのエラーを検出すること
を特徴とする付記２０に記載のメモリ制御装置の制御方法。
（付記２２）
前記第１メモリブロック内の同じアドレスの記憶領域から読み出されるデータに訂正可能なエラーが複数回検出された場合に、前記第３コマンドを生成すること
を特徴とする付記１３ないし付記２１のいずれか１項に記載のメモリ制御装置の制御方法。
【０２２６】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０２２７】
１０、１２、１４‥コマンド生成部；１６‥アクセス制御部；１８‥検出部；３２、３４‥メモリブロック；１００‥コマンド制御部；１１０‥コマンド保持部；１２０‥ビジー検出部；１３０‥コマンド送信部；２００‥診断制御部；２１０‥診断コマンド生成部；２２０‥退避コマンド生成部；２３０‥コマンド送信部；３００、３００Ａ‥コマンド調停部；３１０‥コマンド選択部；３２０‥コマンド調整部；４００‥メモリインタフェース部；４１０‥コマンド処理部；４２０‥アクセス処理部；４３０‥データ処理部；５００‥データバッファ；ＡＣＭＤ‥アクセスコマンド；ＡＨＬＤ‥保持回路；ＡＲＥＱ‥アクセス要求；ＢＡＮＫ‥バンク；ＣＣＭＤ‥退避コマンド；ＣＮＴＬ‥コントローラ；ＣＲＥＱ‥開始要求；ＤＩＭＭ‥メモリモジュール；ＥＤＣＣ‥エラー検出訂正回路；ＥＨＬＤ‥保持回路；ＭＣＮＴ‥メモリ制御装置；ＤＣＭＤ‥診断コマンド；ＥＤＥＴ‥検出通知；ＭＥＭ‥メモリ装置；ＮＴＣＣ、ＮＴＣＤ‥通知；ＰＥＲＡ、ＰＥＲＤ‥許可通知；ＲＡＮＫ‥ランク；ＲＥＱＡ、ＲＥＱＤ‥要求通知；ＲＲＥＧ‥レジスタ；ＲＳＬＴＣ、ＲＳＬＴＤ‥実行結果
【図１】
2014038461.tif 000003
【図２】
2014038461.tif 000004
【図３】
2014038461.tif 000005
【図４】
2014038461.tif 000006
【図５】
2014038461.tif 000007
【図６】
2014038461.tif 000008
【図７】
2014038461.tif 000009
【図８】
2014038461.tif 000010
【図９】
2014038461.tif 000011
【図１０】
2014038461.tif 000012
【図１１】
2014038461.tif 000013
【図１２】
2014038461.tif 000014
【図１３】
2014038461.tif 000015
【図１４】
2014038461.tif 000016
【図１５】
2014038461.tif 000017
【図１６】
2014038461.tif 000018
【図１７】
2014038461.tif 000019
【図１８】
2014038461.tif 000020
【図１９】
2014038461.tif 000021
【図２０】
2014038461.tif 000022
【図２１】
2014038461.tif 000023
【図２２】
2014038461.tif 000024