(57)【要約】【課題】  データ信号のタイミングに応じてデータ信号を適切に取得することができる技術を提供することを目的とする。【解決手段】  比較的大きな時間間隔でデータ信号の取得タイミングを調整する粗調整部の設定である粗設定が同じで、比較的小さな時間間隔でデータ信号の取得タイミングを調整する微調整部の設定である微設定が互いに異なる複数の設定組み合わせからなる設定グループ毎にデータ信号の取得が正常に行われたか否かの判定を行い、設定グループ毎にデータ取得の判定結果が正常である成功設定組み合わせの数である成功数を算出し、成功数が最も多い最多設定グループに含まれる成功設定組み合わせの中から、粗設定と微設定とを定める制御用設定組み合わせを採用する。【選択図】  図７
2006099245.tif 000002
【特許請求の範囲】
【請求項１】
データ信号を出力するデータ信号出力装置から前記データ信号を取得するデータ信号取得装置であって、
前記データ信号を取得するタイミングを、比較的大きな時間間隔で調整可能な粗調整部と、比較的小さな時間間隔で調整可能な微調整部と、を備えたデータ取得部を備え、
前記データ取得部は、前記粗調整部と前記微調整部との設定で決まるタイミングで前記データ信号を取得し、
前記データ信号取得装置は、さらに、
前記粗調整部の設定である粗設定を複数通りに変更するとともに、前記微調整部の設定である微設定を複数通りに変更し、さらに、前記複数の粗設定と前記複数の微設定との複数の設定組み合わせ毎に決まる複数のタイミングのそれぞれで所定の較正データ信号を取得する旨の指示を前記データ取得部に送信する較正制御部と、
前記データ取得部が取得した前記較正データ信号を用いて、前記複数の設定組み合わせ毎に前記取得が正常に行われたか否かを判定する正誤判定部と、
前記正誤判定部の判定結果に基づいて前記粗設定と前記微設定との組み合わせを決定するタイミング決定部と、を備え、
前記タイミング決定部は、
（ａ）前記粗設定が同じで前記微設定が互いに異なる複数の設定組み合わせからなる設定グループ毎に、前記判定結果が正常である成功設定組み合わせの数である成功数を算出し、
（ｂ）前記成功数が最も多い最多設定グループに含まれる前記成功設定組み合わせの中から、前記粗設定と前記微設定とを定める制御用設定組み合わせを採用する、
データ信号取得装置。
【請求項２】
請求項１に記載のデータ信号取得装置であって、
前記較正制御部が送信する指示は、前記微設定を３通り以上に変更する旨を含み、
前記タイミング決定部は、前記最多設定グループに含まれる前記成功設定組み合わせの中の、各設定組み合わせで定まる前記タイミングの時系列に沿った順番が先頭の成功設定組み合わせと最後尾の成功設定組み合わせとを除いた残りの成功設定組み合わせの中から、前記制御用設定組み合わせを採用する、
データ信号取得装置。
【請求項３】
請求項１または請求項２に記載のデータ信号取得装置であって、
前記微調整部は、前記粗調整部が調整可能なタイミングの時間間隔以上の時間幅に渡って前記タイミングを調整することが可能であり、
前記較正制御部が送信する指示における前記複数の微設定と前記複数の粗設定とは、前記粗設定を固定した状態において前記各微設定に従って決まる複数のタイミングの分布の時間幅が、前記微設定を固定した状態における前記各粗設定に従って決まる複数のタイミングの時間間隔以上となるように、設定されている、
データ信号取得装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載のデータ信号取得装置であって、
前記データ信号を適切に取得可能な時間の長さを最大取得可能時間と呼ぶときに、
前記微調整部は、前記最大取得可能時間以上の時間幅に渡って前記タイミングを調整することが可能であり、
前記較正制御部が送信する指示における前記複数の微設定は、前記粗設定を固定した状態において前記各微設定に従って決まる複数のタイミングの分布の時間幅が、前記最大取得可能時間以上となるように設定されている、
データ信号取得装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載のデータ信号取得装置であって、
前記粗調整部は、
前記データ信号を互いに異なる複数のタイミングで取得することによって、Ｎ種類（Ｎは２以上の整数）の中間データ信号を生成する中間データ信号生成部と、
前記Ｎ種類の中間データ信号の中から１種類の中間データ信号を選択する選択部と、を備え、
前記データ取得部は、さらに、前記選択部が選択した前記中間データ信号を取得する信号取得部を備え、
前記微調整部は、所定のクロック信号を可変の遅延時間だけ遅延させて遅延クロック信号を生成する可変遅延クロック信号生成部を備え、
前記中間データ信号生成部は、
前記遅延クロック信号に同期して前記データ信号を取得するＮ個の前段取得部と、
前記各前段取得部毎に設けられ、前記前段取得部が取得した前記データ信号を伝達することによって前記Ｎ種類の中間データ信号を出力するＮ個の伝達部と、を備える、
データ信号取得装置。
【請求項６】
請求項１ないし請求項４のいずれかに記載のデータ信号取得装置であって、
前記粗調整部は、
前記データ信号を互いに異なる複数のタイミングで取得することによって、Ｎ種類（Ｎは２以上の整数）の中間データ信号を生成する中間データ信号生成部と、
前記Ｎ種類の中間データ信号の中から１種類の中間データ信号を選択する選択部と、を備え、
前記データ取得部は、さらに、前記選択部が選択した前記中間データ信号を取得する信号取得部を備え、
前記微調整部は、所定のクロック信号を可変の遅延時間だけ遅延させて遅延クロック信号を生成する可変遅延クロック信号生成部を備え、
前記中間データ信号生成部は、
前記遅延クロック信号に同期して前記データ信号を取得する前段取得部と、
前記前段取得部が取得した前記データ信号を伝達することによって前記中間データ信号を出力する伝達部と、を備え、
前記伝達部は、直列に接続された１つ以上の遅延回路を備え、
前記中間データ信号生成部は、前記前段取得部の出力信号と、前記各遅延回路のそれぞれの出力信号と、を含む複数種類の出力信号の中の少なくとも一部の複数種類の出力信号を、前記Ｎ種類の中間データ信号の中の少なくとも一部の複数種類の中間データ信号として出力する、
データ信号取得装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載のデータ信号取得装置であって、
前記データ信号出力装置は半導体メモリである、データ信号取得装置。
【請求項８】
データ信号取得装置がデータ信号を出力するデータ信号出力装置から前記データ信号を取得するタイミングを調整するタイミング調整装置であって、
前記データ信号取得装置は、前記データ信号を取得するタイミングを、比較的大きな時間間隔で調整可能な粗調整部と、比較的小さな時間間隔で調整可能な微調整部と、を備えたデータ取得部を備え、
前記データ取得部は、前記粗調整部と前記微調整部との設定で決まるタイミングで前記データ信号を取得し、
前記タイミング調整装置は、
前記粗調整部の設定である粗設定を複数通りに変更するとともに、前記微調整部の設定である微設定を複数通りに変更し、さらに、前記複数の粗設定と前記複数の微設定との複数の設定組み合わせ毎に決まる複数のタイミングのそれぞれで所定の較正データ信号を取得する旨の指示を前記データ取得部に送信する較正制御部と、
前記データ取得部が取得した前記較正データ信号を用いて、前記複数の設定組み合わせ毎に前記取得が正常に行われたか否かを判定する正誤判定部と、
前記正誤判定部の判定結果に基づいて前記粗設定と前記微設定との組み合わせを決定するタイミング決定部と、を備え、
前記タイミング決定部は、
（ａ）前記粗設定が同じで前記微設定が互いに異なる複数の設定組み合わせからなる設定グループ毎に、前記判定結果が正常である成功設定組み合わせの数である成功数を算出し、
（ｂ）前記成功数が最も多い最多設定グループに含まれる前記成功設定組み合わせの中から、前記粗設定と前記微設定とを定める制御用設定組み合わせを採用する、
タイミング調整装置。
【請求項９】
データ信号取得装置がデータ信号を出力するデータ信号出力装置から前記データ信号を取得するタイミングを調整するタイミング調整方法であって、
前記データ信号取得装置は、前記データ信号を取得するタイミングを、比較的大きな時間間隔で調整可能な粗調整部と、比較的小さな時間間隔で調整可能な微調整部と、を備えたデータ取得部を備え、
前記データ取得部は、前記粗調整部と前記微調整部との設定で決まるタイミングで前記データ信号を取得し、
前記タイミング調整方法は、
（ａ）前記粗調整部の設定である粗設定を複数通りに変更するとともに、前記微調整部の設定である微設定を複数通りに変更し、さらに、前記複数の粗設定と前記複数の微設定との複数の設定組み合わせ毎に決まる複数のタイミングのそれぞれで所定の較正データ信号を取得する旨の指示を前記データ取得部に送信する工程と、
（ｂ）前記データ取得部が取得した前記較正データ信号を用いて、前記複数の設定組み合わせ毎に前記取得が正常に行われたか否かを判定する工程と、
（ｃ）前記工程（ｂ）の判定結果に基づいて前記粗設定と前記微設定との組み合わせを決定する工程と、を備え、
前記工程（ｃ）は、
（ｃ１）前記粗設定が同じで前記微設定が互いに異なる複数の設定組み合わせからなる設定グループ毎に、前記判定結果が正常である成功設定組み合わせの数である成功数を算出する工程と、
（ｃ２）前記成功数が最も多い最多設定グループに含まれる前記成功設定組み合わせの中から、前記粗設定と前記微設定とを定める制御用設定組み合わせを採用する工程と、
を有する、タイミング調整方法。
【請求項１０】
コンピュータに、データ信号取得装置がデータ信号を出力するデータ信号出力装置から前記データ信号を取得するタイミングを調整させるためのコンピュータプログラムであって、
前記データ信号取得装置は、前記データ信号を取得するタイミングを、比較的大きな時間間隔で調整可能な粗調整部と、比較的小さな時間間隔で調整可能な微調整部と、を備えたデータ取得部を備え、
前記データ取得部は、前記粗調整部と前記微調整部との設定で決まるタイミングで前記データ信号を取得し、
前記コンピュータプログラムは、
（ａ）前記粗調整部の設定である粗設定を複数通りに変更するとともに、前記微調整部の設定である微設定を複数通りに変更し、さらに、前記複数の粗設定と前記複数の微設定との複数の設定組み合わせ毎に決まる複数のタイミングのそれぞれで所定の較正データ信号を取得する旨の指示を前記データ取得部に送信させる機能と、
（ｂ）前記データ取得部が取得した前記較正データ信号を用いて、前記複数の設定組み合わせ毎に前記取得が正常に行われたか否かを判定させる機能と、
（ｃ）前記機能（ｂ）の判定結果に基づいて前記粗設定と前記微設定との組み合わせを決定させる機能と、をコンピュータに実現させるコンピュータプログラムであり、
前記機能（ｃ）は、
（ｃ１）前記粗設定が同じで前記微設定が互いに異なる複数の設定組み合わせからなる設定グループ毎に、前記判定結果が正常である成功設定組み合わせの数である成功数を算出させる機能と、
（ｃ２）前記成功数が最も多い最多設定グループに含まれる前記成功設定組み合わせの中から、前記粗設定と前記微設定とを定める制御用設定組み合わせを採用させる機能と、
を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ信号を取得するデータ信号取得装置に関するものである。
【背景技術】
【０００２】
従来より、半導体メモリに対するデータの読み書きを行う装置としてメモリコントローラが用いられている。メモリコントローラは、半導体メモリに読出要求を送信し、半導体メモリから送られてくるデータ信号を取得する。ここで、データ信号を適切に取得するために様々な工夫がなされている。例えば、データ信号と、データ信号に同期させたデータストローブ信号と、の両方を用いてデータ信号を取得する方法が用いられている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００１−３３１３６５号公報
【０００４】
ところで、近年では、電子機器の性能の向上のために、データ信号の転送速度の高速化が図られている。データ信号の転送速度を高めると、データ信号の切り替わりも高速に行われることとなる。データ信号の取得は、このような切り替わりに追従して行われることが要求される。ところが、データ信号がメモリコントローラに到達するタイミングは、半導体メモリの個体差や配線の長さやレイアウト等の種々の要因によって変わり得る。その結果、データ信号を適切に取得できなくなる場合があった。
【０００５】
なお、このような問題は、データストローブ信号を用いるメモリコントローラに限らず、データストローブ信号を用いずにデータ信号の取得を行うメモリコントローラにも共通する問題であった。また、半導体メモリからデータ信号を取得する装置に限らず、他の種々の装置から送信されるデータ信号を取得する装置にも共通する問題であった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上述した従来の課題を解決するためになされたものであり、データ信号のタイミングに応じてデータ信号を適切に取得することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題の少なくとも一部を解決するために、本発明のデータ信号取得装置は、データ信号を出力するデータ信号出力装置から前記データ信号を取得するデータ信号取得装置であって、前記データ信号を取得するタイミングを、比較的大きな時間間隔で調整可能な粗調整部と、比較的小さな時間間隔で調整可能な微調整部と、を備えたデータ取得部を備え、前記データ取得部は、前記粗調整部と前記微調整部との設定で決まるタイミングで前記データ信号を取得し、前記データ信号取得装置は、さらに、前記粗調整部の設定である粗設定を複数通りに変更するとともに、前記微調整部の設定である微設定を複数通りに変更し、さらに、前記複数の粗設定と前記複数の微設定との複数の設定組み合わせ毎に決まる複数のタイミングのそれぞれで所定の較正データ信号を取得する旨の指示を前記データ取得部に送信する較正制御部と、前記データ取得部が取得した前記較正データ信号を用いて、前記複数の設定組み合わせ毎に前記取得が正常に行われたか否かを判定する正誤判定部と、前記正誤判定部の判定結果に基づいて前記粗設定と前記微設定との組み合わせを決定するタイミング決定部と、を備え、前記タイミング決定部は、（ａ）前記粗設定が同じで前記微設定が互いに異なる複数の設定組み合わせからなる設定グループ毎に、前記判定結果が正常である成功設定組み合わせの数である成功数を算出し、（ｂ）前記成功数が最も多い最多設定グループに含まれる前記成功設定組み合わせの中から、前記粗設定と前記微設定とを定める制御用設定組み合わせを採用する。
【０００８】
このデータ信号取得装置によれば、比較的大きな時間間隔でタイミングを調整する粗調整部の設定である粗設定が同じで、比較的小さな時間間隔でタイミングを調整する微調整部の設定である微設定が互いに異なる複数の設定組み合わせからなる設定グループ毎に、データ取得の判定結果が正常である成功設定組み合わせの数である成功数が算出され、成功数が最も多い最多設定グループに含まれる成功設定組み合わせの中から、粗設定と微設定とを定める制御用設定組み合わせが採用されるので、データ信号のタイミングに応じてデータ信号を適切に取得することができる。
【０００９】
上記データ信号取得装置において、前記較正制御部が送信する指示は、前記微設定を３通り以上に変更する旨を含み、前記タイミング決定部は、前記最多設定グループに含まれる前記成功設定組み合わせの中の、各設定組み合わせで定まる前記タイミングの時系列に沿った順番が先頭の成功設定組み合わせと最後尾の成功設定組み合わせとを除いた残りの成功設定組み合わせの中から、前記制御用設定組み合わせを採用することが好ましい。
【００１０】
この構成によれば、時系列に沿った順番が先頭の成功設定組み合わせと最後尾の成功設定組み合わせとを除いた残りの成功設定組み合わせの中から、制御用設定組み合わせが採用されるので、ジッタ等の影響によって適切にデータ信号を取得できない可能性のある設定組み合わせを選択することを抑制することが可能となる。
【００１１】
上記各データ信号取得装置において、前記微調整部は、前記粗調整部が調整可能なタイミングの時間間隔以上の時間幅に渡って前記タイミングを調整することが可能であり、前記較正制御部が送信する指示における前記複数の微設定と前記複数の粗設定とは、前記粗設定を固定した状態において前記各微設定に従って決まる複数のタイミングの分布の時間幅が、前記微設定を固定した状態における前記各粗設定に従って決まる複数のタイミングの時間間隔以上となるように、設定されていることが好ましい。
【００１２】
この構成によれば、各設定グループにおけるタイミングの分布範囲を時系列に沿って並べたときに、隣り合う２つの分布範囲が互いに重なるので、微調整が可能な範囲に隙間が生じることを防止し、適切な開始タイミングを選択することが可能となる。
【００１３】
上記各データ信号取得装置において、前記データ信号を適切に取得可能な時間の長さを最大取得可能時間と呼ぶときに、前記微調整部は、前記最大取得可能時間以上の時間幅に渡って前記タイミングを調整することが可能であり、前記較正制御部が送信する指示における前記複数の微設定は、前記粗設定を固定した状態において前記各微設定に従って決まる複数のタイミングの分布の時間幅が、前記最大取得可能時間以上となるように設定されていることが好ましい。
【００１４】
この構成によれば、各成功設定組み合わせで決まる複数のタイミングの時系列に沿った順番が先頭のタイミングと最後尾のタイミングとのそれぞれを定める２つの設定組み合わせを、１つの設定グループに含ませることが可能となる。その結果、ジッタ等の影響によって適切にデータ信号を取得できない可能性のある先頭のタイミングと最後尾のタイミングとの設定組み合わせを選択することを抑制することが可能となる。
【００１５】
上記各データ信号取得装置において、前記粗調整部は、前記データ信号を互いに異なる複数のタイミングで取得することによって、Ｎ種類（Ｎは２以上の整数）の中間データ信号を生成する中間データ信号生成部と、前記Ｎ種類の中間データ信号の中から１種類の中間データ信号を選択する選択部と、を備え、前記データ取得部は、さらに、前記選択部が選択した前記中間データ信号を取得する信号取得部を備え、前記微調整部は、所定のクロック信号を可変の遅延時間だけ遅延させて遅延クロック信号を生成する可変遅延クロック信号生成部を備え、前記中間データ信号生成部は、前記遅延クロック信号に同期して前記データ信号を取得するＮ個の前段取得部と、前記各前段取得部毎に設けられ、前記前段取得部が取得した前記データ信号を伝達することによって前記Ｎ種類の中間データ信号を出力するＮ個の伝達部と、を備えることとしてもよい。
【００１６】
この構成によれば、取得されたタイミングが互いに異なるＮ種類の中間データ信号が、Ｎ個の前段取得部と各前段取得部毎に設けられたＮ個の伝達部とを用いて出力されるので、中間データ信号生成部の構成が過剰に複雑化することを防止することができる。
【００１７】
上記各データ信号取得装置において、前記粗調整部は、前記データ信号を互いに異なる複数のタイミングで取得することによって、Ｎ種類（Ｎは２以上の整数）の中間データ信号を生成する中間データ信号生成部と、前記Ｎ種類の中間データ信号の中から１種類の中間データ信号を選択する選択部と、を備え、前記データ取得部は、さらに、前記選択部が選択した前記中間データ信号を取得する信号取得部を備え、前記微調整部は、所定のクロック信号を可変の遅延時間だけ遅延させて遅延クロック信号を生成する可変遅延クロック信号生成部を備え、前記中間データ信号生成部は、前記遅延クロック信号に同期して前記データ信号を取得する前段取得部と、前記前段取得部が取得した前記データ信号を伝達することによって前記中間データ信号を出力する伝達部と、を備え、前記伝達部は、直列に接続された１つ以上の遅延回路を備え、前記中間データ信号生成部は、前記前段取得部の出力信号と、前記各遅延回路のそれぞれの出力信号と、を含む複数種類の出力信号の中の少なくとも一部の複数種類の出力信号を、前記Ｎ種類の中間データ信号の中の少なくとも一部の複数種類の中間データ信号として出力することとしてもよい。
【００１８】
この構成によれば、取得されたタイミングが互いに異なる複数種類の中間データ信号の生成に共通の前段取得部が用いられるので、中間データ信号生成部の小型化を図ることが可能となる。
【００１９】
上記各データ信号取得装置において、前記データ信号出力装置は半導体メモリであってもよい。
【００２０】
この構成によれば、半導体メモリからのデータ信号を適切に取得することが可能となる。
【００２１】
なお、本発明は、種々の形態で実現することが可能であり、例えば、タイミング調整方法およびタイミング調整装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、タイミング調整装置を備えたデータ信号取得装置、そのデータ信号取得装置と半導体メモリとを備えた半導体メモリシステム、半導体メモリシステムを備えた電子機器等の形態で実現することができる。
【発明を実施するための最良の形態】
【００２２】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．第３実施例：
Ｄ．変形例：
【００２３】
Ａ．第１実施例：
図１（Ａ）は、本発明の一実施例としてのメモリシステムの構成を示すブロック図である。このメモリシステム３００は、データ取得装置１００と、ＤＤＲメモリ２００と、を備えている。データ取得装置１００は、可変データディレイ回路１１０と、メモリコントローラ１２０と、可変クロックディレイ回路１３０と、クロック生成回路１４０と、ディレイ設定回路１５０と、キャリブレーション回路１６０と、を備えている。
【００２４】
クロック生成回路１４０は、クロック信号ＣＬＫを生成し、クロック信号ＣＬＫをメモリシステム３００の各構成要素に供給する。クロック生成回路１４０の構成としては、自発的に発振してクロック信号ＣＬＫを生成する構成を採用してもよく、また、外部から供給された基準クロック信号に従ってクロック信号ＣＬＫを生成する構成を採用してもよい。また、クロック生成回路１４０は、クロック信号ＣＬＫとは位相を１８０度だけずらした逆位相クロック信号＃ＣＬＫを生成し、生成した逆位相クロック信号＃ＣＬＫもＤＤＲメモリ２００に供給している。
【００２５】
可変クロックディレイ回路１３０は、クロック信号ＣＬＫを遅延させて遅延クロック信号ＤＣＬＫを生成し、生成した遅延クロック信号ＤＣＬＫを可変データディレイ回路１１０に供給する。
【００２６】
ＤＤＲメモリ２００は、ＤＤＲ−ＳＤＲＡＭ（Double Data Rate Synchronous DRAM）である。このＤＤＲメモリ２００は、アドレスが連続する複数のデータを、クロック信号ＣＬＫの１／２周期毎にデータ信号を切り替えて、連続して「書き込み」または「読み出し」を実行することが可能である（「バースト転送」とも呼ばれる）。例えば、４つのデータを読み出す場合には、１／２周期毎に１アドレス分ずつのデータ信号が順番に連続して出力される。以下、ＤＤＲメモリ２００から読み出しを行う際に、４つのデータを連続して転送するバースト転送を行うこととして説明を行う。なお、第１実施例では、ＤＤＲメモリ２００は、１つのアドレスに１６ビットのデータを格納することとしている。そこで、ＤＤＲメモリ２００とデータ取得装置１００とは、１６本（１６ビット）のデータ線で接続されている。
【００２７】
可変データディレイ回路１１０は、ＤＤＲメモリ２００によって出力されたデータ信号（以下「メモリデータ信号」とも呼ぶ）を取得してメモリコントローラ１２０に転送する。また、可変データディレイ回路１１０は、２アドレス分（３２ビット）のデータ信号を並列に出力する。
【００２８】
メモリコントローラ１２０は、可変データディレイ回路１１０によって出力されたデータ信号を取得する。メモリコントローラ１２０は、図示しないＣＰＵからの要求に従って、ＤＤＲメモリ２００に出力要求を送信し、さらに、取得したデータ信号を、ＣＰＵに転送する。
【００２９】
ディレイ設定回路１５０は、可変データディレイ回路１１０と可変クロックディレイ回路１３０とを制御して、各ディレイ回路１１０、１３０の遅延時間（「遅延量」とも呼ばれる）を設定する（詳細は後述）。
【００３０】
キャリブレーション回路１６０は、メモリコントローラ１２０がＤＤＲメモリ２００からのデータ信号を適切に取得することが可能となるように、各ディレイ回路１１０、１３０の設定（遅延時間）を決定する。ディレイ設定回路１５０は、採用された設定に従って、各ディレイ回路１１０、１３０を制御する。
【００３１】
図１（Ｂ）は、キャリブレーション回路１６０を中心とするメモリシステム３００の構成を示すブロック図である。キャリブレーション回路１６０は、キャリブレーション制御回路１６２と、設定値メモリ１６３と、最適値決定回路１６４と、比較結果メモリ１６５と、データ比較回路１６６と、を備える算術論理演算回路である。キャリブレーション回路１６０の各構成要素の機能については後述する。なお、図１（Ｂ）では、クロック生成回路１４０の図示が省略されている。
【００３２】
図２は、可変クロックディレイ回路１３０の構成を示すブロック図である。この可変クロックディレイ回路１３０は、オフセットディレイバッファ（ＯｆｆＤＢ）１３２と、オフセットセレクタＳＬ１０と、直列に接続された１５個のディレイバッファ（ＤＢ）１３０１〜１３１５と、４つの中段ディレイセレクタＳＬ２０〜ＳＬ２３と、終段ディレイセレクタＳＬ３０と、インバータＩＮＶと、を備えている。
【００３３】
ＯｆｆＤＢ１３２と、ＤＢ１３０１〜１３１５とは、信号を遅延させて出力する遅延回路であり、種々の周知の構成を採用することができる。例えば、複数のゲート回路（ＮＡＮＤ回路やインバータ回路等）を直列に接続した構成を採用してもよく、所定の長さの配線を用いて信号を遅延させる構成を採用してもよい。
【００３４】
セレクタＳＬ１０、ＳＬ２０〜ＳＬ２３、ＳＬ３０は、複数の入力信号の中から１つを選択して出力する選択回路である。
【００３５】
ＯｆｆＤＢ１３２には、クロック信号ＣＬＫが供給される。このＯｆｆＤＢ１３２の遅延量は、クロック信号ＣＬＫの１／４周期の時間と略同じとなるように設定されている（詳細は後述）。ＯｆｆＤＢ１３２の出力信号は、オフセットセレクタＳＬ１０に供給される。また、オフセットセレクタＳＬ１０には、クロック信号ＣＬＫも供給される。オフセットセレクタＳＬ１０は、クロック信号ＣＬＫと、遅延されたクロック信号と、の一方を選択して出力する。
【００３６】
オフセットセレクタＳＬ１０の出力側には、１５個のディレイバッファ（ＤＢ）１３０１〜１３１５が直列に接続されている。各ＤＢ１３０１〜１３１５の遅延量は、クロック信号ＣＬＫの略１／２周期の時間を、ディレイバッファの数で等分した値に設定されている。第１実施例では、ディレイバッファの数が１５であり、各ＤＢ１３０１〜１３１５の遅延量は、略１／３０（＝１／２／１５）周期分の時間に設定されている。
【００３７】
図２の例では、直列に接続された１５個のＤＢ１３０１〜１３１５から取り出される１６の出力信号の中の１つの出力信号が、遅延クロック信号ＤＣＬＫの生成のために用いられる。出力信号の選択は、２段階に分けて行われる。まず、１６の出力信号は、４つずつの４つのグループＧ１〜Ｇ４に分けられ、各グループＧ１〜Ｇ４毎に１つの出力信号が選択される。この選択は、各グループＧ１〜Ｇ４毎に設けられた中段ディレイセレクタＳＬ２０〜ＳＬ２３によって行われる。次に、各グループＧ１〜Ｇ４から１つずつ選ばれた４つの出力信号の中から、１つの出力信号が選択される。この選択は、終段ディレイセレクタＳＬ３０によって行われる。終段ディレイセレクタＳＬ３０の出力側には、反転出力を正転出力に戻すインバータＩＮＶが接続されている。インバータＩＮＶの出力信号は遅延クロック信号ＤＣＬＫとして利用される。
【００３８】
各ディレイセレクタＳＬ２０〜ＳＬ２３、ＳＬ３０の選択肢を設定すれば、終段ディレイセレクタＳＬ３０の出力信号を、０個〜１５個の任意の数のディレイバッファを経由した信号とすることができる。換言すれば、遅延クロック信号ＤＣＬＫの遅延時間を、０〜１／２周期の範囲内の１６段階の任意の値に設定することができる。また、オフセットセレクタＳＬ１０の選択肢を設定すれば、遅延時間を略１／４周期時間だけ延長することができる。
【００３９】
各セレクタＳＬ１０、ＳＬ２０〜ＳＬ２３、ＳＬ３０の選択肢は、メモリコントローラ１２０がＤＤＲメモリ２００からのデータ信号を適切に取得することが可能となるように設定される（詳細は後述）。また、各セレクタＳＬ１０、ＳＬ２０〜ＳＬ２３、ＳＬ３０の選択肢は、ディレイ設定回路１５０によって制御される。
【００４０】
図３は、可変データディレイ回路１１０の構成を示すブロック図である。この可変データディレイ回路１１０は、並列に設けられた３つの中間処理回路Ｔ１〜Ｔ３と、エッジセレクタＥＳと、終段出力回路ＦＯと、を備えている。
【００４１】
３つの中間処理回路Ｔ１〜Ｔ３は、それぞれ、１／２周期毎に１ワード（１６ビット）ずつのデータ信号（「ワード信号」とも呼ぶ）を取得し、１周期毎に２ワード（３２ビット）ずつのデータ信号（「ダブルワード信号」とも呼ぶ）を並列に出力する。また、各中間処理回路Ｔ１〜Ｔ３の出力信号は、各中間処理回路Ｔ１〜Ｔ３がＤＤＲメモリ２００から取得したメモリデータ信号と同じデータを表している。ただし、元となるメモリデータ信号が取得されたタイミングが互いに異なっている（詳細は後述）。
【００４２】
各中間処理回路Ｔ１〜Ｔ３から出力されたダブルワード信号はエッジセレクタＥＳに供給される。エッジセレクタＥＳは、３つの中間処理回路Ｔ１〜Ｔ３から取得した３種類のダブルワード信号の中から１種類のダブルワード信号を選択して終段出力回路ＦＯに供給する。終段出力回路ＦＯは、取得したダブルワード信号をメモリコントローラ１２０へ転送する。メモリコントローラ１２０は、クロック信号ＣＬＫ信号に同期して、このダブルワード信号を取得する。
【００４３】
なお、エッジセレクタＥＳの選択肢は、メモリコントローラ１２０がＤＤＲメモリ２００からのデータ信号を適切に取得することが可能となるように設定される（詳細は後述）。また、エッジセレクタＥＳの選択肢は、ディレイ設定回路１５０によって制御される。
【００４４】
図４は、可変データディレイ回路１１０の動作の概要を示すタイミングチャートである。図４には、エッジセレクタＥＳが第１中間処理回路Ｔ１から出力されるダブルワード信号を選択する場合が示されている。
【００４５】
メモリコントローラ１２０は、ＤＤＲメモリ２００に対して、データの読出要求を送信する。具体的には、メモリコントローラ１２０は、まず、アクティブ（Active）コマンドと行アドレスとを表す信号をＤＤＲメモリ２００に送信し（図示省略）、一定時間（例えば、クロック信号ＣＬＫの２周期分の時間）が経過した後に、リード（Read）コマンドと列アドレスとを表す信号をＤＤＲメモリ２００に送信する。ＤＤＲメモリ２００は、これらの要求を、クロック信号ＣＬＫの立ち上がりエッジに同期して取得（判断）する。そこで、メモリコントローラ１２０は、これらの要求を、クロック信号ＣＬＫの立ち上がりエッジに同期して送信する。ただし、要求を表す信号は、そのエッジよりも所定の時間だけ早く出力される。これは、クロック信号ＣＬＫの立ち上がりエッジにおいて、これらの要求の信号値を確定させるためである。
【００４６】
行アドレスと列アドレスとは、先頭のデータを指定するアドレスである。ＤＤＲメモリ２００は、指定されたデータを先頭に、アドレスが連続する指定された数のデータを出力する。連続して読み出されるデータの数は「バースト長」とも呼ばれる。バースト長としては、例えば、「２、４、８」の中から選択することができる。バースト長は、予め、メモリコントローラ１２０がＤＤＲメモリ２００に対して指定しておく。以下の説明では、バースト長として「４」が指定されたものとしている。
【００４７】
ＤＤＲメモリ２００は、リードコマンドを取得した後、一定時間（例えば、クロック信号ＣＬＫの２周期分の時間）が経過した後に、クロック信号ＣＬＫに同期してデータ信号を送信し始める。ただし、データ信号の発生のタイミングとクロック信号ＣＬＫのエッジとは一致していない場合もある。このズレは、ＤＤＲメモリ２００の個体差等の種々の要因によって生じ得る。このように、本明細書において、「ある信号がクロック信号ＣＬＫに同期する」という文言は、その信号がクロック信号ＣＬＫのエッジと同じ時刻に発生することを必ずしも意味している訳ではなく、クロック信号ＣＬＫのエッジと一定の時間的な関係を保って発生することを意味している。
【００４８】
メモリデータ信号（ワード信号）は、図３の可変データディレイ回路１１０（第１中間処理回路Ｔ１）に供給される。図４中の「ＤＡＴＡ１」は、メモリデータ信号（ワード信号）が第１中間処理回路Ｔ１に届くタイミングを示している。また、「クロック信号ＣＬＫ」には、番号（0、i、i+1,・・・。ｉは１以上の整数）が付され、「遅延クロック信号ＤＣＬＫ」には、番号（j、j+1、・・・。ｊは１以上の整数）が付されている。これらの番号ｉ、ｊは、リードコマンドの送信から数えたクロック数を意味している。図４の例では、リードコマンドが同期するクロックの番号を「０」としている。なお、番号「ｉ」と番号「ｊ」との違いは、クロック信号ＣＬＫと遅延クロック信号ＤＣＬＫとの違いを意味しており、数値そのものは同じ値となる。以下、ｉ番目のクロック信号ＣＬＫを「ｉクロック」とも呼び、ｊ番目の遅延クロック信号ＤＣＬＫを「ｊ遅延クロック」とも呼ぶ。
【００４９】
図４の例では、１番目の第１データ信号Ｄ１は、ｉクロックがＨレベルである間に第１中間処理回路Ｔ１に到達している。以後、１／２周期分の時間毎に、３組のデータ信号Ｄ２、Ｄ３、Ｄ４が順に到達する。各組のデータ信号Ｄ１〜Ｄ４は、１６ビット分のデータ信号を含んでいる。なお、各組のデータ信号Ｄ１〜Ｄ４の到達のタイミングとクロック信号ＣＬＫのエッジとが一致していないのは、ＤＤＲメモリ２００の個体差や、ＤＤＲメモリ２００とデータ取得装置１００（第１中間処理回路Ｔ１）とを接続する配線による遅延があるからである。
【００５０】
また、図４の例では、遅延クロック信号ＤＣＬＫのエッジが、各データ信号Ｄ１〜Ｄ４の中央付近のタイミングとなるように、可変クロックディレイ回路１３０が設定されている。
【００５１】
第１中間処理回路Ｔ１（図３）は、第１奇伝達回路Ｔ１ａと、第１偶伝達回路Ｔ１ｂと、を備えている。第１奇伝達回路Ｔ１ａは、直列に接続された３つのＤフリップフロップ（ＤＦＦ）１１ａ〜１３ａを備え、第１偶伝達回路Ｔ１ｂは、直列に接続された２つのＤフリップフリップ（ＤＦＦ）１１ｂ、１２ｂを備えている。各ＤＦＦ１１ａ〜１２ｂは、いずれも、１６ビット分の並列なＤフリップフロップを表している。メモリデータ信号は、各伝達回路Ｔ１ａ、Ｔ１ｂの先頭に設けられた第１のＤＦＦ１１ａ、１１ｂに供給される。
【００５２】
図４の符号「Ｑ１１ａ」〜「Ｑ１２ｂ」は、各ＤＦＦ１１ａ〜１２ｂの出力信号を示している。以下、回路を示す符号の前に文字「Ｑ」を加えた符号を、その回路の出力信号を示す符号として用いる。第１奇伝達回路Ｔ１ａの第１のＤＦＦ１１ａは、遅延クロック信号ＤＣＬＫの立ち下がりエッジに同期してメモリデータ信号を取得する（図３）。図４の例では、ｊ遅延クロックの立ち下がりエッジに同期して第１データ信号Ｄ１を取得する。さらに、次の「ｊ＋１」遅延クロックの立ち下がりエッジに同期して第３データ信号Ｄ３を取得する。このように、第１のＤＦＦ１１ａは、１周期毎に１ワードのデータ信号を取得して出力（Ｑ１１ａ）する。また、第１のＤＦＦ１１ａは、連続する４つのデータ信号Ｄ１〜Ｄ４のうち、１つおきのデータ信号を取得する（図４の例では、奇数番目のデータ信号Ｄ１、Ｄ３）。
【００５３】
次の第２のＤＦＦ１２ａは、出力信号Ｑ１１ａを遅延クロック信号ＤＣＬＫの立ち上がりエッジに同期して取得して出力（Ｑ１２ａ）する。次の第３のＤＦＦ１３ａは、この出力信号Ｑ１２ａをクロック信号ＣＬＫの立ち上がりエッジに同期して取得して出力（Ｑ１３ａ）する。図４では、出力信号Ｑ１２ａは、「ｊ＋１」遅延クロックの立ち上がりエッジに同期して第１データ信号Ｄ１に変化し、「ｊ＋２」遅延クロックの立ち上がりエッジに同期して第３データ信号Ｄ３に変化する。また、出力信号Ｑ１３ａは、「ｉ＋２」クロックの立ち上がりエッジに同期して第１データ信号Ｄ１に変化し、「ｉ＋３」クロックの立ち上がりエッジに同期して第３データ信号Ｄ３に変化する。
【００５４】
一方、第１偶伝達回路Ｔ１ｂの第１のＤＦＦ１１ｂ（図３）は、遅延クロック信号ＤＣＬＫの立ち上がりエッジに同期してメモリデータ信号を取得して出力（Ｑ１１ｂ）する。図４では、「ｊ＋１」遅延クロックの立ち上がりエッジに同期して第２データ信号Ｄ２を取得し、「ｊ＋２」遅延クロックの立ち上がりエッジに同期して第４データ信号Ｄ４を取得する。このように、第１のＤＦＦ１１ｂは、第１奇伝達回路Ｔ１ａの第１ＤＦＦ１１ａとは１／２周期だけ異なるタイミングで、１周期毎に１ワードのデータ信号を取得する。その結果、第１ＤＦＦ１１ｂは、連続する４つのデータ信号Ｄ１〜Ｄ４のうち、第１ＤＦＦ１１ａとは互い違いの、１つおきのデータ信号を取得する（図４の例では、偶数番目のデータ信号Ｄ２、Ｄ４）。
【００５５】
次の第２のＤＦＦ１２ｂは、出力信号Ｑ１１ｂをクロック信号ＣＬＫの立ち上がりエッジに同期して取得して出力する（Ｑ１２ｂ）。図４では、「ｉ＋２」クロックの立ち上がりエッジに同期して第２データ信号Ｄ２を出力し、「ｉ＋３」クロックの立ち上がりエッジに同期して第４データ信号Ｄ４を出力する。
【００５６】
このように、２つの伝達回路Ｔ１ａ、Ｔ１ｂの全体は、ＤＤＲメモリ２００から、１／２周期毎に１ワードずつ（１６ビットずつ）連続的に４組のデータ信号Ｄ１〜Ｄ４を取得し、１周期毎に２ワードずつ（３２ビットずつ）出力する。
【００５７】
２つの伝達回路Ｔ１ａ、Ｔ１ｂ（図３）の出力信号Ｑ１３ａ、Ｑ１２ｂは、エッジセレクタＥＳによって選択され、終段出力回路ＦＯに転送される。終段出力回路ＦＯは、クロック信号ＣＬＫの立ち上がりエッジに同期してデータ信号を取得する２つのＤＦＦ４０ａ、４０ｂを備えている。第１ＤＦＦ４０ａは出力信号Ｑ１３ａを取得して出力し（Ｑ４０ａ）、第２ＤＦＦ４０ｂは出力信号Ｑ１２ｂを取得して出力する（Ｑ４０ｂ）。
【００５８】
図４には、これらの出力信号Ｑ４０ａ、Ｑ４０ｂが示されている。出力信号Ｑ４０ａは、「ｉ＋３」クロックの立ち上がりエッジに同期して第１データ信号Ｄ１に変化し、出力信号Ｑ４０ｂは、同じの立ち上がりエッジに同期して第２データ信号Ｄ２に変化する。同様に、各出力信号Ｑ４０ａ、Ｑ４０ｂは、それぞれ、「ｉ＋４」クロックの立ち上がりエッジに同期して、第３データ信号Ｄ３、第４データ信号Ｄ４に変化する。
【００５９】
これらの出力信号Ｑ４０ａ、Ｑ４０ｂは、メモリコントローラ１２０によって取得される。メモリコントローラ１２０は、クロック信号ＣＬＫの立ち下がりエッジに同期してデータ信号を取得する。図４では、「ｉ＋３」クロックの立ち下がりエッジに同期してデータ信号Ｄ１、Ｄ２を取得し、「ｉ＋４」クロックの立ち下がりエッジに同期してデータ信号Ｄ３、Ｄ４を取得する。以下、最初のデータ信号を取得するタイミングを「第１取得タイミングＴＤ１」と呼び、次に取得するタイミングを「第２取得タイミングＴＤ２」と呼ぶ。
【００６０】
このように、メモリコントローラ１２０は、リードコマンドを発行してから一定時間（「ｉ＋３＋１／２」周期分の時間）だけ経過した後に、１周期毎に２ワードずつ（３２ビットずつ）のデータ信号を取得する。
【００６１】
図５は、可変データディレイ回路１１０の動作の概要を示すタイミングチャートの別の例を示している。図４の例との差異は２点ある。１つ目は、メモリデータ信号Ｄ１〜Ｄ４が可変データディレイ回路１１０に到達するタイミングが、図４の例と比べて、略１／２周期だけ遅い点である。２つ目は、エッジセレクタＥＳが、第１中間処理回路Ｔ１の代わりに第２中間処理回路Ｔ２から出力されるダブルワード信号を選択する点である。なお、メモリコントローラ１２０がデータ信号を取得するタイミングＴＤ１、ＴＤ２は、図４の例と同じである。
【００６２】
図５中の「ＤＡＴＡ２」は、メモリデータ信号が図３の可変データディレイ回路１１０（第２中間処理回路Ｔ２）に届くタイミングを示している。図５の例では、第１データ信号Ｄ１は、図４の例よりも略１／２周期だけ遅れたタイミングで（ｉクロックがＬレベルである間に）第２中間処理回路Ｔ２に到達している。このような到達時刻の遅れは、ＤＤＲメモリ２００と可変データディレイ回路１１０（第２中間処理回路Ｔ２）とを結ぶ配線が図４の例よりも長い場合等に起こり得る。
【００６３】
また、図５の例では、可変クロックディレイ回路１３０の設定は、遅延クロック信号ＤＣＬＫのエッジが、各データ信号Ｄ１〜Ｄ４の中央付近のタイミングとなるように設定されている。なお、図５の例での可変クロックディレイ回路１３０の設定（遅延量）は、図４の例での設定と同じである。
【００６４】
第２中間処理回路Ｔ２（図３）は、第２奇伝達回路Ｔ２ａと第２偶伝達回路Ｔ２ｂとを備えている。第２奇伝達回路Ｔ２ａは、直列に接続された３つのＤフリップフロップ（ＤＦＦ）２１ａ〜２３ａを備え、第２偶伝達回路Ｔ２ｂは、直列に接続された２つのＤフリップフロップ（ＤＦＦ）２１ｂ、２２ｂを備えている。上述した第１中間処理回路Ｔ１との差異は、各ＤＦＦのエッジトリガの向き（データ信号を取得するタイミングを決定するエッジの向き。「立ち上がりエッジ」と「立ち下がりエッジ」とのいずれか一方）が、逆になっている点だけである。
【００６５】
第２奇伝達回路Ｔ２ａの第１のＤＦＦ２１ａは、遅延クロック信号ＤＣＬＫの立ち上がりエッジに同期してメモリデータ信号を取得して出力する（Ｑ２１ａ）。次の第２のＤＦＦ２２ａは、この出力信号Ｑ２１ａを遅延クロック信号ＤＣＬＫの立ち下がりエッジに同期して取得して出力（Ｑ２２ａ）する。次の第３のＤＦＦ２３ａは、この出力信号Ｑ２２ａをクロック信号ＣＬＫの立ち下がりエッジに同期して取得して出力する（Ｑ２３ａ）。
【００６６】
図５には、各出力信号Ｑ２１ａ〜Ｑ２３ａが示されている。出力信号Ｑ２１ａは、「ｊ＋１」遅延クロックの立ち上がりエッジに同期して第１データ信号Ｄ１に変化し、「ｊ＋２」遅延クロックの立ち上がりエッジに同期して第３データ信号Ｄ３に変化する。出力信号Ｑ２２ａは、「ｊ＋１」遅延クロックの立ち下がりエッジに同期して第１データ信号Ｄ１に変化し、「ｊ＋２」遅延クロックの立ち下がりエッジに同期して第３データ信号Ｄ３に変化する。出力信号Ｑ２３ａは、「ｉ＋２」クロックの立ち下がりエッジに同期して第１データ信号Ｄ１に変化し、「ｉ＋３」クロックの立ち下がりエッジに同期して第３データ信号Ｄ３に変化する。
【００６７】
一方、第２偶伝達回路Ｔ２ｂの第１ＤＦＦ２１ｂは、遅延クロック信号ＤＣＬＫの立ち下がりエッジに同期してメモリデータ信号を取得して出力する（Ｑ２１ｂ）。次の第２のＤＦＦ２２ｂは、この出力信号Ｑ２１ｂをクロック信号ＣＬＫ信号の立ち下がりエッジに同期して取得して出力する（Ｑ２２ｂ）。
【００６８】
図５には、各出力信号Ｑ２１ｂ、Ｑ２２ｂが示されている。出力信号Ｑ２１ｂは、「ｊ＋１」遅延クロックの立ち下がりエッジに同期して第２データ信号Ｄ２に変化し、「ｊ＋２」遅延クロックの立ち下がりエッジに同期して第４データ信号Ｄ４に変化する。出力信号Ｑ２２ｂは、「ｉ＋２」クロックの立ち下がりエッジに同期して第２データ信号Ｄ２に変化し、「ｉ＋３」クロックの立ち下がりエッジに同期して第４データ信号Ｄ４に変化する。このように、第１ＤＦＦ２１ｂは、第２奇伝達回路Ｔ２ａの第１のＤＦＦ２１ａとは互い違いの１つおきのデータ信号を取得する。
【００６９】
２つの伝達回路Ｔ２ａ、Ｔ２ｂの出力信号Ｑ２３ａ、Ｑ２２ｂは、エッジセレクタＥＳによって選択され、終段出力回路ＦＯへ転送される（Ｑ２３ａは第１ＤＦＦ４０ａへ、Ｑ２２ｂは第２のＤＦＦ４０ｂへ）。図５では、第１ＤＦＦ４０ａは、「ｉ＋３」クロックの立ち上がりエッジに同期して第１データ信号Ｄ１を取得して出力し、第２ＤＦＦ４０ｂは、同じ立ち上がりエッジに同期して第２データ信号Ｄ２を取得して出力する。同様に、第３データ信号Ｄ３と第４データ信号Ｄ４とは、「ｉ＋４」クロックの立ち上がりエッジに同期して取得して出力される（Ｑ４０ａ、Ｑ４０ｂ）。
【００７０】
このように、第２中間処理回路Ｔ２を用いれば、メモリデータ信号Ｄ１〜Ｄ４が第２中間処理回路Ｔ２（可変データディレイ回路１１０）へ到達するタイミングが図４の例と比べて略１／２周期だけ遅れているにも拘わらずに、メモリコントローラ１２０に対しては、図４の例と同じタイミングでデータ信号を出力することができる。換言すれば、第２中間処理回路Ｔ２は第１中間処理回路Ｔ１と比べて１／２周期だけ遅いタイミングでデータ信号を取得し、さらに、第２中間処理回路Ｔ２の遅延量は第１中間処理回路Ｔ１の遅延量よりも１／２周期分だけ小さい、ということができる。
【００７１】
図６は、可変データディレイ回路１１０の動作の概要を示すタイミングチャートの別の例を示している。図５の例との差異は２点ある。１つ目は、メモリデータ信号Ｄ１〜Ｄ４が可変データディレイ回路１１０に到達するタイミングが、図５の例と比べて、略１／２周期だけ遅い点である。２つ目は、エッジセレクタＥＳが、第２中間処理回路Ｔ２の代わりに第３中間処理回路Ｔ３から出力されるダブルワード信号を選択する点である。なお、メモリコントローラ１２０がデータ信号を取得するタイミングＴＤ１、ＴＤ２は、図４、図５の例と同じである。
【００７２】
図６中の「ＤＡＴＡ３」は、メモリデータ信号が図３の可変データディレイ回路１１０（第３中間処理回路Ｔ３）に届くタイミングを示している。図６の例では、第１データ信号Ｄ１は、図５の例よりも略１／２周期だけ遅れたタイミングで（「ｉ＋１」クロックがＨレベルにある間に）第３中間処理回路Ｔ３に到達している。このような到達時刻の遅れは、上述したように、配線の長さ等の種々の要因によって生じ得る。
【００７３】
可変クロックディレイ回路１３０の設定は、遅延クロック信号ＤＣＬＫのエッジが、各データ信号Ｄ１〜Ｄ４の中央付近のタイミングとなるように設定されている。図６の例では、可変クロックディレイ回路１３０の設定（遅延量）は、図４、図５の例と同じである。
【００７４】
第３中間処理回路Ｔ３（図３）は、第３奇伝達回路Ｔ３ａと第３偶伝達回路Ｔ３ｂとを備えている。上述した第１奇伝達回路Ｔ１ａと第１偶伝達回路Ｔ１ｂとの差異は、最後尾のＤフリップフロップが省略されている点だけである。
【００７５】
第３奇伝達回路Ｔ３ａの第１のＤＦＦ３１ａは、遅延クロック信号ＤＣＬＫの立ち下がりエッジに同期してメモリデータ信号を取得して出力する（Ｑ３１ａ）。次の第２のＤＦＦ３２ａは、この出力信号Ｑ３１ａを遅延クロック信号ＤＣＬＫの立ち上がりエッジに同期して取得して出力する（Ｑ３２ａ）。
【００７６】
図６には、各出力信号Ｑ３１ａ、Ｑ３２ａが示されている。出力信号Ｑ３１ａは、「ｊ＋１」遅延クロックの立ち下がりエッジに同期して第１データ信号Ｄ１に変化し、「ｊ＋２」遅延クロックの立ち下がりエッジに同期して第３データ信号Ｄ３に変化する。出力信号Ｑ３２ａは、「ｊ＋２」遅延クロックの立ち上がりエッジに同期して第１データ信号Ｄ１に変化し、「ｊ＋３」遅延クロックの立ち上がりエッジに同期して第３データ信号Ｄ３に変化する。
【００７７】
一方、第３偶伝達回路Ｔ３ｂの第１ＤＦＦ３１ｂは、遅延クロック信号ＤＣＬＫの立ち上がりエッジに同期してメモリデータ信号を取得して出力する（Ｑ３１ｂ）。図５に示すように、出力信号Ｑ３１ｂは、「ｊ＋２」遅延クロックの立ち上がりエッジに同期して第２データ信号Ｄ２に変化し、「ｊ＋３」遅延クロックの立ち上がりエッジに同期して第４データ信号Ｄ４に変化する。このように、第１ＤＦＦ３１ｂは、第３奇伝達回路Ｔ３ａの第１のＤＦＦ３１ａとは互い違いの、１つおきのデータ信号を取得する。
【００７８】
２つの伝達回路Ｔ３ａ、Ｔ３ｂの出力信号Ｑ３２ａ、Ｑ３１ｂは、エッジセレクタＥＳによって選択され、終段出力回路ＦＯへ転送される（Ｑ３２ａは第１ＤＦＦ４０ａへ、Ｑ３１ｂは第２ＤＦＦ４０ｂへ）。図６では、第１ＤＦＦ４０ａは、「ｉ＋３」クロックの立ち上がりエッジに同期して第１データ信号Ｄ１を取得して出力し、第２ＤＦＦ４０ｂは、同じ立ち上がりエッジに同期して第２データ信号Ｄ２を取得して出力する。同様に、第３データ信号Ｄ３と第４データ信号Ｄ４とは、「ｉ＋４」クロックの立ち上がりエッジに同期して取得して出力される（Ｑ４０ａ、Ｑ４０ｂ）。
【００７９】
このように、第３中間処理回路Ｔ３を用いれば、メモリデータ信号Ｄ１〜Ｄ４が第３中間処理回路Ｔ３（可変データディレイ回路１１０）へ到達するタイミングが図５の例と比べて略１／２周期だけ遅れているにも拘わらずに、メモリコントローラ１２０に対しては、図５の例と同じタイミングでデータ信号を出力することができる。換言すれば、第３中間処理回路Ｔ３は第２中間処理回路Ｔ２と比べて１／２周期だけ遅いタイミングでデータ信号を取得し、さらに、第３中間処理回路Ｔ３の遅延量は第２中間処理回路Ｔ２の遅延量よりも１／２周期分だけ小さい、ということができる。
【００８０】
以上説明したように、各中間処理回路Ｔ１〜Ｔ３において、データ信号を取得してからエッジセレクタＥＳに出力するまでの時間（以下「中間遅延時間」と呼ぶ）は、１／２周期ずつ異なっている。具体的には、第１中間処理回路Ｔ１の中間遅延時間が最も長く、第２中間処理回路Ｔ２の中間遅延時間は１／２周期だけ短く、第３中間処理回路Ｔ３の中間遅延時間は、さらに１／２周期だけ短い。従って、エッジセレクタＥＳ（終段出力回路ＦＯ）が同じタイミングでデータ信号を出力する場合の各中間処理回路Ｔ１〜Ｔ３の開始タイミングは、１／２周期ずつ異なることとなる。ここで、開始タイミングとは、各中間処理回路Ｔ１〜Ｔ３がＤＤＲメモリ２００からのメモリデータ信号（最初のデータ信号Ｄ１）を取得するエッジタイミングを意味している。
【００８１】
すなわち、第１実施例では、各中間処理回路Ｔ１〜Ｔ３の開始タイミングは１／２周期ずつずらされており、さらに、各中間処理回路Ｔ１〜Ｔ３の中間遅延時間は、メモリコントローラ１２０の待ち時間が同じとなるように設定されている。ここで、メモリコントローラ１２０の待ち時間とは、メモリコントローラ１２０が出力要求（リードコマンド）を送信してから、最初のデータ信号（第１データ信号Ｄ１）を取得するまでの時間を意味している。図４、図５、図６の例では、共通の「ｉ＋３＋１／２」周期分の時間が待ち時間となる。
【００８２】
この結果、第１実施例では、中間処理回路Ｔ１〜Ｔ３を切り替えて用いることによって、メモリコントローラ１２０がデータ信号を取得するタイミングＴＤ１、ＴＤ２を同じ時刻に保ちつつ、可変データディレイ回路１１０がメモリデータ信号を取得するタイミングを１／２周期間隔で粗く調整することが可能となる。
【００８３】
なお、図１、図２の例では、遅延クロック信号ＤＣＬＫの遅延量（可変クロックディレイ回路１３０全体の遅延量）を、１／２周期よりも細かい時間間隔（第１実施例では、略１／３０周期間隔）で微調整することが可能である。従って、各中間処理回路Ｔ１〜Ｔ３の開始タイミングを、１／２周期よりも細かい時間単位で微調整することができる。図７（Ａ）は、開始タイミングの微調整可能範囲を示す説明図である。図７（Ａ）では、メモリコントローラ１２０がデータ信号を適切に取得可能な微調整可能範囲が示されている。具体的には、最初のメモリデータ信号Ｄ１がメモリコントローラ１２０に供給されるタイミングが「ｉ＋３」クロックの立ち上がりエッジ（図４〜図６）に同期する範囲である。
【００８４】
図７（Ａ）には、クロック信号ＣＬＫと、各中間処理回路Ｔ１〜Ｔ３の開始タイミングの微調整可能範囲との時間的な関係が示されている。クロック信号ＣＬＫに付された番号（i+1、i+2、i+3）は、図４〜図６で付された番号と同じである。また、図中の「第１開始タイミング例ＤＡＴＡ１ｅ」は、図４の例での開始タイミングを示している。同様に、「第２開始タイミング例ＤＡＴＡ２ｅ」は、図５の例での開始タイミングを示し、「第３開始タイミング例ＤＡＴＡ３ｅ」は、図６の例での開始タイミングを示している。
【００８５】
第１開始タイミング範囲ＲＴ１は、ＯｆｆＤＢ１３２（図２）の出力信号を用いない場合の、第１中間処理回路Ｔ１の開始タイミングの微調整可能範囲を示している。第１中間処理回路Ｔ１の開始タイミングは、遅延クロック信号ＤＣＬＫの立ち下がりエッジに同期している（図３：第１ＤＦＦ１１ａ）。また、可変クロックディレイ回路１３０の遅延量は、０〜１／２周期の範囲内で変化させることが可能である。従って、この第１開始タイミング範囲ＲＴ１は、クロック信号ＣＬＫがＬレベルである１／２周期幅の範囲となる。さらに、メモリコントローラ１２０が適切にデータ信号を取得可能であるとの条件を課すと、第１開始タイミング例ＤＡＴＡ１ｅを含む実線の範囲（ｉクロックの立ち下がりエッジからｉクロックの終わりまでの範囲）となる。
【００８６】
一方、第１遅延開始タイミング範囲ＲＴ１ｄは、ＯｆｆＤＢ１３２（図２）の出力信号を用いる場合の、第１中間処理回路Ｔ１の開始タイミングの微調整可能範囲を示している。第１実施例では、ＯｆｆＤＢ１３２による遅延量は略１／４周期に設定されている。従って、第１遅延開始タイミング範囲ＲＴ１ｄは、第１開始タイミング範囲ＲＴ１よりも略１／４周期分だけ遅れた範囲となる。この場合も、メモリコントローラ１２０へデータ信号を出力するタイミングは同じとなる。
【００８７】
同様に、第２開始タイミング範囲ＲＴ２は、ＯｆｆＤＢ１３２（図２）を用いない場合の第２中間処理回路Ｔ２の開始タイミングの微調整可能範囲を示し、第２遅延開始タイミング範囲ＲＴ２ｄは、ＯｆｆＤＢ１３２を用いる場合の微調整可能範囲を示している。第２中間処理回路Ｔ２の開始タイミングは、遅延クロック信号ＤＣＬＫの立ち上がりエッジに同期している（図３：第１ＤＦＦ２１ａ）。従って、第２開始タイミング範囲ＲＴ２は、クロック信号ＣＬＫがＨレベルである１／２周期の範囲の中の、第２開始タイミング例ＤＡＴＡ２ｅを含む実線の範囲となる。また、第２遅延開始タイミング範囲ＲＴ２ｄは、第２開始タイミング範囲ＲＴ２よりも１／４周期だけ遅れた範囲となる。
【００８８】
同様に、第３開始タイミング範囲ＲＴ３は、ＯｆｆＤＢ１３２（図２）を用いない場合の第３中間処理回路Ｔ３の開始タイミングの微調整可能範囲を示し、第３遅延開始タイミング範囲ＲＴ３ｄは、ＯｆｆＤＢ１３２を用いる場合の微調整可能範囲を示している。第３中間処理回路Ｔ３の開始タイミングは、遅延クロック信号ＤＣＬＫの立ち下がりエッジに同期している（図３：第１ＤＦＦ３１ａ）。従って、第３開始タイミング範囲ＲＴ３は、クロック信号ＣＬＫがＬレベルである１／２周期の範囲の中の、第３開始タイミング例ＤＡＴＡ３ｅを含む実線の範囲となる。また、第３遅延開始タイミング範囲ＲＴ３ｄは、第３開始タイミング範囲ＲＴ３よりも１／４周期だけ遅れた範囲となる。
【００８９】
なお、図４、図５、図６に示すタイミングチャートにおいて、遅延クロック信号ＤＣＬＫの遅延量を微調整すると（遅延クロック信号ＤＣＬＫをシフトさせると）、遅延クロック信号ＤＣＬＫに同期する各信号（各出力信号Ｑ１１ａ、Ｑ１２ａ、Ｑ１１ｂ（図４）、Ｑ２１ａ、Ｑ２２ａ、Ｑ２１ｂ（図５）、Ｑ３１ａ、Ｑ３２ａ、Ｑ３１ｂ（図６））のタイミングも、遅延クロック信号ＤＣＬＫとの相対的な時間関係を保ちつつ、遅延クロック信号ＤＣＬＫと共にシフトする。いずれの場合も、メモリコントローラ１２０へデータ信号を出力するタイミングは同じである。
【００９０】
図７（Ｂ）は、キャリブレーション回路１６０（図１）が、可変データディレイ回路１１０と可変クロックディレイ回路１３０との設定を決定する様子を示す説明図である。図７（Ｂ）には、図７（Ａ）と同じ開始タイミングの調整可能範囲ＲＴ１〜ＲＴ３ｄが示されている。各調整可能範囲ＲＴ１〜ＲＴ３ｄに記された丸印は、各調整可能範囲内における選択可能な開始タイミングを示している。「白抜き丸印」と「塗りつぶし丸印」の意味は後述する。
【００９１】
メモリシステム３００（図１）の電源が投入されると、キャリブレーション制御回路１６２は、メモリシステム３００の初期化処理を実行する。キャリブレーション制御回路１６２は、較正データを予め格納するメモリを有しており（図示省略）、まず、メモリコントローラ１２０を制御して、較正データをＤＤＲメモリ２００に書き込ませる。第１実施例では、メモリコントローラ１２０は、可変データディレイ回路１１０を介さずに直接にＤＤＲメモリ２００にデータを書き込むこととしている。
【００９２】
次に、キャリブレーション制御回路１６２は、メモリコントローラ１２０を制御し、ＤＤＲメモリ２００から較正データ信号を取得させる。ＤＤＲメモリ２００から出力された較正データ信号は、上述したように、可変データディレイ回路１１０を介してメモリコントローラ１２０へ転送される。メモリコントローラ１２０は、取得した較正データ信号を、データ比較回路１６６に出力する。データ比較回路１６６は、メモリコントローラ１２０から取得した較正データ信号が表す較正データと、キャリブレーション制御回路１６２から取得した元の較正データとを比較し、データ信号の取得が正しく行われたか否かを判定する。この判定結果（比較結果）は、比較結果メモリ１６５に格納される。
【００９３】
キャリブレーション制御回路１６２は、メモリコントローラ１２０とディレイ設定回路１５０とデータ比較回路１６６とを制御し、各ディレイ回路１１０、１３０のそれぞれの複数の設定の全ての組み合わせで決まる複数の開始タイミング毎に、較正データ信号の取得と検証とを行わせる。その結果、比較結果メモリ１６５には、全ての開始タイミングにおける比較結果が格納されることとなる。
【００９４】
図７（Ｂ）には、こうして得られた比較結果が示されている。「白抜き丸印」は、データ信号の取得が正しく行われた開始タイミング（以下「成功開始タイミング」と呼ぶ）を示し、「塗りつぶし丸印」は、データ信号を適切に取得できなかった開始タイミングを示している。また、各調整可能範囲ＲＴ１〜ＲＴ３ｄの右側には、各調整可能範囲毎の成功開始タイミングの数（以下「成功数」と呼ぶ）が示されている。
【００９５】
各調整可能範囲ＲＴ１〜ＲＴ３ｄのそれぞれには、１６ずつの開始タイミングが示されている。これら１６の開始タイミングは、オフセットセレクタＳＬ１０（図２）とエッジセレクタＥＳ（図３）との設定（以下「粗調整設定」と呼ぶ）を固定し、中段ディレイセレクタＳＬ２０〜ＳＬ２３（図２）と終段ディレイセレクタＳＬ３０との設定（以下「微調整設定」と呼ぶ）のみを変更して得られる開始タイミングの集まりである。
【００９６】
「粗調整設定」を固定し「微調整設定」を変更すれば、開始タイミングを比較的細かく（略１／３０周期単位で）調整することができる。一方、「微調整設定」を固定し「粗調整設定」を変更すれば、開始タイミングを比較的粗く（略１／４周期単位で）調整することができる。このように、「粗調整設定」に関する構成要素、すなわち、可変クロックディレイ回路１３０（図２）のオフセットディレイバッファ（ＯＤＢ）１３２とオフセットセレクタＳＬ１０と、可変データディレイ回路１１０との全体は、開始タイミングを比較的大きな時間間隔で調整可能な「粗調整部」に相当する。また、「微調整設定」に関する構成要素、すなわち、可変クロックディレイ回路１３０の１５のディレイバッファ（ＤＢ）１３０１〜１３１５と５つのディレイセレクタＳＬ２０〜ＳＬ２３、ＳＬ３０との全体は、開始タイミングを比較的小さな時間間隔で調整可能な「微調整部」に相当する。
【００９７】
なお、「粗調整設定」を固定し「微調整設定」を変更して得られる複数の開始タイミング（すなわち「微調整設定」と「粗調整設定」との組み合わせ）からなるグループを「微調整グループ」とも呼ぶ。また、「粗調整設定」を固定し「微調整設定」を変更したときの開始タイミングの調整可能な範囲（すなわち、各微調整グループの微調整可能範囲）を「サブ微調整可能範囲」とも呼ぶ。また、サブ微調整可能範囲の幅を「サブ微調整幅」とも呼ぶ。また、各微調整グループのサブ微調整可能範囲は、各調整可能範囲ＲＴ１〜ＲＴ３ｄと同じである、そこで、以下の説明では、各微調整グループのことを、各調整可能範囲ＲＴ１〜ＲＴ３ｄと同じ符号を用いて呼ぶ。
【００９８】
最適値決定回路１６４は、各微調整グループ毎の成功数を算出し、成功数が最も多い微調整グループ（以下、「最多微調整グループ」と呼ぶ）の中から１つの開始タイミングを選択する。第１実施例では、最多微調整グループに含まれる成功開始タイミングの中の、時系列に沿った順番が真ん中である開始タイミングを採用する。図７（Ｂ）の例では、成功数が９である第２遅延微調整グループＲＴ２ｄが最多微調整グループとなる。また、９つの成功開始タイミングの中の時系列に沿った順番が真ん中である開始タイミングＰＴが、採用される。
【００９９】
なお、図７（Ｂ）の例では、成功開始タイミングが分布する時間の幅（この例では、９／３０周期）が、メモリデータ信号の幅（この例では、１／２＝１５／３０周期）よりも短くなっている。このことは、データ信号やクロック信号の揺らぎ（「ジッタ」とも呼ばれる）や各回路の動作のタイミングの揺らぎ等の種々の要因によって起こり得る。
【０１００】
最適値決定回路１６４（図１）は、採用した１つの開始タイミングに対応する「微調整設定」と「粗調整設定」とを設定値メモリ１６３に格納する。以後、ディレイ設定回路１５０は、設定値メモリ１６３に格納された設定に従って、可変データディレイ回路１１０と可変クロックディレイ回路１３０とを制御する。
【０１０１】
以上のように、キャリブレーション回路１６０は、複数の微調整グループの中の成功数が最も多い微調整グループの中から、制御用の開始タイミングを選択する。従って、他の微調整グループの中から開始タイミングを選択する場合と比べて、より適切な開始タイミングを選択することができる。
【０１０２】
さらに、図７（Ｂ）の例では、最多微調整グループにおける時系列に沿って連続する複数の成功開始タイミングの中の真ん中に位置する開始タイミングを採用している。従って、ジッタの影響をより受けにくい開始タイミングを選択することが可能となる。なお、制御用の開始タイミングとしては、真ん中の開始タイミングに限らず、他の開始タイミングを採用してもよい。ただし、少なくとも、時系列に沿って連続する複数の成功開始タイミングの中の、先頭の開始タイミングと最後尾の開始タイミングとを除いた残りの開始タイミングの中から採用することが好ましい。
【０１０３】
なお、較正データとしては、任意のデータを採用することができる。ただし、メモリデータ信号のレベルの種々の変化（例えば、ＨレベルからＬレベルへの変化や、ＬレベルからＨレベルへの変化）に対して適切にメモリデータ信号を取得するために、複数の較正データを用いて信号レベルを種々に変化させて検証を行うことが好ましい。例えば、第１実施例では、ＤＤＲメモリ２００は、連続して４ワードのメモリデータ信号を出力する。そこで、メモリデータ信号のレベルが種々に変化するように、４ワード分の較正データ信号を用いることが好ましい。このような較正データ信号としては、例えば、以下に示すデータ信号グループを採用することができる。
【０１０４】
（ＤＧ１）ＦＦＦＦ、００００、ＦＦＦＦ、５５５５：
（ＤＧ２）００００、ＦＦＦＦ、００００、ＡＡＡＡ：
【０１０５】
２種類のデータ信号グループＤＧ１、ＤＧ２の４つの数値のそれぞれは、連続する４ワードのメモリデータ信号を順番に１６進法で表したものである。
【０１０６】
第１データ信号グループＤＧ１を較正データとして用いると、最初の３ワード分のデータ信号を取得する間に、１６個のメモリデータ信号の全ては、まず、Ｈレベルに変化し、次に、ＨレベルからＬレベルへ変化し、次に、ＬレベルからＨレベルへ変化する（正論理の場合）。さらに、４つ目のワード信号を取得する際には、１つおきの８個のデータ信号がＬレベルに変化し、残りの８個のデータ信号はＨレベルを維持する。従って、この第１データ信号グループＤＧ１を較正データ信号として用いれば、１６個のデータ信号のそれぞれの信号レベルを種々に変化させて検証を行うことができる。
【０１０７】
一方、第２データ信号グループＤＧ２を用いると、１６個のデータ信号のそれぞれのレベルは、第１データ信号グループＤＧ１を用いる場合とは逆向きに変化する。ここで、これら２種類のデータ信号グループＤＧ１、ＤＧ２の両方を用いて判定を行えば、データ比較回路１６６が、適切にデータ信号を取得できない可能性のある開始タイミングに対して「正常（成功）」との判定を行うことを抑制することができる。この際、２つのデータ信号グループＤＧ１、ＤＧ２を用いて２回のバースト転送を行い、８ワード分の全てのデータが、元のデータと一致した場合のみ「正常（成功）」との判定をすることとすればよい。
【０１０８】
なお、較正データ信号としては、上述したデータ信号に限らず、他の種々のデータ信号を採用することができる。また、メモリシステム３００は「正論理」に従って構成されていても良く、また、「負論理」に従って構成されていてもよい。
【０１０９】
以上のように、第１実施例では、メモリコントローラ１２０の待ち時間を同じ時刻に保ちつつ、連続する７／４周期分の長さの範囲内の複数のタイミングの中から開始タイミングを設定することができる。換言すれば、開始タイミング、すなわち、データ信号がデータ取得装置１００に到達するタイミングの許容範囲を広げることが可能となる。従って、データ信号がデータ取得装置１００に到達するタイミングに応じてデータ信号を適切に取得することが可能となる。その結果、データ信号の転送速度の高速化を容易なものとし、さらに、データ取得装置１００とＤＤＲメモリ２００との配置に関する設計の自由度を高めることが可能となる。
【０１１０】
また、第１実施例のデータ取得装置１００は、開始タイミングを調整するために、開始タイミングが互いに異なるとともに、取得したデータ信号を伝達して出力する３つの中間処理回路Ｔ１〜Ｔ３を有している。従って、開始タイミングの選択肢を増やすためにデータ取得装置１００が過剰に複雑化することを防止することができる。
【０１１１】
また、これらの中間処理回路Ｔ１〜Ｔ３における遅延時間の差分、すなわち、開始タイミングの差分は、各中間処理回路Ｔ１〜Ｔ３の設計に応じて任意に設定可能である。従って、開始タイミングを定める遅延クロック信号の遅延時間の調整のみによって開始タイミングの調整を行う場合のように、調整可能範囲が１周期分の時間に限定されることなく、開始タイミングの調整可能範囲をより広くすることが可能となる。なお、このような中間処理回路の数は３に限らず、２でもよく、３以上であってもよい。
【０１１２】
さらに、各中間処理回路Ｔ１〜Ｔ３においてメモリデータ信号を取得する先頭のＤＦＦ１１ａ、１１ｂ、２１ａ、２１ｂ、３１ａ、３１ｂは、共通の遅延クロック信号ＤＣＬＫに同期してメモリデータ信号を取得する（ただし、エッジの位置は互いに異なる）。従って、複数（第１実施例では３つ）の中間処理回路Ｔ１〜Ｔ３のそれぞれの開始タイミングを微調整する場合であっても、１つの遅延クロック信号ＤＣＬＫの遅延量を調整すれば済むので、回路が過剰に複雑化することを防止することができる。特に、ＤＤＲメモリ２００から同時に出力されるデータ信号の数が複数（第１実施例では１６ビット）である場合でも、１つの遅延クロック信号ＤＣＬＫの遅延量を調整するだけで全てのデータ信号の開始タイミングを変えることができるので、回路の複雑化を抑制することができる。
【０１１３】
なお、第１実施例では、３つの中間処理回路Ｔ１〜Ｔ３の全体が、本発明における「中間データ信号生成部に相当する。また、エッジセレクタＥＳと終段出力回路ＦＯとの全体が、「選択部」に相当する。また、先頭のＤＦＦ１１ａ、１１ｂ、２１ａ、２１ｂ、３１ａ、３１ｂと、エッジセレクタＥＳとの間を接続する配線とＤＦＦとの全体が「伝達部」に相当する。また、エッジセレクタＥＳにおける３つの奇伝達回路Ｔ１ａ〜Ｔ３ａのそれぞれの出力信号の中から１種類の出力信号を選択する部分と、第１ＤＦＦ４０ａとの全体が、「部分選択部」に相当する。また、エッジセレクタＥＳにおける３つの偶伝達回路Ｔ１ｂ〜Ｔ３ｂのそれぞれの出力信号の中から１種類の出力信号を選択する部分と、第２のＤＦＦ４０ｂとの全体が、別の「部分選択部」に相当する。
【０１１４】
Ｂ．第２実施例：
図８は、第２実施例における可変データディレイ回路１１０ａの構成を示すブロック図である。図３に示す第１実施例の可変データディレイ回路１１０との差違は２点ある。１つ目は、第１奇伝達回路Ｔ１ａと第１偶伝達回路Ｔ１ｂとのそれぞれの途中からデータ信号が取り出されてエッジセレクタＥＳａに供給されている点である。２つ目は、第３中間処理回路Ｔ３が省略されている点である。他の構成は、図１〜図３に示すメモリシステム３００と同じである。
【０１１５】
奇伝達線ＤＴ３ａは、第２のＤＦＦ１２ａの出力信号Ｑ１２ａをエッジセレクタＥＳａに供給する。また、偶伝達線ＤＴ３ｂは、第１のＤＦＦ１１ｂの出力信号Ｑ１１ｂをエッジセレクタＥＳａに供給する。エッジセレクタＥＳａは、伝達線ＤＴ３ａ、ＤＴ３ｂと、２つの中間処理回路Ｔ１、Ｔ２と、から取得した３種類のダブルワード信号の中から１種類のダブルワード信号を選択して終段出力回路ＦＯに供給する。
【０１１６】
第１中間処理回路Ｔ１の伝達線ＤＴ３ａ、ＤＴ３ｂとの接続位置よりも上流部分の構成は、図３に示す第３中間処理回路Ｔ３と同じである。従って、これらの伝達線ＤＴ３ａ、ＤＴ３ｂによって供給されるダブルワード信号は、第１実施例の第３中間処理回路Ｔ３（図３）によって供給されるダブルワード信号と同じとなる。従って、エッジセレクタＥＳａが、これらの伝達線ＤＴ３ａ、ＤＴ３ｂが供給するダブルワード信号を選択すれば、開始タイミングを、第３中間処理回路Ｔ３を用いる場合と同じ範囲内で調整することができる（図７（Ａ）：第３開始タイミング範囲ＲＴ３、第３遅延開始タイミング範囲ＲＴ３ｄ）。
【０１１７】
このように、第２実施例では、第１中間処理回路Ｔ１の構成要素の一部（ＤＦＦ１１ａ、１２ａ、１１ｂ）を、開始タイミングが異なる２種類のデータ信号（ダブルワード信号）を出力するために共用している。その結果、可変データディレイ回路１１０ａの小型化を図ることが可能となる。
【０１１８】
なお、第２実施例においても、上述の第１実施例と同様に、可変データディレイ回路１１０ａと可変クロックディレイ回路１３０との設定を決定することができる。
【０１１９】
Ｃ．第３実施例：
図９は、第３実施例における可変データディレイ回路１１０ｂの構成を示すブロック図である。図３、図８に示す可変データディレイ回路１１０、１１０ａとの大きな差違は、メモリデータ信号を取得する複数の先頭ＤＦＦ（例えば、図３のＤＦＦ１１ａ、１１ｂ、２１ａ、２１ｂ、３１ａ、３１ｂ）を用いる代わりに、メモリデータ信号を取得する１つの先頭ＤＦＦ１０１のみを用いて、開始タイミングが互いに異なる複数種類のデータ信号を出力している点である。なお、第３実施例の可変データディレイ回路１１０ｂは、１／２周期毎に１ワードずつのデータ信号を出力するＤＤＲメモリ２００の代わりに、１周期に１ワードずつのデータ信号を出力するメモリ（例えば、ＳＤＲＡＭ）を対象としている。また、メモリコントローラ（図示せず）に１周期毎に出力するデータ信号の数は、メモリ（図示せず）から１周期毎に出力されるデータ信号の数（図９の例では１ワード（１６個））と同じである。
【０１２０】
第１中間処理回路Ｔ１０は、直列に接続された４つのＤフリップフロップ１０１〜１０４を備えている。各Ｄフリップフロップ１０１〜１０４は、それぞれ、１６ビット分の並列なＤフリップフロップを表している。
【０１２１】
メモリ（図示省略）からのメモリデータ信号は、まず、先頭のＤＦＦ１０１に供給される。ＤＦＦ１０１の出力側には、３つのＤＦＦ１０２〜１０４が順番に直列に接続されている。また、２つのＤＦＦ１０２、１０４の出力信号は、エッジセレクタＥＳｂに供給される。エッジセレクタＥＳｂは、各ＤＦＦ１０２、１０４から取得した２種類のワード信号の中から１種類のワード信号を選択してメモリコントローラ（図示省略）に出力する。メモリコントローラは、クロック信号ＣＬＫに同期してワード信号を取得する。
【０１２２】
先頭のＤＦＦ１０１は、遅延クロック信号ＤＣＬＫの立ち上がりエッジに同期してメモリデータ信号を取得する。また、後ろの各ＤＦＦ１０２〜１０４のエッジトリガの向きは、上流側から交互に逆向き（逆位相）となるように設定されている。従って、４段目の出力信号Ｑ１０４は、２段目の出力信号Ｑ１０２よりも１周期だけ遅れることとなる。この結果、出力信号Ｑ１０２を用いる場合の開始タイミングは、出力信号Ｑ１０４を用いる場合よりも、１周期だけ早くなる。
【０１２３】
このように、第３実施例では、各ＤＦＦ１０２、１０４の出力信号を切り替えて用いることによって、メモリコントローラ（図示省略）へのデータ信号を出力するタイミングを同じ時刻に保ちつつ、可変データディレイ回路１１０ｂがデータ信号を取得するタイミングを粗く１周期間隔で調整することが可能となる。ここで、１つの先頭ＤＦＦ１０１を、開始タイミングが互いに異なる全ての種類（２種類）のデータ信号で共用しているので、データ取得装置１００の小型化を図ることが可能となる。
【０１２４】
また、可変データディレイ回路１１０ｂと可変クロックディレイ回路１３０との設定を決定する方法としては、上述の第１実施例と同様の方法を採用することができる。
【０１２５】
Ｄ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１２６】
変形例１：
開始タイミングが互いに異なる複数種類のデータ信号を出力する回路としては、上述の各実施例の可変データディレイ回路１１０、１１０ａ、１１０ｂ以外の種々の構成を採用することができる。例えば、可変クロックディレイ回路１３０（図２）と同様の遅延回路を複数並列に設け、メモリデータ信号を各遅延回路で遅延させて出力することとしてもよい。この際、各遅延回路の遅延時間を互いに異なる時間に設定しておけばよい。また、開始タイミングが異なる複数種類のデータ信号の数としては、２以上の任意の数を採用することができる。
【０１２７】
ここで、各遅延回路の先頭には、メモリデータ信号を共通のクロック信号に同期して取得する取得部（例えば、図３の先頭ＤＦＦ１１ａ、１１ｂ、２１ａ、２１ｂ、３１ａ、３１ｂ）を設けることが好ましい。こうすれば、クロック信号の遅延量を調整することによって、複数種類のデータ信号の開始タイミングを、まとめて微調整することができる。
【０１２８】
変形例２：
上述の第１実施例と第２実施例では、開始タイミングが同じである１種類のデータ信号を出力するために２種類の並列な回路を用いている（例えば、図３の第１奇伝達回路Ｔ１ａと第１偶伝達回路Ｔ１ｂ）。これら２種類の回路は、ＤＤＲメモリ２００から連続して出力される４ワードのメモリデータ信号を交互に取得し、取得したデータ信号を伝達してエッジセレクタＥＳに出力する。このように、連続して出力される複数のメモリデータ信号を、２種類の回路で交互に処理すれば、各回路は、メモリデータ信号の転送速度の半分の速度で処理を行うことができる。すなわち、メモリデータ信号の転送速度を、データ信号を出力する回路の処理速度の倍の速度に高速化することが可能となる。
【０１２９】
ここで、メモリデータ信号が出力される周期は、クロック信号の１／２周期に限らず、他の周期（例えば、クロック信号の１周期）であってもよい。また、並列に用いる回路の数は、２に限らず３以上であってもよい。また、各回路がデータ信号を出力するタイミングは、互いに異なっていてもよい。ただし、同じタイミングで出力すれば、各回路の出力信号を取得する取得回路（図１の例では、メモリコントローラ１２０）に要求される処理速度が過剰に高速化することを防止できる。いずれの場合も、連続して出力される複数のメモリデータ信号を複数の回路に順番に分散させて取得させれば、メモリデータ信号の転送速度の高速化を容易なものとすることができる。
【０１３０】
変形例３：
クロック信号ＣＬＫを遅延させて遅延クロック信号ＤＣＬＫを生成する回路としては、上述の各実施例の可変クロックディレイ回路１３０以外の種々の構成を採用することができる。例えば、１６の出力信号からの１つの出力信号の選択を、１つのセレクタを用いて実現してもよい。また、微調整可能な段階数は１６に限らず、他の任意の数を採用することができる。
【０１３１】
変形例４：
上述の各実施例において、サブ微調整幅（例えば、図７の調整可能範囲ＲＴ１の幅）は、メモリデータ信号を適切に取得できることが可能な時間の長さ（以下「最大取得可能時間」と呼ぶ）よりも長いことが好ましい。こうすれば、全ての微調整グループに含まれる全ての成功開始タイミングの中の時系列に沿った順番が先頭のタイミングと最後尾のタイミングとの両方を、１つの微調整グループに含ませることが可能となる。従って、ジッタの影響を最も受けにくい中央の開始タイミング（先頭と最後尾の真ん中の開始タイミング）を容易に選択することが可能となる。
【０１３２】
なお、最大取得可能時間は、理論的には、１つのメモリデータ信号が出力され続ける時間、すなわち、１つのデータ信号の長さと同じとなる（第１実施例では、１／２周期分の時間）。ただし、現実には、ジッタ等の影響によって、理論的な長さよりも短くなる傾向がある。そこで、予め、最大取得可能時間を実験的に測定しておき、得られた値を用いて、サブ微調整幅を設定してもよい。但し、サブ微調整幅が長いほど、上述した先頭と最後尾との成功開始タイミングが同じ微調整グループに含まれる可能性が高くなる。従って、理論的な最大取得可能時間を用いて、サブ微調整幅を設定してもよい。
【０１３３】
変形例５：
上述の各実施例において、サブ微調整幅が、粗調整による複数の開始タイミングの時間間隔（例えば、図７の時系列に沿って隣り合う２つの調整可能範囲ＲＴ１、ＲＴ１ｄの間のズレの長さ）よりも短い値に設定されていてもよい。ただし、この時間間隔よりも長い時間をサブ微調整幅として採用することが好ましい。こうすれば、複数の微調整グループのサブ微調整可能範囲を時系列に沿って並べたときに、任意の隣り合う２つのサブ微調整可能範囲の一部ずつが互いに重なるので、微調整可能な範囲に隙間が生じることを防止し、より適切な開始タイミングを選択することが可能となる。
【０１３４】
なお、隣り合う２つのサブ微調整可能範囲の重なり合う部分の時間幅（以下「重複幅」と呼ぶ）は、メモリデータ信号を適切に取得できることが可能な時間の長さ以上であることが好ましい。こうすれば、メモリデータ信号のタイミングに拘わらずに、全ての成功開始タイミングの中の時系列に沿った順番が先頭のタイミングと最後尾のタイミングとの両方を、１つの微調整グループに含ませることが可能となる。なお、重複幅の比較対象となる最大取得可能時間としては、サブ微調整幅の場合と同様に、理論的な値を用いてもよく、また、予め実験的に測定した値を用いてもよい。
【０１３５】
変形例６：
上述の各実施例において、可変データディレイ回路１１０と可変クロックディレイ回路１３０との設定を定める方法としては、図７（Ｂ）に示す方法に限らず、ＤＤＲメモリ２００から読み出したデータの正誤判定を各設定毎に行い、正しくデータを読み出せた設定を採用する種々の方法を用いることができる。ただし、図７（Ｂ）に示すように、「粗調整設定」が同じである微調整グループ毎に成功数を算出し、成功数が最も多い微調整グループの中から制御用の設定を採用すれば、適切な設定を採用することができる。
【０１３６】
変形例７：
上述の各実施例において、微調整部の構成としては、図２に示す可変クロックディレイ回路１３０を用いる構成に限らず、他の種々の構成を採用することができる。例えば、可変クロックディレイ回路１３０（図２）がクロック信号ＣＬＫを遅延させるのと同様に、メモリデータ信号自体を可変の遅延時間だけ遅延させる遅延回路と、遅延したデータ信号を取得する取得回路と、を有する構成を採用してもよい。
【０１３７】
また、粗調整部の構成としては、図２と図３とに示すディレイ回路１３０、１１０を用いる構成に限らず、他の種々の構成を用いることができる。例えば、上述したように、メモリデータ信号自体を可変の遅延時間で遅延させる場合を考える。この際、遅延時間を、比較的粗く（大きな時間間隔で）調整する複数の粗調整用のディレイバッファと、比較的細かく（小さな時間間隔で）調整する複数の微調整用のディレイバッファと、のそれぞれを切り替えて用いる構成を採用することができる。
【０１３８】
一般に、粗調整部としては、比較的大きな時間間隔で開始タイミングを調整可能な任意の回路を採用することができ、さらに、微調整部としては、比較的小さな時間間隔で開始タイミングを調整可能な任意の回路を採用することができる。
【０１３９】
変形例８：
キャリブレーション制御回路１６２が微調整設定と粗調整設定とを決定する処理（「キャリブレーション処理」とも呼ぶ）を実行するタイミングは、メモリシステム３００の電源投入時に限らず、他のタイミングで実行することとしてもよい。例えば、キャリブレーション制御回路１６２が、定期的に実行することとしてもよい。また、メモリシステム３００を工場から出荷する際に実行することとしてもよい。ただし、メモリシステム３００の起動時や、動作中の指定されたタイミングで実行することとすれば、メモリシステム３００の環境の変化（例えば、環境温度に変化）に応じた適切な微調整設定と粗調整設定とを定めることが可能となる。
【０１４０】
変形例９：
上述の各実施例において、キャリブレーション回路１６０の機能の一部、または、全部をソフトウェアによって実現してもよい。但し、少なくとも機能の一部をハードウェアによって実現すれば、ソフトウェアを実行するためのＣＰＵに過剰な負荷がかかることを防止することができる。また、較正データは、キャリブレーション回路１６０が有するメモリに予め格納しておく代わりに、ＣＤ−ＲＯＭ等を用いて外部から供給することとしてもよく、また、ＤＤＲメモリ２００内に較正データを予め格納する領域を設けてもよい。
【０１４１】
変形例１０：
上述の各実施例では、データ信号を出力するデータ信号出力装置として半導体メモリ（ＤＤＲメモリ２００）を用いているが、半導体メモリ以外の種々のデータ信号出力装置を採用することができる。例えば、データ信号を転送するネットワークをデータ信号出力装置として用いてもよい。この場合には、ネットワークからデータ信号を取得するネットワーク通信機器が、データ信号取得装置に相当することとなる。
【図面の簡単な説明】
【０１４２】
【図１】メモリシステム３００の構成を示すブロック図。
【図２】可変クロックディレイ回路１３０の構成を示すブロック図。
【図３】可変データディレイ回路１１０の構成を示すブロック図。
【図４】可変データディレイ回路１１０の動作の概要を示すタイミングチャート。
【図５】可変データディレイ回路１１０の動作の概要を示すタイミングチャートの別の例。
【図６】可変データディレイ回路１１０の動作の概要を示すタイミングチャートの別の例。
【図７】開始タイミングの概要を示す説明図。
【図８】第２実施例における可変データディレイ回路１１０ａの構成を示すブロック図。
【図９】第３実施例における可変データディレイ回路１１０ｂの構成を示すブロック図。
【符号の説明】
【０１４３】
１１ａ、１１ｂ、１２ａ、１２ｂ、１３ａ、２１ａ、２１ｂ、２２ａ、２２ｂ、２３ａ、３１ａ、３１ｂ、３２ａ、４０ａ、４０ｂ、１０１、１０２、１０３、１０４...Ｄフリップフロップ（ＤＦＦ）
１００...データ取得装置
１１０、１１０ａ、１１０ｂ...可変データディレイ回路
１２０...メモリコントローラ
１３０...可変クロックディレイ回路
１３０１〜１３１５...ディレイバッファ（ＤＢ）
１３２...オフセットディレイバッファ（ＯｆｆＤＢ）
１４０...クロック生成回路
１５０...ディレイ設定回路
１６０...キャリブレーション回路
１６２...キャリブレーション制御回路
１６３...設定値メモリ
１６４...最適値決定回路
１６５...比較結果メモリ
１６６...データ比較回路
２００...ＤＤＲメモリ
３００...メモリシステム
ＳＬ１０...オフセットセレクタ
ＳＬ２０、ＳＬ２１、ＳＬ２２、ＳＬ２３...中段ディレイセレクタ
ＳＬ３０...終段ディレイセレクタ
ＤＴ３ａ...奇伝達線
ＤＴ３ｂ...偶伝達線
Ｔ１...第１中間処理回路
Ｔ１ａ...第１奇伝達回路
Ｔ１ｂ...第１偶伝達回路
Ｔ２...第２中間処理回路
Ｔ２ａ...第２奇伝達回路
Ｔ２ｂ...第２偶伝達回路
Ｔ３...第３中間処理回路
Ｔ３ａ...第３奇伝達回路
Ｔ３ｂ...第３偶伝達回路
Ｔ１０...第１中間処理回路
ＦＯ...終段出力回路
ＥＳ、ＥＳａ、ＥＳｂ...エッジセレクタ
ＩＮＶ...インバータ
【図１】
2006099245.tif 000003
【図２】
2006099245.tif 000004
【図３】
2006099245.tif 000005
【図４】
2006099245.tif 000006
【図５】
2006099245.tif 000007
【図６】
2006099245.tif 000008
【図７】
2006099245.tif 000009
【図８】
2006099245.tif 000010
【図９】
2006099245.tif 000011