(57)【要約】【課題】本発明の課題は、複数のデバイスから構成されるシステムにおいて、不具合の原因を推定するために活用可能な情報を提供することである。【解決手段】本発明によれば、メモリに対してデータの書き込み又は読み出しを行うメモリコントローラと、該メモリコントローラに命令を送信するシステムコントローラとを備えるメモリシステムにおいて、データがメモリに書き込まれてから読み出しエラーが発生するまでの経過時間と当該データの読み出し回数を取得することができる。そのため、システムの不具合の原因を推定するために活用可能な情報を提供できるという効果を有する。【選択図】図５
2008287351.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対してデータの書き込み又は読み出しを行うメモリコントローラと、該メモリコントローラに命令を送信するシステムコントローラとを備えるメモリシステムにおいて、
該メモリコントローラは、データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加手段と、
該データの読み出しエラーを検出するエラー検出手段と、
該データが該メモリに書き込まれてから、該エラー検出手段が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測手段と、
該エラー検出手段が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得手段と、
を有することを特徴とするメモリシステム。
【請求項２】
該データには、誤り訂正符号が付加されており、
該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正手段を有し、
該付加手段は、該誤り訂正手段がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする請求項１記載のメモリシステム。
【請求項３】
該誤り訂正手段が誤りを検出したデータのアドレスを格納する格納手段を有し、
該付加手段は、該誤り訂正手段がデータの誤りを検出しており、かつ、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする請求項２記載のメモリシステム。
【請求項４】
該付加手段は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする請求項３記載のメモリシステム。
【請求項５】
該エラー検出手段は、該パリティビットに基づいてデータの読み出しエラーを検出することを特徴とする請求項４記載のメモリシステム。
【請求項６】
メモリに対してデータの書き込み又は読み出しを行うメモリコントローラにおいて、
データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加手段と、
該データの読み出しエラーを検出するエラー検出手段と、
該データが該メモリに書き込まれてから、該エラー検出手段が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測手段と、
該エラー検出手段が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得手段と、
を有することを特徴とするメモリコントローラ。
【請求項７】
該データには、誤り訂正符号が付加されており、
該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正手段を有し、
該付加手段は、該誤り訂正手段がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする請求項６記載のメモリコントローラ。
【請求項８】
該誤り訂正手段が誤りを検出したデータのアドレスを格納する格納手段を有し、
該付加手段は、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータを該メモリに書き込む際、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする請求項７記載のメモリコントローラ。
【請求項９】
該付加手段は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする請求項８記載のメモリコントローラ。
【請求項１０】
該エラー検出手段は、該パリティビットに基づいて読み出しエラーを検出することを特徴とする請求項９記載のメモリコントローラ。
【請求項１１】
メモリに対してデータの書き込み又は読み出しを行うメモリコントローラを制御する制御方法において、
データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加工程と、
該データの読み出しエラーを検出するエラー検出工程と、
該データが該メモリに書き込まれてから、該エラー検出工程が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測工程と、
該エラー検出工程が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得工程と、
を有することを特徴とする制御方法。
【請求項１２】
該データには、誤り訂正符号が付加されており、
該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正工程を有し、
該付加工程は、該誤り訂正工程がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする請求項１１記載の制御方法。
【請求項１３】
該メモリコントローラは該誤り訂正工程が誤りを検出したデータのアドレスを格納する格納手段を有し、
該付加工程は、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータを該メモリに書き込む際、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする請求項１２記載の制御方法。
【請求項１４】
該付加工程は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする請求項１３記載の制御方法。
【請求項１５】
該エラー検出工程は、該パリティビットに基づいて読み出しエラーを検出することを特徴とする請求項１４記載の制御方法。
【請求項１６】
メモリに対してデータの書き込み又は読み出しを行うメモリコントローラを制御する制御プログラムであって、該メモリコントローラを、
データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加手段、
該データの読み出しエラーを検出するエラー検出手段、
該データが該メモリに書き込まれてから、該エラー検出手段が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測手段、
該エラー検出手段が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得手段、
として機能させることを特徴とする制御プログラム。
【請求項１７】
該データには、誤り訂正符号が付加されており、
該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正手段として機能させ、
該付加手段は、該誤り訂正手段がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする請求項１６記載の制御プログラム。
【請求項１８】
該メモリコントローラは該誤り訂正手段が誤りを検出したデータのアドレスを格納する格納手段を有し、
該付加手段は、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータを該メモリに書き込む際、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする請求項１７記載の制御プログラム。
【請求項１９】
該付加手段は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする請求項１８記載の制御プログラム。
【請求項２０】
該エラー検出手段は、該パリティビットに基づいて読み出しエラーを検出することを特徴とする請求項１９記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムの不具合の原因の推定に関する。
【背景技術】
【０００２】
中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、システムコントローラ、メモリコントローラ及びメモリモジュール等の複数のデバイスから構成されるシステムがある。このようなシステムを構成するにあたり、まずは各デバイスが正常に動作するか否かを確認する試験を行う。その後、試験を通過したデバイスのみからシステムを構成する。
【０００３】
しかし、試験を通過したデバイスのみからシステムを構成しても、各デバイスの試験で検出されなかった異常が原因でシステムに不具合が発生してしまうことがある。ここで、不具合の原因がデバイスまたはシステムのどちらにあるかを特定するのは困難であり、多大な労力がかかってしまう。
【０００４】
先行技術文献としては下記のものがある。
【特許文献１】特開平１１−１２０７１５号公報
【特許文献２】特開２００６−３１７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、複数のデバイスから構成されるシステムにおいて、不具合の原因を推定するために活用可能な情報を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、メモリに対してデータの書き込み又は読み出しを行うメモリコントローラと、該メモリコントローラに命令を送信するシステムコントローラとを備えるメモリシステムにおいて、該メモリコントローラは、データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加手段と、該データの読み出しエラーを検出するエラー検出手段と、該データが該メモリに書き込まれてから、該エラー検出手段が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測手段と、該エラー検出手段が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得手段とを有することを特徴とする。
【０００７】
また、本発明は、該データには、誤り訂正符号が付加されており、該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正手段を有し、該付加手段は、該誤り訂正手段がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする。
【０００８】
また、本発明は、該誤り訂正手段が誤りを検出したデータのアドレスを格納する格納手段を有し、該付加手段は、該誤り訂正手段がデータの誤りを検出しており、かつ、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする。
【０００９】
また、本発明は、該付加手段は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする。
【００１０】
また、本発明は、該エラー検出手段は、該パリティビットに基づいてデータの読み出しエラーを検出することを特徴とする。
【００１１】
また、本発明は、メモリに対してデータの書き込み又は読み出しを行うメモリコントローラにおいて、データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加手段と、該データの読み出しエラーを検出するエラー検出手段と、該データが該メモリに書き込まれてから、該エラー検出手段が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測手段と、該エラー検出手段が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得手段とを有することを特徴とする。
【００１２】
また、本発明は、該データには、誤り訂正符号が付加されており、該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正手段を有し、該付加手段は、該誤り訂正手段がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする。
【００１３】
また、本発明は、該誤り訂正手段が誤りを検出したデータのアドレスを格納する格納手段を有し、該付加手段は、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータを該メモリに書き込む際、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする。
【００１４】
また、本発明は、該付加手段は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする。
【００１５】
また、本発明は、該エラー検出手段は、該パリティビットに基づいて読み出しエラーを検出することを特徴とする。
【００１６】
また、本発明は、メモリに対してデータの書き込み又は読み出しを行うメモリコントローラを制御する制御方法において、データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加工程と、該データの読み出しエラーを検出するエラー検出工程と、該データが該メモリに書き込まれてから、該エラー検出工程が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測工程と、該エラー検出工程が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得工程とを有することを特徴とする。
【００１７】
また、本発明は、該データには、誤り訂正符号が付加されており、該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正工程を有し、該付加工程は、該誤り訂正工程がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする。
【００１８】
また、本発明は、該メモリコントローラは該誤り訂正工程が誤りを検出したデータのアドレスを格納する格納手段を有し、該付加工程は、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータを該メモリに書き込む際、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする。
【００１９】
また、本発明は、該付加工程は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする。
【００２０】
また、本発明は、該エラー検出工程は、該パリティビットに基づいて読み出しエラーを検出することを特徴とする。
【００２１】
また、本発明は、メモリに対してデータの書き込み又は読み出しを行うメモリコントローラを制御する制御プログラムであって、該メモリコントローラを、データを該メモリに書き込む際、該データに対応した時間情報を該データに付加する付加手段、該データの読み出しエラーを検出するエラー検出手段、該データが該メモリに書き込まれてから、該エラー検出手段が読み出しエラーを検出するまでの該データが読み出された回数を計測する計測手段、該エラー検出手段が読み出しエラーを検出した場合、該読み出しエラーを検出した時間情報と、該データに付加された時間情報を取得する時間情報取得手段として機能させることを特徴とする。
【００２２】
また、本発明は、該データには、誤り訂正符号が付加されており、該メモリに書き込まれたデータを読み出す際、該誤り訂正符号に基づいて、データの誤り検出及び誤り訂正を行う誤り訂正手段として機能させ、該付加手段は、該誤り訂正手段がデータの誤りを検出した場合は、該データを該メモリに書き込む際、該データに対応した時間情報を該データに付加することを特徴とする。
【００２３】
また、本発明は、該メモリコントローラは該誤り訂正手段が誤りを検出したデータのアドレスを格納する格納手段を有し、該付加手段は、該アドレスに基づき、データの誤りが検出されたアドレスに新たなデータを書き込むと判定した場合、該新たなデータを該メモリに書き込む際、該新たなデータに対応した時間情報を該新たなデータに付加することを特徴とする。
【００２４】
また、本発明は、該付加手段は、該誤り訂正符号を該データに対応した時間情報と、該データの読み出しエラーを検出するためのパリティビットに置換することにより、該データに該時間情報と該パリティビットを付加することを特徴とする。
【００２５】
また、本発明は、該エラー検出手段は、該パリティビットに基づいて読み出しエラーを検出することを特徴とする。
【発明の効果】
【００２６】
本発明によれば、データがメモリに書き込まれてから読み出しエラーが発生するまでの経過時間と当該データの読み出し回数を取得することができる。そのため、システムの不具合の原因を推定するために活用可能な情報を提供できるという効果を有する。
【発明を実施するための最良の形態】
【００２７】
以下に図面を用いて本発明の実施の形態について説明する。
【００２８】
図１は、メモリシステムの全体構成図である。メモリシステム５００は、ＣＰＵ４００、メモリモジュール２００、メモリコントローラ１００及びシステムコントローラ３００から構成される。さらに、メモリコントローラ１００は、１つ以上のメモリモジュール２００とメモリデータバス２０１を介して接続される。システムコントローラ３００は、１つ以上のＣＰＵ４００とＣＰＵデータバス３０１を介して接続される。
【００２９】
システムコントローラ３００は、ＣＰＵ４００及びメモリコントローラ１００を制御する。システムコントローラ３００は、メモリコントローラ１００に、同期制御とメモリアクセスを命令する。メモリコントローラ１００は、システムコントローラ３００からの命令に基づいてメモリアクセスを行う。
【００３０】
図２は、実施形態の例を示すものである。図１のシステム全体構成図のうち、特にメモリコントローラ１００、メモリモジュール２００を表している。メモリモジュール２００へのデータライト時には、メモリコントローラ１００は、システムコントローラ３００からライトするデータをライトデータキュー１０２に受信する。そして、メモリコントローラ１００は、メモリモジュール２００に対して、ライトを実行する。メモリコントローラ１００が１回のライトを実行する際に、メモリモジュール２００に送信するデータ形式を図３に表す。図３に表すように、データは、例えば、ｎ（ｎ≧１）×８Ｂｙｔｅから構成される。そして、各８Ｂｙｔｅデータには、例えば、８ｂｉｔの誤り訂正符号（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ）が付加されている。メモリコントローラ１００は、８Ｂｙｔｅデータと当該データに付加された誤り訂正符号をｎ回（ｎ≧１）でメモリモジュール２００に送信する。このようにして、メモリコントローラ１００は、データをメモリモジュール２００にライトする。
【００３１】
メモリモジュール２００からのデータリード時には、メモリコントローラ１００は、メモリモジュール２００に対して、必要な回数リードを実行する。メモリコントローラ１００が１回のリードを実行する際に、メモリモジュール２００から受信するデータ形式は、ライトを実行する際のデータ形式と同様であり、図３に表したとおりである。
【００３２】
メモリコントローラ１００は、メモリモジュール２００からのデータのリード後、リードしたデータ及び当該データに付加された誤り訂正符号に基づいて、誤り検出及び訂正を行う。誤り検出及び訂正によりデータの誤り検出及び訂正を行った後、メモリコントローラ１００はデータをリードデータキュー１０４に受信し、リードデータをシステムコントローラ３００へ送信する。誤り検出及び訂正により、１ビットエラーは自動訂正され、システムの継続運転が可能となっている。また、２ビットエラーについては、確実に問題を検出し、安全にシステムを停止することができる。メモリコントローラ１００は、誤り検出及び訂正により検出したエラー情報をエラーレジスタに格納する。ここで、エラーレジスタとは専用の経路を用いてファームウェアにより読み出し可能なレジスタであり、必要に応じてエラー情報が読み出される。
【００３３】
タイムスタンプ書き込み部１０８は、ライトデータの誤り訂正符号をパリティビットに置き換える。また、メモリシステムを駆動するためのシステムクロック（図示せず）から取得した時間情報に基づいてタイムスタンプを生成する手段を備える。タイムスタンプとは、一般には、データがいつ作成され、その後現在まで修正が行われていないかを客観的に証明するための技術である。タイムスタンプ書き込み部１０８はライトデータの形式を図４に表したように誤り訂正符号をライト時のタイムスタンプとデータのリードエラーを検出するためのパリティビットに置き換える。図４に表したように、データ１からデータnに付加されていた誤り訂正符号ｎ個分のデータ、即ち、ｎ×８ｂｉｔのデータをタイムスタンプと、パリティビットに置き換える。ここでは、１ｂｉｔをパリティビットを付加するために使用し、残りの（ｎ×８−１）ビットをタイムスタンプを付加するために使用する。これによれば、データにタイムスタンプ及びパリティビットを付加しても、データ量が大きくなることがない。
【００３４】
データチェック部１１０は、リードデータの誤り検出及び訂正を行う。さらに、タイムスンプが付加されたデータについてはパリティチェックを行うとともに、タイムスタンプ及びパリティビットが付加されたデータを、図３に表したように誤り訂正符号が付加されたデータに戻す。
【００３５】
タイムスタンプ読み出し部１１２は、タイムスタンプが付加されたリードデータからデータライト時のタイムスタンプを取得する。さらに、タイムスタンプ読み出し部１１２は、データリード時のタイムスタンプを取得する。
【００３６】
エラーアドレスカウント部１１４は、通常動作中にデータチェック部１１０においてリードエラーが検出されたデータのメモリアクセスアドレス（エラー発生アドレス）を格納する。さらに、エラーアドレスカウント部１１４は、エラー発生アドレスに対するデータリード回数をカウントするカウンタを備える。カウンタは、エラー発生アドレスに対して、データリードが行われる毎にカウントアップする。また、カウンタは、エラー発生アドレスに対してデータライトが行われるとカウントアップした値をクリアする。
【００３７】
通常動作中において、エラーアドレスカウント部１１４は、データリード時にリードエラーを検出した場合は、エラーが発生したメモリアクセスアドレスを格納する。エラー発生後は、エラー発生アドレスに対しては、タイムスタンプ書き込み部１０８が、データにタイムスタンプを付加してメモリモジュール２００にライトする。タイムスタンプが付加されたデータがデータライトされた後、エラー発生アドレスに対するデータリード時は、データチェック部１１０は、パリティチェックによるデータチェックを行う。
【００３８】
メモリモジュール２００のエラー発生アドレスに格納されたデータにおいて、パリティチェックによってリードエラーが検出された場合は、エラー発生アドレス、データのリード回数、当該データのデータライト時のタイムスタンプ及びリードエラー検出時のタイムスタンプの各種情報がエラーレジスタ１１６に格納される。そして、タイムスタンプが付加されたデータがパリティチェックによって、リードエラーが検出された時点で、データの訂正が不可能なためシステムは停止する。そのため、ファームウェアにより専用の読み出し経路を用いてエラーレジスタ１１６から各種情報を読み出す。
【００３９】
図５は、本発明の実施の形態におけるメモリコントローラの実施例を表す。図５において、実線はデータまたはアドレスの流れを表す。点線は制御信号の流れを表す。
【００４０】
図２において説明したタイムスタンプ書き込み部１０８は、タイムスタンプ生成回路１１８、ＰＧ（Ｐａｒｉｔｙ  Ｇｅｎｅｒａｔｏｒ）１２０、セクレタ６０２から構成される。
【００４１】
ライトデータキュー１０２はライトデータバス３０２を介して、システムコントローラ３００からライトデータを受信する。ライトデータキュー１０２は、ライトデータの順序を保つために、システムコントローラ３００から送信されてきた順序でライトデータをメモリモジュール２００に送信する必要がある。そのため、ライトデータキュー１０２は、受信したデータをＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）で制御する。具体的には、ライトデータキュー１０２は、メモリモジュール２００がライトデータの受け付けが可能であるか否かを判定する。ライトデータの受け付けが可能であった場合は、ライトデータキュー１０２は、ライトデータをメモリモジュール２００に書き込むために、ＰＧ１２０またはセレクタ６０２に送信する。
【００４２】
ＰＧ１２０は、ライトデータキュー１０２からライトデータを受信する。そして、ライトデータに付加されている誤り訂正符号をパリティビットに置き換える。図４に表したように、ｎ×８ｂｙｔｅ、即ち、ｎ×６４ｂｉｔのデータの、「１」の数の合計が偶数であれば「１」のデータを、「１」の数の合計が奇数であれば「０」のデータをパリティビットとして付加する。１ｂｉｔエラーが発生すると「１」の数の合計が変化するので、エラーを検出することができる。
【００４３】
タイムスタンプ生成回路１１８は、システムを駆動するためのシステムクロックからクロック信号を受信する。タイムスタンプ生成回路１１８は、システムクロックが一定数経過する毎にカウントアップすることで、システム起動時からの経過時間を示す情報であるタイムスタンプを生成する。また、カウントするシステムクロックの数量は予め任意の値に設定可能であり、タイムスタンプの単位（タイムスケール）を任意に設定可能である。タイムスタンプ生成回路１１８は、生成したタイムスタンプをライトデータに付加するためにＰＧ１２０に送信する。
【００４４】
ＰＧ１２０は、タイムスタンプ生成回路１１８からタイムスタンプを受信する。そして、タイムスタンプをライトデータに付加する。さらに、ＰＧ１２０は、生成したパリティビットをライトデータに付加する。ライトするデータ形式を図４に表す。このように、ＰＧ１２０は、ライトデータに付加された誤り訂正符号を、タイムスタンプ２０６及びパリティビット２０７に置き換える。ここで、図４のタイムスタンプフィールドに書き込まれるタイムスタンプとは、例えば、システムクロックに基づいて、タイムスタンプ生成回路１１８がカウントアップした値である。
【００４５】
セレクタ６０２は、ライトデータキュー１０２から送信されてきたデータと、ＰＧ１２０から送信されてきたデータのいずれかをメモリモジュール２００に送信するかを選択する。コンパレータ１０３が、エラーアドレスレジスタ１２８に格納されているエラー発生アドレスとアドレスバス３０６を介して、アドレスキュー１０６が受信したアドレスとが一致するか否かを判定することで、セレクタ６０２は、いずれかのデータをメモリモジュール２００に送信するかを選択できるようになる。エラー発生アドレスと、アドレスキュー１０６が受信したアドレスとが一致しない場合、セレクタ６０２は送信経路を切り替えることで、ライトデータキュー１０２は、ライトデータをセレクタ６０２に送信できるようになる。一方、エラー発生アドレスと、アドレスキュー１０６が受信したアドレスとが一致する場合、セレクタ６０２は送信経路を切り替えることで、ライトデータキュー１０２は、ライトデータをＰＧ１２０に送信できるようになる。なお、コンパレータ１０３については、後述する。
【００４６】
図２において説明したデータチェック部１１０は、ＰＣ（Ｐａｒｉｔｙ  Ｃｈｅｃｋｅｒ）１２６、ＥＣＣＣＨＫ（ＥＣＣ  ＣＨＥＣＫＥＲ）１２２、ＥＣＣＧＥＮ（ＥＣＣ  Ｇｅｎｅｒａｔｏｒ）１２４、セレクタ６０４から構成される。ＰＣ１２６は、リードデータにパリティビットが付加されている状態の時に、リードデータのパリティチェックを行う。ＥＣＣＣＨＫ１２２は、リードデータに誤り訂正符号が付加されている状態の時に、リードデータの誤り検出及び訂正を行う。ＥＣＣＧＥＮ１２４は、リードデータにパリティビットが付加されている状態の時に、誤り訂正符号を生成する。
【００４７】
ＰＣ１２６は、メモリデータバス２０８を介してメモリモジュール２００からリードデータを受信する。ＰＣ１２６は、当該リードデータを受信した時点でのパリティチェックを行う。パリティチェックは、リードデータ中の「１」の数の合計が偶数または奇数のいずかであるかを判定し、判定結果とパリティビットとに基づいて受信したリードデータのエラーを検出する。リードデータ中の「１」の数の合計が偶数であれば、パリティビットは「１」となっており、リードデータ中の「１」の数の合計が奇数であれば、パリティビットは「０」となっている。ＰＣ１２６は、パリティビットとリードデータ中の「１」の数の合計の奇偶性に基づいてリードデータのエラーを検出することができる。ＰＣ１２６は、リードデータ及びパリティチェックの結果をタイムスタンプ解析回路１３２に送信する。
【００４８】
ＥＣＣＣＨＫ１２２は、メモリデータバス２０８を介して、メモリモジュール２００からリードデータを受信する。ＥＣＣＣＨＫ１２２は、受信したリードデータの誤り検出及び訂正を行う。本実施例では、８ｂｙｔｅのデータに誤り訂正符号が付加されている。当該誤り訂正符号は、８ｂｙｔｅのデータの並びを８ｂｉｔで定義したものである。ＥＣＣＣＨＫ１２２は、メモリモジュール２００からメモリデータバス２０８を介して受信したリードデータに基づいて、当該リードデータを受信した時点での誤り訂正符号を生成する。次に、生成した誤り訂正符号とリードデータに付加された誤り訂正符号とを比較する。比較の結果、誤り訂正符号の値が同じであれば、データにエラーがないと判定することができる。一方、比較の結果、誤り訂正符号の値が異なると、データにエラーが発生していると判定することができる。誤り検出及び訂正を行った結果、リードエラーを検出しなかった場合は、ＥＣＣＣＨＫ１２２は、リードデータをセレクタ６０４に送信する。一方、リードエラーを検出した場合は、ＥＣＣＣＨＫ１２２は、誤り訂正符号から正しいデータを算出して、データの訂正を行う。そして、リードデータが格納されていたメモリモジュール２００のアドレスをエラーアドレスレジスタ１２８に格納するために、制御信号をエラーアドレスレジスタ１２８に送信する。エラーアドレスレジスタ１２８は、当該制御信号を受信すると、アドレスキューからリードデータが格納されていたメモリモジュール２００のアドレスを取得する。なお、エラーアドレスレジスタ１２８については後述する。
【００４９】
ＥＣＣＧＥＮ１２４は、メモリデータバス２０８を介してメモリモジュール２００からリードデータを受信する。ＥＣＣＧＥＮ１２４は、リードデータから誤り訂正符号を生成する。そして、リードデータに付加されたタイムスタンプ及びパリティビットを誤り訂正符号に置き換える。ＥＣＣＧＥＮ１２４は、誤り訂正符号を付加したリードデータをセレクタ６０４に送信する。
【００５０】
セレクタ６０４は、ＥＣＣＣＨＫ１２２から送信されてきたデータと、ＥＣＣＧＥＮ１２４から送信されてきたデータのいずれかをリードデータキュー１０４に送信するかを選択する。コンパレータ１０３が、エラーアドレスレジスタ１２８に格納されているエラー発生アドレスとアドレスバス３０６を介して、アドレスキュー１０６が受信したアドレスとが一致するか否かを判定することで、セレクタ６０４は、いずれかのデータをリードデータキュー１０４に送信するかを選択できるようになる。エラー発生アドレスと、アドレスキュー１０６が受信したアドレスとが一致しない場合、セレクタ６０４は、リードデータの送信経路をＥＣＣＣＨＫ１２２側に切り替える。これによって、リードデータキュー１０４は、ＥＣＣＣＨＫ１２２が送信したリードデータを受信することができるようになる。ゆえに、リードデータに誤り訂正符号が付加されている場合は、ＥＣＣＣＨＫ１２２によって、誤り検出及び誤り訂正が行われたリードデータをリードデータキュー１０４に送信することができる。一方、エラー発生アドレスと、アドレスキュー１０６が受信したアドレスとが一致する場合、セレクタ６０４は、リードデータの送信経路をＥＣＣＧＥＮ１２４側に切り替える。これによって、リードデータキュー１０４は、ＥＣＣＧＥＮ１２４が送信したリードデータを受信することができるようになる。ゆえに、リードデータにパリティチェックビットが付加されている場合は、ＥＣＣＧＥＮ１２４によって、誤り訂正符号が付加されたリードデータをリードデータキュー１０４に送信することができる。なお、コンパレータ１０３については、後述する。
【００５１】
リードデータキュー１０４は、リードデータの順序を保つために、ＥＣＣＣＨＫ１２２またはＥＣＣＧＥＮ１２４から送信されてきた順序でリードデータをシステムコントローラ３００に送信する必要がある。そのため、リードデータキュー１０４は、受信したリードデータをＦＩＦＯで制御する。具体的には、リードデータキュー１０４は、システムコントローラ３００がリードデータの受け付けが可能であるか否かを判定する。リードデータの受け付けが可能であった場合は、リードデータキュー１０４は、リードデータをリードデータバス３０４を介してシステムコントローラ３００に送信する。
【００５２】
図２において説明したエラーアドレスカウント部１１４は、エラーアドレスレジスタ１２８、リードカウンタ１３０、コンパレータ１０３から構成される。
【００５３】
アドレスキュー１０６は、システムコントローラ３００からアドレスバス３０６を介してアドレスを受信する。そして、受信したアドレスをメモリアドレスバス２１０を介してメモリモジュール２００に送信する。また、アドレスキュー１０６は、アドレスバス３０６から送信されてきたアドレスをコンパレータ１０３及びエラーアドレスレジスタ１２８に送信する。
【００５４】
エラーアドレスレジスタ１２８は、上述したＥＣＣＣＨＫ１２２から制御信号を受信するとアドレスキューからリードエラーが発生したリードデータが格納されていたメモリモジュール２００のアドレスを取得する。そして、コンパレータ１０３にエラーアドレスレジスタ１２８に格納されているエラー発生アドレスと、アドレスキュー１０６が受信したアドレスとが一致するか否かを判定させるために、エラー発生アドレスを送信する。
【００５５】
コンパレータ１０３は、アドレスキュー１０６から送信されてきたアドレスと、エラーレジスタ１２８から送信されてきたエラー発生アドレスを受信する。そして、両者が一致するか否かを判定する。アドレスキュー１０６から送信されてきたアドレスと、エラーアドレスとが一致した場合は、リードカウンタ１３０をカウントアップさせるために、制御信号をリードカウンタ１３０に送信する。また、タイムスタンプ解析回路１３２に、リードデータに付加されたタイムスタンプを取得させるための制御信号を送信する。なお、タイムスタンプ解析回路については後述する。
【００５６】
リードカウンタ１３０は、コンパレータ１０３から制御信号を受信する。制御信号を受信すると、カウントアップする。リードカウンタ１３０は、エラー発生アドレスに新たにタイムスタンプが付加されたデータがライトされてからリードエラーとなるまでのデータリード回数をカウントする。リードカウンタ１３０は、エラー発生アドレスに対してデータリードされる毎にカウントアップし、当該アドレスに対して新にライトデータがライトされる毎にクリアする。リードカウンタ１３０は、エラー発生アドレスに新たにタイムスタンプが付加されたデータがライトされた後、当該データがリードエラーとなった場合、エラーレジスタ１１６にカウントアップしたリード回数に関するデータを送信する。
【００５７】
図２において説明したタイムスタンプ読み出し部１１２は、タイムスタンプ生成回路１１８、タイムスタンプ解析回路１３２から構成される。
【００５８】
タイムスタンプ解析回路１３２は、ＰＣ１２６からリードデータ及びパリティチェックの結果を受信する。また、コンパレータ１０３から制御信号を受信する。そして、コンパレータ１０３から制御信号を受信し、かつ、ＰＣ１２６からリードデータのエラーを検出したことを受信した場合は、リードデータに付加されているタイムスタンプを取得する。コンパレータ１０３から制御信号を受信する場合とは、当該リードデータが格納されていたメモリモジュール２００のアドレスと、エラー発生アドレスとが一致している場合である。これによって、タイムスタンプ生成回路１３２は、ＰＣ１２６が、エラー発生アドレスに格納されていたリードデータのエラーを検出したか否かを判定することができる。そして、タイムスタンプ解析回路１３２は、リードデータのエラーが検出された時点のタイムスタンプをタイムスタンプ生成回路１１８から取得する。さらに、リードデータから取得したタイムスタンプと、タイムスタンプ生成回路１１８から取得したタイムスタンプとをエラーレジスタ１１６に送信する。
【００５９】
ここで、ＰＣ１２６は、リードデータに誤り訂正符号が付加されている場合も、当該リードデータの誤り検出を行う。この場合は、リードデータにパリティチェックビットが付加されていないので、ＰＣ１２６はリードデータの誤りを検出し、タイムスタンプ解析回路１３２にはリードデータとともにエラーを検出したことを送信する。しかし、リードデータに誤り訂正符号が付加されているということは、当該リードデータはメモリモジュール２００のエラー発生アドレスには格納されていなかったことになる。ゆえに、コンパレータ１０３から、制御信号を受信することはないため、タイムスタンプ解析回路はＰＣ１２６がエラーを検出したことを無視することができる。
【００６０】
エラーレジスタ１１６は、リードカウンタ１３０から送信されてきたリード回数に関するデータを受信する。また、タイムスタンプ解析回路１３２から送信されてきたタイムスタンプを受信する。
【００６１】
以下に図６を用いて、メモリモジュールへのライト動作の制御処理について説明する。
る。
【００６２】
ステップＳ００１において、ライトデータキュー１０２は、システムコントローラ３００からライトデータバス３０２を介してライトデータが送信されてきたか否かを判定する。ライトデータが送信されてきた場合は、処理はステップＳ００２へ移行する。
【００６３】
ステップＳ００２において、エラーアドレスレジスタ１２８は、エラー発生アドレスを格納しているか否かを判定される。エラーアドレスレジスタ１２８にエラー発生アドレスが記憶されている場合は、処理はステップＳ００３へ移行する。一方、エラーアドレスレジスタ１２８にエラー発生アドレスが記憶されていない場合は、処理はステップＳ００６へ移行し、メモリコントローラ１００はライトデータをメモリモジュール２００にライトする。なお、エラー発生アドレスについては、メモリモジュール２００のリード動作の制御処理において詳細に説明する。
【００６４】
ステップＳ００３において、コンパレータ１０３は、データライトアドレスとエラー発生アドレスとが一致するか否かを判定する。具体的には、エラーアドレスレジスタ１２８に格納されているエラー発生アドレスと、アドレスバス３０６を経由してアドレスキュー１０６に送信されてきたメモリアドレスとが一致するか否かを判定する。データライトアドレスとエラー発生アドレスとが一致した場合は、処理はステップＳ００４へ移行する。一方、データライトアドレスとエラー発生アドレスとが一致しない場合は、処理はステップＳ００６へ移行し、メモリコントローラ１００はライトデータをメモリモジュール２００にライトする。
【００６５】
ステップＳ００４において、ＰＧ１２０は、ライトデータに基づいてパリティビットを生成する。そして、ライトデータに付加されている誤り訂正符号をパリティビットに置き換える。これによれば、後述するＰＣ１２６が、パリティチェックを行い、エラー発生アドレスにライトされたデータを正常にリードできたか否かを判定することが可能になる。処理はステップＳ００５へ移行する。
【００６６】
ステップＳ００５において、タイムスタンプ生成回路１１８は、システムクロックから取得した時間情報に基づいて生成したライト時のタイムスタンプを取得する。そして、当該タイムスタンプをＰＧ１２０に送信する。ＰＧ１２０は、ライトデータに付加されている誤り訂正符号をタイムスタンプに置き換える。処理はステップＳ００６へ移行する。
【００６７】
ステップＳ００６において、セレクタ６０２は、ＰＧから送信されてきたライトデータを選択することで、ステップＳ００４において生成したパリティビットと、ステップＳ００５においてタイムスタンプ生成回路１１８から取得したタイムスタンプとを付加したライトデータをメモリデータバス２０８を介してメモリモジュール２００に送信する。そして、データにタイムスタンプ及びパリティビットが付加されたデータがメモリモジュール２００にライトされる。これによれば、後述するタイムスタンプ解析回路１３２が、エラー発生アドレスにデータが書き込まれたタイムスタンプを取得することが可能になる。さらに、タイムスタンプに基づいて、データがメモリモジュール２００にライトされてからリードエラーが発生するまでの経過時間を取得することができる。処理は終了する。
【００６８】
以下に図７を用いて、メモリモジュールへのリード動作の制御処理について説明する。
【００６９】
ステップＳ１０１において、メモリコントローラ１００は、データリードを行う。処理はステップＳ１０２へ移行する。
【００７０】
ステップＳ１０２において、エラーアドレスレジスタ１２８は、エラー発生アドレスを格納しているか否かを判定する。エラーアドレスレジスタ１２８にエラー発生アドレスが記憶されている場合は、処理はステップＳ１０６へ移行する。一方、エラーアドレスレジスタ１２８にエラー発生アドレスが記憶されていない場合は、処理はステップＳ１０３へ移行する。
【００７１】
ステップＳ１０３において、ＥＣＣＣＨＫ１２２は、リードデータに付加されている誤り訂正符号に基づいてリードデータの誤り検出及び誤り訂正を行う。処理はステップＳ１０４へ移行する。
【００７２】
ステップＳ１０４において、ＥＣＣＣＨＫ１２２は、リードエラーを検出したか否かを判定する。ＥＣＣＣＨＫ１２２がリードエラーを検出した場合は、処理はステップＳ１０５へ移行する。一方、ＥＣＣＣＨＫ１２２がリードエラーを検出しなかった場合は、処理は終了する。
【００７３】
ステップＳ１０５において、ＥＣＣＣＨＫ１２２は、エラー発生アドレスをエラーアドレスレジスタ１２８に格納するために、制御信号をエラーアドレスレジスタ１２８に送信する。エラーアドレスレジスタ１２８は当該制御信号を受信すると、アドレスキュー１０６からアドレスを取得する。これによれば、図６のステップＳ００２及び図７のステップＳ１０２において、リードエラーが既に発生しているか否かを判定することができる。処理は終了する。
【００７４】
続いて、ステップＳ１０２において、エラーアドレスレジスタ１２８にエラー発生アドレスが格納されていると判定された場合の処理について説明する。
【００７５】
ステップＳ１０６において、コンパレータ１０３は、データリードアドレスとエラー発生アドレスとが一致するか否かを判定する。具体的には、エラーアドレスレジスタ１２８に格納されているエラー発生アドレスと、アドレスバス３０６を経由してアドレスキュー１０６に送信されてきたアドレスとが一致するか否かを判定する。データリードアドレスとエラー発生アドレスとが一致した場合は、処理はステップＳ１１０へ移行する。一方、データリードアドレスとエラー発生アドレスとが一致しなかった場合は、処理はステップＳ１０７へ移行する。
【００７６】
ステップＳ１０７からステップＳ１０９の処理はステップＳ１０３からステップＳ１０５の処理と同様である。まず、ステップＳ１０７において、ＥＣＣＣＨＫ１２２は、リードデータに付加された誤り訂正符号に基づいて、リードデータの誤り検出及び誤り訂正を行う。次に、ステップＳ１０８において、ＥＣＣＣＨＫ１２２は、リードエラーを検出したか否かを判定する。ＥＣＣＣＨＫ１２２がリードエラーを検出した場合は、処理はステップＳ１０９へ移行し、ＥＣＣＣＨＫ１２２は、エラー発生アドレスをエラーアドレスレジスタ１２８に格納するために、制御信号をエラーアドレスレジスタ１２８に送信する。一方、ＥＣＣＣＨＫ１２２は、リードデータでリードエラーを検出しなかった場合は、処理は終了する。なお、本実施例では、複数のエラー発生アドレスをエラーレジスタに格納できるとして説明した。複数のエラー発生アドレスを格納するためには、エラーアドレスレジスタ１２８、コンパレータ１０３及びリードカウンタ１３０を格納するエラー発生アドレスの数に合わせて増やせば良い。また、例えば、エラーアドレスレジスタ１２８、コンパレータ１０３及びリードカウンタ１３０をそれぞれ１つずつ配置しても良い。
【００７７】
続いて、ステップＳ１０６において、データリードアドレスとエラー発生アドレスとが一致したと判定された場合の処理について説明する。
【００７８】
ステップＳ１１０において、リードデータにタイムスタンプ及びパリティビットが付加されているか否かが判定される。リードデータにタイムスタンプ及びパリティビットが付加されている場合は、処理はステップＳ１１１へ移行する。一方、リードデータにタイムスタンプ及びパリティビットが付加されていない場合は、処理はステップＳ１０７へ移行する。ここで、データエラー発生アドレスに格納されていたデータにタイムスタンプ及びパリティビットが付加されていない状態とは、エラー発生アドレスがエラーアドレスレジスタ１２８に格納されてはいるが、当該エラー発生アドレスにはタイムスタンプ及びパリティビットが付加されたデータが未だ書き込まれておらず、誤り訂正符号が付加されたデータが書き込まれている状態のことである。この場合は、ＥＣＣＨＫ１２２がリードデータに付加されている誤り訂正符号に基づいて、リードエラーの検出及びリードデータの訂正を行うため、処理はステップＳ１０７へ移行する。ステップＳ１０７からステップＳ１０９の処理は上述したとおりなので、その説明を省略する。
【００７９】
ステップＳ１１１において、ＰＣ１２６は、リードデータに付加されているパリティチェックビットに基づいてパリティチェックを行う。さらに、ＥＣＣＧＥＮ１２４は、リードデータに基づいて誤り訂正符号を生成し、リードデータに付加されているタイムスタンプ及びパリティチェックビットを誤り訂正符号に置き換える。これによって、タイムスタンプ及びパリティビットが付加されたデータを誤り訂正符号が付加されたデータに戻す。処理はステップＳ１１２へ移行する。
【００８０】
ステップＳ１１２において、ＰＣ１２６は、パリティチェックに基づいて、リードエラーを検出したか否かを判定する。リードエラーを検出した場合は、処理はステップＳ１１３へ移行する。一方、リードエラーを検出しなかった場合は、処理はステップＳ１１４へ移行し、リードカウンタ１３０はリード回数をカウントアップする。これによれば、エラー発生アドレスにおいて、タイムスタンプ及びパリティビットが付加されたデータがライトされてから、リードエラーが発生するまでのデータのリード回数を取得することができる。
【００８１】
ステップＳ１１３において、エラー発生アドレス、タイムスタンプ及びパリティビットが付加されたデータのリード回数、データライト時及びエラー検出時のタイムスタンプがエラーレジスタ１１６に格納される。エラー発生アドレスは、エラーアドレスレジスタ１２６から取得される。タイムスタンプが付加されたデータのリード回数は、リードカウンタ１３０から取得される。データライト時のタイムスタンプは、データに付加されたタイムスタンプからタイムスタンプ解析回路１３２によって取得される。エラー検出時のタイムスタンプは、タイムスタンプ生成回路１１８からタイムスタンプ解析回路１３２によって取得される。処理は終了する。
【００８２】
エラーレジスタ１１６に格納されたエラー発生アドレス、リード回数、データライト時のタイムスタンプ、エラー検出時のタイムスタンプは、専用のファームウェアにより読み出される。これらの情報から、エラーが発生したアドレスにおいて、データがライトされてからリードエラー発生までのリード回数を得ることができる。さらに、データライト時のタイムスタンプとエラー検出時のタイムスタンプとの差分を取ることにより、エラーが発生したアドレスに、データがライトされてからリードエラー発生までの経過時間を取得することができる。ここで、タイムスタンプとは、上述したように、システムクロックに基づいて、カウントアップした値である。ファームウェアから当該カウントアップされた値を読み出し、タイムスケールに基づいて時間情報に変換することで、当該経過時間を取得することができる。
【００８３】
最後に本発明の有効性について説明する。本発明によれば、エラーが発生したアドレスに、データがライトされてからリードエラーが発生するまでの経過時間とリード回数からシステムの不具合の原因を推定することが可能になる。
【００８４】
例えば、リードエラーが発生するまでの経過時間がメモリモジュールのリフレッシュサイクルよりも短く、かつ、リード回数が１００であったとする。この場合、リード回数からデータが正常にライトされたことを保証することができる。何故なら、正常にライトされていなければ、１００回も正常にリードできるとは考え難いからである。ゆえに、不具合の原因がメモリデータバスなどの伝送路やメモリモジュールのメモリセルにある確率は低いと考えられる。よって、リフレッシュサイクルが長いため、コンデンサに電荷を蓄えることができず、データが消失してしまったと推定することができる。このような場合は、再度、リフレシュサイクルを設定して試験を行えば良い。リフレッシュサイクルを短くして試験を行った結果、不具合が発生しなければ、リフレッシュサイクルが最適でなかったと結論付けることができる。
【００８５】
また、例えば、リードエラー発生までの経過時間が短く、かつ、リード回数が１であったとする。この場合、１回目のリードでエラーが発生しているため、メモリモジュールのメモリセルにデータが書き込まれた時点で不具合が発生していると推定できる。ゆえに、不具合の原因がメモリデータバスなどの伝送路やメモリモジュールのメモリセルにある確率が高いと推定することができる。よって、例えば、別の試験を行うことで、メモリデータバスなどの伝送路に不具合がないことを証明できれば、メモリセルに不具合の原因がある確率が高いと推定することができる。
【００８６】
以上の実施の形態は、本発明をより良く理解させるために具体的に説明したものであって、別形態を制限するものではない。従って、発明の趣旨を変更しない範囲で変更可能である。
【図面の簡単な説明】
【００８７】
【図１】システムの全体構成図である。
【図２】本発明の実施形態の例を示す図である。
【図３】１回のメモリアクセス動作で送受信するデータ単位におけるデータ形式を表す図（その１）である。
【図４】１回のメモリアクセス動作で送受信するデータ単位におけるデータ形式を表す図（その２）である。
【図５】本発明によるメモリコントローラの実施例である。
【図６】本発明のメモリへのライト動作の制御説明図である。
【図７】本発明のメモリからのリード動作の制御説明図である。
【符号の説明】
【００８８】
１００  メモリコントローラ
１０２  ライトデータキュー
１０３  コンパレータ
１０４  リードデータキュー
１０６  アドレスキュー
１０８  タイムスタンプ書き込み部
１１０  データチェック部
１１２  タイムスタンプ読み出し部
１１４  エラーアドレスカウント部
１１６  エラーレジスタ
１１８  タイムスタンプ生成回路
１２０  ＰＧ
１２２  ＥＣＣＣＨＫ
１２４  ＥＣＣＧＥＮ
１２６  ＰＣ
１２８  エラーアドレスレジスタ
１３０  リードカウンタ
１３２  タイムスタンプ解析回路
２００  メモリモジュール
２０１  メモリデータバス
２０２  データ
２０４  誤り訂正符号
２０６  タイムスタンプフィールド
２０７  パリティビット
２０８  メモリデータバス
２１０  メモリアドレスバス
３００  システムコントローラ
３０１  ＣＰＵデータバス
３０２  ライトデータバス
３０４  リードデータバス
３０６  アドレスデータバス
４００  ＣＰＵ
５００  メモリシステム
６０２  セレクタ
６０４  セレクタ
【図１】
2008287351.tif 000003
【図２】
2008287351.tif 000004
【図３】
2008287351.tif 000005
【図４】
2008287351.tif 000006
【図５】
2008287351.tif 000007
【図６】
2008287351.tif 000008
【図７】
2008287351.tif 000009