(57)【要約】【課題】受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有するメモリモジュールのコントローラにおいて、通常動作時と同様の構成でのループバックテストを可能とすること。【解決手段】ライトデータ制御回路２１、ストローブ制御回路１１、リードデータ制御回路２４、リードストローブ制御回路１２、ライトデータ遅延回路２２及び遅延制御部２３を有し、ライトデータ遅延回路２２及び遅延制御回路２３は、リードストローブ制御回路１２からリードデータ制御回路２４に入力されるストローブ信号が、リードデータ制御回路がライトデータ制御回路２１から入力されたデータ信号を保持するタイミングとなるように、信号のタイミングを遅延させる。【選択図】図１
2010079520.tif 000002
【特許請求の範囲】
【請求項１】
受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有するメモリモジュールのコントローラであって、
データ信号を前記メモリモジュール側に出力するデータ出力部と、
前記メモリモジュールに前記データ信号を保持させるタイミングを決定するストローブ信号を出力するストローブ信号出力部と、
前記メモリモジュール側からデータ信号を入力されるデータ信号入力部と、
前記入力されたデータ信号を保持するタイミングを決定するストローブ信号を入力されるストローブ信号入力部と、
前記データ出力部が出力するデータ信号及び前記ストローブ信号出力部が出力するストローブ信号のうち少なくとも一つの信号のタイミングを調整するタイミング調整部とを有し、
前記ストローブ信号出力部は、ループバックストローブ信号として前記ストローブ信号入力部に入力するように前記ストローブ信号を出力可能であり、
前記データ出力部は、ループバックデータ信号として前記データ入力部に入力するように前記データ信号を出力可能であり、
前記タイミング調整部は、前記ループバックストローブ信号が前記ループバックデータ信号を保持させるタイミングを決定する信号となるように前記少なくとも一つの信号のタイミングを調整可能である、メモリモジュールのコントローラ。
【請求項２】
前記タイミング調整部は、前記信号のタイミングを遅延させることにより、前記信号のタイミングを調整することを特徴とする、請求項１に記載のメモリモジュールのコントローラ。
【請求項３】
前記タイミング調整部は、前記データ信号及び前記ストローブ信号のうち少なくとも一方の信号を入力され、入力された前記信号を遅延させて出力することにより、前記信号のタイミングを遅延させることを特徴とする、請求項２に記載のメモリモジュールのコントローラ。
【請求項４】
前記タイミング調整部は、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方に、出力する信号のタイミングを遅延させる機能を更に有することを特徴とする、請求項３に記載のメモリモジュールのコントローラ。
【請求項５】
前記タイミング調整部は、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方が出力する信号のタイミングを遅延させる機能を用いて所定期間以上の遅延を設け、その後入力された信号を遅延させることにより、前記所定期間未満の遅延を設けることを特徴とする、請求項４に記載のメモリモジュールのコントローラ。
【請求項６】
前記タイミング調整部は、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方が出力する信号のタイミングを遅延させる機能を用いて、前記メモリモジュールの動作周波数の整数倍の周期の遅延を設けることを特徴とする、請求項５に記載のメモリモジュールのコントローラ。
【請求項７】
前記タイミング調整部は、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方に、出力する信号のタイミングを遅延させることを特徴とする、請求項２または３に記載のメモリモジュールのコントローラ。
【請求項８】
前記タイミング調整部は、前記メモリモジュールのコントローラの通常動作とループバック動作とにおいて、前記ストローブ信号のタイミングを変えることにより、前記ループバックストローブ信号が前記ループバックデータ信号を保持させるタイミングを決定する信号となるようにすることを特徴とする、請求項１乃至７いずれか１項に記載のメモリモジュールのコントローラ。
【請求項９】
前記データ出力部は、パラレルのデータ信号を出力するために複数個設けられ、
前記タイミング調整部は、前記複数のデータ出力部夫々に対応して複数個設けられることを特徴とする、請求項１乃至８いずれかに記載のメモリモジュールのコントローラ。
【請求項１０】
前記タイミング調整部は、前記複数のデータ出力部が出力する夫々のデータ信号の配線遅延に応じて前記データ信号のタイミングを調整することを特徴とする、請求項９に記載のメモリモジュールのコントローラ。
【請求項１１】
データ信号を前記メモリモジュール側に出力するデータ出力部と、
前記メモリモジュールに前記データ信号を保持させるタイミングを決定するストローブ信号を出力するストローブ信号出力部と、
前記メモリモジュール側からデータ信号を入力されるデータ信号入力部と、
前記入力されたデータ信号を保持するタイミングを決定するストローブ信号を入力されるストローブ信号入力部と、
前記データ出力部が出力するデータ信号及び前記ストローブ信号出力部が出力するストローブ信号のうち少なくとも一つの信号のタイミングを調整するタイミング調整部とを有するメモリモジュールのコントローラの制御方法であって、
前記メモリモジュールは、受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有し、
前記ストローブ信号出力部が、ループバックストローブ信号として前記ストローブ信号入力部に入力するように前記ストローブ信号を出力し、
前記データ出力部が、ループバックデータ信号として前記データ入力部に入力するように前記データ信号を出力し、
前記タイミング調整部が、前記ループバックストローブ信号が前記ループバックデータ信号を保持させるタイミングを決定する信号となるように前記少なくとも一つの信号のタイミングを調整する、メモリモジュールのコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリモジュールのコントローラ及びメモリモジュールのコントロール方法に関し、特に、受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有するメモリモジュールのコントローラのループバックテストに関する。
【背景技術】
【０００２】
ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置のメインメモリとして使用されるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）には、同期式のＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭのようなダブルデータレート方式が主流である。これらのメモリモジュールは、ＤＤＲ３−ＳＤＲＡＭが主流になりつつある。
【０００３】
上記ＤＤＲ３−ＳＤＲＡＭでは、データレートが８００ＭＨｚ以上の仕様がＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ）により規格化されている。従って、メモリモジュールのコントローラも上記と同様の高速な動作速度で構成される。このような高速なコントローラの動作テストをＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）テスタで行なうことは困難である。
【０００４】
上記コントローラのテストとしては、例えば、データ入出力のテストを低速で行い、動作試験はループバックテストで行なう方法がある（例えば、特許文献１参照）。ループバックテストを行なわない場合は、ロジック回路部、ＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路及び遅延素子等を個別にテストする。しかしながら、この場合、上記各構成が連動して動作していることをテストできないため、ループバックテストが望まれる。
【特許文献１】特開２００７−３１７０１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１においては、データ信号の位相を可変遅延回路及び２種の位相シフト量制御回路により決定している。この２種の位相シフト量制御回路としては、ノーマルモード位相シフト量制御回路及びテストモード位相シフト量制御回路がある。そして、通常動作においてはノーマルモード位相シフト量制御回路が可変遅延回路を制御し、ループバックテスト時においては、テストモード位相シフト量制御回路が可変遅延回路を制御している。従って、テストモードにおいてループバックテストの結果が正常であったとしても、ノーマルモードでのテストは行なわれておらず、その動作の保証は完全ではない。
【０００６】
他方、ＤＤＲ３−ＳＤＲＡＭにおいては、ライトレベリング機能が定義され、メモリコントローラは、メモリモジュールからのフィードバックにより、クロックとストローブとの位相補正を行なうことが可能となった。このような位相補正を可能とするためには、メモリコントローラ側にストローブ信号等の位相を制御する構成が必要となる。この構成は、特許文献１に開示されるようなテストモードの構成ではなく、通常動作において使用される構成となる。
【０００７】
本発明は、上記実情を考慮してなされたものであり、受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有するメモリモジュールのコントローラにおいて、通常動作時と同様の構成でのループバックテストを可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有するメモリモジュールのコントローラであって、データ信号を前記メモリモジュール側に出力するデータ出力部と、前記メモリモジュールに前記データ信号を保持させるタイミングを決定するストローブ信号を出力するストローブ信号出力部と、前記メモリモジュール側からデータ信号を入力されるデータ信号入力部と、前記入力されたデータ信号を保持するタイミングを決定するストローブ信号を入力されるストローブ信号入力部と、前記データ出力部が出力するデータ信号及び前記ストローブ信号出力部が出力するストローブ信号のうち少なくとも一つの信号のタイミングを調整するタイミング調整部とを有し、前記ストローブ信号出力部は、ループバックストローブ信号として前記ストローブ信号入力部に入力するように前記ストローブ信号を出力可能であり、前記データ出力部は、ループバックデータ信号として前記データ入力部に入力するように前記データ信号を出力可能であり、前記タイミング調整部は、前記ループバックストローブ信号が前記ループバックデータ信号を保持させるタイミングを決定する信号となるように前記少なくとも一つの信号のタイミングを調整可能であるものである。
【０００９】
また、請求項２に記載の発明は、請求項１に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部が、前記信号のタイミングを遅延させることにより、前記信号のタイミングを調整することを特徴とする。
【００１０】
また、請求項３に記載の発明は、請求項２に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部が、前記データ信号及び前記ストローブ信号のうち少なくとも一方の信号を入力され、入力された前記信号を遅延させて出力することにより、前記信号のタイミングを遅延させることを特徴とする。
【００１１】
また、請求項４に記載の発明は、請求項３に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部が、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方に、出力する信号のタイミングを遅延させる機能を更に有することを特徴とする。
【００１２】
また、請求項５に記載の発明は、請求項４に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部が、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方が出力する信号のタイミングを遅延させる機能を用いて所定期間以上の遅延を設け、その後入力された信号を遅延させることにより、前記所定期間未満の遅延を設けることを特徴とする。
【００１３】
また、請求項６に記載の発明は、請求項５に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部は、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方が出力する信号のタイミングを遅延させる機能を用いて、前記メモリモジュールの動作周波数の整数倍の周期の遅延を設けることを特徴とする。
【００１４】
また、請求項７に記載の発明は、請求項２または３に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部は、前記データ出力部及び前記ストローブ信号出力部のうち少なくとも一方に、出力する信号のタイミングを遅延させることを特徴とする。
【００１５】
また、請求項８に記載の発明は、請求項１乃至７いずれか１項に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部は、前記メモリモジュールのコントローラの通常動作とループバック動作とにおいて、前記ストローブ信号のタイミングを変えることにより、前記ループバックストローブ信号が前記ループバックデータ信号を保持させるタイミングを決定する信号となるようにすることを特徴とする。
【００１６】
また、請求項９に記載の発明は、請求項１乃至８いずれかに記載のメモリモジュールのコントローラにおいて、前記データ出力部は、パラレルのデータ信号を出力するために複数個設けられ、前記タイミング調整部は、前記複数のデータ出力部夫々に対応して複数個設けられることを特徴とする。
【００１７】
また、請求項１０に記載の発明は、請求項９に記載のメモリモジュールのコントローラにおいて、前記タイミング調整部は、前記複数のデータ出力部が出力する夫々のデータ信号の配線遅延に応じて前記データ信号のタイミングを調整することを特徴とする。
【００１８】
また、請求項１１に記載の発明は、データ信号を前記メモリモジュール側に出力するデータ出力部と、前記メモリモジュールに前記データ信号を保持させるタイミングを決定するストローブ信号を出力するストローブ信号出力部と、前記メモリモジュール側からデータ信号を入力されるデータ信号入力部と、前記入力されたデータ信号を保持するタイミングを決定するストローブ信号を入力されるストローブ信号入力部と、前記データ出力部が出力するデータ信号及び前記ストローブ信号出力部が出力するストローブ信号のうち少なくとも一つの信号のタイミングを調整するタイミング調整部とを有するメモリモジュールのコントローラの制御方法であって、前記メモリモジュールは、受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有し、前記ストローブ信号出力部が、ループバックストローブ信号として前記ストローブ信号入力部に入力するように前記ストローブ信号を出力し、前記データ出力部が、ループバックデータ信号として前記データ入力部に入力するように前記データ信号を出力し、前記タイミング調整部が、前記ループバックストローブ信号が前記ループバックデータ信号を保持させるタイミングを決定する信号となるように前記少なくとも一つの信号のタイミングを調整するものである。
【発明の効果】
【００１９】
本発明によれば、受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有するメモリモジュールのコントローラにおいて、通常動作時と同様の構成でのループバックテストが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。図１は、本実施形態に係るメモリモジュールのコントローラとしてのメモリコントローラ１の構成を示すブロック図である。図１に示すように、本実施形態に係るメモリコントローラ１は、ストローブ信号制御部１０及び複数のデータ信号制御部２０を含む。
【００２１】
ストローブ信号制御部１０は、データのサンプリングタイミングを与えるストローブ信号を制御する。図１に示すように、ストローブ信号制御部１０は、ストローブ制御回路１１、リードストローブ制御回路１２及びストローブ入出力部１３を含む。
【００２２】
ストローブ制御回路１１は、ＣＬＫ及びＣＬＫの２逓倍のクロックであるＣＬＫＸ２に基づいてストローブ信号を出力する。即ち、ストローブ制御回路１１がストローブ信号出力部として機能する。リードストローブ制御回路１２は、ストローブ制御回路１１から入力されたストローブ信号若しくはストローブ入出力部１３を介して外部から入力されたストローブ信号を、データ信号制御部２０に入力する。即ち、リードストローブ制御回路１２が、ストローブ信号入力部として機能する。尚、リードストローブ制御回路１２が、ストローブ制御回路１１から入力された信号をデータ信号制御部２０に入力する場合、データ信号制御部２０に入力される信号は、ループバックストローブ信号となる。
【００２３】
ストローブ制御回路１１がデータ信号制御部２０に入力する信号は、データ信号制御部２０がリードデータをサンプリングするためのストローブ信号として用いられる。ストローブ入出力部１３は、ストローブ制御回路１１が出力するストローブ信号を外部に出力し、若しくは外部から入力されるストローブ信号をリードストローブ制御回路１２に入力する。
【００２４】
データ信号制御部２０は、データの入出力を行なう。図１に示すように、データ信号制御部２０は、ライトデータ制御回路２１、ライトデータ遅延回路２２、遅延制御回路２３、リードデータ制御回路２４及びデータ入出力部２５を含む。
【００２５】
ライトデータ制御回路２１は、ＣＬＫＸ２に基づいてライトデータの出力を制御する。即ち、ライトデータ制御回路２１が、データ出力部として機能する。ライトデータ遅延回路２２は、ライトデータ制御回路２１が出力するライトデータの遅延を制御する。遅延制御回路２３は、ライトデータ遅延回路２２によるライトデータの遅延量を制御する。即ち、遅延制御回路２３及びライトデータ遅延回路２２が、信号のタイミングを調整するタイミング調整部として機能する。
【００２６】
リードデータ制御回路２４は、リードストローブ制御回路１２から入力されるリードストローブ信号に基づき、データ入出力部２５から入力されるリードデータをサンプリングする。即ち、リードデータ制御回路２４が、データ信号入力部として機能する。
【００２７】
次に、本実施形態に係るメモリコントローラ１の各部が出力する信号のタイミングについて、説明する。図２は、本実施形態に係るメモリコントローラ１によるライト動作におけるタイミングチャートである。図２においては、８バーストデータのライトタイミングの例を示す。図２の例においては、１つのデータ信号のみを示すが、実際は、ストローブ信号一組に対して複数のデータ線、即ち、複数データ信号が対応する。また、ＤＤＲ２／ＤＤＲ３−ＳＤＲＡＭのストローブ信号は差動信号であるが、説明の容易化のため、図２ではシングルエンド信号で記載する。
【００２８】
ライト動作においては、メモリコントローラ１がデータ信号及びストローブ信号を出力する。即ち、ストローブ入出力部１３は、ストローブ制御回路１１が出力するストローブ信号を出力する。また、データ入出力部２５は、ライトデータ遅延回路２２を介してライトデータ制御回路２１が出力するライトデータを出力する。
【００２９】
図２に示すように、ストローブ信号がＨｉｚから“Ｈｉｇｈ”に変化するタイミングＴ1から、次に信号が立ち上がるタイミング、即ち、１番目のバーストデータを取り込むためのタイミングＴ2までの期間をライトプリアンブル期間（ｔWPRE）と言う。このライトプリアンブル期間にストローブ信号が“Ｈｉｇｈ”から“Ｌｏｗ”へ変化するのはＤＤＲ３−ＳＤＲＡＭのタイミングでありＤＤＲ２−ＳＤＲＡＭ以前は“Ｌｏｗ”固定である。
【００３０】
データ信号は、ＣＬＫＸ２に同期して各バーストデータがストローブ信号の１／２周期で切り換わるように出力される。他方、データ信号のバーストが切り換わるタイミングと、ストローブ信号の立ち上がり若しくは立ち下がりタイミングは同期しておらず、その位相は、データ信号の１／２周期分ずれている。
【００３１】
メモリコントローラ１が出力したストローブ信号及びデータ信号を取得したメモリモジュールは、ストローブ信号の立ち上がり及び立ち下がりタイミングにおいて、データ信号をホールド、即ちサンプリングする。これにより、データのライト処理が実行される。
【００３２】
図２に示すように、データ信号の各バーストが立ち上がってからストローブ信号が立ち上がるまでの期間は、データセットアップ期間（ｔDS）と言う。この期間が短いと、データ信号が十分立ち上がる前にストローブ信号が立ち上がることによって誤ったデータがライトされてしまう。
【００３３】
また、図２に示すように、ストローブ信号が立ち上がってからデータ信号が次のバースに切り換わり始めるまでの期間は、データホールド期間（ｔDH）と言う。この期間が短いと、データ信号が正確にライトされる前にデータ信号が切り換わることとなり、やはり誤ったデータがライトされてしまう。
【００３４】
データセットアップ期間及びデータホールド期間は、上述したような制約がある。これに対して、データ信号の位相とストローブ信号の位相とを上述したようにずらすことにより、データセットアップ期間及びデータホールド期間を好適に確保することが可能となる。
【００３５】
次に、本実施形態に係るライトデータ遅延回路２２の機能について説明する。図３は、ライトデータ遅延回路２２の機能を説明するために、複数のデータ信号制御部２０が夫々出力するデータ信号及びストローブ信号を示すタイミングチャートである。図３においては、８つのデータ信号制御部２０が夫々データ１〜データ８を出力する場合を示す。また、図３に示す“データ合計”は、データ１〜データ８を全て重ね合わせた状態である。
【００３６】
図１に示すように、データ１〜データ８は、夫々異なるデータ信号制御部２０によって出力される。従って、同一のＣＬＫＸ２に基づいてデータ信号を出力する場合であっても、図３に示すように、夫々のデータに位相のずれが生じ得る。しかしながら、上述したように、データ１〜データ８は、同一のストローブ信号に基づいてホールドされる。データ１〜データ８を、同一のストローブ信号に基づいてホールドするためには、データ１〜データ８が全て立ち上がっているタイミングでデータをホールドする必要がある。
【００３７】
ここで、図３の“データ合計”に示すように、データ１〜データ８に位相のずれがあると、データセットアップ期間及びデータホールド期間が短くなってしまう。また、データ１〜データ８のいずれか１組の位相が、データデータ信号の１周期分、即ち、ＣＬＫＸ２の１周期分以上ずれると、同一のストローブ信号に基づいてホールドすることが不可能となる。
【００３８】
ライトデータ遅延回路２２は、図１に示すように、夫々のデータ信号制御部２０に設けられる。そして、ライトデータ遅延回路２２は、図４に示すように夫々のデータ信号を遅延させることにより、図３に示すデータセットアップ期間及びデータホールド期間が長くなるようにデータ信号の位相を調整する。このような処理により、データセットアップ期間及びデータホールド期間を確保し、誤ったデータがライトされてしまうことを防ぐことができる。
【００３９】
ＤＤＲ３−ＳＤＲＡＭにおいては、データレートが８００Ｍ（Ｈｚ）から１．６Ｇ（Ｈｚ）の使用が定義されているため、従来のＤＤＲ２−ＳＤＲＡＭ等の規格に比べて、図３に示すデータセットアップ期間及びデータホールド期間の制約はよりシビアである。よりシビアとなったデータセットアップ期間及びデータホールド期間の制約への対応を容易とするため、ＤＤＲ３−ＳＤＲＡＭにおいては、ライトレベリング機能が定義されている。
【００４０】
このライトレベリング機能とは、メモリモジュールからのフィードバックにより、メモリコントローラがクロックとストローブとの位相補正を行なう機能である。このライトレベリング機能に対応するため、ＤＤＲ３−ＳＤＲＡＭに対応したメモリコントローラは、図１に示すライトデータ遅延回路２２及び遅延制御回路２３のように、データ信号毎にライトデータの位相を調整可能な機能を設けて構成することが好ましい。
【００４１】
図５は、本実施形態に係るメモリコントローラ１によるリード動作におけるタイミングチャートである。図５においても、８バーストデータのリードタイミングの例を示す。リード動作においては、メモリコントローラ１に接続されているメモリモジュールがデータ信号及びストローブ信号を出力する。メモリモジュールが出力したデータ信号及びストローブ信号は、夫々ストローブ入出力部１３、データ入出力部２５に入力される。
【００４２】
図５に示すように、メモリモジュールがデータ信号を出力開始するまでの間、ストローブ信号を“Ｌｏｗ”に保持する期間がある。この期間をリードプリアンブル期間（ｔRPRE）と言う。メモリモジュールはこのリードプリアンブル期間の経過後、８バースト分に相当するストローブ信号の立ち上がり、立下りタイミングを制御する。
【００４３】
図５の例においても、メモリモジュールから入力されるデータ１〜データ８の位相は、夫々ずれがある。従って、メモリコントローラ１は、データ１〜データ８のすべてが立ち上がっているタイミングでデータをホールドする必要がある。ここで、リード動作において、ストローブ信号とデータ信号のスキューの最大間隔をデータ・ストローブ・スキュー期間（ｔDQDS）と言う。メモリコントローラ１は、ストローブ信号の立ち上がり後、のデータ・ストローブ・スキュー期間経過後にデータをホールドする必要がある。
【００４４】
また、リード動作において、データ１〜データ８のすべてが立ち上がっている期間をデータ保持期間（ｔQH）と言う。メモリコントローラ１は、上記データ・ストローブ・スキュー期間経過後、このデータ保持期間内にデータをホールドする必要がある。
【００４５】
図５に示す夫々のデータ信号１〜８は、図１に示すように、複数設けられたデータ信号制御部２０のデータ入出力部２５を介してリードデータ制御回路２４に入力される。また、図５に示すストローブ信号は、ストローブ信号制御部１０のストローブ入出力部１３を介してリードストローブ制御回路１２に入力される。
【００４６】
リードストローブ制御回路１２は、入力されたストローブ信号の位相を制御してリードデータ制御回路２４に入力する。リードデータ制御回路２４は、リードストローブ制御回路１２から入力されたストローブ信号に基づき、ＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）に代表される位相制御回路を用いて、入力されたデータ信号をホールドすることにより、データを取り込む。
【００４７】
このようなメモリコントローラ１において、本実施形態に係る要旨は、メモリコントローラ１単体によるループバックテストにある。以下、本実施形態に係るメモリコントローラ１のループバックテストについて説明する。
【００４８】
まず、図１を参照して、本実施形態に係るループバックテストの原理について説明する。ループバックテストとは、データ信号制御部２０内部において、ライトデータ制御回路２１が出力したテスト用のライトデータをリードデータ制御回路２４がリードすることにより、ライトデータとリードデータとの一致を確認するテストである。
【００４９】
具体的には、リードストローブ制御回路１２は、ストローブ制御回路１１が出力したストローブ信号をリードストローブ信号としてリードデータ制御回路２４に入力する。この際、リードデータ制御回路２４に入力されるストローブ信号は、ループバックストローブ信号として用いられる。また、リードデータ制御回路２４は、ライトデータ遅延回路２２を介してライトデータ制御回路２１が出力するライトデータを、リードデータとして取得する。この際、リードデータ制御回路２４が取得するデータ信号が、ループバック信号として用いられる。
【００５０】
ここで、図２、図３において説明したように、ライトデータ制御回路２１が出力するデータ信号の位相と、ストローブ制御回路１１が出力するストローブ信号の位相とは、データ信号の１／２周期分ずれている。しかしながら、本実施形態に係るリードストローブ制御回路１２及びリードデータ制御回路２４（以降、リード回路とする）は、図５に示す信号タイミングにおいて、リードデータを読み取るように構成されている。
【００５１】
具体的には、リード回路は、データの読取において、ストローブ信号の立ち上がり若しくは立ち下がりと、データ信号のバーストが切り換わるタイミングとが、回路による位相誤差を除き、同期した状態で夫々の信号が入力されることを前提として設計されている。
【００５２】
従って、ストローブ制御回路１１が出力するストローブ信号をリードストローブ制御回路１２に入力し、ライトデータ制御回路２１が出力する信号をそのままリードデータ制御回路２４に入力しても、リードデータ制御回路２４は、データ信号を読み取ることができない。
【００５３】
本実施形態においては、ライトデータ遅延回路２２及び遅延制御回路２３の機能により、ライトデータの位相を制御し、上記課題を解決してメモリコントローラ１単体によるループバックテストを可能とすることが、特徴の一つである。
【００５４】
図６は、本実施形態に係るメモリコントローラ１によるループバックテストにおけるタイミングチャートである。図６に示すタイミングチャートは、図３に示す信号タイミングにおいて、データ１〜データ８の信号タイミングをライトデータ遅延回路２２及び遅延制御回路２３の機能により、遅延させた状態を示す。
【００５５】
図２及び図５において説明したように、プリアンブル期間の論理がライト動作とリード動作とで異なる。従って、ループバックテスト動作において、ストローブ制御回路１１は、図６に示すように、リードプリアンブル期間と同様の信号を出力する。また、ストローブ入出力部１３及びデータ入出力部２５は、入力、出力ともにイネーブルに設定される。尚、通常のライトプリアンブル期間の信号は、図中破線で示す信号である。
【００５６】
図６に示すような信号のタイミングは、上述したように、ライトデータ遅延回路２２及び遅延制御回路２３の機能により、夫々のデータ信号制御部２０においてライトデータ制御回路２１が出力するライトデータの位相を遅延させることにより実現される。ここで、ライトデータ遅延回路２２及び遅延制御回路２３について、図７を参照して更に詳細に説明する。
【００５７】
図７は、ライトデータ遅延回路２２及び遅延制御回路２３を詳細に説明するブロック図である。図７に示すように、遅延制御回路２３は、ＤＬＬ２３１、遅延演算回路２３２を有する。ＤＬＬ２３１はリファレンスクロックを入力とし、リファレンスクロック周期に相当する遅延素子単位を出力する。
【００５８】
遅延演算回路２３２は、外部から入力される遅延設定値とＤＬＬ２３１の出力値に基づいてライトデータ遅延回路２２に一定の遅延を設定する。例えば遅延設定値がリファレンスクロック周期の３／３２である場合、ライトデータ遅延回路２２がライトデータを遅延させる間隔はリファレンスクロック周期の３／３２相当となる。
【００５９】
図６に示すように、ライトデータ遅延回路２２によってデータ１〜データ８のデータ信号を遅延させることにより、図５において説明したデータ・ストローブ・スキュー期間及びデータ保持期間と同様のタイミングを得ることが可能となる。これにより、リードデータ制御回路２４は、ライトデータ制御回路２１が出力したライトデータを読み取ることが可能となる。尚、図６は、データ１〜データ８を一律に遅延させる例を示している。この他、データ１〜データ８の遅延量を個別に設定し、データ１〜データ８のタイミングのずれを調整してデータ保持期間が長くなるようにしても良い。
【００６０】
本実施形態に係るライトデータ遅延回路２２及び遅延制御回路２３は、上述したように、ＤＤＲ３−ＳＤＲＡＭに対応したメモリコントローラ１において、ライトレベリング等の機能に対応するために設けられた構成である。即ち、メモリコントローラ１の通常動作において用いられる回路である。従って、ライトデータ遅延回路２２及び遅延制御回路２３の機能を用いて図６に示す信号のタイミングを実現することにより、通常動作時と同様の回路によりループバックテストを実行することが可能となる。その結果、ループバックテストによるテスト結果の信頼性を向上することができる。
【００６１】
本実施形態に係るメモリコントローラ１が実装されるＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の例を図７に示す。図７に示すように、本実施形態に係るＡＳＩＣ１００は、メモリコントローラ１を含むメモリ制御回路１０１、アプリケーション回路１０２及びテスト制御回路１０３を含む。また、メモリ制御回路１０１は、メモリコントローラ１に加えて、コマンド制御ブロック２、リードデータバッファ３、ライトデータバッファ４、アプリケーションＩ／Ｆブロック５及びテストＩ／Ｆブロック６を含む。
【００６２】
コマンド制御ブロック２は、上述したようなライト動作、リード動作の開始若しくは終了等のきっかけを与える信号を制御する。リードデータバッファ３は、メモリコントローラ１がメモリモジュール２００から読み出したリードデータをアプリケーションＩ／Ｆブロック５若しくはテストＩ／Ｆブロック６に転送するためのバッファである。ライトデータバッファ４は、メモリコントローラ１がメモリモジュール２００に書き込むためのライトデータを、アプリケーションＩ／Ｆブロック５若しくはテストＩ／Ｆブロック６から受け取る際のバッファである。
【００６３】
アプリケーションＩ／Ｆブロック５は、メモリ制御回路１０１がアプリケーション回路１０２と信号をやり取りする際のインタフェースである。テストＩ／Ｆブロック６は、メモリ制御回路１０１がテスト制御回路１０３と信号をやり取りする際のインタフェースである。アプリケーション回路１０２は、ＡＳＩＣ１００の機能を担う回路である。テスト制御回路１０３は、メモリコントローラ１のテストを行なう回路である。
【００６４】
メモリコントローラ１のループバックテストに際しては、テスト制御回路１０３がテスト用のライトデータを発行する。テスト制御回路１０３によって発行されたライトデータは、ライトデータバッファ４を介してメモリコントローラ１に入力される。メモリコントローラ１は、ライトデータをループバックしてリードデータバッファに書き込む。テスト制御回路１０３は。ループバックされたデータをリードデータバッファから読みだし、データの正否を確認する。テスト制御回路１０３によるテストは、図９に示すような経路となる。
【００６５】
本実施形態に係るＡＳＩＣ１００においては、リードデータバッファ３及びライトデータバッファ４の機能により、メモリコントローラ１内部のループバック動作を通常動作と同様の速度で実行し、テスト制御回路１０３とメモリ制御回路１０１との間の情報のやり取りは、低速な通信インタフェースで実行することができる。これにより、テスト制御回路１０３は既存の回路を用いることができる。
【００６６】
また、アプリケーション回路１０２が、ループバックテスト用のコマンドを発行することによっても、上記と同様にループバックテストを実行することが可能となる。この場合、テストの経路は図１０に示すような経路となる。アプリケーション回路１０２がループバックテスト用のコマンドを発行する場合、ＡＳＩＣ１００全体でテストを実行することとなるため、ループバックテストによるテスト結果の信頼性を更に向上することができる。
【００６７】
以上、説明したように、本実施形態によれば、ＤＤＲ３−ＳＤＲＡＭのような、受信したクロック信号及びストローブ信号のタイミングを判断して判断結果を出力する機能を有するメモリモジュールのコントローラにおいて、通常動作時と同様の構成でのループバックテストが可能となる。
【００６８】
尚、上記実施形態においては、図１に示すように、データ信号制御部２０にライトデータ遅延回路２２及び遅延制御回路２３を設ける例を説明した。上述したようなＤＤＲ３−ＳＤＲＡＭの機能を効果的に利用するためには、様々な信号について、位相を調整する機能を設けることが好ましいため、ストローブ信号制御部１０に信号を遅延させる構成を設けても良い。
【００６９】
図１１に、ストローブ信号制御部１０に信号を遅延させる構成を設けた場合のメモリコントローラ１の機能構成を示す。ストローブ信号を遅延させる構成を含む場合のストローブ信号制御部１０は、ストローブ遅延回路１４及び遅延制御回路１５を含む。
【００７０】
ストローブ遅延回路１４及び遅延制御回路１５は、ライトデータ遅延回路２２及び遅延制御回路２３と同様に、ストローブ制御回路１１が出力するストローブ信号の位相を遅延させる。具体的には、ストローブ遅延回路１４が、遅延制御回路１５の制御に基づいて遅延量を決定し、ストローブ制御回路１１から入力されたストローブ信号を遅延させて出力する。ストローブ遅延回路１４及び遅延制御回路１５は、図７に示す構成と同様の構成を有する。
【００７１】
また、図１１に示す例において、遅延制御回路１５は、ストローブ制御回路１１がストローブ信号を出力するタイミングを所定期間以上の単位、例えば、１クロック若しくは１／２クロック単位で遅延させる機能を有する。同様に、遅延制御回路２３は、ライトデータ制御回路２１がストローブ信号を出力するタイミングを１クロック若しくは１／２クロック単位で遅延させる機能を有する。
【００７２】
図１１に示す例において、例えば、ストローブ信号を遅延させる場合、上述したようにストローブ信号の出力タイミングを遅延させる処理とストローブ遅延回路１４による遅延との組み合わせにより実行する。同様に、データ信号を遅延させる場合、上記と同様にデータ信号の出力タイミングを遅延させる処理とライトデータ遅延回路２２による遅延との組み合わせにより実行する。
【００７３】
ここで、ストローブ遅延回路１４による遅延量は、遅延制御回路１５がストローブ信号の出力タイミングを遅延させる遅延量よりも短い。同様に、ライトデータ遅延回路２２による遅延量は、遅延制御回路２３がデータ信号の出力タイミングを遅延させる遅延量よりも短い。
【００７４】
具体的には、上述したように、遅延制御回路１５、遅延制御回路２３が信号の出力タイミングを遅延させる遅延量が１クロック若しくは１／２クロック単位であるのに対し、ストローブ遅延回路１４、ライトデータ遅延回路２２による遅延量は、２／３２クロック等、更に短い期間で遅延量を制御可能である。
【００７５】
信号の遅延量を決定する際、先ず、遅延制御回路１５、遅延制御回路２３が、１クロック若しくは１／２クロック単位で信号を遅延させる。そして、ストローブ遅延回路１４、ライトデータ遅延回路２２が、詳細な遅延量を制御する。遅延回路において信号を遅延させる回路素子は、遅延量に従って回路規模が増大する。これに対して、上記構成により、ストローブ遅延回路１４の回路規模を低減することが可能となる。
【００７６】
尚、上記回路規模の低減の目的においては、ストローブ遅延回路１４、ライトデータ遅延回路２２による最大の遅延量は可能な限り少ない方が好ましい。ここで、遅延制御回路１５、遅延制御回路２３が、信号の出力タイミングを１／２クロック単位で遅延させることが可能であれば、ストローブ遅延回路１４に求められる最大の遅延量は、１／２クロックとなる。
【００７７】
従って、遅延制御回路１５、遅延制御回路２３が、信号の出力タイミングを１／２クロック単位で遅延させることが可能であるように構成することが好ましい。本実施形態において、ストローブ制御回路１１、ライトデータ制御回路２１は、メモリクロックの２逓倍であるＣＬＫＸ２に基づいて動作するため、１／２クロック単位で信号の位相を調整することが可能である。
【００７８】
図２においては、各信号のタイミングが設計上の理想的なタイミングである場合を示した。しかしながら、実際には、夫々の信号の配線が異なるため、配線による遅延が異なり、各信号は設計上の理想的なタイミングとは異なるタイミングで出力される。
【００７９】
ＤＤＲ３−ＳＤＲＡＭのような高速動作のメモリモジュールのコントローラにおいては、上記配線遅延によるタイミングのずれが大きな問題となる。各データ信号に加えて、ストローブ信号のタイミングを調整可能とすることにより、このような問題を解決することができる。
【００８０】
次に、図１１に示す例に係るメモリコントローラ１の、信号遅延処理について説明する。図１２は、図１１に示す例に係るメモリコントローラ１の、ライト動作時の出力信号のタイミングチャートである。図１１の例においては、まず、データ１とデータ２とのタイミングを合わせるために、データ２の信号タイミングが遅延されている。そして、データセットアップ期間及びデータホールド期間を好適に確保するため、データ１、データ２のタイミングに合わせて、ストローブ信号が遅延されている。
【００８１】
図１３は、図１１に示す例に係るメモリコントローラ１によるループバックテスト時の信号タイミングの一例を示すタイミングチャートである。図１３においては、図１２において説明したようにストローブ信号を遅延させた状態において、ループバックテストを実行する場合を示している。上述したようにストローブ信号が遅延されている場合であっても、その遅延されたストローブ信号に合わせてデータ信号を夫々遅延させることにより、図６と同様にループバックテスト用の信号タイミングを実現することが可能となる。
【００８２】
図１４は、図１１に示す例に係るメモリコントローラ１によるループバックテスト時の信号タイミングの他の例を示すタイミングチャートである。図１４の例においては、遅延制御回路１５及びストローブ遅延回路１４によるストローブ信号の遅延を解除することにより、図６と同様にループバックテスト用の信号タイミングを実現する。尚、図１４においては、データ信号間のスキューを補正するため、データ信号毎に個別に遅延量を設定している。
【００８３】
上述したように、データ信号間のスキューは、データ信号毎の配線遅延量によって生じる。従って、メモリコントローラ１の通常動作時とループバックテスト時において大きな違いはないと考えられる。従って、データ信号間のスキューを補正するためのデータ信号毎の遅延量を固定とし、図１４の例のように、ストローブ信号のタイミング調整により通常動作とループバックテストを切り換える場合、ストローブ信号のみを切り換えればよく、構成を簡略化することができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態に係るメモリコントローラを示すブロック図である。
【図２】本発明の実施形態に係るメモリコントローラのライト動作時の信号を示すタイミングチャートである。
【図３】本発明の実施形態に係るメモリコントローラのライト動作時の信号を示すタイミングチャートである。
【図４】本発明の実施形態に係る遅延回路による信号の遅延態様を示す図である。
【図５】本発明の実施形態に係るメモリコントローラのリード動作時の信号を示すタイミングチャートである。
【図６】本発明の実施形態に係るメモリコントローラのループバックテスト時の信号を示すタイミングチャートである。
【図７】本発明の実施形態に係る遅延制御回路及びライトデータ遅延回路を示すブロック図である。
【図８】本発明の実施形態に係るメモリコントローラが実装されるＡＳＩＣを示すブロック図である。
【図９】本発明の実施形態に係るＡＳＩＣのループバックテストにおける信号経路を示す図である。
【図１０】本発明の実施形態に係るＡＳＩＣのループバックテストにおける信号経路を示す図である。
【図１１】本発明の他の実施形態に係るメモリコントローラを示すブロック図である。
【図１２】本発明の他の実施形態に係るメモリコントローラのライト動作時の信号を示すタイミングチャートである。
【図１３】本発明の他の実施形態に係るメモリコントローラのループバックテスト時の信号を示すタイミングチャートである。
【図１４】本発明の他の実施形態に係るメモリコントローラのループバックテスト時の信号を示すタイミングチャートである。
【符号の説明】
【００８５】
１    メモリコントローラ
２    コマンド制御ブロック
３    リードデータバッファ
４    ライトデータバッファ
５    アプリケーションＩ／Ｆブロック
６    テストＩ／Ｆブロック
１０    ストローブ信号制御部
１１    ストローブ制御回路
１２    リードストローブ制御回路
１３    ストローブ入出力部
１４    ストローブ遅延回路
１５    遅延制御回路
２０    データ信号制御部
２１    ライトデータ制御回路
２２    ライトデータ遅延回路
２３    遅延制御回路
２４    リードデータ制御回路
２５    データ入出力部
１００    ＡＳＩＣ
１０１    メモリ制御回路
１０２    アプリケーション回路
１０３    テスト制御回路
２００    メモリモジュール
２３１    ＤＬＬ
２３２    遅延演算回路
【図１】
2010079520.tif 000003
【図２】
2010079520.tif 000004
【図３】
2010079520.tif 000005
【図４】
2010079520.tif 000006
【図５】
2010079520.tif 000007
【図６】
2010079520.tif 000008
【図７】
2010079520.tif 000009
【図８】
2010079520.tif 000010
【図９】
2010079520.tif 000011
【図１０】
2010079520.tif 000012
【図１１】
2010079520.tif 000013
【図１２】
2010079520.tif 000014
【図１３】
2010079520.tif 000015
【図１４】
2010079520.tif 000016