(57)【要約】【課題】メモリに対するデータ入出力を行うメモリコントローラにおいて、信号のタイミング関係を、実際の動作条件において適切に調整可能にする。【解決手段】コントローラ部２０は、データ信号ＤＡＴＡとデータストローブ信号ＤＱＳを出力する。データ信号ＤＡＴＡは、エラー検出部１０が有するＦＩＦＯメモリ１１０を介してメモリＩ／Ｆ部３０に入力される。メモリＩ／Ｆ部３０はデータ信号ＤＡＴＡおよびデータストローブ信号ＤＱＳのタイミング調整を行いメモリ５に出力するが、データ信号ＤＡＴＡはエラー検出部１０にもループバックされる。エラー検出部１０では、メモリＩ／Ｆ部３０からループバックされたデータ信号ＤＡＴＡと、ＦＩＦＯメモリ１１０から出力された、ループバックされたデータ信号ＤＡＴＡに対応する元のデータ信号ＤＡＴＡとを、データ比較器１２５によって比較する。【選択図】図１
2012027734.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対するデータ入出力を行うメモリコントローラであって、
回路ブロックとのデータ送受信を行い、第１の信号と、この第１の信号との位相関係を保持した第２の信号とを生成し出力するコントローラ部と、
前記コントローラ部から出力された第２の信号を入力とするＦＩＦＯメモリを有するエラー検出部と、
前記コントローラ部から出力された第１の信号と、前記エラー検出部の前記ＦＩＦＯメモリから出力された第２の信号とを入力とし、前記第１および第２の信号についてタイミング調整を行い、前記メモリに出力するメモリＩ／Ｆ部とを備え、
前記メモリＩ／Ｆ部から出力される第２の信号は、前記メモリに出力されるとともに、前記エラー検出部にループバックされ、
前記エラー検出部は、ループバックされた第２の信号と、前記ＦＩＦＯメモリから出力された、前記ループバックされた第２の信号に対応する元の第２の信号とを比較するデータ比較器を備えている
ことを特徴とするメモリコントローラ。
【請求項２】
請求項１記載のメモリコントローラにおいて、
前記エラー検出部は、前記データ比較器の比較結果を格納するためのレジスタを備えている
ことを特徴とするメモリコントローラ。
【請求項３】
請求項２記載のメモリコントローラにおいて、
前記コントローラ部は、前記第２の信号の出力元である回路ブロックを示すブロック識別信号を前記エラー検出部に出力するものであり、
前記エラー検出部は、前記データ比較器の比較結果が不一致であるとき、前記ブロック識別信号を当該比較結果とともに前記レジスタに格納する
ことを特徴とするメモリコントローラ。
【請求項４】
請求項１記載のメモリコントローラにおいて、
前記第１の信号はクロック信号であり、前記第２の信号はコマンド信号である
ことを特徴とするメモリコントローラ。
【請求項５】
請求項１記載のメモリコントローラにおいて、
前記第１の信号はデータストローブ信号であり、前記第２の信号はデータ信号である
ことを特徴とするメモリコントローラ。
【請求項６】
請求項２記載のメモリコントローラと、
前記メモリコントローラの前記レジスタの格納データを、外部からモニターするための外部端子とを備えた
ことを特徴とするメモリアクセスシステム。
【請求項７】
請求項２記載のメモリコントローラと、
前記メモリコントローラの前記レジスタの格納データをモニターするＣＰＵとを備えた
ことを特徴とするメモリアクセスシステム。
【請求項８】
請求項７記載のメモリアクセスシステムにおいて、
前記ＣＰＵの制御によって、当該メモリコントローラに与える電源電圧を制御する電源制御部をさらに備えた
ことを特徴とするメモリアクセスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセスシステムに関するものであり、特に、メモリアクセス時のデータ転送エラーを検出する技術に関する。
【背景技術】
【０００２】
近年のメモリシステムでは、大容量、高速データ処理化に伴って、ＤＤＲ−ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory）の採用が主流となっている。ＤＤＲ−ＳＤＲＡＭでは、データストローブ信号（ＤＱＳ）の立ち上がりおよび立ち下がりの両エッジに同期してデータ信号（ＤＱ）の転送が可能であるため、従来のＳＤＲＡＭの２倍のデータ転送が可能である。
【０００３】
ＤＤＲ方式では、規格として双方向のデータ信号及びデータストローブ信号を用い、ＤＤＲ−ＳＤＲＡＭにデータ送信を行う動作（Ｗｒｉｔｅ動作）とＤＤＲ−ＳＤＲＡＭからデータを受信する動作（Ｒｅａｄ動作）とが行われる。高速アクセスに対応する上で、Ｗｒｉｔｅ動作およびＲｅａｄ動作の両方において、データストローブ信号の最適化が重要視される。特にＲｅａｄ動作では、ＤＤＲ−ＳＤＲＡＭから送信されるデータ信号とデータストローブ信号はほぼ同相であるため、データ信号に対して９０度位相をつけたデータストローブ信号を生成し、安定してデータをラッチできるタイミング調整ポイントを探す必要がある。
【０００４】
Ｗｒｉｔｅ動作では、メモリに対するコマンド信号とクロック信号のタイミング関係とデータ信号をデータストローブ信号でラッチするタイミング関係とを適切に調整する必要がある。またＲｅａｄ動作では、データ信号をデータストローブ信号でラッチするタイミング関係を適切に調整する必要がある。このようなタイミング調整のために、例えば特許文献１では、ループバック試験を行う構成が開示されている。
【０００５】
図６は従来例として特許文献１に開示されたＤＤＲ−ＳＤＲＡＭインターフェース回路の構成である。図６に示すＤＤＲ−ＳＤＲＡＭインターフェース回路５１は、データ信号ＤＱをＤＤＲ−ＳＤＲＡＭと通信する通常動作モードと、ＤＤＲ−ＳＤＲＡＭインターフェース回路５１自身の動作確認を行う試験モードとを有する。テスト制御信号ＴＥＳＴがハイレベルになるととループバック試験モードとなり、データセレクタＤＳはパタン発生回路６１から出力されるパタンデータＤＰを選択出力する。このループバック試験では、データストローブ信号入出力部５２において、出力バッファＯＢ１を介したデータストローブ信号ＤＱＳを折り返して入力バッファＩＢ１へ入力し、データ信号入出力部５３において、出力バッファＯＢ２を介したデータ信号ＤＱを折り返して入力バッファＩＢ２へ入力する。そしてＤＤＬ回路１０を介したデータストローブ信号ＤＤＱＳを用いて、折り返されたデータ信号ＤＱをデータ信号入出力部５３のフリップフロップＦＦ３でキャプチャする。判定部５４において、キャプチャされたデータＤＱＣと出力元のデータＤＰとが一致するか否かを判定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２１０４８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが図６に示すような従来の構成では、ループバック試験のためにパタン発生回路６１を設けているため、特定パターンに依存する調整しか行うことができない。
【０００８】
また、実際の動作条件では、温度や電圧等の変化に伴ってデータ信号とデータストローブ信号のタイミング関係は変動する。このため、ループバック試験モードにおいてタイミング調整を行っても、その調整結果は必ずしも最適なものとは言えず、このため実際のメモリアクセス時にはデータ転送エラーが発生する可能性がある。
【０００９】
逆に言うと、実際の動作条件において最適なタイミング調整が可能になれば、電源電圧の設定をより適切に行うことができるので、回路の低消費電力化を実現することが可能になる。
【００１０】
本発明は、メモリに対するデータ入出力を行うメモリコントローラにおいて、一方の信号のエッジに同期して他方の信号が転送される場合の信号同士のタイミング関係を、実際の動作条件において適切に調整可能にすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様では、メモリに対するデータ入出力を行うメモリコントローラは、回路ブロックとのデータ送受信を行い、第１の信号と、この第１の信号との位相関係を保持した第２の信号とを生成し出力するコントローラ部と、前記コントローラ部から出力された第２の信号を入力とするＦＩＦＯメモリを有するエラー検出部と、前記コントローラ部から出力された第１の信号と、前記エラー検出部の前記ＦＩＦＯメモリから出力された第２の信号とを入力とし、前記第１および第２の信号についてタイミング調整を行い、前記メモリに出力するメモリＩ／Ｆ部とを備え、前記メモリＩ／Ｆ部から出力される第２の信号は、前記メモリに出力されるとともに、前記エラー検出部にループバックされ、前記エラー検出部は、ループバックされた第２の信号と、前記ＦＩＦＯメモリから出力された、前記ループバックされた第２の信号に対応する元の第２の信号とを比較するデータ比較器を備えている。
【００１２】
この態様によると、第１の信号とこの第１の信号との位相関係を保持した第２の信号とが、コントローラ部から出力される。第１の信号はメモリＩ／Ｆ部に入力され、第２の信号はエラー検出部が有するＦＩＦＯメモリを介してメモリＩ／Ｆ部に入力される。メモリＩ／Ｆ部は第１および第２の信号についてタイミング調整を行いメモリに出力するが、第２の信号はエラー検出部にもループバックされる。エラー検出部では、メモリＩ／Ｆ部からループバックされた第２の信号と、ＦＩＦＯメモリから出力された、前記ループバックされた第２の信号に対応する元の第２の信号とが、データ比較器によって比較される。この比較によって、メモリへのデータ転送中にエラーが生じたか否かが判断できる。しかも、ループバック試験のためにパタン発生回路を設けておらず、実際の動作条件における検査が可能となる。また、Ｗｒｉｔｅ動作での不具合検出が可能になるので、データ転送エラーが発生した場合に、不具合がＷｒｉｔｅ動作で生じたのかＲｅａｄ動作で生じたのかの切り分けが可能になる。
【００１３】
また、前記エラー検出部は、前記データ比較器の比較結果を格納するためのレジスタを備えているのが好ましい。
【００１４】
さらには、前記コントローラ部は、前記第２の信号の出力元である回路ブロックを示すブロック識別信号を前記エラー検出部に出力するものであり、前記エラー検出部は、前記データ比較器の比較結果が不一致であるとき、前記ブロック識別信号を当該比較結果とともに前記レジスタに格納するのが好ましい。
【００１５】
これにより、エラーが検出されたとき、レジスタに、第２の信号の出力元である回路ブロックを示すブロック識別信号が格納されるので、レジスタの格納データをモニターすることによって、不具合が、メモリコントローラ内部で生じたのか、あるいは、特定の回路ブロックからの出力に原因があるのか、といった解析が容易になる。
【発明の効果】
【００１６】
以上のように本発明によると、特定のデータパターンを用いたテストでは検出できなかった、実際の動作状態におけるエラーの発生を検出することが可能になる。さらには、不具合の原因がメモリコントローラにあるのか特定の回路ブロックにあるのかといった解析が容易になる。これにより、不具合の解析時間を短縮できるとともに、信号のタイミング関係の調整をより適切に行うことができるので、メモリアクセスシステムの設計効率向上および品質向上が実現できる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係るメモリアクセスシステムの構成を示すブロック図である。
【図２】信号のＡＣタイミング調整を説明するための図である。
【図３】図１のメモリコントローラの動作を示すタイミングチャートである。
【図４】図１の構成の変形例である。
【図５】図１の構成の他の変形例である。
【図６】従来のメモリアクセスシステムの構成例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【００１９】
図１は実施形態に係るメモリアクセスシステムの構成を示すブロック図である。図１において、メモリコントローラ１は、メモリ５に対するデータ入出力を行うものであり、複数の回路ブロック（ＢｌｏｃｋＡ３００，ＢｌｏｃｋＢ３１０，ＢｌｏｃｋＣ３２０）とデータ送受信を行い、メモリ５とデータ送受信を行う機能を有する。
【００２０】
メモリコントローラ１は、エラー検出部１０、コントローラ部２０およびメモリＩ／Ｆ部３０を備えている。コントローラ部２０において、データ生成部２１は、複数の回路ブロック（ＢｌｏｃｋＡ３００，ＢｌｏｃｋＢ３１０，ＢｌｏｃｋＣ３２０）に対して、データ送受信の制御、データ送受信の優先度などの調停を行う。そして、メモリ５にデータ送信するためのＤＤＲ方式の規定に従った信号、すなわち、クロック信号ＣＫ、コマンド信号ＣＭＤ、データ信号ＤＡＴＡおよびデータストローブ信号ＤＱＳを生成する。第１の信号としてのクロック信号ＣＫと第２の信号としてのコマンド信号ＣＭＤは、メモリ５に対するＡＣ規定を保証し、転送される。コマンド信号ＣＭＤはクロック信号ＣＫとの位相関係を保持したものである。第１の信号としてのデータストローブ信号ＤＱＳと第２の信号としてのデータ信号ＤＡＴＡも同様に、メモリ５に対するＡＣ規定を保証し、転送される。データ信号ＤＡＴＡはデータストローブ信号ＤＱＳとの位相関係を保持したものである。また、データ生成部２１は、コマンド信号ＣＭＤの出力元である回路ブロックを示す第１のブロック識別信号ＢＬ１と、データ信号ＤＡＴＡの出力元である回路ブロックを示す第２のブロック識別信号ＢＬ２とを生成する。
【００２１】
エラー検出部１０は、コントローラ部２０から出力されたコマンド信号ＣＭＤを入力とする第１のＦＩＦＯメモリ１００と、コントローラ部２０から出力されたデータ信号ＤＡＴＡを入力とする第２のＦＩＦＯメモリ１１０と、第１および第２のＦＩＦＯメモリ１００，１１０を制御するための第１および第２のカウンタ１２１，１２２とを備えている。さらに、第１および第２のデータ比較器１２３，１２５と、第１および第２のレジスタ１２４，１２６とを備えているが、これらについては後述する。
【００２２】
第１のＦＩＦＯメモリ１００は、複数段の記憶領域を有するメモリ本体１０１と、ライトポインタ（ＷＰ）１０２と、第１のリードポインタ（ＲＰ１）１０３と、第２のリードポインタ（ＲＰ２）１０４とを有している。コントローラ部２０から出力されたコマンド信号ＣＭＤは、ライトポインタ１０２のポインタ値に従ってメモリ本体１０１に保持され、第１のリードポインタ１０３のポインタ値に従ってメモリ本体１０１から読み出されて、メモリＩ／Ｆ部３０に出力される。また第２のリードポインタ１０４は、エラー検出のためのコマンド信号ＣＭＤの読み出しのために用いられる。
【００２３】
第２のＦＩＦＯメモリ１１０は、複数段の記憶領域を有するメモリ本体１１１と、ライトポインタ（ＷＰ）１１２と、第１のリードポインタ（ＲＰ１）１１３と、第２のリードポインタ（ＲＰ２）１１４とを有している。コントローラ部２０から出力されたデータ信号ＤＡＴＡは、ライトポインタ１１２のポインタ値に従ってメモリ本体１１１に保持され、第１のリードポインタ１１３のポインタ値に従ってメモリ本体１１１から読み出されて、メモリＩ／Ｆ部３０に出力される。また第２のリードポインタ１１４は、エラー検出のためのデータ信号ＤＡＴＡの読み出しのために用いられる。
【００２４】
第１のカウンタ１２１は、第１のＦＩＦＯメモリ１００のライトポインタ１０２および第１のリードポインタ１０３のポインタ値と、第２のＦＩＦＯメモリ１１０のライトポインタ１１２および第１のリードポインタ１１３のポインタ値を制御する。例えば、第１のＦＩＦＯメモリ１００にコマンド信号ＣＭＤが入力される毎にライトポインタ１０２をカウントアップし、第２のＦＩＦＯメモリ１１０にデータ信号ＤＡＴＡが入力される毎にライトポインタ１１２をカウントアップする。この場合、例えばコマンド信号ＣＭＤなどを第１のカウンタ１２１のイネーブル入力として用いればよい。第２のカウンタ１２２は、第１のＦＩＦＯメモリ１００の第２のリードポインタ１０４のポインタ値と、第２のＦＩＦＯメモリ１１０の第２のリードポインタ１１４のポインタ値を制御する。
【００２５】
メモリＩ／Ｆ部３０は、コントローラ部２０から出力されたクロック信号ＣＫと、エラー検出部１０の第１のＦＩＦＯメモリ１００から出力されたコマンド信号ＣＭＤとを受け、クロック遅延調整部３１およびコマンド遅延調整部３２によってＤＤＲ方式の規定に従ったＡＣタイミング調整を行い、メモリ５に出力する。また、エラー検出部１０の第２のＦＩＦＯメモリ１１０から出力されたデータ信号ＤＡＴＡと、コントローラ部２０から出力されたデータストローブ信号ＤＱＳとを受け、データ遅延調整部３３およびストローブ遅延調整部３４によってＤＤＲ方式の規定に従ったＡＣタイミング調整を行い、メモリ５に出力する。
【００２６】
図２はデータ信号およびデータストローブ信号のＡＣタイミング調整の例を示す。図２（ａ）に示すように、データストローブ信号の立ち上がり（または立ち下がり）に対するデータ信号のタイミングを遅延値αで調整する。そして図２（ｂ）に示すように、例えば電源電圧を下げたとき、データストローブ信号の立ち上がりに対してデータ信号のセットアップマージンが不足する場合がある。このような場合、図２（ｃ）に示すように、遅延値をβ（＜α）に変更してタイミングを調整する。
【００２７】
また、メモリＩ／Ｆ部３０はさらに、エラー検出のためのループバックのために、第１および第２のフリップフロップ１３０，１４０を備えている。第１のフリップフロップ１３０は、コマンド遅延調整部３２から出力されたコマンド信号ＣＭＤをＤ入力とし、クロック遅延調整部３１から出力されたクロック信号ＣＫをＣＫ入力とする。そしてＱ出力はエラー検出部１０に戻される。すなわち、メモリＩ／Ｆ部３０から出力されるコマンド信号ＣＭＤは、メモリ５に出力されるとともに、エラー検出部１０にループバックされる。第２のフリップフロップ１４０は、データ遅延調整部３３から出力されたデータ信号ＤＡＴＡをＤ入力とし、ストローブ遅延調整部３４から出力されたデータストローブ信号ＤＱＳをＣＫ入力とする。そしてＱ出力はエラー検出部１０に戻される。すなわち、メモリＩ／Ｆ部３０から出力されるデータ信号ＤＡＴＡは、メモリ５に出力されるとともに、エラー検出部１０にループバックされる。
【００２８】
エラー検出部１０において、第１のデータ比較器１２３は、第１のフリップフロップ１３０のＱ出力すなわちループバックされたコマンド信号ＣＭＤと、第１のＦＩＦＯメモリ１００から第２のリードポインタ１０４に従って読み出された元のコマンド信号ＣＭＤとを比較する。この元のコマンド信号ＣＭＤは、ループバックされたコマンド信号ＣＭＤに対応している。第１のデータ比較器１２３による比較結果は、第１のレジスタ１２４に格納される。ここでは、第１のデータ比較器１２３の比較結果が“不一致”であるとき、第１のレジスタ１２４には、この比較結果を示す検出フラグとともに、不一致となったコマンド信号ＣＭＤの出力元の回路ブロックを示す第１のブロック識別信号ＢＬ１が格納される。このとき、不一致となったコマンド信号ＣＭＤのデータ列を第１のレジスタ１２４に格納してもよい。また、このとき、第２のカウンタ１２２のカウントを停止させてもよい。さらには、第１のカウンタ１２１のカウントを停止させてもよい。
【００２９】
また、第２のデータ比較器１２５は、第２のフリップフロップ１４０のＱ出力すなわちループバックされたデータ信号ＤＡＴＡと、第２のＦＩＦＯメモリ１１０から第２のリードポインタ１１４に従って読み出された元のデータ信号ＤＡＴＡとを比較する。この元のデータ信号ＤＡＴＡは、ループバックされたデータ信号ＤＡＴＡに対応している。第２のデータ比較器１２５による比較結果は、第２のレジスタ１２６に格納される。ここでは、第２のデータ比較器１２５の比較結果が“不一致”であるとき、第２のレジスタ１２６には、この比較結果を示す検出フラグとともに、不一致となったデータ信号ＤＡＴＡの出力元の回路ブロックを示す第２のブロック識別信号ＢＬ２が格納される。このとき、不一致となったデータ信号ＤＡＴＡのデータ列を第２のレジスタ１２６に格納してもよい。また、このとき、第２のカウンタ１２２のカウントを停止させてもよい。さらには、第１のカウンタ１２１のカウントを停止させてもよい。
【００３０】
図１のメモリアクセスシステムはさらに、ＣＰＵ３３０を備えている。第１および第２のレジスタの格納データは、ＣＰＵ３３０からモニター可能である。図１の構成では、メモリコントローラ１、回路ブロック、およびＣＰＵ３３０は単一のチップ１Ａに搭載されているものとしている。
【００３１】
図１のメモリコントローラ１の動作について、図３の動作タイミングチャートを用いて説明する。ここでは、メモリ５に対してＷｒｉｔｅ動作を行うものとする。
【００３２】
コントローラ部２０において、データ生成部２１は、複数の回路ブロックに対して調停を行い、クロック信号ＣＫ、コマンド信号ＣＭＤ、および第１のブロック識別信号ＢＬ１を生成する。生成されたコマンド信号ＣＭＤは、エラー検出部１０において、第１のＦＩＦＯメモリ１００にライトポインタ（ＷＰ）１０２のポインタ値に従って順に格納される。なお図３では、第１のＦＩＦＯメモリ１００のメモリ本体１０１は５段のフリップフロップＦＦ０〜ＦＦ４によって構成されているものとしている。第１のＦＩＦＯメモリ１００に格納されたコマンド信号ＣＭＤは、第１のライトポインタ（ＲＰ１）１０３のポインタ値に従って順に読み出され、メモリＩ／Ｆ部３０に入力される。
【００３３】
メモリＩ／Ｆ部３０において、クロック遅延調整部３１およびコマンド遅延調整部３２によって、コマンド信号ＣＭＤおよびクロック信号ＣＫに対してＡＣタイミング調整が行われる。そして、コマンド遅延調整部３２から出力されたコマンド信号ＣＭＤは、メモリ５に送信されるとともに、第１のフリップフロップ１３０のＤ入力に与えられる。また、クロック遅延調整部３１から出力されたクロック信号ＣＫは、メモリ５に送信されるとともに、第１のフリップフロップ１３０のＣＫ入力に与えられる。そして、第１のフリップフロップのＱ出力すなわち、ループバックされたコマンド信号ＣＭＤがエラー検出部１０に出力される。
【００３４】
エラー検出部１０において、第１のデータ比較器１２３は、第１のフリップフロップ１３０のＱ出力すなわちループバックされたコマンド信号ＣＭＤと、第１のＦＩＦＯメモリ１００から第２のリードポインタ（ＲＰ２）１０４のポインタ値に従って読み出された元のコマンド信号ＣＭＤとを比較する。なお図３に示すように、第２のリードポインタ１０４のポインタ値には、第１のリードポインタ１０３のポインタ値と比べて、メモリＩ／Ｆ部３０におけるコマンド信号ＣＭＤの遅延に応じたオフセットが与えられている。そして、比較結果が不一致のとき、この比較結果を示す検出フラグと、第１のブロック識別信号ＢＬ１とが、第１のレジスタ１２４に格納される。
【００３５】
また、コントローラ部２０において、データ生成部２１は、データ信号ＤＡＴＡ、データストローブ信号ＤＱＳ、および第２のブロック識別信号ＢＬ２を生成する。生成されたデータ信号ＤＡＴＡは、エラー検出部１０において、第２のＦＩＦＯメモリ１１０にライトポインタ１１２のポインタ値に従って順に格納される。第２のＦＩＦＯメモリ１１０に格納されたデータ信号ＤＡＴＡは、第１のライトポインタ１１３のポインタ値に従って順に読み出され、メモリＩ／Ｆ部３０に入力される。
【００３６】
メモリＩ／Ｆ部３０において、データ遅延調整部３３およびストローブ遅延調整部３４によって、データ信号ＤＡＴＡおよびデータストローブ信号ＤＱＳに対してＡＣタイミング調整が行われる。そして、データ遅延調整部３３から出力されたデータ信号ＤＡＴＡは、メモリ５に送信されるとともに、第２のフリップフロップ１４０のＤ入力に与えられる。また、ストローブ遅延調整部３４から出力されたデータストローブ信号ＤＱＳは、メモリ５に送信されるとともに、第２のフリップフロップ１４０のＣＫ入力に与えられる。そして、第２のフリップフロップのＱ出力すなわち、ループバックされたデータ信号ＤＡＴＡがエラー検出部１０に出力される。
【００３７】
エラー検出部１０において、第２のデータ比較器１２５は、第２のフリップフロップ１４０のＱ出力すなわちループバックされたデータ信号ＤＡＴＡと、第２のＦＩＦＯメモリ１１０から第２のリードポインタ１１４のポインタ値に従って読み出された元のデータ信号ＤＡＴＡとを比較する。そして、比較結果が不一致のとき、この比較結果を示す検出フラグと、第２のブロック識別信号ＢＬ２とが、第２のレジスタ１２６に格納される。
【００３８】
このような動作の結果、ＣＰＵ３３０から第１および第２のレジスタ１２４，１２６の格納データをモニターすることによって、不具合の原因が、メモリコントローラ１にあるのか、あるいは特定の回路ブロックにあるのかといった解析が容易になる。
【００３９】
以上のように本実施形態によると、エラー検出部１０において、メモリＩ／Ｆ部３０からループバックされたコマンド信号ＣＭＤと、第１のＦＩＦＯメモリ１００から出力された、ループバックされたコマンド信号ＣＭＤに対応する元のコマンド信号ＣＭＤとが、第１のデータ比較器１２３によって比較される。また、メモリＩ／Ｆ部３０からループバックされたデータ信号ＤＡＴＡと、第２のＦＩＦＯメモリ１１０から出力された、ループバックされたデータ信号ＤＡＴＡに対応する元のデータ信号ＤＡＴＡとが、第２のデータ比較器１２５によって比較される。このような比較によって、メモリ５へのデータ転送中にエラーが生じたか否かが判断できる。すなわち、特定のデータパターンを用いたテストではなく、実際の動作条件における検査が可能となる。また、Ｗｒｉｔｅ動作での不具合検出が可能になるので、データ転送エラーが発生した場合に、不具合がＷｒｉｔｅ動作で生じたのかＲｅａｄ動作で生じたのかの切り分けが可能になる。
【００４０】
さらに、エラーが検出されたとき、第１または第２のレジスタ１２４，１２６に、コマンド信号ＣＭＤまたはデータ信号ＤＡＴＡの出力元である回路ブロックを示す第１または第２のブロック識別信号ＢＬ１，ＢＬ２が格納されるので、レジスタ１２４，１２６の格納データをモニターすることによって、不具合が、メモリコントローラ１内部で生じたのか、あるいは、特定の回路ブロックからの出力に原因があるのか、といった解析が容易になる。
【００４１】
なお、ブロック識別信号ＢＬ１，ＢＬ２を用いない構成とすることも可能である。さらには、比較結果を格納するレジスタ１２４，１２６を設けないで、例えば、データ比較器１２３，１２５の比較結果を直接外部に出力するような構成とすることも可能である。
【００４２】
図４は図１の構成の変形例である。図４において、図１と共通の構成要素には図１と同一の符号を付しており、ここではその詳細な説明を省略する。図４のメモリアクセスシステムにおいて、メモリコントローラ２は図１のメモリコントローラ１とほぼ同一構成であるが、ＣＰＵ３３０の代わりに、第１および第２のレジスタ１２４，１２６の格納データを外部からモニターするための外部端子３４０が設けられている点が異なっている。図４の構成では、メモリコントローラ２および回路ブロックは単一のチップ２Ａに搭載されているものとしている。外部端子３４０を設けたことによって、第１および第２のレジスタ１２４，１２６の格納データすなわちエラー検出結果を、外部から直接モニターすることが可能になる。これにより、ＣＰＵを有しない回路構成においてもメモリアクセス動作を確認することができるので、メモリコントローラ２は、種々のＬＳＩに実装することが可能になる。また、第１および第２のレジスタ１２４，１２６の格納データをリアルタイムでモニターできるため、不具合があった場合の解析が容易になる。
【００４３】
図５は図１の構成の他の変形例である。図５において、図１と共通の構成要素には図１と同一の符号を付しており、ここではその詳細な説明を省略する。図５のメモリコントローラ３は、図１のメモリコントローラ１とほぼ同一構成であるが、ＣＰＵ３３０の制御によって、メモリコントローラ３に与える電源電圧を制御する電源制御部３５０がさらに設けられている点が異なっている。図５の構成では、メモリコントローラ３、回路ブロック、およびＣＰＵ３３０は単一のチップ３Ａに搭載されているものとしている。
【００４４】
第１および第２のレジスタ１２４，１２６に蓄積されたエラー検出データは、ＣＰＵ３３０に集められ、解析される。ここで例えば、どの回路ブロックからのデータ送信時もエラー検出されず、メモリコントローラ３自身も正常に動作していると考えられる場合、ＣＰＵ３３０は電源制御部３５０に対して、電源電圧を下げるためのコントロール信号を出力する。このような電源制御動作を繰り返す中でエラーが初めて検出されたとき、そのときの電源電圧が、この回路での正常動作と不具合動作の境界と認識できる。このようにして電源電圧の最低限界値を求めることによって、最適な電源マージンを設定し、回路の低消費電力化を図ることが可能となる。
【００４５】
なお、上述の説明では、ＤＤＲ方式の規定に従った信号をメモリに送信する場合を例にとって説明したが、本発明の適用範囲はこれに限られるものではない。
【産業上の利用可能性】
【００４６】
本発明に係るメモリコントローラでは、実際の動作状態におけるエラーの発生を検出可能であり、通常のメモリアクセス動作中のデータ信号タイミングを調整することができるので、例えば、より高速なパフォーマンスが求められるテレビ、モバイル機器等への適用に有用である。
【符号の説明】
【００４７】
１，２，３  メモリコントローラ
５  メモリ
１０  エラー検出部
２０  コントローラ部
３０  メモリＩ／Ｆ部
１００  第１のＦＩＦＯメモリ
１１０  第２のＦＩＦＯメモリ
１２３  第１のデータ比較器
１２４  第１のレジスタ
１２５  第２のデータ比較器
１２６  第２のレジスタ
３３０  ＣＰＵ
３４０  外部端子
３５０  電源制御部
ＣＫ  クロック信号（第１の信号）
ＣＭＤ  コマンド信号（第２の信号）
ＤＡＴＡ  データ信号（第２の信号）
ＤＱＳ  データストローブ信号（第１の信号）
ＢＬ１  第１のブロック識別信号
ＢＬ２  第２のブロック識別信号
【図１】
2012027734.tif 000003
【図２】
2012027734.tif 000004
【図３】
2012027734.tif 000005
【図４】
2012027734.tif 000006
【図５】
2012027734.tif 000007
【図６】
2012027734.tif 000008