(57)【要約】【課題】データストローブ信号を使用してリードデータを適切に取得することが可能な技術を提供する。【解決手段】オーバーサンプリング回路１００は、データストローブ信号をオーバーサンプリングする。選択対象単位保持回路１１０は、単位期間ごとに、当該単位期間においてオーバーサンプリング回路１００で得られた第１所定数のサンプル値を選択対象単位として保持する。処理単位決定回路１２０は、選択対象単位ごとに、当該選択対象単位から、第１所定数よりも小さい第２所定数のサンプル値から成るエッジ検出単位を選択する。エッジ検出回路１３０は、エッジ検出単位ごとに、当該エッジ検出単位に基づいてデータストローブ信号のエッジを検出する。【選択図】図３７
2015197933.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に接続されたデータ線に当該記憶装置からリードデータが出力される際の、当該記憶装置に接続されたデータストローブ線のデータストローブ信号のエッジを検出するデータストローブエッジ検出回路であって、
前記データストローブ信号をオーバーサンプリングする第１サンプリング回路と、
第１単位期間ごとに、当該第１単位期間において前記第１サンプリング回路で得られた第１所定数の第１サンプル値を第１選択対象単位として保持する第１選択対象単位保持回路と、
前記第１選択対象単位ごとに、当該第１選択対象単位から、前記第１所定数よりも小さい第２所定数の第１サンプル値から成るエッジ検出単位を選択するエッジ検出単位決定回路と、
前記エッジ検出単位ごとに、当該エッジ検出単位に基づいて前記データストローブ信号のエッジを検出する第１エッジ検出回路と
備える、データストローブエッジ検出回路。
【請求項２】
請求項１に記載のデータストローブエッジ検出回路であって、
前記エッジ検出単位決定回路は、前記第１選択対象単位に含まれるグリッジを除去し、グリッジが除去された前記選択対象単位から前記エッジ検出単位を選択する、データストローブエッジ検出回路。
【請求項３】
請求項１及び請求項２のいずれか一つに記載のデータストローブエッジ検出回路であって、
前記エッジ検出単位は、前記第１所定数よりも小さい第３所定数の第１サンプル値から成るライズエッジ検出単位と、当該第３所定数の第１サンプル値から成るフォールエッジ検出単位とを含み、
前記第１エッジ検出回路は、
前記ライズエッジ検出単位ごとに、当該ライズエッジ検出単位に基づいて、前記データストローブ信号のライズエッジを検出するライズエッジ検出回路と、
前記フォールエッジ検出単位ごとに、当該フォールエッジ検出単位に基づいて、前記データストローブ信号のフォールエッジを検出するフォールエッジ検出回路と
を有する、データストローブエッジ検出回路。
【請求項４】
請求項３に記載のデータストローブエッジ検出回路であって、
前記データストローブ信号では、ローレベルに続いて不定となり、
前記フォールエッジ検出回路は、前記フォールエッジ検出単位ごとに、当該フォールエッジ検出単位を構成する前記第３所定数の第１サンプル値のサンプリングタイミングにそれぞれ対応する複数のビットから成るエッジデータを生成し、
前記エッジデータでは、当該エッジデータを構成する複数のビットをサンプリングタイミングの順で見た場合に、当該エッジデータに対応する前記フォールエッジ検出単位において１”から“０”に変化するタイミングで第１論理値を示し、それ以外のタイミングで第２論理値を示し、
前記フォールエッジ検出回路は、前記エッジデータを構成する複数のビットをサンプリングタイミングの順で見た場合に、前記第１論理値が最初に現れるタイミングよりも後方のタイミングから最後までをすべて前記第２論理値とするフィルタ処理を当該エッジデータに行う、データストローブエッジ検出回路。
【請求項５】
請求項１乃至請求項４のいずれか一つに記載のデータストローブエッジ検出回路と、
前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲を調整する制御回路と
を備える、データストローブ処理回路。
【請求項６】
請求項５に記載のデータストローブ処理回路であって、
前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングとを調整する、データストローブ処理回路。
【請求項７】
請求項１乃至請求項４のいずれか一つに記載のデータストローブエッジ検出回路と、
前記データストローブエッジ検出回路を制御し、前記記憶装置にリードコマンドを出力する制御回路と
を備え、
前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記リードコマンドの出力から前記データストローブ信号のエッジの入力までの遅延時間を求めて、当該遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲を調整する、データストローブ処理回路。
【請求項８】
請求項７に記載のデータストローブ処理回路であって、
前記制御回路は、前記遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングとを調整する、データストローブ処理回路。
【請求項９】
請求項１に記載のデータストローブエッジ検出回路と、
前記記憶装置に接続された前記データ線に当該記憶装置から出力されるリードデータを取得するリードデータ取得回路と
を備え、
前記リードデータ取得回路は、
前記記憶装置から前記データ線にリードデータが出力される際の当該データ線のデータ信号をオーバーサンプリングする第２サンプリング回路と、
第２単位期間ごとに、当該第２単位期間において前記第２サンプリング回路で得られた前記第１所定数の第２サンプル値を第２選択対象単位として保持する第２選択対象単位保持回路と、
前記第２選択対象単位ごとに、当該第２選択対象単位から、前記第２所定数の第２サンプル値から成るデータ取得単位を選択するデータ取得単位決定回路と、
前記データ取得単位ごとに、当該データ取得単位に基づいて前記データ信号が示すリードデータを取得するデータ取得回路と
有し、
前記データ取得回路は、前記データ処理単位を構成する前記第２所定数の第２サンプル値のうち、当該データ処理単位に対応する前記エッジ検出単位に基づいて前記第１エッジ検出回路が検出したエッジのタイミングに対応する第２サンプル値を、前記データ信号が示す値として取得する、データリード回路。
【請求項１０】
請求項９に記載のデータリード回路であって、
前記エッジ検出単位決定回路は、前記第１選択対象単位に含まれるグリッジを除去し、グリッジが除去された前記第１選択対象単位から前記エッジ検出単位を選択し、
前記データ処理単位決定回路は、前記第２選択対象単位に含まれるグリッジを除去し、グリッジが除去された前記第２選択対象単位から前記データ処理単位を選択する、データリード回路。
【請求項１１】
請求項９及び請求項１０のいずれか一つに記載のデータリード回路であって、
前記エッジ検出単位は、前記第１所定数よりも小さい第３所定数の第１サンプル値から成るライズエッジ検出単位と、当該第３所定数の第１サンプル値から成るフォールエッジ検出単位とを含み、
前記第１エッジ検出回路は、
前記ライズエッジ検出単位ごとに、当該ライズエッジ検出単位に基づいて、前記データストローブ信号のライズエッジを検出するライズエッジ検出回路と、
前記フォールエッジ検出単位ごとに、当該フォールエッジ検出単位に基づいて、前記データストローブ信号のフォールエッジを検出するフォールエッジ検出回路と
を有し、
前記データ処理単位は、前記第３所定数の第２サンプル値から成るライズ側データ処理単位と、前記第３所定数の第２サンプル値から成るフォール側データ処理単位とを含み、
前記データ取得回路は、
前記ライズ側データ処理単位を構成する前記第３所定数の第２サンプル値のうち、当該ライズ側データ処理単位に対応する前記ライズエッジ検出単位に基づいて前記ライズエッジ検出回路が検出したライズエッジのタイミングに対応する第２サンプル値を、前記データ信号が示す、当該ライズエッジに対応するリードデータとして取得するライズ側データ取得回路と、
前記フォール側データ処理単位を構成する前記第３所定数の第２サンプル値のうち、当該フォール側データ処理単位に対応する前記フォールエッジ検出単位に基づいて前記フォールエッジ検出回路が検出したフォールエッジに対応する第２サンプル値を、前記データ信号が示す、当該フォールエッジに対応するリードデータとして取得するフォール側データ取得回路と
を有する、データリード回路。
【請求項１２】
請求項９及び請求項１０のいずれか一つに記載のデータリード回路であって、
前記データストローブエッジ検出回路及び前記リードデータ取得回路を制御する制御回路をさらに備え、
前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲とを調整する、データリード回路。
【請求項１３】
請求項１２に記載のデータリード回路であって、
前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングと、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲と、前記第２選択対象単位保持回路での前記第２単位期間のタイミングとを調整する、データリード回路。
【請求項１４】
請求項９及び請求項１０のいずれか一つに記載のデータリード回路であって、
前記データ取得回路は、前記データ処理単位に基づいて前記データ信号のエッジを検出する第２エッジ検出回路をさらに有し、
前記制御回路は前記記憶装置にリードコマンドを出力し、
前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記リードコマンドの出力から前記データストローブ信号のエッジの入力までの第１遅延時間を求めて、当該第１遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲を調整し、
前記制御回路は、前記第２エッジ検出回路でのエッジ検出結果に基づいて、前記リードコマンドの出力から前記データ信号のエッジの入力までの第２遅延時間を求めて、当該第２遅延時間に基づいて、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲を調整する、データリード回路。
【請求項１５】
請求項１４に記載のデータリード回路であって、
前記制御回路は、
前記第１遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングとを調整し、
前記第２遅延時間に基づいて、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲と、前記第２選択対象単位保持回路での前記第２単位期間のタイミングとを調整する、データリード回路。
【請求項１６】
請求項９乃至請求項１５のいずれか一つに記載のデータリード回路であって、
前記データストローブエッジ検出回路と前記リードデータ取得回路とは互いに同じ回路構成を有している、データリード回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストローブ信号のエッジを検出する技術に関する。
【背景技術】
【０００２】
従来から記憶装置に関して様々な技術が提案されている。特許文献１及び２には、ＤＤＲ（Double Data Rate）型のＳＤＲＡＭ (Synchronous Dynamic Random Access Memory) に関する技術が開示されている。ＤＤＲ型のＳＤＲＡＭに関する規格としては、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、ＬＰＤＤＲ（Low Power Double Data Rate）等が知られている。ＬＰＤＤＲは「モバイルＤＤＲ」とも呼ばれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２２２０８０号公報
【特許文献２】特開２００８−２６９６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さて、ＤＤＲ型のＳＤＲＡＭなどのように、データ線及びデータストローブ線が接続された記憶装置からデータが読み出される際には、データストローブ線のデータストローブ信号が使用されてデータ線に出力されるリードデータが取得される。このような場合には、データストローブ信号を使用してリードデータを適切に取得することが望まれる。
【０００５】
そこで、本発明は上述の点に鑑みて成されたものであり、データストローブ信号を使用してリードデータを適切に取得することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係るデータストローブエッジ検出回路の一態様は、記憶装置に接続されたデータ線に当該記憶装置からリードデータが出力される際の、当該記憶装置に接続されたデータストローブ線のデータストローブ信号のエッジを検出するデータストローブエッジ検出回路であって、前記データストローブ信号をオーバーサンプリングする第１サンプリング回路と、第１単位期間ごとに、当該第１単位期間において前記第１サンプリング回路で得られた第１所定数の第１サンプル値を第１選択対象単位として保持する第１選択対象単位保持回路と、前記第１選択対象単位ごとに、当該第１選択対象単位から、前記第１所定数よりも小さい第２所定数の第１サンプル値から成るエッジ検出単位を選択するエッジ検出単位決定回路と、前記エッジ検出単位ごとに、当該エッジ検出単位に基づいて前記データストローブ信号のエッジを検出する第１エッジ検出回路と備える。
【０００７】
また、本発明に係るデータストローブエッジ検出回路の一態様では、前記エッジ検出単位決定回路は、前記第１選択対象単位に含まれるグリッジを除去し、グリッジが除去された前記選択対象単位から前記エッジ検出単位を選択する。
【０００８】
また、本発明に係るデータストローブエッジ検出回路の一態様では、前記エッジ検出単位は、前記第１所定数よりも小さい第３所定数の第１サンプル値から成るライズエッジ検出単位と、当該第３所定数の第１サンプル値から成るフォールエッジ検出単位とを含み、前記第１エッジ検出回路は、前記ライズエッジ検出単位ごとに、当該ライズエッジ検出単位に基づいて、前記データストローブ信号のライズエッジを検出するライズエッジ検出回路と、前記フォールエッジ検出単位ごとに、当該フォールエッジ検出単位に基づいて、前記データストローブ信号のフォールエッジを検出するフォールエッジ検出回路とを有する。
【０００９】
また、本発明に係るデータストローブエッジ検出回路の一態様では、前記データストローブ信号では、ローレベルに続いて不定となり、前記フォールエッジ検出回路は、前記フォールエッジ検出単位ごとに、当該フォールエッジ検出単位を構成する前記第３所定数の第１サンプル値のサンプリングタイミングにそれぞれ対応する複数のビットから成るエッジデータを生成し、前記エッジデータでは、当該エッジデータを構成する複数のビットをサンプリングタイミングの順で見た場合に、当該エッジデータに対応する前記フォールエッジ検出単位において１”から“０”に変化するタイミングで第１論理値を示し、それ以外のタイミングで第２論理値を示し、前記フォールエッジ検出回路は、前記エッジデータを構成する複数のビットをサンプリングタイミングの順で見た場合に、前記第１論理値が最初に現れるタイミングよりも後方のタイミングから最後までをすべて前記第２論理値とするフィルタ処理を当該エッジデータに行う。
【００１０】
また、本発明に係るデータストローブ処理回路の一態様は、上記のデータストローブエッジ検出回路と、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲を調整する制御回路とを備える。
【００１１】
また、本発明に係るデータストローブ処理回路の一態様では、前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングとを調整する。
【００１２】
また、本発明に係るデータストローブ処理回路の一態様は、上記のデータストローブエッジ検出回路と、前記データストローブエッジ検出回路を制御し、前記記憶装置にリードコマンドを出力する制御回路とを備え、前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記リードコマンドの出力から前記データストローブ信号のエッジの入力までの遅延時間を求めて、当該遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲を調整する。
【００１３】
また、本発明に係るデータストローブ処理回路の一態様では、前記制御回路は、前記遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングとを調整する。
【００１４】
また、本発明に係るデータリード回路の一態様は、上記のデータストローブエッジ検出回路と、前記記憶装置に接続された前記データ線に当該記憶装置から出力されるリードデータを取得するリードデータ取得回路とを備え、前記リードデータ取得回路は、前記記憶装置から前記データ線にリードデータが出力される際の当該データ線のデータ信号をオーバーサンプリングする第２サンプリング回路と、第２単位期間ごとに、当該第２単位期間において前記第２サンプリング回路で得られた前記第１所定数の第２サンプル値を第２選択対象単位として保持する第２選択対象単位保持回路と、前記第２選択対象単位ごとに、当該第２選択対象単位から、前記第２所定数の第２サンプル値から成るデータ取得単位を選択するデータ取得単位決定回路と、前記データ取得単位ごとに、当該データ取得単位に基づいて前記データ信号が示すリードデータを取得するデータ取得回路と有し、前記データ取得回路は、前記データ処理単位を構成する前記第２所定数の第２サンプル値のうち、当該データ処理単位に対応する前記エッジ検出単位に基づいて前記第１エッジ検出回路が検出したエッジのタイミングに対応する第２サンプル値を、前記データ信号が示す値として取得する。
【００１５】
また、本発明に係るデータリード回路の一態様では、前記エッジ検出単位決定回路は、前記第１選択対象単位に含まれるグリッジを除去し、グリッジが除去された前記第１選択対象単位から前記エッジ検出単位を選択し、前記データ処理単位決定回路は、前記第２選択対象単位に含まれるグリッジを除去し、グリッジが除去された前記第２選択対象単位から前記データ処理単位を選択する。
【００１６】
また、本発明に係るデータリード回路の一態様では、前記エッジ検出単位は、前記第１所定数よりも小さい第３所定数の第１サンプル値から成るライズエッジ検出単位と、当該第３所定数の第１サンプル値から成るフォールエッジ検出単位とを含み、前記第１エッジ検出回路は、前記ライズエッジ検出単位ごとに、当該ライズエッジ検出単位に基づいて、前記データストローブ信号のライズエッジを検出するライズエッジ検出回路と、前記フォールエッジ検出単位ごとに、当該フォールエッジ検出単位に基づいて、前記データストローブ信号のフォールエッジを検出するフォールエッジ検出回路とを有し、前記データ処理単位は、前記第３所定数の第２サンプル値から成るライズ側データ処理単位と、前記第３所定数の第２サンプル値から成るフォール側データ処理単位とを含み、前記データ取得回路は、前記ライズ側データ処理単位を構成する前記第３所定数の第２サンプル値のうち、当該ライズ側データ処理単位に対応する前記ライズエッジ検出単位に基づいて前記ライズエッジ検出回路が検出したライズエッジのタイミングに対応する第２サンプル値を、前記データ信号が示す、当該ライズエッジに対応するリードデータとして取得するライズ側データ取得回路と、前記フォール側データ処理単位を構成する前記第３所定数の第２サンプル値のうち、当該フォール側データ処理単位に対応する前記フォールエッジ検出単位に基づいて前記フォールエッジ検出回路が検出したフォールエッジに対応する第２サンプル値を、前記データ信号が示す、当該フォールエッジに対応するリードデータとして取得するフォール側データ取得回路とを有する。
【００１７】
また、本発明に係るデータリード回路の一態様では、前記データストローブエッジ検出回路及び前記リードデータ取得回路を制御する制御回路がさらに設けられ、前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲とを調整する。
【００１８】
また、本発明に係るデータリード回路の一態様では、前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングと、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲と、前記第２選択対象単位保持回路での前記第２単位期間のタイミングとを調整する。
【００１９】
また、本発明に係るデータリード回路の一態様では、前記データ取得回路は、前記データ処理単位に基づいて前記データ信号のエッジを検出する第２エッジ検出回路をさらに有し、前記制御回路は前記記憶装置にリードコマンドを出力し、前記制御回路は、前記第１エッジ検出回路でのエッジ検出結果に基づいて、前記リードコマンドの出力から前記データストローブ信号のエッジの入力までの第１遅延時間を求めて、当該第１遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲を調整し、前記制御回路は、前記第２エッジ検出回路でのエッジ検出結果に基づいて、前記リードコマンドの出力から前記データ信号のエッジの入力までの第２遅延時間を求めて、当該第２遅延時間に基づいて、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲を調整する。
【００２０】
また、本発明に係るデータリード回路の一態様では、前記制御回路は、前記第１遅延時間に基づいて、前記エッジ検出単位決定回路が前記第１選択対象単位から前記エッジ検出単位を選択する範囲と、前記第１選択対象単位保持回路での前記第１単位期間のタイミングとを調整し、前記第２遅延時間に基づいて、前記データ処理単位決定回路が前記第２選択対象単位から前記データ処理単位を選択する範囲と、前記第２選択対象単位保持回路での前記第２単位期間のタイミングとを調整する。
【００２１】
また、本発明に係るデータリード回路の一態様では、前記データストローブエッジ検出回路と前記リードデータ取得回路とは互いに同じ回路構成を有している。
【発明の効果】
【００２２】
本発明によれば、データストローブ信号を使用してデータ信号が示す値を適切に取得することができる。
【図面の簡単な説明】
【００２３】
【図１】半導体記憶装置の構成を示す図である。
【図２】制御装置の一部の構成を示す図である。
【図３】各種信号のタイミングを示す図である。
【図４】比較対象リード回路の構成を示す図である。
【図５】内部クロック信号を示す図である。
【図６】比較対象リード回路の一部の回路の構成を示す図である。
【図７】比較対象リード回路の一部の回路の構成を示す図である。
【図８】比較対象リード回路の一部の回路の構成を示す図である。
【図９】比較対象リード回路の一部の回路の構成を示す図である。
【図１０】比較対象リード回路の一部の回路の構成を示す図である。
【図１１】比較対象リード回路の一部の回路の構成を示す図である。
【図１２】処理単位期間とデータストローブ信号の関係を示す図である。
【図１３】比較対象リード回路の一部の回路の構成を示す図である。
【図１４】比較対象リード回路の動作を説明するための図である。
【図１５】比較対象リード回路の動作を説明するための図である。
【図１６】比較対象リード回路の一部の回路の構成を示す図である。
【図１７】比較対象リード回路の一部の回路の構成を示す図である。
【図１８】比較対象リード回路の動作を説明するための図である。
【図１９】比較対象リード回路の動作を説明するための図である。
【図２０】比較対象リード回路の一部の回路の構成を示す図である。
【図２１】比較対象リード回路の動作を説明するための図である。
【図２２】比較対象リード回路の動作例を示す図である。
【図２３】比較対象リード回路の動作例を示す図である。
【図２４】比較対象リード回路の動作例を示す図である。
【図２５】比較対象リード回路の動作例を示す図である。
【図２６】比較対象リード回路の動作例を示す図である。
【図２７】比較対象リード回路の動作例を示す図である。
【図２８】比較対象リード回路の動作例を示す図である。
【図２９】比較対象リード回路の動作例を示す図である。
【図３０】比較対象リード回路の動作例を示す図である。
【図３１】比較対象リード回路の動作例を示す図である。
【図３２】比較対象リード回路の動作例を示す図である。
【図３３】比較対象リード回路の動作例を示す図である。
【図３４】比較対象リード回路の動作例を示す図である。
【図３５】比較対象リード回路の動作例を示す図である。
【図３６】データリード回路の構成を示す図である。
【図３７】データストローブエッジ検出回路の構成を示す図である。
【図３８】リードデータ取得回路の構成を示す図である。
【図３９】オーバーサンプリング回路の構成を示す図である。
【図４０】第１処理単位期間とデータストローブ信号との関係を示す図である。
【図４１】選択対象単位保持回路の構成を示す図である。
【図４２】可変遅延回路の構成を示す図である。
【図４３】データ拡張回路の構成を示す図である。
【図４４】第１及び第２処理単位期間とデータストローブ信号の関係を示す図である。
【図４５】処理単位決定回路の構成を示す図である。
【図４６】グリッジ除去回路の構成を示す図である。
【図４７】除去回路の構成を示す図である。
【図４８】決定回路の構成を示す図である。
【図４９】エッジ検出回路の構成を示す図である。
【図５０】エッジ検出単位、ライズエッジ検出単位及びフォールエッジ検出単位の関係を示す図である。
【図５１】ライズエッジ検出回路の構成を示す図である。
【図５２】フォールエッジ検出回路の構成を示す図である。
【図５３】選択対象単位保持回路の構成を示す図である。
【図５４】処理単位決定回路の構成を示す図である。
【図５５】エッジ検出回路の構成を示す図である。
【図５６】データ取得回路の構成を示す図である。
【図５７】ライズ側データ取得回路の構成を示す図である。
【図５８】フォール側データ取得回路の構成を示す図である。
【図５９】データリード回路の動作を説明するための図である。
【図６０】データリード回路の動作を説明するための図である。
【図６１】データリード回路の動作例を示す図である。
【図６２】データリード回路の動作例を示す図である。
【図６３】データリード回路の動作例を示す図である。
【図６４】データリード回路の動作例を示す図である。
【図６５】データリード回路の動作例を示す図である。
【図６６】データリード回路の動作例を示す図である。
【図６７】データリード回路の動作例を示す図である。
【図６８】データリード回路の動作例を示す図である。
【図６９】データリード回路の動作例を示す図である。
【図７０】データリード回路の動作例を示す図である。
【図７１】データリード回路の動作例を示す図である。
【図７２】データリード回路の動作例を示す図である。
【図７３】データリード回路の動作例を示す図である。
【図７４】データリード回路の動作例を示す図である。
【図７５】データリード回路の動作例を示す図である。
【図７６】データリード回路の動作を説明するための図である。
【図７７】ポストフィルタ回路を有するエッジ検出回路の構成を示す図である。
【図７８】ポストフィルタ回路の構成を示す図である。
【図７９】データリード回路の動作を説明するための図である。
【図８０】データリード回路の動作を説明するための図である。
【図８１】制御回路の構成を示す図である。
【図８２】ＤＱＳ制御回路の構成を示す図である。
【図８３】ＤＱ制御回路の構成を示す図である。
【図８４】制御回路の動作を示すフローチャートである。
【図８５】制御回路の動作を説明するための図である。
【図８６】制御回路の動作を説明するための図である。
【図８７】ＤＱＳ制御回路の動作を示すフローチャートである。
【図８８】ＤＱＳ制御回路の動作を示すフローチャートである。
【図８９】ＤＱＳ制御回路の動作を示すフローチャートである。
【発明を実施するための形態】
【００２４】
図１は実施の形態に係る半導体記憶装置１の構成を示す図である。本実施の形態に係る半導体記憶装置１は、記憶装置２と、当該記憶装置２を制御する制御装置３とを備えている。記憶装置２は、例えばＤＤＲ型のＳＤＲＡＭである。制御装置３は、例えばＡＳＩＣ（application specific integrated circuit）で構成されている。記憶装置２と制御装置３は一つのパッケージに収められても良いし、別々のパッケージに収められても良い。後者の場合には、記憶装置２と制御装置３は例えばプリント基板上に搭載されて、当該プリント基板上の配線によって互いに接続される。制御装置３は、記憶装置２に対してデータを書き込み、記憶装置２からデータを読み出す。制御装置３と記憶装置２とは、様々な信号線ＳＬによって互いに接続されており、当該信号線ＳＬを使用して信号のやり取りを行う。信号線ＳＬの種類としては、データ線、データストローブ線、クロック線、アドレス線等が存在する。
【００２５】
制御装置３は、図２に示されるように、クロック生成回路４と、記憶装置３からデータを読み出すデータリード回路５とを備えている。クロック生成回路４は、差動信号を構成する、互いに相補的な２つのクロック信号ＣＬＫ，ＣＬＢを生成して記憶装置２に出力する。クロック信号ＣＬＫはデータリード回路５にも出力される。またクロック生成回路４は、制御装置３の内部で使用されるＰ（≧２）個の内部クロック信号ＣＬＫ２[０]〜ＣＬＫ２[Ｐ−１]（内部クロック信号ＣＬＫ２[Ｐ−１：０]）を生成して出力する。Ｐ個の内部クロック信号ＣＬＫ２[０]〜ＣＬＫ２[Ｐ−１]は互いに位相が異なっており、データリード回路５で使用される。内部クロック信号ＣＬＫ２[０]〜ＣＬＫ２[Ｐ−１]のそれぞれの周波数は、クロック信号ＣＬＫ，ＣＬＫＢの周波数の２倍となっている。クロック信号ＣＬＫ，ＣＬＫＢの周波数は例えば１ＧＨｚ程度となっている。
【００２６】
データリード回路５は、クロック信号ＣＬＫに同期して動作を行う。データリード回路５は記憶装置２に対してリードコマンドＲＤＣを出力する。
【００２７】
記憶装置２は、クロック信号ＣＬＫ，ＣＬＫＢに同期して動作を行う。記憶装置２は、データリード回路５からリードコマンドＲＤＣが入力されると、データストローブ線ＤＱＳＬを駆動するともに、データ線ＤＱＬ［０］〜ＤＱＬ[７]（データ線ＤＱＬ[７：０]））に８ビットのリードデータをそれぞれ出力する。データリード回路５は、データストローブ線ＤＱＳＬのデータストローブ信号ＤＱＳを取り込み、取り込んだデータストローブ信号ＤＱＳを使用して、データ線ＤＱＬ［０］〜ＤＱＬ[７]のデータ信号ＤＱ[０]〜ＤＱ[７]（データ信号ＤＱ[７：０]））が示す８ビットのリードデータを取得する。
【００２８】
以後、データ線ＤＱＬ［０］〜ＤＱＬ［７］を特に区別する必要がないときには、［］を削除してそれぞれを「データ線ＤＱＬ」と呼ぶ。また、データ信号ＤＱ[０]〜ＤＱ[７]を特に区別する必要がないときには、［］を削除してそれぞれを「データ信号ＤＱ」と呼ぶ。以下に登場する、符号に［］を有する信号、値及びデータ等についても同様である。本実施の形態では、データ線ＤＱＬが８つ設けられているが、データ線ＤＱＬの数はこれ以外であっても良い。
【００２９】
データストローブ線ＤＱＳＬ及びデータ線ＤＱＬは双方向の信号線である。制御装置３は記憶装置２に対してデータを書き込む際には、データストローブ線ＤＱＳＬを駆動するとともに、データ線ＤＱＬにライトデータを出力する。制御装置３及び記憶装置２の両方がデータストローブ線ＤＱＳＬを駆動していないときには、データストローブ信号ＤＱＳの信号レベルは不定となる。同様に、制御装置３及び記憶装置２の両方がデータ線ＤＱＬを駆動していないときには、データ信号ＤＱの信号レベルは不定となる。以後、「データストローブ信号ＤＱＳ」と言えば、記憶装置２からデータが読み出される際のデータストローブ信号ＤＱＳを意味する。また「データ信号ＤＱ」と言えば、記憶装置２からデータが読み出される際のデータ信号ＤＱを意味する。
【００３０】
図３はクロック信号ＣＬＫ、リードコマンドＲＤＣ、データストローブ信号ＤＱＳ及びデータ信号ＤＱの関係の一例を示す図である。記憶装置２は、リードコマンドＲＤＣが入力されると、各データ線ＤＱＬにバーストデータを出力する。
【００３１】
図３に示されるように、データリード回路５が、クロック信号ＣＬＫのあるライズエッジＲＥ０でリードコマンドＲＤＣを出力すると、記憶装置２は、例えば、当該ライズエッジＲＥ０の次のライズエッジＲＥ１で、信号レベルが不定のデータストローブ信号ＤＱＳをＬｏｗレベルに固定する。そして、記憶装置２は、その次のライズエッジＲＥ２から、クロック信号ＣＬＫにエッジが現れるたびにデータストローブ信号ＤＱＳの信号レベルを反転させる。したがって、データストローブ信号ＤＱＳのエッジが現れる周波数は、クロック信号ＣＬＫの周波数と同じである。つまり、ライズエッジとフォールエッジが交互に現れているデータストローブ信号ＤＱＳの周波数はクロック信号ＣＬＫの周波数と同じである。クロック信号ＣＬＫのライズエッジＲＥ１から次のライズエッジＲＥ２までの間、データストローブ信号ＤＱＳが示すＬｏｗレベルの信号は「プリアンブル」と呼ばれる。以後、「データストローブ信号ＤＱＳの周波数」と言えば、図３のように、ライズエッジとフォールエッジが交互に現れているデータストローブ信号ＤＱＳの周波数を意味する。また「データストローブ信号ＤＱＳの周期」と言えば、ライズエッジとフォールエッジが交互に現れているデータストローブ信号ＤＱＳでのライズエッジ間の時間的長さ（フォールエッジ間の時間的長さ）を意味する。
【００３２】
記憶装置２は、データストローブ信号ＤＱＳの各エッジでリードデータＲＤをデータ線ＤＱＬに出力する。これにより、１回のリードコマンドＲＤＣの発行によって、データ信号ＤＱには複数のリードデータＲＤが含まれる。リードデータＲＤの出力は、データストローブ信号ＤＱＳのエッジで開始し、次のリードデータＲＤの出力は、データストローブ信号ＤＱＳの次のエッジで開始する。データストローブ信号ＤＱＳのエッジのタイミングがジッタにより変化する場合には、当該エッジに対応するリードデータＲＤの出力タイミングもそれに応じて変化する。つまり、データストローブ信号ＤＱＳのエッジのタイミングが遅れると、その分、当該エッジに対応するリードデータＲＤの出力タイミングも遅れる。また、データストローブ信号ＤＱＳのエッジのタイミングが早まると、その分、当該エッジに対応するリードデータＲＤの出力タイミングも早まる。
【００３３】
なお、ＤＤＲ２等の規格によれば、データストローブ信号ＤＱＳのあるエッジで出力されるリードデータＲＤの値は、当該エッジから第１期間までと、当該エッジの次のエッジから第２期間前までとが不定となっている。したがって、ＤＤＲ２等の規格の上では、データストローブ信号ＤＱＳのあるエッジで出力されるリードデータＲＤの値は、当該エッジと次のエッジの間の中央付近では確定している。
【００３４】
図３の例では、データストローブ信号ＤＱＳには、ライズエッジ及びフォールエッジの両方を含めて８回エッジが現れている。したがって、データ線ＤＱＬには、リードデータＲＤが連続して８回出力されている。データ線ＤＱＬにはリードデータＲＤ０〜ＲＤ７が出力されている。本例では、リードデータＲＤのバースト数が“８”となっているが、これ以外であっても良い。
【００３５】
リードデータＲＤのバースト出力は、データストローブ信号ＤＱＳのフォールエッジで終了する。データストローブ信号ＤＱＳのフォールエッジで最後のリードデータＲＤの出力が開始すると、図３のように、データストローブ信号ＤＱＳはクロック信号ＣＬＫの半サイクル分だけＬｏｗレベルとなった後（ポストアンブル）、不定となる。
【００３６】
図３の例では、リードコマンドＲＤＣが出力されるタイミング（クロック信号ＣＬＫのライズエッジＲＥ０）から、データストローブ信号ＤＱＳにおいて最初のライズエッジが現れるまでの遅延時間が、クロック信号ＣＬＫの２サイクル分となっているが、これ以外であっても良い。また、リードコマンドＲＤＣが連続して発行される場合には、データストローブ信号ＤＱＳには８回よりも多い回数エッジが現れ、記憶装置２からは８個よりも多い数のリードデータＲＤが連続して出力されることもある。
【００３７】
データリード回路５は、データストローブ信号ＤＱＳに現れるエッジを検出し、その検出結果に基づいて、データ信号ＤＱが示す、当該エッジに対応するリードデータＲＤを取得する。以下に本実施の形態に係るデータリード回路５について説明するが、その前に、当該データリード回路５と比較される比較対象リード回路９００について説明する。
【００３８】
＜比較対象リード回路＞
図４は比較対象リード回路９００の構成を示す図である。比較対象リード回路９００は、本実施の形態に係るデータリード回路５と同様に、データストローブ信号ＤＱＳのエッジを検出し、その検出結果に基づいて、データ信号ＤＱが示す、当該エッジに対応するリードデータＲＤを取得する。
【００３９】
図４に示されるように、比較対象リード回路９００は、データストローブ信号ＤＱＳを処理するデータストローブエッジ検出回路９１０と、データ信号ＤＱ［０］〜ＤＱ［７］をそれぞれ処理する８個のリードデータ取得回路９５０−０〜９５０−７とを備えている。データストローブエッジ検出回路９１０は、オーバーサンプリング回路９２０と、遅延回路９３０と、エッジ検出回路９４０とを備えている。リードデータ取得回路９１０−０〜９１０−７のそれぞれは、オーバーサンプリング回路９６０と、遅延回路９７０と、データ取得回路９８０とを備えている。
【００４０】
データストローブエッジ検出回路９１０は、クロック生成回路４が出力するＰ個の内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］を使用して、データストローブ信号ＤＱＳをオーバーサンプリングする。また、データ信号ＤＱ［ｙ］（０≦ｙ≦７）を処理するリードデータ取得回路９５０−ｙは、内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］を使用して、データ信号ＤＱ［ｙ］をオーバーサンプリングする。以後、データストローブエッジ検出回路を「ＤＱＳエッジ検出回路」と呼び、「リードデータ取得回路」を「ＲＤ取得回路」と呼ぶ。
【００４１】
図５は内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］の位相関係を示す図である。本実施の形態ではＰ＝１２となっている。内部ブロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］の１サイクル分の位相を３６０度とすると、内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］の位相はこの順で３０度ずつずれている。内部ブロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］の周波数はクロック信号ＣＬＫの周波数の２倍であるため、クロック信号ＣＬＫの１サイクル分の位相を３６０度とすると、内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］の位相はこの順で１５度ずつずれている。したがって、クロック信号ＣＬＫの半サイクルの間には、内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］のライズエッジが全部で１２回現れる。そして、クロック信号ＣＬＫの周波数とデータストローブ信号ＤＱＳの周波数とは一致するため、データストローブ信号ＤＱＳの半サイクルの間（ライズエッジとフォールエッジの間）には、内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］のライズエッジが全部で１２回現れる。内部クロック信号ＣＬＫ２［ｘ］（０≦ｘ≦Ｐ−１）のライズエッジと、それに続く内部クロック信号ＣＬＫ２［ｘ＋１］のライズエッジとの間隔が、データストローブ信号ＤＱＳ及びデータ信号ＤＱ［ｙ］のサンプリング周期ＳＭＰとなる。内部クロック信号ＣＬＫ２［０］のライズエッジはクロック信号ＣＬＫのライズエッジまたはフォールエッジと同期している。
【００４２】
＜ＤＱＳエッジ検出回路＞
図６はオーバーサンプリング回路９２０の構成を示す図である。図６に示されるように、オーバーサンプリング回路９２０は、データストローブ信号ＤＱＳをオーバーサンプリングするサンプリング回路９２１と、クロック乗せ換え回路９２２とを備えている。クロック乗せ換え回路９２２は、１段目回路９２３、２段目回路９２４、３段目回路９２５及び４段目回路９２６を備えている。
【００４３】
図７はサンプリング回路９２１の構成を示す図である。図７に示されるように、サンプリング回路９２１は、内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［１１］がそれぞれ入力されるフリップフリップ（ＦＦ）回路９２１Ａ〜９２１Ｌを備えている。ＦＦ回路９２１Ａ〜９２１Ｌのそれぞれは、入力される内部クロック信号ＣＬＫ２［ｘ］のライズエッジでデータストローブ信号ＤＱＳが示す値（論理値）を保持し、当該値をサンプル値ＳＭ１［ｘ］として出力する。これにより、サンプリング回路９２１では、データストローブ信号ＤＱＳが、その半サイクルの間に１２回サンプリングされ、データストローブ信号ＤＱＳがオーバーサンプリングされる。サンプル値は１ビットのデータであり、サンプルデータとも呼ばれる。
【００４４】
図８はクロック乗せ換え回路９２２の１段目回路９２３の構成示す図である。図８に示されるように、１段目回路９２３は、サンプル値ＳＭ１［０］〜ＳＭ１［１１］がそれぞれ入力されるＦＦ回路９２３Ａ〜９２３Ｌを備えている。ＦＦ回路９２３Ａ〜９２３Ｃのそれぞれは、内部クロック信号ＣＬＫ２［０］のライズエッジで、入力されるサンプル値ＳＭ１［ｘ］を保持してサンプル値ＳＭ２［ｘ］として出力する。したがって、ＦＦ回路９２３Ａ〜９２３Ｃからは、内部クロック信号ＣＬＫ２［０］のライズエッジに同期して、サンプル値ＳＭ２［０］〜ＳＭ２［２］がそれぞれ出力される。
【００４５】
ＦＦ回路９２３Ｄ〜９２３Ｆのそれぞれは、内部クロック信号ＣＬＫ２［３］のライズエッジで、入力されるサンプル値ＳＭ１［ｘ］を保持してサンプル値ＳＭ２［ｘ］として出力する。したがって、ＦＦ回路９２３Ｄ〜９２３Ｆからは、内部クロック信号ＣＬＫ２［３］のライズエッジに同期して、サンプル値ＳＭ２［３］〜ＳＭ２［５］がそれぞれ出力される。
【００４６】
ＦＦ回路９２３Ｇ〜９２３Ｉのそれぞれは、内部クロック信号ＣＬＫ２［６］のライズエッジで、入力されるサンプル値ＳＭ１［ｘ］を保持してサンプル値ＳＭ２［ｘ］として出力する。したがって、ＦＦ回路９２３Ｇ〜９２３Ｉからは、内部クロック信号ＣＬＫ２［６］のライズエッジに同期して、サンプル値ＳＭ２［６］〜ＳＭ２［８］がそれぞれ出力される。
【００４７】
ＦＦ回路９２３Ｊ〜９２３Ｌのそれぞれは、内部クロック信号ＣＬＫ２［９］のライズエッジで、入力されるサンプル値ＳＭ１［ｘ］を保持してサンプル値ＳＭ２［ｘ］として出力する。したがって、ＦＦ回路９２３Ｊ〜９２３Ｌからは、内部クロック信号ＣＬＫ２［９］のライズエッジに同期して、サンプル値ＳＭ２［９］〜ＳＭ２［１１］がそれぞれ出力される。
【００４８】
図９はクロック乗せ換え回路９２２の２段目回路９２４の構成示す図である。図９に示されるように、２段目回路９２４は、サンプル値ＳＭ２［０］〜ＳＭ２［１１］がそれぞれ入力されるＦＦ回路９２４Ａ〜９２４Ｌを備えている。ＦＦ回路９２４Ａ〜９２４Ｆのそれぞれは、内部クロック信号ＣＬＫ２［０］のライズエッジで、入力されるサンプル値ＳＭ２［ｘ］を保持してサンプル値ＳＭ３［ｘ］として出力する。したがって、ＦＦ回路９２４Ａ〜９２４Ｆからは、内部クロック信号ＣＬＫ２［０］のライズエッジに同期して、サンプル値ＳＭ３［０］〜ＳＭ３［５］がそれぞれ出力される。
【００４９】
ＦＦ回路９２４Ｇ〜９２４Ｉのそれぞれは、内部クロック信号ＣＬＫ２［３］のライズエッジで、入力されるサンプル値ＳＭ２［ｘ］を保持してサンプル値ＳＭ３［ｘ］として出力する。したがって、ＦＦ回路９２４Ｇ〜９２４Ｉからは、内部クロック信号ＣＬＫ２［３］のライズエッジに同期して、サンプル値ＳＭ３［６］〜ＳＭ３［８］がそれぞれ出力される。
【００５０】
ＦＦ回路９２４Ｊ〜９２４Ｌのそれぞれは、内部クロック信号ＣＬＫ２［６］のライズエッジで、入力されるサンプル値ＳＭ２［ｘ］を保持してサンプル値ＳＭ３［ｘ］として出力する。したがって、ＦＦ回路９２４Ｊ〜９２４Ｌからは、内部クロック信号ＣＬＫ２［６］のライズエッジに同期して、サンプル値ＳＭ３［９］〜ＳＭ３［１１］がそれぞれ出力される。
【００５１】
図１０はクロック乗せ換え回路９２２の３段目回路９２５の構成示す図である。図１０に示されるように、３段目回路９２５は、サンプル値ＳＭ３［０］〜ＳＭ３［１１］がそれぞれ入力されるＦＦ回路９２５Ａ〜９２５Ｌを備えている。ＦＦ回路９２５Ａ〜９２５Ｉのそれぞれは、内部クロック信号ＣＬＫ２［０］のライズエッジで、入力されるサンプル値ＳＭ３［ｘ］を保持してサンプル値ＳＭ４［ｘ］として出力する。したがって、ＦＦ回路９２５Ａ〜９２５Ｉからは、内部クロック信号ＣＬＫ２［０］のライズエッジに同期して、サンプル値ＳＭ４［０］〜ＳＭ４［８］がそれぞれ出力される。
【００５２】
ＦＦ回路９２５Ｊ〜９２５Ｌのそれぞれは、内部クロック信号ＣＬＫ２［３］のライズエッジで、入力されるサンプル値ＳＭ３［ｘ］を保持してサンプル値ＳＭ４［ｘ］として出力する。したがって、ＦＦ回路９２５Ｊ〜９２５Ｌからは、内部クロック信号ＣＬＫ２［３］のライズエッジに同期して、サンプル値ＳＭ４［９］〜ＳＭ４［１１］がそれぞれ出力される。
【００５３】
図１１はクロック乗せ換え回路９２２の４段目回路９２６の構成示す図である。図１１に示されるように、４段目回路９２６は、サンプル値ＳＭ４［０］〜ＳＭ４［１１］がそれぞれ入力されるＦＦ回路９２６Ａ〜９２６Ｌを備えている。ＦＦ回路９２５Ａ〜９２６Ｌのそれぞれは、内部クロック信号ＣＬＫ２［０］のライズエッジで、入力されるサンプル値ＳＭ４［ｘ］を保持してサンプル値ＳＭ５［ｘ］として出力する。したがって、ＦＦ回路９２６Ａ〜９２６Ｌからは、内部クロック信号ＣＬＫ２［０］のライズエッジに同期して、サンプル値ＳＭ５［０］〜ＳＭ５［１１］がそれぞれ出力される。これにより、オーバーサンプリング回路９２０からは、内部クロック信号ＣＬＫ２［０］のライズエッジごとに、サンプル値ＳＭ５［Ｐ−１：０］が出力される。サンプル値ＳＭ５［Ｐ−１：０］は、クロック信号ＣＬＫの半サイクルと同じ長さの期間の間、データストローブ信号ＤＱＳをＰ回サンプリングして得られたサンプル値である。以後、当該期間を「処理単位期間」と呼ぶ。オーバーサンプリング回路９２０は、処理単位期間ごとに、当該処理単位期間においてデータストローブ信号ＤＱＳをサンプリングすることによって得られた１２個のサンプル値ＳＭ５［１１：０］を出力する。サンプル値ＳＭ５［１１：０］は１２ビットのデータである。処理単位期間は内部クロック信号ＣＬＫ２［０］と同期している。つまり処理単位期間の始点及び終点は内部クロック信号ＣＬＫ２［０］のライズエッジと同期している。
【００５４】
図１２は処理単位期間とデータストローブ信号ＤＱＳとの関係の一例を示す図である。図１２には、（Ｍ＋０）番目の処理単位期間９９０から（Ｍ＋７）番目の処理単位期間９９０が示されている。処理単位期間９９０の長さと、データストローブ信号ＤＱＳの半周期の長さとは理想的には一致することから、データストローブ信号ＤＱＳでは、理想的には１つの処理単位期間９９０にエッジが１つだけ含まれる。しかしながら、データストローブ信号ＤＱＳのエッジのタイミングにはジッタが存在することから、実際にはこのようになるとは限らない。オーバーサンプリング回路９２０は、ある処理単位期間９９０で得たサンプル値ＳＭ５［Ｐ−１：０］を、当該処理単位期間９９０よりも内部クロック信号ＣＬＫ２［０］の数サイクル分遅らせて出力する。
【００５５】
以上のような構成を有するオーバーサンプリング回路９２０からは、データストローブ信号ＤＱＳをオーバーサンプリングして順次得られるサンプル値が、クロック信号ＣＬＫの半サイクル分（Ｐ個）ごとに、内部クロック信号ＣＬＫ２［０］のライズエッジに同期して出力される。
【００５６】
図１３はＤＱＳエッジ検出回路９１０の遅延回路９３０の構成を示す図である。遅延回路９３０は、オーバーサンプリング回路９２０から内部クロック信号ＣＬＫ２［０］のライズエッジに同期して出力されるサンプル値ＳＭ５［１１：０］を、内部クロック信号ＣＬＫ２［０］の１サイクル分遅延させて出力する。このとき、遅延回路９３０は、当該サンプル値ＳＭ５［１１：０］に対して、当該ライズエッジよりも１つ前のライズエッジに同期して出力されるサンプル値ＳＭ５［Ｐ−１］を付加する。
【００５７】
図１３２に示されるように、遅延回路９３０は、内部クロック信号ＣＬＫ２［０］が入力されるＦＦ回路９３０Ａ〜９３０Ｃを備えている。ＦＦ回路９３０Ａは、内部クロック信号ＣＬＫ２［０］のライズエッジで、サンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］を保持してそれぞれサンプル値ＳＭ６［１］〜ＳＭ６［Ｐ］として出力する。これにより、遅延回路９３０は、入力されたサンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］を、内部クロック信号ＣＬＫ２［０］の１サイクル分遅延して、それぞれサンプル値ＳＭ６［１］〜ＳＭ６［Ｐ］として出力する。
【００５８】
ＦＦ回路９３０Ｂは、内部クロック信号ＣＬＫ２［０］のライズエッジでサンプル値ＳＭ５［Ｐ−１］を保持して出力する。ＦＦ回路９３０Ｃは、内部クロック信号ＣＬＫ２［０］のライズエッジでＦＦ回路９３０Ｂの出力を保持してサンプル値ＳＭ６［０］として出力する。これにより、遅延回路９３０は、入力されたサンプル値ＳＭ５［Ｐ−１］を、内部クロック信号ＣＬＫ２［０］の２サイクル分遅延して、サンプル値ＳＭ６［０］として出力する。
【００５９】
このような構成を有する遅延回路９３０では、Ｍ番目の処理単位期間９９０で得られたＰ個のサンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］の先頭に、それよりも一つ前の（Ｍ−１）番目の処理単位期間９９０で得られた最後のサンプル値ＳＭ５［Ｐ−１］が付加され、それによって得られるＰ個のサンプル値がそれぞれサンプル値ＳＭ６［０］〜ＳＭ６［Ｐ］とされる。図１４は、その様子を示す図である。
【００６０】
上記の点を内部クロック信号ＣＬＫ２［０］のサイクルを用いて言い換えると、遅延回路９３０は、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルでオーバーサンプリング回路９２０から出力されるＰ個のサンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］の先頭に、内部クロック信号ＣＬＫ２［０］の（Ｎ−１）番目のサイクルでオーバーサンプリング回路９２０から出力されるサンプル値ＳＭ５［Ｐ−１］を付加して得られるＰ個のサンプル値を、それぞれサンプル値ＳＭ６［０］〜［Ｐ］として、内部クロック信号ＣＬＫ２［０］の（Ｎ＋１）番目のサイクルで出力する。つまり、遅延回路９３０は、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルでオーバーサンプリング回路９２０から出力されるＰ個のサンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］を１サイクル分遅延させて出力するとともに、当該サンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］の先頭に内部クロック信号ＣＬＫ２［０］の（Ｎ−１）番目のサイクルでオーバーサンプリング回路９２０から出力されるサンプル値ＳＭ５［Ｐ−１］を付加する。図１５は、その様子を示す図である。
【００６１】
図１６はＤＱＳエッジ検出回路９１０のエッジ検出回路９４０の構成を示す図である。エッジ検出回路９４０は、Ｐ個のＸＯＲ回路９４０−０〜９４０−（Ｐ−１）を備えている。ＸＯＲ回路９４０−ｘは、遅延回路９３０から出力されるサンプル値ＳＭ６［ｘ］及びサンプル値ＳＭ６［ｘ＋１］の排他的論理和を求めて、その結果をエッジデータＥＧ［ｘ］として出力する。エッジデータＥＧ［ｘ］は、サンプル値ＳＭ６［ｘ］及びサンプル値ＳＭ６［ｘ＋１］の論理値が互いに一致すれば“０”を示し、当該論理値が互いに異なれば“１”を示す。エッジ検出回路９４０からはエッジデータＥＧ［０］〜［Ｐ−１］が出力される。ある処理単位期間９９０でのサンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］に基づいて生成されたエッジデータＥＧ［０］〜［Ｐ−１］では、当該処理単位期間９９０においてデータストローブ信号ＤＱＳのエッジが現れるタイミングに応じたデータが“１”を示す。よって、エッジデータＥＧ［０］〜［Ｐ−１］を見れば、それに対応する処理単位期間９９０においてデータストローブ信号ＤＱＳのエッジが現れるタイミングを特定することができる。
【００６２】
＜ＲＤ取得回路＞
ＲＤ取得回路９５０−１〜９５０−７は、互いに同じ回路構成を有している。各ＲＤ取得回路９５０のオーバーサンプリング回路９６０は、オーバーサンプリング回路９２０と同じ回路構成を有している。データ信号ＤＱ［ｙ］を処理するＲＤ取得回路９５０−ｙのオーバーサンプリング回路９６０は、データ信号ＤＱ［ｙ］をオーバーサンプリングして得られるサンプル値ＳＭ１５［Ｐ−１：０］を出力する。サンプル値ＳＭ１５［Ｐ−１：０］は、上記のサンプル値ＳＭ５［Ｐ−１：０］と同様に、処理単位期間の間、データ信号ＤＱ［ｙ］をＰ回サンプリングして得られたサンプル値である。オーバーサンプリング回路９６０は、処理単位期間ごとに、当該処理単位期間においてデータ信号ＤＱ［ｙ］をサンプリングすることによって得られた１２個のサンプル値ＳＭ１５［１１：０］を出力する。
【００６３】
図１７は遅延回路９７０を示す図である。図１７に示されるように、遅延回路９７０はＦＦ回路９７０Ａを備えている。ＦＦ回路９７０Ａは、サンプル値ＳＭ１５［Ｐ−１：０］のうちの上位側半分のサンプル値ＳＭ１５［Ｐ／２］〜ＳＭ１５［Ｐ−１］を内部クロック信号ＣＬＫ２［０］のライズエッジで保持して、サンプル値ＳＭ１６［０］〜ＳＭ１６［Ｐ／２−１］としてそれぞれ出力する。また遅延回路９７０は、サンプル値ＳＭ１５［Ｐ−１：０］のうちの下位側半分のサンプル値ＳＭ１５［０］〜ＳＭ１５［Ｐ／２−１］をそのままサンプル値ＳＭ１６［Ｐ／２］〜ＳＭ１６［Ｐ−１］としてそれぞれ出力する。
【００６４】
このような構成を有する遅延回路９７０では、Ｍ番目の処理単位期間で得られたＰ個のサンプル値ＳＭ１５［Ｐ−１：０］のうち下位側半分のサンプル値ＳＭ１５［Ｐ／２−１：０］が、サンプル値ＳＭ１６［Ｐ−１：０］の上位側半分のサンプル値Ｓ１６［Ｐ−１：Ｐ／２］となる。そして、一つ前の（Ｍ−１）番目の処理単位期間で得られたＰ個のサンプル値ＳＭ１５［Ｐ−１：０］のうち上位側半分のサンプル値ＳＭ１５［Ｐ−１：Ｐ／２］が、サンプル値ＳＭ１６［Ｐ−１：０］の下位側半分のサンプル値Ｓ１６［Ｐ／２−１：０］となる。図１８はその様子を示す図である。なお図１８の破線の矢印は、Ｍ番目の処理単位期間で得られたサンプル値ＳＭ１５［Ｐ／２−１：０］及び（Ｍ−１）番目の処理単位期間で得られたサンプル値ＳＭ１５［Ｐ−１：Ｐ／２］と、サンプル値ＳＭ１６［Ｐ−１：０］との対応関係を示しており、サンプル値ＳＭ１６［Ｐ−１：０］の出力タイミングを示しているわけでない。
【００６５】
上記の点を内部クロック信号ＣＬＫ２［０］のサイクルを用いて言い換えると、遅延回路９７０は、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルでオーバーサンプリング回路９２０から出力されるＰ個のサンプル値ＳＭ１５［Ｐ−１：０］のうち下位側半分のサンプル値ＳＭ１５［Ｐ／２−１：０］を、当該Ｎ番目のサイクルでのサンプル値ＳＭ１６［Ｐ−１：０］の上位側半分のサンプル値Ｓ１６［Ｐ−１：Ｐ／２］とする。そして、遅延回路９２０は、内部クロック信号ＣＬＫ２［０］の（Ｎ−１）番目のサイクルでオーバーサンプリング回路９２０から出力されるＰ個のサンプル値ＳＭ１５［Ｐ−１：０］のうち上位側半分のサンプル値ＳＭ１５［Ｐ−１：Ｐ／２］を、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルでのサンプル値ＳＭ１６［Ｐ−１：０］の下位側半分のサンプル値Ｓ１６［Ｐ／２−１：０］とする。図１９はその様子を示す図である。図１９では上側に遅延回路９７０の入力が示され、下側に遅延回路９７０の出力が示されている。
【００６６】
図２０はデータ取得回路９８０の構成を示す図である。図２０に示されるように、データ取得回路９８０は、Ｐ個のＡＮＤ回路９８１−０〜９８１−（Ｐ−１）とＯＲ回路９８２とを備えている。ＡＮＤ回路９８１−ｘは、遅延回路９７０からのサンプル値ＳＭ１６［ｘ］と、ＤＱＳエッジ検出回路９１０からのエッジデータＥＧ［ｘ］との論理和を演算し、その演算結果を出力値ＡＮＤ［ｘ］として出力する。データ信号ＤＱ［ｙ］を処理するＲＤ取得回路９５０−ｙのＯＲ回路９８２は、Ｐ個のＡＮＤ回路９８１−０〜９８１−（Ｐ−１）がそれぞれ出力する出力値ＡＮＤ［０］〜ＡＮＤ［Ｐ−１］の論理和を演算し、その結果を出力データＤＱｏｕｔ［ｙ］として出力する。ＲＤ取得回路９５０−ｙは、出力データＤＱｏｕｔ［ｙ］を、データ信号ＤＱ［ｙ］が示すリードデータＲＤとして出力する。
【００６７】
ここで、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルにおいて、図２１に示されるＭ番目の処理単位期間９９０でのデータストローブ信号ＤＱＳのサンプル値ＳＭ５［Ｐ−１：０］及びＭ番目の処理単位期間９９０でのデータ信号ＤＱ［ｙ］のサンプル値ＳＭ１５［Ｐ−１：０］が、ＤＱＳエッジ検出回路９１０のオーバーサンプリング回路９２０及びＲＤ取得回路９５０−ｙのオーバーサンプリング回路９６０からそれぞれ出力された場合を考える。
【００６８】
ＤＱＳエッジ検出回路９１０の遅延回路９３０では、オーバーサンプリング回路９２０からのサンプル値ＳＭ５［Ｐ−１：０］が内部クロック信号ＣＬＫ２［０］の１サイクル分だけ遅延することから、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルにおいてエッジ検出回路９４０から出力されるエッジデータＥＧ［Ｐ−１：０］は、（Ｍ−１）番目の処理単位期間９９０でのデータストローブ信号ＤＱＳのエッジｅｇ１（図２１参照）のタイミングを示すことになる。
【００６９】
一方で、ＲＤ取得回路９５０−ｙの遅延回路９７０は、上述の図１８に示されるように、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルにおいて、（Ｍ−１）番目の処理単位期間９９０の後半半分とＭ番目の処理単位期間９９０の前半半分から成るサンプリング期間９９５（図２１参照）でのデータ信号ＤＱ［ｙ］のサンプル値ＳＭ１６［Ｐ−１：０］を出力する。このサンプル値ＳＭ１６［Ｐ−１：０］では、前半が、（Ｍ−１）番目の処理単位期間９９０でのデータストローブ信号ＤＱＳのエッジｅｇ１に対応するリードデータＲＤ１を示し、後半が、Ｍ番目の処理単位期間９９０でのデータストローブ信号ＤＱＳのエッジｅｇ２に対応するリードデータＲＤ２を示す。
【００７０】
このように、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルでは、エッジ検出回路９４０からは、（Ｍ−１）番目の処理単位期間９９０でのデータストローブ信号ＤＱＳのエッジｅｇ１のタイミングを示すエッジデータＥＧ［Ｐ−１：０］が出力されるとともに、ＲＤ取得回路９５０−ｙの遅延回路９７０からは、（Ｍ−１）番目の処理単位期間９９０の後半半分とＭ番目の処理単位期間９９０の前半半分から成るサンプリング期間９９５でのデータ信号ＤＱ［ｙ］のサンプル値ＳＭ１６［Ｐ−１：０］が出力される。これにより、内部クロック信号ＣＬＫ２［０］のＮ番目のサイクルにおいては、エッジデータＥＧ［Ｐ−１：０］が示す、データストローブ信号ＤＱＳのエッジｅｇ１についての（Ｍ−１）番目の処理単位期間９９０での相対的な位置ＰＳ１と、サンプル値ＳＭ１６［Ｐ−１：０］が示す、当該エッジｅｇ１に対応するリードデータＲＤ１の出力期間９９６の中央９９６Ａについてのサンプリング期間９９５での相対的な位置ＰＳ２とが近似するようになる。つまり、サンプル値ＳＭ１６［Ｐ−１：０］においては、エッジデータＥＧ［Ｐ−１：０］に含まれる、データストローブ信号ＤＱＳのエッジのタイミングを示すデータ（“１”を示すデータ）のビット位置ｘと同じビット位置のサンプル値ＳＭ１６［ｘ］は、当該エッジに対応するリードデータＲＤを示すことになる。よって、図２０のような構成を有するデータ取得回路９８０は、データ信号ＤＱ［ｙ］が示すリードデータＲＤを取得することができる。
【００７１】
図２２〜２４は、ＤＱＳエッジ検出回路９１０でのサンプル値ＳＭ５［Ｐ−１：０］、サンプル値ＳＭ６［Ｐ：０］及びエッジデータＥＧ［Ｐ−１：０］の一例をそれぞれ示す図である。図２５〜２８は、ＲＤ取得回路９５０−ｙでのサンプル値ＳＭ１５［Ｐ−１：０］、サンプル値ＳＭ１６［Ｐ−１：０］、出力値ＡＮＤ［Ｐ−１：０］及び出力データＤＱｏｕｔ［ｙ］の一例をそれぞれ示す図である。
【００７２】
図２２〜２８での「Ｎ＋０」、「Ｎ＋１」等は内部クロック信号ＣＬＫ２［０］のサイクルの番号を示している。図２２〜２４には、処理単位期間９９０の中央にデータストローブ信号ＤＱＳのエッジが存在する場合のサンプル値ＳＭ５［Ｐ−１：０］、サンプル値ＳＭ６［Ｐ：０］及びエッジデータＥＧ［Ｐ−１：０］が示されている。図２２の例では、内部クロック信号ＣＬＫ２［０］の（Ｎ＋０）番目のサイクルでのサンプル値ＳＭ５［Ｐ−１：０］と、（Ｎ＋１）番目のサイクルでのサンプル値ＳＭ５［５：０］とは、データストローブ信号ＤＱＳのプリアンブルを示している。図２５〜２８での「Ａ」、「Ｂ」等はリードデータＲＤの値を示している。図２２〜２８での「Ｘ」は不定値を示している。
【００７３】
本例では、処理単位期間９９０の中央にデータストローブ信号ＤＱＳのエッジが存在しているため、図２４に示されるように、１２個のエッジデータＥＧ［１１：０］のうち真ん中のビット位置のエッジデータＥＧ［６］が“１”を示している。したがって、図２６〜２８に示されるように、１２個のサンプル値ＳＭ１６［Ｐ−１：０］のうちの中央付近のビット位置のサンプル値ＳＭ１６［６］が示す値が出力データＤＱｏｕｔ［ｙ］となる。本例では、ＲＤ取得回路９５０−ｙにおいて、データ信号ＤＱ［ｙ］が示すリードデータＲＤが適切に取得されている。
【００７４】
ここで、処理単位期間９９０の始点あるいは終点の近傍にデータストローブ信号ＤＱＳのエッジが存在する場合には、データストローブ信号ＤＱＳのエッジのタイミングのジッタにより、処理単位期間９９０においてデータストローブ信号ＤＱＳのエッジがまったく存在しない状況や、処理単位期間９９０においてデータストローブ信号ＤＱＳのエッジが複数存在する状況が発生することがある。つまり、処理単位期間９９０の始点あるいは終点の近傍にデータストローブ信号ＤＱＳのエッジが存在する場合にエッジ間の間隔が長くなったり、短くなったりするときには、処理単位期間９９０においてエッジがまったく存在しなかったり、処理単位期間９９０において複数のエッジが存在したりすることがある。このような場合には、比較対象リード回路９００は、データ信号ＤＱが示すリードデータＲＤを適切に取得できないことがある。図２９〜３５は、比較対象リード回路９００が、データ信号ＤＱが示すリードデータＲＤを適切に取得できない場合の当該比較対象リード回路９００の動作例を示す図である。
【００７５】
図２９〜３１は、ＤＱＳエッジ検出回路９１０でのサンプル値ＳＭ５［Ｐ−１：０］、サンプル値ＳＭ６［Ｐ：０］及びエッジデータＥＧ［Ｐ−１：０］の一例をそれぞれ示す図である。図３２〜２５は、ＲＤ取得回路９５０−ｙでのサンプル値ＳＭ１５［Ｐ−１：０］、サンプル値ＳＭ１６［Ｐ−１：０］、出力値ＡＮＤ［Ｐ−１：０］及び出力データＤＱｏｕｔ［ｙ］の一例をそれぞれ示す図である。
【００７６】
本例では、図３１に示されるように、内部クロック信号ＣＬＫ２［０］の（Ｎ＋１＋３）番目のサイクルでのエッジデータＥＧ［Ｐ−１：０］においては、エッジデータＥＧ［０］及びエッジデータＥＧ［１１］がともに“１”を示していることから、データストローブ信号ＤＱＳのエッジが２つ検出されている。したがって、（Ｎ＋１＋３）番目のサイクルでの出力データＤＱｏｕｔ［ｙ］は、出力値ＡＮＤ［０］及び出力値ＡＮＤ［１１］のどちらの値を示すか分からない。つまり、（Ｎ＋１＋３）番目のサイクルでは、データ信号ＤＱ［ｙ］が示すリードデータＲＤを適切に取得できない。
【００７７】
一方で、内部クロック信号ＣＬＫ２［０］の（Ｎ＋１＋４）番目のサイクルでのエッジデータＥＧ［Ｐ−１：０］については、すべてが“０”を示していることから、データストローブ信号ＤＱＳのエッジが１つも検出されていない。したがって、（Ｎ＋１＋４）番目のサイクルでの出力データＤＱｏｕｔ［ｙ］は“０”を示す。よって、（Ｎ＋１＋４）番目のサイクルでは、データ信号ＤＱ［ｙ］が示すリードデータＲＤを適切に取得できない。
【００７８】
このように、比較対象リード回路９００では、データストローブ信号ＤＱＳのエッジのタイミングのジッタにより、データ信号ＤＱが示すリードデータＲＤを適切に取得できない場合がある。
【００７９】
そこで、本実施の形態では、データ信号ＤＱが示すリードデータＲＤをより確実に取得することが可能なデータリード回路５を提供する。以下に本実施の形態に係るデータリード回路５について説明する。
【００８０】
＜本実施の形態に係るデータリード回路＞
図３６は、データリード回路５の構成を示す図である。本実施の形態に係るデータリード回路５は、単位期間において得られた、データストローブ信号ＤＱＳの第１所定数のサンプル値を保持する。そして、データリード回路５は、保持した第１所定数のサンプル値から、データストローブ信号ＤＱＳのエッジの検出単位となる第２所定数（＜第１所定数）のサンプル値を決定する。これにより、データストローブ信号ＤＱＳについての比較的多い数のサンプル値から、エッジを検出する際に使用する複数のサンプル値を決定することができることから、エッジを検出する際に使用する複数のサンプル値が得られたサンプリング期間の中央付近にデータストローブ信号ＤＱＳのエッジが位置するように当該複数のサンプル値を決定することが可能となる。よって、データストローブ信号ＤＱＳにおいてエッジ間隔が長くなったり短くなったりしたとしても、データ信号ＤＱが示すリードデータＲＤを適切に取得することが可能となる。
【００８１】
図３６に示されるように、データリード回路５は、データストローブ信号ＤＱＳを処理するＤＱＳエッジ検出回路１０と、データ信号ＤＱ［０］〜ＤＱ［７］をそれぞれ処理する８個のＲＤ取得回路２０−０〜２０−７と、ＤＱＳエッジ検出回路１０及びＲＤ取得回路２０−０〜２０−７を制御する制御回路３０と備えている。データリード回路５はクロック信号ＣＬＫに同期して動作する。制御回路３０とＤＱＳエッジ検出回路１０をまとめて「データストローブ処理回路」とも呼ぶ。
【００８２】
ＤＱＳエッジ検出回路１０は、クロック生成回路４が出力するＰ個の内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］を使用して、データストローブ信号ＤＱＳをオーバーサンプリングする。そして、ＤＱＳエッジ検出回路１０は、データストローブ信号ＤＱＳをオーバーサンプリングして得られるサンプル値を使用して、データストローブ信号ＤＱＳのエッジを検出する。本実施の形態では、ＤＱＳエッジ検出回路１０は、データストローブ信号ＤＱＳのライズエッジとフォールエッジとを別々に検出する。
【００８３】
データ信号ＤＱ［ｙ］を処理するＲＤ取得回路２０−ｙは、内部クロック信号ＣＬＫ２［０］〜ＣＬＫ２［Ｐ−１］を使用して、データ信号ＤＱ［ｙ］をオーバーサンプリングする。そして、ＲＤ取得回路２０−ｙは、データ信号ＤＱ［ｙ］をオーバーサンプリングして得られるサンプル値と、ＤＱＳエッジ検出回路１０でのデータストローブ信号ＤＱＳのエッジの検出結果とを使用して、データ信号ＤＱ［ｙ］が示すリードデータＲＤを取得する。
【００８４】
本実施の形態では、ＲＤ取得回路２０−０〜２０−７は互いに同じ回路構成を有している。また本実施の形態では、ＤＱＳエッジ検出回路１０及びＲＤ取得回路２０−０〜２０−７は互いに同じ回路構成を有している。
【００８５】
図３７はＤＱＳエッジ検出回路１０の構成を示す図である。図３８はＲＤ取得回路２０−ｙの構成を示す図である。図３７に示されるように、ＤＱＳエッジ検出回路１０は、オーバーサンプリング回路１００と、選択対象単位保持回路１１０と、処理単位決定回路１２０と、エッジ検出回路１３０と、データ取得回路１４０とを備えている。また図３８に示されるように、ＲＤ取得回路２０−ｙは、オーバーサンプリング回路２００と、選択対象単位保持回路２１０と、処理単位決定回路２２０と、エッジ検出回路２３０と、データ取得回路２４０とを備えている。
【００８６】
オーバーサンプリング回路１００，２００は互いに同じ回路構成を有しており、選択対象単位保持回路１１０，２１０は互いに同じ回路構成を有している。処理単位決定回路１２０，２２０は互いに同じ回路構成を有しており、エッジ検出回路１３０，２３０は互いに同じ回路構成を有している。そして、データ取得回路１４０，２４０は互いに同じ回路構成を有している。
【００８７】
選択対象単位保持回路１１０，２１０の動作は制御回路３０によって独立に制御される。したがって、選択対象単位保持回路１１０，２１０では、回路構成は同じであるものの、動作は互いに異なることがある。同様に、処理単位決定回路１２０，２２０の動作は制御回路３０によって独立に制御される。したがって、処理単位決定回路１２０，２２０では、回路構成は同じであるものの、動作は互いに異なることがある。
【００８８】
なお、データ取得回路１４０は、ＤＱＳエッジ検出回路１０とＲＤ取得回路２０−ｙとの回路構成を同一にするためだけに設けられており、ＤＱＳエッジ検出回路１０ではデータ取得回路１４０は実質的に機能していない。
【００８９】
以下では、ＤＱＳエッジ検出回路１０の構成を詳細に説明し、ＲＤ取得回路２０−ｙの構成についてはＤＱＳエッジ検出回路１０との相違点を中心に説明する。
【００９０】
＜ＤＱＳエッジ検出回路＞
＜オーバーサンプリング回路＞
図３９はオーバーサンプリング回路１００の構成を示す図である。図３９に示されるように、オーバーサンプリング回路１００は、サンプリング回路１０１と、クロック乗せ換え回路１０２とを備えている。サンプリング回路１０１は、上記の比較対象リード回路９００のオーバーサンプリング回路９２０と同じ回路であって、処理単位期間９９０（図１２等参照）ごとに、当該処理単位期間９９０においてデータストローブ信号ＤＱＳをサンプリングすることによって得られたＰ個のサンプル値ＳＭ５［Ｐ−１：０］を出力する。
【００９１】
クロック乗せ換え回路１０２は、ＦＦ回路１０３〜１０６を備えている。ＦＦ回路１０３は、サンプリング回路１０１からのサンプル値ＳＭ５［０］〜ＳＭ５［Ｐ−１］を内部クロック信号ＣＬＫ２［０］のライズエッジで保持してサンプル値ＳＭ７［０］〜ＳＭ７［Ｐ−１］としてそれぞれ出力する。ＦＦ回路１０４は、ＦＦ回路１０３からのサンプル値ＳＭ７［０］〜ＳＭ７［Ｐ−１］を内部クロック信号ＣＬＫ２［０］のライズエッジで保持してサンプル値ＳＭ８［０］〜ＳＭ８［Ｐ−１］としてそれぞれ出力する。ＦＦ回路１０５は、ＦＦ回路１０４からのサンプル値ＳＭ８［０］〜ＳＭ８［Ｐ−１］をクロック信号ＣＬＫのライズエッジで保持してサンプル値ＳＭ９［０］〜ＳＭ９［Ｐ−１］としてそれぞれ出力する。ＦＦ回路１０６は、ＦＦ回路１０３からのサンプル値ＳＭ７［０］〜［Ｐ−１］をクロック信号ＣＬＫのライズエッジで保持してサンプル値ＳＭ９［Ｐ］〜ＳＭ９［２Ｐ−１］としてそれぞれ出力する。
【００９２】
このような構成を有するオーバーサンプリング回路１００では、内部クロック信号ＣＬＫ２［０］のあるライズエッジでＦＦ回路１０３から出力されるサンプル値ＳＭ７［Ｐ−１：０］がＭ番目の処理単位期間９９０でのサンプル値とすると、当該ライズエッジでＦＦ回路１０４から出力されるサンプル値ＳＭ８［Ｐ−１：０］は（Ｍ−１）番目の処理単位期間９９０でのサンプル値となる。したがって、この場合には、内部クロック信号ＣＬＫ２［０］のあるライズエッジに同期して、ＦＦ回路１０４から出力されるサンプル値ＳＭ８［０］〜ＳＭ８［Ｐ−１］及びＦＦ回路１０３から出力されるサンプル値ＳＭ７［０］〜ＳＭ７［Ｐ−１］から成る（Ｐ×２）個のサンプル値は、（Ｍ−１）番目の処理単位期間９９０及びＭ番目の処理単位期間９９０から成る、クロック信号ＣＬＫの１サイクルと同じ長さの期間の間、データストローブ信号ＤＱＳを（Ｐ×２）回サンプリングして得られたサンプル値である。したがって、クロック信号ＣＬＫのライズエッジに同期してＦＦ回路１０５，１０６から出力される２Ｐ個のサンプル値ＳＭ９［０］〜ＳＭ９［２Ｐ−１］は、クロック信号ＣＬＫの１サイクルと同じ長さの期間の間において、データストローブ信号ＤＱＳを２Ｐ回サンプリングして得られる値である。サンプル値ＳＭ９［０］〜ＳＭ９［２Ｐ−１］のサンプリングのタイミングはこの順で早くなっている。以後、当該期間を「第１処理単位期間１９１」と呼ぶ。第１処理単位期間１９１の長さは、比較対象リード回路９００での処理単位期間９９０の長さの２倍となっている。第１処理単位期間１９１は、クロック信号ＣＬＫに同期している。つまり、第１処理単位期間１９１の始点及び終点はクロック信号ＣＬＫのライズエッジに同期している。
【００９３】
図４０は第１処理単位期間１９１とデータストローブ信号ＤＱＳとの関係の一例を示す図である。図４０には、（Ｍ＋０）番目の第１処理単位期間１９１から（Ｍ＋３）番目の第１処理単位期間１９１が示されている。第１処理単位期間１９１の長さと、データストローブ信号ＤＱＳの周期とは理想的には一致することから、データストローブ信号ＤＱＳでは、理想的には１つの第１処理単位期間１９１にライズエッジが１つだけ含まれ、フォールエッジが１つだけ含まれる。しかしながら、データストローブ信号ＤＱＳのエッジのタイミングにはジッタが存在することから、実際にはこのようになるとは限らない。オーバーサンプリング回路１００は、ある第１処理単位期間１９１で得たサンプル値ＳＭ９［２Ｐ−１：０］を、当該第１処理単位期間１９１よりもクロック信号ＣＬＫの数クロック分遅らせて出力する。
【００９４】
以上のような構成を有するオーバーサンプリング回路１００からは、データストローブ信号ＤＱＳをオーバーサンプリングして順次得られるサンプル値が、クロック信号ＣＬＫの１サイクル分（２Ｐ個）ごとに、クロック信号ＣＬＫのライズエッジに同期して出力される。以後、特に断らない限り、「サイクル」と言えば、内部クロック信号ＣＬＫ２［０］のサイクルではなく、クロック信号ＣＬＫのサイクルを意味する。
【００９５】
＜選択対象単位保持回路＞
図４１は選択対象単位保持回路１１０の構成を示す図である。図４１に示されるように、選択対象単位保持回路１１０は、可変遅延回路１１１及びデータ拡張回路１１２を備えている。図４２は可変遅延回路１１１の構成を示す図である。可変遅延回路１１１は、オーバーサンプリング回路１００からのサンプル値ＳＭ９[２Ｐ−１：０]をそのまま出力したり、遅延させて出力したりすることができる。また可変遅延回路１１１は、サンプル値ＳＭ９[２Ｐ−１：０]を遅延させて出力する際には、その遅延量を変化させることができる。可変遅延回路１１１での遅延量は制御回路３０からの２ビットの設定データＳＥＴ１[１：０]によって設定される。
【００９６】
図４２に示されるように、可変遅延回路１１１は、ＦＦ回路１１１Ａ，１１１Ｂ，１１１Ｃ及び選択回路１１１Ｄを備えている。ＦＦ回路１１１Ａはサンプル値ＳＭ９[２Ｐ−１：０]をクロック信号ＣＬＫのライズエッジで保持して出力する。これにより、ＦＦ回路１１１Ａからは、可変遅延回路１１１に入力されたサンプル値ＳＭ９[２Ｐ−１：０]が１サイクル分遅延して出力される。ＦＦ回路１１１ＢはＦＦ回路１１１Ａの出力をクロック信号ＣＬＫのライズエッジで保持して出力する。これにより、ＦＦ回路１１１Ｂからは、可変遅延回路１１１に入力されたサンプル値ＳＭ９[２Ｐ−１：０]が２サイクル分遅延して出力される。ＦＦ回路１１１Ｃは、ＦＦ回路１１１Ｂの出力をクロック信号ＣＬＫのライズエッジで保持して出力する。これにより、ＦＦ回路１１１Ｃからは、可変遅延回路１１１に入力されたサンプル値ＳＭ９[２Ｐ−１：０]が３サイクル分遅延して出力される。
【００９７】
選択回路１１１Ｄは、制御回路３０からの設定データＳＥＴ１[１：０]に応じて、オーバーサンプリング回路１００からのサンプル値ＳＭ９[２Ｐ−１：０]及びＦＦ回路１１Ａ，１１１Ｂ，１１１Ｃの出力の一つを選択してサンプル値ＳＭ１０[２Ｐ−１：０]として出力する。
【００９８】
具体的には、例えば、選択回路１１１Ｄは、設定データＳＥＴ１[１：０]の値が十進数表記で“０”の場合には、サンプル値ＳＭ９[２Ｐ−１：０]を選択して出力する。これにより、設定データＳＥＴ１[０]，ＳＥＴ１[１]がともに“０”を示す場合には、選択回路１１１Ｄからは、可変遅延回路１１１に入力されたサンプル値ＳＭ９[０]〜ＳＭ９[２Ｐ−１]がそのままサンプル値ＳＭ１０[０]〜ＳＭ１０[２Ｐ−１]としてそれぞれ出力される。以後、設定データＳＥＴ１[１：０]のように複数ビットで構成されるデータの値を示す場合には、特に断らない限り、十進数表記で示すものとする。
【００９９】
選択回路１１１Ｄは、設定データＳＥＴ１[１：０]の値が“１”の場合には、ＦＦ回路１１１Ａの出力を選択して出力する。これにより、設定データＳＥＴ１[０]，ＳＥＴ１[１]が“０”及び“１”をそれぞれ示す場合には、選択回路１１１Ｄからは、可変遅延回路１１１に入力されたサンプル値ＳＭ９[０]〜ＳＭ９[２Ｐ−１]が１サイクル分遅延してサンプル値ＳＭ１０[０]〜ＳＭ１０[２Ｐ−１]としてそれぞれ出力される。
【０１００】
選択回路１１１Ｄは、設定データＳＥＴ１[１：０]の値が“２”の場合には、ＦＦ回路１１１Ｂの出力を選択して出力する。これにより、設定データＳＥＴ１[０]，ＳＥＴ１[１]が“１”及び“０”をそれぞれ示す場合には、選択回路１１１Ｄからは、可変遅延回路１１１に入力されたサンプル値ＳＭ９[０]〜ＳＭ９[２Ｐ−１]が２サイクル分遅延してサンプル値ＳＭ１０[０]〜ＳＭ１０[２Ｐ−１]としてそれぞれ出力される。
【０１０１】
そして、選択回路１１１Ｄは、設定データＳＥＴ１[１：０]の値が“３”の場合には、ＦＦ回路１１１Ｃの出力を選択して出力する。これにより、設定データＳＥＴ１[０]，ＳＥＴ１[１]がともに“１”を示す場合には、選択回路１１１Ｄからは、可変遅延回路１１１に入力されたサンプル値ＳＭ９[０]〜ＳＭ９[２Ｐ−１]が３サイクル分遅延してサンプル値ＳＭ１０[０]〜ＳＭ１０[２Ｐ−１]としてそれぞれ出力される。
【０１０２】
なお可変遅延回路１１１の働きについては後で詳細に説明する。
【０１０３】
図４３はデータ拡張回路１１２の構成を示す図である。データ拡張回路１１２は、Ｍサイクル分のサンプル値ＳＭ１０［２Ｐ−１：０］を連結して（２Ｐ×Ｍ）個（Ｍ≧２）のサンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］を生成し、それをクロック信号ＣＬＫのライズエッジに同期して出力する。本実施の形態では、例えばＭ＝５とする。データ拡張回路１１２からは、クロック信号ＣＬＫのライズエッジに同期して、１２０個のサンプル値ＳＭ１１［０］〜［１１９］が出力される。
【０１０４】
図４３に示されるように、データ拡張回路１１２は、ＦＦ回路１１２Ａ〜１１２Ｄを備えている。データ拡張回路１１２は、可変遅延回路１１１からのサンプル値ＳＭ１０［０]〜ＳＭ１０[２Ｐ−１］をそのままサンプル値ＳＭ１１［２Ｐ×４]〜ＳＭ１１[２Ｐ×５−１］としてそれぞれ出力する。ＦＦ回路１１２Ａは、クロック信号ＣＬＫのライズエッジでサンプル値ＳＭ１０［０］〜ＳＭ[２Ｐ−１]を保持してサンプル値ＳＭ１１[２Ｐ×３]〜ＳＭ１１［２Ｐ×４−１］としてそれぞれ出力する。ＦＦ回路１１２Ｂは、クロック信号ＣＬＫのライズエッジでサンプル値ＳＭ１１［２Ｐ×３］〜ＳＭ１１[ＳＰ×４−１]を保持してサンプル値ＳＭ１１[２Ｐ×２]〜ＳＭ１１［２Ｐ×３−１］としてそれぞれ出力する。ＦＦ回路１１２Ｃは、クロック信号ＣＬＫのライズエッジでサンプル値ＳＭ１１[２Ｐ×２]〜ＳＭ１１［２Ｐ×３−１］を保持してサンプル値ＳＭ１１[２Ｐ]〜ＳＭ１１［２Ｐ×２−１］としてそれぞれ出力する。ＦＦ回路１１２Ｄは、クロック信号ＣＬＫのライズエッジでサンプル値ＳＭ１１[２Ｐ]〜ＳＭ１１［２Ｐ×２−１］を保持してサンプル値ＳＭ１１[０]〜ＳＭ１１［２Ｐ−１］としてそれぞれ出力する。
【０１０５】
このような構成を有するデータ拡張回路１１２では、クロック信号ＣＬＫのあるライズエッジで可変遅延回路１１１から出力されるサンプル値ＳＭ１０［２Ｐ−１：０］がＭ番目の第１処理単位期間１９１でのサンプル値とすると、サンプル値ＳＭ１１［２Ｐ×５−１：２Ｐ×４］はＭ番目の第１処理単位期間１９１でのサンプル値となり、当該ライズエッジでＦＦ回路１１２Ａから出力されるサンプル値ＳＭ１１［２Ｐ×４−１：２Ｐ×３］は（Ｍ−１）番目の第１処理単位期間１９１でのサンプル値となり、当該ライズエッジでＦＦ回路１１２Ｂから出力されるサンプル値ＳＭ１１［２Ｐ×３−１：２Ｐ×２］は（Ｍ−２）番目の第１処理単位期間１９１でのサンプル値となる。また、当該ライズエッジでＦＦ回路１１２Ｃから出力されるサンプル値ＳＭ１１［２Ｐ×２−１：２Ｐ］は（Ｍ−３）番目の第１処理単位期間１９１でのサンプル値となり、当該ライズエッジでＦＦ回路１１２Ｄから出力されるサンプル値ＳＭ１１［２Ｐ−１：０］は（Ｍ−４）番目の第１処理単位期間１９１でのサンプル値となる。したがって、この場合には、（Ｍ−４）番目の第１処理単位期間１９１からＭ番目の第１処理単位期間１９１から成る５サイクル分の間の間、データストローブ信号ＤＱＳを（２Ｐ×５）回サンプリングして得られたサンプル値ＳＭ１１［０］〜ＳＭ１１［２Ｐ×５−１］が当該ライズエッジに同期してデータ拡張回路１１２から出力される。つまり、クロック信号ＣＬＫのライズエッジに同期してデータ拡張回路１１２から出力される（２Ｐ×Ｍ）個のサンプル値ＳＭ１１［０］〜ＳＭ１１［２Ｐ×Ｍ−１］は、Ｍサイクル分の期間の間において、データストローブ信号ＤＱＳを（２Ｐ×Ｍ）回サンプリングして得られる値となる。サンプル値ＳＭ１１［０］〜ＳＭ１１［２Ｐ×５−１］のサンプリングのタイミングはこの順で早くなっている。本実施の形態では、後述するように、サンプル値ＳＭ１１［０］〜ＳＭ１１［２Ｐ×５−１］から、データストローブ信号ＤＱＳのエッジを検出するために使用する複数のサンプル値を選択する。以後、サンプル値ＳＭ１１［２Ｐ×５−１：０］を「選択対象単位」と呼ぶことがある。また上記のＭサイクル分の期間を「第２処理単位期間１９２」と呼ぶ。選択対象単位は、第２処理単位期間１９２の間、データストローブ信号ＤＱＳをサンプルリングして得られた複数のサンプル値である。第２処理単位期間１９２の長さは第１処理単位期間１９１の長さのＭ倍となっている。
【０１０６】
そして、データ拡張回路１１２は、クロック信号ＣＬＫの次のライズエッジで、可変遅延回路１１１から（Ｍ＋１）番目の第１処理単位期間１９１でのサンプル値ＳＭ１０［２Ｐ−１：０］が出力されると、（Ｍ−３）番目の第１処理単位期間１９１から（Ｍ＋１）番目の第１処理単位期間１９１から成る第２処理単位期間１９２での（２Ｐ×Ｍ）個のサンプル値ＳＭ１１［０］〜ＳＭ１１［２Ｐ×５−１］を出力する。
【０１０７】
このように、選択対象単位保持回路１１０は、第２処理単位期間１９２を１サイクルずつずらしながら、第２処理単位期間１９２での（２Ｐ×５）個のサンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］を保持し、当該サンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］を選択対象単位として出力している。選択対象単位保持回路１１０は、第２処理単位期間１９２ごとに、当該第２処理単位期間１９２において得られたサンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］を選択対象単位として出力する。
【０１０８】
図４４は、第１処理単位期間１９１と第２処理単位期間１９２とデータストローブ信号ＤＱＳの関係の一例を示す図である。図４４には、（Ｍ−４）番目の第１処理単位期間１９１から（Ｍ＋１）番目の第１処理単位期間１９１が示されている。また（Ｌ−４）番目の第２処理単位期間１９２から（Ｌ＋１）番目の第２処理単位期間１９２が示されている。
【０１０９】
＜処理単位決定回路＞
図４５は処理単位決定回路１２０の構成を示す図である。図４５に示されるように、処理単位決定回路１２０はグリッジ除去回路１２１及び決定回路１２３を備えている。図４６はグリッジ除去回路１２１の構成を示す図である。グリッジ除去回路１２１は、選択対象単位（サンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］）に含まれるグリッジを除去する回路である。図４６に示されるように、グリッジ除去回路１２１は、（２Ｐ×Ｍ−２）個の除去回路１２２−１〜１２２−（２Ｐ×Ｍ−２）を備えている。除去回路１２２−１〜１２２−（２Ｐ×Ｍ−２）の回路構成は互いに同じである。除去回路１２２−ｚ（１≦ｚ≦２Ｐ×Ｍ−２）には、選択対象単位保持回路１１０からのサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ]，ＳＭ１１[ｚ＋１]が入力される。図４７は除去回路１２２−ｚの構成を示す図である。
【０１１０】
図４７に示されるように、除去回路１２２−ｚは、ＡＮＤ回路１２２Ａ、ＯＲ回路１２２Ｂ及び選択回路１２２Ｃを備えている。ＡＮＤ回路１２２Ａはサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ＋１]の論理積を演算して出力する。ＯＲ回路１２２Ｂはサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ＋１]の論理和を演算して出力する。選択回路１２２Ｃは、サンプル値ＳＭ１１[ｚ]が“０”のときＡＮＤ回路１２２Ａの出力をサンプル値ＳＭ１２[ｚ]として出力する。一方で、選択回路１２２Ｃは、サンプル値ＳＭ１１[ｚ]が“１”のときＯＲ回路１２２Ｂの出力をサンプル値ＳＭ１２[ｚ]として出力する。
【０１１１】
このような構成を有する除去回路１２２−ｚは、注目するｚビット目のサンプル値ＳＭ１１[ｚ]の論理値が、その前後のビット位置のサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ＋１]の論理値のそれぞれと異なる場合には、論理値を反転したサンプル値ＳＭ１１[ｚ]をサンプル値ＳＭ１２[ｚ]として出力する。そして、注目するｚビット目のサンプル値ＳＭ１１[ｚ]の論理値が、その前後のビット位置のサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ＋１]の論理値の少なくとも一方と一致する場合には、当該サンプル値ＳＭ１１[ｚ]をそのままサンプル値ＳＭ１２[ｚ]として出力する。
【０１１２】
例えば、サンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ]，ＳＭ１１[ｚ＋１]の論理値がそれぞれ“１”、“０”、“１”の場合には、“０”の反転の“１”を示すサンプル値ＳＭ１２[ｚ]が出力される。またサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ]，ＳＭ１１[ｚ＋１]の論理値がそれぞれ“０”、“１”、“０”の場合には、“１”の反転の“０”を示すサンプル値ＳＭ１２[ｚ]が出力される。またサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ]，ＳＭ１１[ｚ＋１]の論理値がそれぞれ“１”、“１”、“１”の場合には、“１”を示すサンプル値ＳＭ１２[ｚ]が出力される。またサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ]，ＳＭ１１[ｚ＋１]の論理値がそれぞれ“１”、“０”、“０”の場合には、“０”を示すサンプル値ＳＭ１２[ｚ]が出力される。
【０１１３】
上記の説明から理解できるように、グリッジ除去回路１２１では、サンプル値ＳＭ１１[０]に対応するサンプル値ＳＭ１２[０]と、サンプル値ＳＭ１１[２Ｐ×Ｍ−１]に対応するサンプル値ＳＭ１２[２Ｐ×Ｍ−１]は生成されない。したがって、グリッジ除去回路１２１は、入力されたサンプル値ＳＭ１１[２Ｐ×Ｍ−１：０]よりも２個少ない数のサンプル値ＳＭ１２[２Ｐ×Ｍ−２：１]を出力する。グリッジ除去回路１２１から出力されるサンプル値ＳＭ１２[２Ｐ×Ｍ−２：１]は、グリッジが除去された選択対象単位となる。なお、グリッジ除去回路１２１については後で再度説明する。
【０１１４】
図４８は決定回路１２３の構成を示す図である。図４８に示されるように、決定回路１２３は、Ｙ個の選択回路１２４−０〜１２４−（Ｙ−１）と、Ｙ個のＦＦ回路１２５−０〜１２５−（Ｙ−１）とを備えている。ここで、Ｙ＝３×Ｐ＋１である。本実施の形態ではＰ＝１２であることから、Ｙ＝３７となる。
【０１１５】
ＦＦ回路１２５−０〜１２５−（Ｙ−１）のそれぞれは、クロック信号ＣＬＫのライズエッジで、制御回路３０からの設定データＳＥＴ２[Ｘ−１：０]を保持して出力する。
【０１１６】
選択回路１２４−ｊ（０≦ｊ≦Ｙ−１）のＱ個の入力端子ＩＮ０〜ＩＮ（Ｑ−１）には、Ｑ個のサンプル値ＳＭ１２[ｊ＋１]〜ＳＭ１２[ｊ＋Ｑ]がそれぞれ入力される。ここで、Ｑ＝２Ｐ×Ｍ−２−（Ｙ−１）である。本実施の形態では、Ｐ＝１２、Ｍ＝５、Ｙ＝３７であることから、Ｑ＝８２である。選択回路１２４−ｊは、ＦＦ回路１２５−ｊから出力される設定データＳＥＴ２[Ｘ−１：０]に応じて、入力されるＱ個のサンプル値ＳＭ１２[ｊ＋１]〜ＳＭ１２[ｊ＋Ｑ]のうちの一つを選択してサンプル値ＳＭ１３[ｊ]として出力する。
【０１１７】
設定データＳＥＴ２[Ｘ−１：０]のビット数Ｘは、（Ｑ−１）を二進数表記した際のビット数と一致する。本実施の形態では、（Ｑ−１）＝８２であることから、これを二数表記すると“１０１０００１”となる。よって、Ｘ＝７となる。
【０１１８】
選択回路１２４−ｊは、入力されるＸビットの設定データＳＥＴ２[Ｘ−１：０]が示す値がｉ（０≦ｉ≦Ｑ−１）であるとき、サンプル値ＳＭ１２[ｊ＋１]〜ＳＭ１２[ｊ＋Ｑ]のうち、入力端子ＩＮｉに入力される値を選択してサンプル値ＳＭ１３[ｊ]として出力する。
【０１１９】
このような構成を有する決定回路１２３では、設定データＳＥＴ２[Ｘ−１：０]に応じて、（２Ｐ×Ｍ−２）ビットのサンプル値ＳＭ１２[２Ｐ×Ｍ−２：１]（選択対象単位）から、ビット位置が連続するＹビットのサンプル値ＳＭ１２[α]〜ＳＭ１２[α＋Ｙ−１]が選択され、それぞれＳＭ１３[０]〜ＳＭ１３[Ｙ−１]として出力される。ここでαは、１≦α≦２Ｐ×Ｍ−２−（Ｙ−１）である。
【０１２０】
後段のエッジ検出回路１３０は、決定回路１２３から出力されるＹビットのサンプル値ＳＭ１３[Ｙ−１：０]をエッジ検出単位とし、当該エッジ検出単位に基づいてデータストローブ信号ＤＱＳのライズエッジ及びフォールエッジを検出する。エッジ検出単位は、ライズエッジの検出で使用されるライズエッジ検出単位と、フォールエッジの検出で使用されるフォールエッジ検出単位とに分けられる。
【０１２１】
このように、処理単位決定回路１２０は、クロック信号ＣＬＫのあるライズエッジで入力される選択対象単位からエッジ検出単位を選択して出力する。そして、処理単位決定回路１２０は、クロック信号ＣＬＫの次のライズエッジで入力される次の選択対象単位からエッジ検出単位を選択して出力する。つまり、処理単位決定回路１２０は、選択対象単位ごとに、当該選択対象単位からエッジ検出単位を選択して出力する。言い換えれば、処理単位決定回路１２０は、選択対象単位ごとに、当該選択対象単位からライズエッジ検出単位及びフォールエッジ検出単位を選択して出力している。
【０１２２】
＜エッジ検出回路＞
図４９はエッジ検出回路１３０の構成を示す図である。図４９に示されるように、エッジ検出回路１３０は、データストローブ信号ＤＱＳのライズエッジを検出するライズエッジ検出回路１３１と、データストローブ信号ＤＱＳのフォールエッジを検出するフォールエッジ検出回路１３３とを備えている。
【０１２３】
ライズエッジ検出回路１３１は、処理単位決定回路１２０からのサンプル値ＳＭ１３[３Ｐ＋１−１：０]（ＳＭ１３[Ｙ−１：０]）のうち、下位側の（２Ｐ＋１）個のサンプル値ＳＭ１３[２Ｐ＋１−１：０]をライズエッジ検出単位として、当該ライズエッジ検出単位に基づいて、データストローブ信号ＤＱＳのライズエッジを検出する。そしてライズエッジ検出回路１３１は、データストローブ信号ＤＱＳのライズエッジの検出結果をライズエッジデータＲＥＧ[２Ｐ−１：０]として出力する。
【０１２４】
一方で、フォールエッジ検出回路１３３は、処理単位決定回路１２０からのサンプル値ＳＭ１３[３Ｐ＋１−１：０]のうち、上位側の（２Ｐ＋１）個のサンプル値ＳＭ１３[３Ｐ＋１−１：Ｐ]をフォールエッジ検出単位として、当該フォールエッジ検出単位に基づいて、データストローブ信号ＤＱＳのフォールエッジを検出する。そしてフォールエッジ検出回路１３３は、データストローブ信号ＤＱＳのフォールエッジの検出結果をフォールエッジデータＦＥＧ[２Ｐ−１：０]として出力する。
【０１２５】
図５０はエッジ検出単位ＥＧＵ、ライズエッジ検出単位ＲＥＧＵ及びフォールエッジ検出単位ＦＥＧＵの関係を示す図である。図５０には、エッジ検出単位ＥＧＵを構成するサンプル値ＳＭ１３[３Ｐ：０]が得られたサンプリング期間１９３と、当該エッジ検出単位ＥＧＵに含まれるライズエッジ検出単位ＲＥＧＵを構成するサンプル値ＳＭ１３[２Ｐ：０]が得られたサンプリング期間１９３Ｒと、当該エッジ検出単位ＥＧＵに含まれるフォールエッジ検出単位ＦＥＧＵを構成するサンプル値ＳＭ１３[３Ｐ：Ｐ]が得られたサンプリング期間１９３Ｆも示されている。
【０１２６】
図５１はライズエッジ検出回路１３１の構成を示す図である。図５１に示されるように、ライズエッジ検出回路１３１は、２Ｐ個のＡＮＤ回路１３２−０〜１３２−（２Ｐ−１）を備えている。ＡＮＤ回路１３２−ｋ（０≦ｋ≦２Ｐ−１）は、サンプル値ＳＭ１３[ｋ]の反転値とサンプル値ＳＭ１３[ｋ＋１]の論理積を求めて、その結果をライズエッジデータＲＥＧ[ｋ]として出力する。
【０１２７】
ライズエッジ検出回路１３１からは、ライズエッジデータＲＥＧ［０］〜ＲＥＧ［２Ｐ−１］が出力される。あるサンプリング期間１９３Ｒでのサンプル値ＳＭ１３［０］〜ＳＭ１３［２Ｐ］に基づいて生成されたライズエッジデータＲＥＧ［０］〜［２Ｐ−１］では、当該サンプリング期間１９３Ｒにおいてデータストローブ信号ＤＱＳのライズエッジが現れるタイミングに応じたデータが“１”を示す。例えば、データストローブ信号ＤＱＳにおいて、あるサンプリング期間１９３Ｒの始点からサンプリング周期８個分後のタイミングの近傍でライズエッジが存在する場合には、当該サンプリング期間１９３Ｒでのサンプル値ＳＭ１３［０］〜ＳＭ１３［２Ｐ］に基づいて生成されたライズエッジデータＲＥＧ［０］〜［２Ｐ−１］ではライズエッジデータＲＥＧ［７］が“１”を示す。よって、ライズエッジデータＲＥＧ［２Ｐ−１：０］を見れば、１サイクル分のある期間（当該ライズエッジデータＲＥＧ［２Ｐ−１：０］の元になるライズエッジ検出単位が得られたサンプリング期間）において、データストローブ信号ＤＱＳのライズエッジが現れるタイミングを特定することができる。以後、当該１サイクル分のある期間を「ライズエッジ検出期間」と呼ぶ。
【０１２８】
図５２はフォールエッジ検出回路１３３の構成を示す図である。図５２に示されるように、フォールエッジ検出回路１３３は、２Ｐ個のＡＮＤ回路１３４−０〜１３４−（２Ｐ−１）を備えている。ＡＮＤ回路１３４−ｋは、サンプル値ＳＭ１３[Ｐ＋ｋ]とサンプル値ＳＭ１３[Ｐ＋ｋ＋１]の反転値との論理積を求めて、その結果をフォールエッジデータＦＥＧ[ｋ]として出力する。
【０１２９】
フォールエッジ検出回路１３３からは、フォールエッジデータＦＥＧ［０］〜ＦＥＧ［２Ｐ−１］が出力される。あるサンプリング期間１９３Ｆでのサンプル値ＳＭ１３［Ｐ］〜ＳＭ１３［３Ｐ］に基づいて生成されたフォールエッジデータＦＥＧ［０］〜ＦＥＧ［２Ｐ−１］では、当該サンプリング期間１９３Ｆにおいてデータストローブ信号ＤＱＳのフォールエッジが現れるタイミングに応じたデータが“１”を示す。よって、フォールエッジデータＦＥＧ［２Ｐ−１：０］を見れば、１サイクル分のある期間（当該フォールエッジデータＦＥＧ［２Ｐ−１：０］の元になるフォールエッジ検出単位が得られたサンプリング期間）において、データストローブ信号ＤＱＳのフォールエッジが現れるタイミングを特定することができる。以後、当該１サイクル分のある期間を「フォールエッジ検出期間」と呼ぶ。
【０１３０】
このようにライズエッジ検出回路１３１は、クロック信号ＣＬＫのあるライズエッジでライズエッジ検出単位が入力されると、当該ライズエッジ検出単位に基づいてデータストローブ信号ＤＱＳのライズエッジを検出する。そして、ライズエッジ検出回路１３１は、クロック信号ＣＬＫの次のライズエッジで次のライズエッジ検出単位が入力されると、当該次のライズエッジ検出単位に基づいてデータストローブ信号ＤＱＳのライズエッジを検出する。つまり、ライズエッジ検出回路１３１は、処理単位決定回路１２０が決定するライズエッジ検出単位ごとに、当該ライズエッジ検出単位に基づいてデータストローブ信号のライズエッジを検出する。同様に、フォールエッジ検出回路１３３は、処理単位決定回路１２０が決定するフォールエッジ検出単位ごとに、当該フォールエッジ検出単位に基づいてデータストローブ信号のフォールエッジを検出する。
【０１３１】
以上のように、ＤＱＳエッジ検出回路１０は、クロック信号ＣＬＫのライズエッジに同期して、ライズエッジ検出期間（図５０のサンプリング期間１９３Ｒ）でのデータストローブ信号ＤＱＳのライズエッジのタイミングを示すライズエッジデータＲＥＧ［２Ｐ−１：０］と、当該ライズエッジ検出期間よりも半サイクル分後方にずれたフォールエッジ検出期間（図５０のサンプリング期間１９３Ｆ）でのデータストローブ信号ＤＱＳのフォールエッジのタイミングを示すフォールエッジデータＦＥＧ［２Ｐ−１：０］とを出力する。
【０１３２】
＜ＲＤ取得回路＞
次にＲＤ取得回路２０−[ｙ]について、ＤＱＳエッジ検出回路１０との相違点を中心に説明する。
【０１３３】
オーバーサンプリング回路２００は、オーバーサンプリング回路１００と同様にして、データ信号ＤＱ[ｙ]をオーバーサンプリングする。オーバーサンプリング回路２００からは、クロック信号ＣＬＫのライズエッジに同期して、データ信号ＤＱ[ｙ]についての１サイクル分のサンプル値ＳＭ１９[Ｐ−１：０]が出力される。
【０１３４】
図５３は選択対象単位保持回路２１０の構成を示す図である。図５３に示されるように、選択対象単位保持回路２１０は、選択対象単位保持回路１１０の可変遅延回路１１１と同じ回路構成を有する可変遅延回路２１１と、選択対象単位保持回路１１０のデータ拡張回路１１２と同じ回路構成を有するデータ拡張回路２１２とを備えている。
【０１３５】
可変遅延回路２１１は、可変遅延回路１１１と同様に、制御回路３０からＲＤ取得回路２０−ｙに入力される設定データＳＥＴ１１−ｙ[１：０]に応じて、オーバーサンプリング回路２００からのサンプル値ＳＭ１９[２Ｐ−１：０]をそのまま出力したり、遅延させて出力したりすることができる。また可変遅延回路２１１は、サンプル値ＳＭ１９[２Ｐ−１：０]を遅延させて出力する際には、設定データＳＥＴ１１−ｙ[１：０]に応じて、その遅延量を変化させることができる。可変遅延回路２１１からはサンプル値ＳＭ２０[２Ｐ−１：０]が出力される。
【０１３６】
データ拡張回路２１２は、データ拡張回路１１２と同様に、Ｍサイクル分のサンプル値ＳＭ２０［２Ｐ−１：０］を連結して（２Ｐ×Ｍ）個のサンプル値ＳＭ２１［２Ｐ×Ｍ−１：０］を生成し、それをクロック信号ＣＬＫのライズエッジに同期して出力する。データ拡張回路２１１から出力されるサンプル値ＳＭ２１［２Ｐ×Ｍ−１：０］は、ＲＤ取得回路２０−ｙでの選択対象単位となる。
【０１３７】
図５４は処理単位決定回路２２０の構成を示す図である。図５４に示されるように、処理単位決定回路２２０は、処理単位決定回路１２０のグリッジ除去回路１２１と同じ回路構成を有するグリッジ除去回路２２１と、処理単位決定回路１２０の決定回路１２３と同じ回路構成を有する決定回路２２３とを備えている。
【０１３８】
グリッジ除去回路２２１は、グリッジ除去回路１２１と同様に、選択対象単位、つまりサンプル値ＳＭ２１［２Ｐ×Ｍ−１：０］に含まれるグリッジを除去する。グリッジ除去回路２２１は、入力されたサンプル値ＳＭ２１[２Ｐ×Ｍ−１：０]よりも２個少ない数のサンプル値ＳＭ２２[２Ｐ×Ｍ−２：１]を出力する。グリッジ除去回路１２１から出力されるサンプル値ＳＭ２２[２Ｐ×Ｍ−２：１]は、グリッジが除去された選択対象単位となる。
【０１３９】
決定回路２２３は、決定回路１２３と同様に、制御回路３０からＲＤ取得回路２０−ｙに入力される設定データＳＥＴ１２−ｙ[Ｘ−１：０]に応じて、（２Ｐ×Ｍ−２）ビットのサンプル値ＳＭ２２[２Ｐ×Ｍ−２：１]（選択対象単位）から、ビット位置が連続するＹ（＝３Ｐ＋１）ビットのサンプル値ＳＭ２２[α]〜ＳＭ２２[α＋Ｙ−１]を選択し、それぞれサンプル値ＳＭ２３[０]〜ＳＭ２３[Ｙ−１]として出力する。決定回路２２３からは、サンプル値ＳＭ２３[３Ｐ＋１−１：０]が出力される。
【０１４０】
図５５はエッジ検出回路２３０の構成を示す図である。図５５に示されるように、エッジ検出回路２３０は、エッジ検出回路１３０のライズエッジ検出回路１３１と同じ回路構成を有するライズエッジ検出回路２３１と、エッジ検出回路１３０のフォールエッジ検出回路１３３と同じ回路構成を有するフォールエッジ検出回路２３３とを備えている。
【０１４１】
ライズエッジ検出回路２３１は、ライズエッジ検出回路１３１と同様に、処理単位決定回路２２０からのサンプル値ＳＭ２３[３Ｐ＋１−１：０]のうち、下位側の（２Ｐ＋１）個のサンプル値ＳＭ２３[２Ｐ＋１−１：０]をライズエッジ検出単位として、当該ライズエッジ検出単位に基づいて、データ信号ＤＱ[ｙ]のライズエッジを検出する。そしてライズエッジ検出回路２３１は、データ信号ＤＱ[ｙ]のライズエッジの検出結果をライズエッジデータＲＥＧ−ｙ[２Ｐ−１：０]として出力する。
【０１４２】
一方で、フォールエッジ検出回路２３３は、フォールエッジ検出回路１３３と同様に、処理単位決定回路２２０からのサンプル値ＳＭ１３[３Ｐ＋１−１：０]のうち、上位側の（２Ｐ＋１）個のサンプル値ＳＭ１３[３Ｐ＋１−１：Ｐ]をフォールエッジ検出単位として、当該フォールエッジ検出単位に基づいて、データ信号ＤＱ[ｙ]のフォールエッジを検出する。そしてフォールエッジ検出回路２３３は、データ信号ＤＱ[ｙ]のフォールエッジの検出結果をフォールエッジデータＦＥＧ−ｙ[２Ｐ−１：０]として出力する。
【０１４３】
図５６はデータ取得回路２４０の構成を示す図である。処理単位決定回路２２０が出力するサンプル値ＳＭ２３[３Ｐ−１：０]は、データ取得単位を構成しており、そのうちの下位側の２Ｐ個のサンプル値ＳＭ２３[２Ｐ−１：０]はライズ側データ取得単位を構成し、そのうちの上位側の２Ｐ個のサンプル値ＳＭ２３[３Ｐ−１：Ｐ]はフォール側データ取得単位を構成している。処理単位決定回路２２０は、選択対象単位からライズ側データ取得単位及びフォール側データ取得単位を決定していると言える。
【０１４４】
データ取得回路２４０は、ライズ側データ取得回路２４１及びフォール側データ取得回路２４４を備えている。ライズ側データ取得回路２４１は、サンプル値ＳＭ２３[２Ｐ−１：０]から成るライズ側データ取得単位と、ＤＱＳエッジ検出回路１０からの２Ｐ個のライズエッジデータＲＥＧ[２Ｐ−１：０]とに基づいて、データ信号ＤＱ[ｙ]が示す、データストローブ信号ＤＱＳのライズエッジに対応するリードデータＲＤを取得して出力する。一方で、フォール側データ取得回路２４４は、サンプル値ＳＭ２３[３Ｐ−１：Ｐ]から成るフォール側データ取得単位と、ＤＱＳエッジ検出回路１０からの２Ｐ個のフォールエッジデータＦＥＧ[２Ｐ−１：０]とに基づいて、データ信号ＤＱ[ｙ]が示す、データストローブ信号ＤＱＳのフォールエッジに対応するリードデータＲＤを取得して出力する。
【０１４５】
以後、ライズ側データ取得単位を構成するサンプル値ＳＭ２３[０］〜ＳＭ２３［２Ｐ−１]を、それぞれサンプル値ＳＭＲ[０］〜ＳＭＲ［２Ｐ−１]と呼ぶ。また、フォール側データ取得単位を構成するサンプル値ＳＭ２３[２Ｐ］〜ＳＭ２３［３Ｐ−１]を、それぞれサンプル値ＳＭＦ[０］〜ＳＭＦ［２Ｐ−１]と呼ぶ。
【０１４６】
図５７はライズ側データ取得回路２４１を示す図である。図５７に示されるように、ライズ側データ取得回路２４１は、２Ｐ個のＡＮＤ回路２４１−０〜２４１−（２Ｐ−１）とＯＲ回路２４３とを備えている。ＡＮＤ回路２４２−ｋは、サンプル値ＳＭＲ［ｋ］とライズエッジデータＲＥＧ［ｋ］との論理積を演算し、その演算結果を出力値ＡＮＤＲ［ｋ］として出力する。ＯＲ回路２４３は、２Ｐ個のＡＮＤ回路２４２−０〜２４２−（２Ｐ−１）がそれぞれ出力する出力値ＡＮＤＲ［０］〜ＡＮＤＲ［２Ｐ−１］の論理和を演算し、その結果をライズ側出力データＤＱｏｕｔＲ［ｙ］として出力する。ＲＤ取得回路２０−ｙは、ライズ側出力データＤＱｏｕｔＲ［ｙ］を、データ信号ＤＱ［ｙ］が示す、データストローブ信号ＤＱＳのライズエッジに対応するリードデータＲＤとして出力する。
【０１４７】
このような構成を有するライズ側データ取得回路２４１では、クロック信号ＣＬＫのあるライズエッジで入力されるライズエッジデータＲＥＧ［０］〜ＲＥＧ［２Ｐ−１］のうちのライズエッジデータＲＥＧ［ｋ］だけが“１”を示す場合には、当該ライズエッジで入力されるライズ側データ取得単位を構成するサンプル値ＳＭＲ[２Ｐ−１：０]のうち、当該ライズエッジデータＲＥＧ［ｋ］と同じビット位置のサンプル値ＳＭＲ［ｋ］が、データ信号ＤＱ［ｙ］が示す、データストローブ信号ＤＱＳのライズエッジに応じたリードデータＲＤとして取得される。言い換えれば、ライズ側データ取得回路２４１では、ライズ側データ処理単位を構成するサンプル値ＳＭＲ[２Ｐ−１：０]のうち、当該ライズ側データ処理単位と同じタイミングで得られたライズエッジ検出単位に基づいてライズエッジ検出回路１３１が検出したライズエッジのタイミングと同じタイミングのサンプル値ＳＭＲ［ｋ］が、データ信号ＤＱ［ｙ］が示す、データストローブ信号ＤＱＳのライズエッジに応じたリードデータＲＤとして取得される。
【０１４８】
図５８はフォール側データ取得回路２４４を示す図である。図５８に示されるように、フォール側データ取得回路２４４は、２Ｐ個のＡＮＤ回路２４５−０〜２４５−（２Ｐ−１）とＯＲ回路２４６とを備えている。ＡＮＤ回路２４５−ｋは、サンプル値ＳＭＦ２３［ｋ］とフォールエッジデータＦＥＧ［ｋ］との論理積を演算し、その演算結果を出力値ＡＮＤＦ［ｋ］として出力する。ＯＲ回路２４６は、２Ｐ個のＡＮＤ回路２４５−０〜２４５−（２Ｐ−１）がそれぞれ出力する出力値ＡＮＤＦ［０］〜ＡＮＤＦ［２Ｐ−１］の論理和を演算し、その結果をフォール側出力データＤＱｏｕｔＦ［ｙ］として出力する。ＲＤ取得回路２０−ｙは、フォール側出力データＤＱｏｕｔＦ［ｙ］を、データ信号ＤＱ［ｙ］が示す、データストローブ信号ＤＱＳのフォールエッジに対応するリードデータＲＤとして出力する。
【０１４９】
このような構成を有するフォール側データ取得回路２４４では、ライズ側データ取得回路２４１と同様に、クロック信号ＣＬＫのあるライズエッジで入力されるフォールエッジデータＦＥＧ［０］〜ＲＥＧ［２Ｐ−１］のうちのフォールエッジデータＦＥＧ［ｋ］だけが“１”を示す場合には、当該ライズエッジで入力されるフォール側データ取得単位を構成するサンプル値ＳＭＦ[２Ｐ−１：０]のうち、当該フォールエッジデータＦＥＧ［ｋ］と同じビット位置のサンプル値ＳＭＦ［ｋ］が、データ信号ＤＱ［ｙ］が示す、データストローブ信号ＤＱＳのフォールエッジに対応するリードデータＲＤとして取得される。
【０１５０】
ここで、ＤＱＳエッジ検出回路１０に入力される設定データＳＥＴ１［１：０］及び設定データＳＥＴ２［Ｘ−１：０］と、ＲＤ取得回路２０−ｙに入力される設定データＳＥＴ１１−ｙ［１：０］及び設定データＳＥＴ１２−ｙ［Ｘ−１：０］とがそれぞれ同じ値である場合を考える。この場合には、ライズ側データ取得回路２４１に対してクロック信号ＣＬＫのあるライズエッジに同期して入力されるライズエッジデータＲＥＧ［２Ｐ−１：０］及びサンプル値ＳＭＲ[２Ｐ−１：０]に関して、図５９に示されるように、当該ライズエッジデータＲＥＧ［２Ｐ−１：０］に対応するライズエッジ検出期間１９５と、当該サンプル値ＳＭＲ[２Ｐ−１：０]が得られたサンプリング期間１９６とは一致する。したがって、この場合には、サンプル値ＳＭＲ[２Ｐ−１：０]のうち、“１”を示すライズエッジデータＲＥＧ［ｋ］と同じビット位置のサンプル値ＳＭＲ［ｋ］は、データ信号ＤＱ［ｙ］が示す、ライズエッジ検出期間１９５でのライズエッジｒｅｇに応じたリードデータＲＤ０の値を示さない可能性が高い。言い換えれば、ライズエッジデータＲＥＧ［２Ｐ−１：０］が示す、ライズエッジ検出期間１９５でのライズエッジｒｅｇのタイミングＲＥＴＭが、サンプル値ＳＭＲ［２Ｐ−１：０］が示す、サンプルリング期間１９６でのリードデータＲＤ０の範囲ＲＤＡＲから外れる可能性が高くなり、当該タイミングＲＥＴＭと同じタイミングのサンプル値ＳＭＲ［ｋ］が当該リードデータＲＤ０の値を示さない可能性が高い。
【０１５１】
そこで、本実施の形態では、ライズ側データ取得回路２４１に対してクロック信号ＣＬＫのあるライズエッジに同期して入力されるライズエッジデータＲＥＧ［２Ｐ−１：０］及びサンプル値ＳＭＲ［２Ｐ−１：０］に関して、図６０に示されるように、当該ライズエッジデータＲＥＧ［２Ｐ−１：０］における、“１”を示すライズエッジデータＲＥＧ［ｋ］のビット位置が、当該サンプル値ＳＭＲ［２Ｐ−１：０］における、リードデータＲＤ０を示す複数のサンプル値の中央のサンプル値のビット位置付近に位置するように、設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］と設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］とが制御回路３０で調整される。これにより、サンプル値ＳＭＲ[２Ｐ−１：０]のうち、“１”を示すライズエッジデータＲＥＧ［ｋ］と同じビット位置のサンプル値ＳＭＲ［ｋ］は、データ信号ＤＱ［ｙ］が示す、ライズエッジ検出期間１９５でのライズエッジｒｅｇに応じたリードデータＲＤ０の値を示す可能性が高くなる。
【０１５２】
言い換えれば、本実施の形態では、ライズエッジ検出期間１９５とサンプルリング期間１９６を同じタイミングで見た場合において、ライズエッジデータＲＥＧ［２Ｐ−１：０］が示す、ライズエッジ検出期間１９５でのライズエッジｒｅｇのタイミングＲＥＴＭが、サンプル値ＳＭＲ［２Ｐ−１：０］が示す、サンプルリング期間１９６でのリードデータＲＤ０の範囲ＲＤＡＲの中央付近に位置するように、設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］と設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］とが制御回路３０で調整される。つまり、ライズエッジデータＲＥＧ［２Ｐ−１：０］が示す、ライズエッジｒｅｇについてのライズエッジ検出期間１９５での相対的な位置と、サンプル値ＳＭＲ［２Ｐ−１：０］が示す、サンプルリング期間１９６でのリードデータＲＤ０の範囲ＲＤＡＲの中央についてのサンプルリング期間１９６での相対的な位置とが近似するように、設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］と設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］とが制御回路３０で調整される。これにより、サンプル値ＳＭＲ[２Ｐ−１：０]のうち、ライズエッジデータＲＥＧ［２Ｐ−１：０］が示すライズエッジｒｅｇのタイミングＲＥＴＭと同じタイミングのサンプル値ＳＭＲ［ｋ］はリードデータＲＤ０の値を示す可能性が高くなる。
【０１５３】
なお、フォール側データ取得回路２４４についても同様であり、設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］と設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］とが制御回路３０で適切に調整されることにより、サンプル値ＳＭＦ[２Ｐ−１：０]のうち、“１”を示すフォールエッジデータＦＥＧ［ｋ］と同じビット位置のサンプル値ＳＭＦ［ｋ］は、データ信号ＤＱ［ｙ］が示す、フォールエッジに応じたリードデータＲＤの値を示す可能性が高くなる。
【０１５４】
上記の点については後述の制御回路３０の動作説明によって明らかになる。
【０１５５】
なお、クロック信号ＣＬＫのあるライズエッジに同期して、ＲＤ取得回路２０−ｙのライズ側データ取得回路２４１に対して入力されるライズエッジデータＲＥＧ［２Ｐ−１：０］及びサンプル値ＳＭＲ［２Ｐ−１：０］に関して、配線遅延等によって、当該ライズエッジデータＲＥＧ［２Ｐ−１：０］及び当該サンプル値ＳＭＲ［２Ｐ−１：０］がライス側データ取得回路２４１に入力されるタイミングのずれが大きい場合には、ライス側データ取得回路２４１に対する両者の入力タイミングを調整するタイミング調整回路を設けても良い。具体的には、ライズ側データ取得回路２４１の近傍において、ＤＱＳエッジ検出回路１０から出力されるライズエッジデータＲＥＧ［２Ｐ−１：０］をクロック信号ＣＬＫのライズエッジで保持して出力するＦＦ回路を設けるとともに、処理単位決定回路２２０から出力されるサンプル値ＳＭＲ［２Ｐ−１：０］をクロック信号ＣＬＫのライズエッジで保持して出力するＦＦ回路を設ける。これにより、ライズ側データ取得回路２４１に対する両者の入力タイミングのずれが小さくなる。フォールエッジデータＦＥＧ［２Ｐ−１：０］及びサンプル値ＳＭＦ［２Ｐ−１：０］についても同様である。
【０１５６】
＜データリード回路の動作例＞
図６１〜７５はデータリード回路５の動作例を示す図である。図６１〜６４は、ＤＱＳエッジ検出回路１０の選択対象単位保持回路１１０から出力されるサンプル値ＳＭ１１［１１９：０］の一例を示しており、図６５〜６８は、ＲＤ取得回路２０−ｙの選択対象単位保持回路２１０から出力されるサンプル値ＳＭ２１［１１９：０］の一例を示している。図６９はＤＱＳエッジ検出回路１０の処理単位決定回路１２０から出力されるサンプル値ＳＭ１３［３６：０］の一例を示しており、図７０は、ＲＤ取得回路２０−ｙの処理単位決定回路２２０から出力されるサンプル値ＳＭ２３［３６：０］の一例を示している。図７１，７２はＤＱＳエッジ検出回路１０のエッジ検出回路２３０から出力されるライスエッジデータＲＥＧ［２３：０］及びフォールエッジデータＦＥＧ［２３：０］の一例をそれぞれ示している。図７３はＲＤ取得回路２０−ｙのライズ側データ取得回路２４１での出力値ＡＤＮＲ［２３：０］の一例を示し、図７４はＲＤ取得回路２０−ｙのフォール側データ取得回路２４４での出力値ＡＤＮＦ［２３：０］の一例を示している。図７５はＲＤ取得回路２０−ｙのデータ取得回路２４０から出力されるライズ側出力データＤＱｏｕｔＲ［ｙ］及びフォール側出力データＤＱｏｕｔＦ［ｙ］の一例を示している。図６５〜７５での「Ｎ＋０」、「Ｎ＋１」等はクロック信号ＣＬＫのサイクルの番号を示している。図６５〜７５での「Ａ」、「Ｂ」等はリードデータＲＤの値を示している。図６５〜７５での「Ｘ」は不定値を示している。
【０１５７】
図６５〜７５に示される例では、処理単位決定回路１２０は、サンプル値ＳＭ１１［１１９：０］からサンプル値ＳＭ１１［２４］〜ＳＭ［６０］を選択してそれぞれサンプル値ＳＭ１３［０］〜ＳＭ１３［３６］として出力している。また、処理単位決定回路２２０は、サンプル値ＳＭ２１［１１９：０］からサンプル値ＳＭ２１［３２］〜ＳＭ［６８］を選択してそれぞれサンプル値ＳＭ２３［０］〜ＳＭ２３［３６］として出力している。
【０１５８】
本例では、図７５に示されるように、クロック信号ＣＬＫの（Ｎ＋１＋０）サイクル目〜（Ｎ＋１＋３）サイクル目にＲＤ取得回路２０−ｙから出力されるライズ側出力データＤＱｏｕｔＲ［ｙ］は、データ信号ＤＱ［ｙ］が示す、データストローブ信号ＤＱＳのライズエッジに応じたリードデータＲＤを適切に示している。また、クロック信号ＣＬＫの（Ｎ＋１＋０）サイクル目〜（Ｎ＋１＋２）サイクル目にＲＤ取得回路２０−ｙから出力されるフォール側出力データＤＱｏｕｔＦ［ｙ］は、データ信号ＤＱ［ｙ］が示す、データストローブ信号ＤＱＳのフォールエッジに応じたリードデータＲＤを適切に示している。一方で、クロック信号ＣＬＫの（Ｎ＋１＋３）サイクル目にＲＤ取得回路２０−ｙから出力されるフォール側出力データＤＱｏｕｔＦ［ｙ］の値は不定となっている。これは、図６９に示されるように、クロック信号ＣＬＫの（Ｎ＋１＋３）サイクル目に処理単位決定回路１２０が出力するサンプル値ＳＭ１３［３５］，ＳＭ１３［３６］が不定のために、図７２に示されるようにフォールエッジデータＦＥＧ［２３］の値が不定となっていることが原因である。
【０１５９】
なお、フォールエッジ検出単位を構成するサンプル値ＳＭ１３［３Ｐ：Ｐ］に対して所定のフィルタ処理を行うことによって、上記の例において、クロック信号ＣＬＫの（Ｎ＋１＋３）サイクル目にＲＤ取得回路２０−ｙから出力されるフォール側出力データＤＱｏｕｔＦ［ｙ］は不定ではなくなり、リードデータＲＤの値（Ｈ）を適切に示すようになる。以下にこの点について説明する。
【０１６０】
＜ポストフィルタ回路＞
上述のように、リードデータＲＤのバースト出力が終了すると、データストローブ信号ＤＱＳの信号レベルはＬｏｗレベルに続いて不定となる（図３参照）。ＤＱＳエッジ検出回路１０において、図７６に示されるように、フォールエッジ検出単位を構成するサンプル値ＳＭ１３［３Ｐ：Ｐ］が得られたサンプリング期間１９７（フォールエッジ検出期間）が、データストローブ信号ＤＱＳの信号レベルがＬｏｗレベルから不定に変化する時点を含む場合には、サンプリング期間１９７における、データストローブ信号ＤＱＳの信号レベルが不定の期間１９８でのサンプル値は不定となる。つまり、上述の図６９でのクロック信号ＣＬＫの（Ｎ＋１＋３）サイクル目と同様に、サンプル値ＳＭ１３［３Ｐ：Ｐ］においては、最上位ビットのサンプル値から下位のビットに向けて少なくとも１つのサンプル値が不定となる。図６９でのクロック信号ＣＬＫの（Ｎ＋１＋３）サイクル目では、サンプル値ＳＭ１３［３６：１２］において、サンプル値ＳＭ１３［３６］とサンプル値ＳＭ１３［３５］が不定となっている。
【０１６１】
フォールエッジ検出単位を構成するサンプル値ＳＭ１３［３Ｐ：Ｐ］において、最上位ビットのサンプル値から下位のビットに向けて複数のサンプル値が不定となると、上述の図７２でのクロック信号ＣＬＫの（Ｎ＋１＋３）サイクル目と同様に、フォールエッジデータＦＥＧ［２Ｐ−１］においては、少なくとも最上位ビットのフォールエッジデータＦＥＧ［２Ｐ−１］の値が不定となる。つまり、フォールエッジ検出期間が、データストローブ信号ＤＱＳの信号レベルが不定の期間を含む場合には、当該フォールエッジ検出期間に対応するフォールエッジデータＦＥＧ［２Ｐ−１］においては、少なくとも最上位ビットのフォールエッジデータＦＥＧ［２Ｐ−１］の値が不定となることがある。そして、フォールエッジデータＦＥＧ［２Ｐ−１］においては、データストローブ信号ＤＱＳのフォールエッジのタイミングを示す“１”のフォールエッジデータＦＥＧ［ｋ］も含まれる。
【０１６２】
一方で、データストローブ信号ＤＱＳの信号レベルが不定の期間を含むフォールエッジ検出期間に対応するフォールエッジデータＦＥＧ［２Ｐ−１：０］と対を成すフォール側データ取得単位を構成するサンプル値ＳＭＦ［２Ｐ−１：０］（サンプル値ＳＭ２３［３Ｐ−１：Ｐ］）では、最上位ビットのサンプル値ＳＭＦ［２Ｐ−１］は、リードデータＲＤのバースト出力終了後の、信号レベルが不定のデータ信号ＤＱ［ｙ］をサンプリングした値である。つまり、最上位ビットのサンプル値ＳＭＦ［２Ｐ−１］はリードデータＲＤを示さず、その値は不定である。上記の図７０でのクロック信号ＣＬＫの（Ｎ＋１＋３）番目のサイクルでは、サンプル値ＳＭＦ［２Ｐ−１］の最上位ビットであるサンプル値ＳＭ２３［３５］は不定となっている。
【０１６３】
このように、フォールエッジ検出期間（サンプリング期間１９７）が、データストローブ信号ＤＱＳの信号レベルが不定の期間を含む場合には、当該フォールエッジ検出期間でのフォールエッジデータＦＥＧ［２Ｐ−１］においては、正しい値（リードデータＲＤの値）を示すサンプル値ＳＭＦに対応する、“１”を示すフォールエッジデータＦＥＧと、値が不定のサンプル値ＳＭＦに対応する、“１”を示すフォールエッジデータＦＥＧとが含まれることがある。フォールエッジデータＦＥＧ［２Ｐ−１］に、“１”を示すフォールエッジデータＦＥＧが複数含まれる場合には、それらに対応する複数のサンプル値ＳＭＦのうちのいずれが正しい値を示してるかは判断することができない。したがって、上述の図７５での（Ｎ＋１＋３）サイクル目のように、フォール側出力データＤＱｏｕｔＦ［ｙ］は不定となる。
【０１６４】
そこで、フォールエッジデータＦＥＧ［２Ｐ−１：０］を最下位ビットから上位のビットに向けて見ていった際に、最初に“１”を示すデータが現れたビット位置よりも後方（上位側）のビット位置から最後のビット位置（最上位のビット位置）までのデータをすべて“０”とするフィルタ処理を当該フォールエッジデータＦＥＧ［２Ｐ−１：０］に対して行う。ビット位置はサンプリングタイミングに対応することから、フォールエッジデータＦＥＧ［２Ｐ−１：０］をサンプリングタイミングの順で見ていった際に、最初に“１”が現れるタイミングよりも後方のタイミングから最後までのデータをすべて“０”とするフィルタ処理を当該フォールエッジデータＦＥＧ［２Ｐ−１：０］に対して行う。これにより、フォールエッジ検出期間が、リードデータＲＤの出力後に現れる、データストローブ信号ＤＱＳの信号レベルが不定の期間を含む場合であっても、当該フォールエッジ検出期間でのフォールエッジデータＦＥＧ［２Ｐ−１］においては、値が不定のサンプル値ＳＭＦに対応するフォールエッジデータＦＥＧの値が“０”となる。よって、フォール側出力データＤＱｏｕｔＦ［ｙ］が不定となることを抑制できる。その結果、リードデータＲＤを適切に取得することができる。図７７はこの場合のエッジ検出回路１３０の構成を示す図である。図７７に示されるエッジ検出回路１３０は、フォールエッジ検出回路１３３の後段に、上記フィルタ処理を行うポストフィルタ回路１３５を有している。図７８は、ポストフィルタ回路１３５の構成を示す図である。
【０１６５】
図７８に示されるように、ポストフィルタ回路１３５は、ＯＲ回路１３６Ａ〜１３６Ｊ，１３７Ａ〜１３７Ｅ，１３８Ａ〜１３８Ｄと、ＡＮＤ回路１３９Ａ〜１３９Ｅとを備えている。ＯＲ回路１３６ＡにはフォールエッジデータＦＥＧ［０］，ＦＥＧ［１］が入力され、ＯＲ回路１３６ＢにはフォールエッジデータＦＥＧ［２］，ＦＥＧ［３］が入力される、ＯＲ回路１３６ＣにはフォールエッジデータＦＥＧ［４］，ＦＥＧ［５］が入力され、ＯＲ回路１３６ＤにはフォールエッジデータＦＥＧ［６］，ＦＥＧ［７］が入力される。ＯＲ回路１３６ＥにはフォールエッジデータＦＥＧ［８］，ＦＥＧ［９］が入力され、ＯＲ回路１３６ＦにはフォールエッジデータＦＥＧ［１０］，ＦＥＧ［１１］が入力される。ＯＲ回路１３６ＧにはフォールエッジデータＦＥＧ［１２］，ＦＥＧ［１３］が入力され、ＯＲ回路１３６ＨにはフォールエッジデータＦＥＧ［１４］，ＦＥＧ［１５］が入力される。ＯＲ回路１３６ＩにはフォールエッジデータＦＥＧ［１６］，ＦＥＧ［１７］が入力され、ＯＲ回路１３６ＪにはフォールエッジデータＦＥＧ［１８］，ＦＥＧ［１９］が入力される。
【０１６６】
ＯＲ回路１３７ＡにはＯＲ回路１３６Ａ，１３６Ｂの出力が入力され、ＯＲ回路１３７ＢにはＯＲ回路１３６Ｃ，１３６Ｄの出力が入力される。ＯＲ回路１３７ＣにはＯＲ回路１３６Ｅ，１３６Ｆの出力が入力され、ＯＲ回路１３７ＤにはＯＲ回路１３６Ｇ，１３６Ｈの出力が入力される。ＯＲ回路１３７ＥにはＯＲ回路１３６Ｉ，１３６Ｊの出力が入力される。
【０１６７】
ＯＲ回路１３８ＡにはＯＲ回路１３７Ａ，１３７Ｂの出力が入力され、ＯＲ回路１３８ＢにはＯＲ回路１３８Ａの出力とＯＲ回路１３７Ｃの出力が入力される。ＯＲ回路１３８ＣにはＯＲ回路１３８Ｂの出力とＯＲ回路１３７Ｄの出力が入力され、ＯＲ回路１３８ＤにはＯＲ回路１３８Ｃの出力とＯＲ回路１３７Ｅの出力が入力される。ＯＲ回路１３６Ａ〜１３６Ｊ，１３７Ａ〜１３７Ｅ，１３８Ａ〜１３８Ｄのそれぞれは、入力された２つのデータの論理和を演算して出力する。
【０１６８】
ポストフィルタ回路１３５は、フォールエッジデータＦＥＧ［０］〜ＦＥＧ［３］をそのままフォールエッジデータＦＥＧ１［０］〜ＦＥＧ１［３］としてそれぞれ出力する。
【０１６９】
ＡＮＤ回路１３９Ａは、ＯＲ回路１３７Ａの出力が“０”のときフォールエッジデータＦＥＧ［４］〜ＦＥＧ［７］をそれぞれフォールエッジデータＦＥＧ１［４］〜ＦＥＧ１［７］として出力し、ＯＲ回路１３７Ａの出力が“１”のときすべてが“０”のフォールエッジデータＦＥＧ１［４］〜ＦＥＧ１［７］を出力する。
【０１７０】
ＡＮＤ回路１３９Ｂは、ＯＲ回路１３８Ａの出力が“０”のときフォールエッジデータＦＥＧ［８］〜ＦＥＧ［１１］をそれぞれフォールエッジデータＦＥＧ１［８］〜ＦＥＧ１［１１］として出力し、ＯＲ回路１３８Ａの出力が“１”のときすべてが“０”のフォールエッジデータＦＥＧ１［８］〜ＦＥＧ１［１１］を出力する。
【０１７１】
ＡＮＤ回路１３９Ｃは、ＯＲ回路１３８Ｂの出力が“０”のときフォールエッジデータＦＥＧ［１２］〜ＦＥＧ［１５］をそれぞれフォールエッジデータＦＥＧ１［１２］〜ＦＥＧ１［１５］として出力し、ＯＲ回路１３８Ｂの出力が“１”のときすべてが“０”のフォールエッジデータＦＥＧ１［１２］〜ＦＥＧ１［１５］を出力する。
【０１７２】
ＡＮＤ回路１３９Ｄは、ＯＲ回路１３８Ｃの出力が“０”のときフォールエッジデータＦＥＧ［１６］〜ＦＥＧ［１９］をそれぞれフォールエッジデータＦＥＧ１［１６］〜ＦＥＧ１［１９］として出力し、ＯＲ回路１３８Ｃの出力が“１”のときすべてが“０”のフォールエッジデータＦＥＧ１［１６］〜ＦＥＧ１［１９］を出力する。
【０１７３】
ＡＮＤ回路１３９Ｅは、ＯＲ回路１３８Ｄの出力が“０”のときフォールエッジデータＦＥＧ［２０］〜ＦＥＧ［２３］をそれぞれフォールエッジデータＦＥＧ１［２０］〜ＦＥＧ１［２３］として出力し、ＯＲ回路１３８Ｄの出力が“１”のときすべてが“０”のフォールエッジデータＦＥＧ１［２０］〜ＦＥＧ１［２３］を出力する。
【０１７４】
ポストフィルタ回路１３５から出力されるフォールエッジデータＦＥＧ１［２３：０］（フォールエッジデータＦＥＧ１［２Ｐ−１：０］）は、ＲＤ取得回路２０−ｙのフォール側データ取得回路２４４に入力される。
【０１７５】
このような構成を有するポストフィルタ回路１３５は  ２４ビットのフォールエッジデータＦＥＧ［０」〜［２３］を４ビット単位で処理する。ここで、フォールエッジデータＦＥＧ［０」〜［２３］において、ビット位置が連続する４つのフォールエッジデータＦＥＧを１つのグループとし、フォールエッジデータＦＥＧ［０」〜［２３］が６つのグループで構成されていると考える。例えば、フォールエッジデータＦＥＧ［０］〜［３］で１つのグループが構成され、フォールエッジデータＦＥＧ［４］〜［７］で１つのグループが構成される。
【０１７６】
ポストフィルタ回路１３５では、フォールエッジデータＦＥＧ［２Ｐ−１：０」を最下位ビットから上位のビットに向けて見ていった際に、最初に“１”を示すフォールエッジデータＦＥＧが属するグループよりも後方（上位ビット側）のグループに属するすべてのフォールエッジデータＦＥＧを“０”として出力する。
【０１７７】
例えば、フォールエッジデータＦＥＧ［２Ｐ−１：０」を最下位ビットから上位のビットに向けて見ていった際に最初にフォールエッジデータＦＥＧ［１」が“１”を示す場合には、フォールエッジデータＦＥＧ［４］〜ＦＥＧ［２３］の値が強制的に“０”となり、ポストフィルタ回路１３５からは、フォールエッジデータＦＥＧ［０」〜ＦＥＧ［３］がそのままフォールエッジデータＦＥＧ１［０」〜ＦＥＧ１［３］としてそれぞれ出力され、“０”を示すフォールエッジデータＦＥＧ１［４］〜ＦＥＧ１［２３］が出力される。
【０１７８】
また、フォールエッジデータＦＥＧ［２Ｐ−１：０」を最下位ビットから上位のビットに向けて見ていった際に最初にフォールエッジデータＦＥＧ［９」が“１”を示す場合には、フォールエッジデータＦＥＧ［１２］〜ＦＥＧ［２３］の値が強制的に“０”となり、ポストフィルタ回路１３５からは、フォールエッジデータＦＥＧ［０」〜ＦＥＧ［１１］がそのままフォールエッジデータＦＥＧ１［０」〜ＦＥＧ１［１１］としてそれぞれ出力され、“０”を示すフォールエッジデータＦＥＧ１［１２］〜ＦＥＧ１［２３］が出力される。
【０１７９】
このようなポストフィルタ回路１３５をフォールエッジ検出回路１３３の後段に配置した場合には、上記の動作例では、図７４での（Ｎ＋１＋３）サイクル目の出力値ＡＮＤＦ［２３］が不定ではなく“０”となる。したがて、図７５での（Ｎ＋１＋３）サイクル目でのフォール側出力データＤＱｏｕｔＦ［ｙ］はリードデータＲＤの“Ｈ”を示すようになる。
【０１８０】
なお上記の例では、ポストフィルタ回路１３５は  フォールエッジデータＦＥＧ［０」〜［２３］を４ビット単位で処理していたが、３ビット単位、２ビット単位、１ビット単位等で処理しても良い。
【０１８１】
＜グリッジ除去回路＞
上述の図７に示されるように、本実施の形態では、データストローブ信号ＤＱＳをＦＦ回路（フリップフロップ）を使用してサンプリングしていることから、ＦＦ回路へのデータ入力がセットアップタイムあるいはホールドタイムを満足しない場合には、サンプル値が不定となる。そして、サンプリング周波数が高くなると、得られた複数のサンプル値にグリッジが現れることがある。以下にこの点について説明する。
【０１８２】
図７９はデータストローブ信号ＤＱＳと、それをサンプルリングするサンプリングタイミングとの関係を示す図である。図７９には、複数のサンプリングタイミングＳＭＴ０〜ＳＭＴ７が示されている。
【０１８３】
サンプリング周波数が高くなり、図７９に示されるように、ＦＦ回路のセットアップタイムＳＵＴ及びホールドタイムＨＴを足し合わせた値よりもサンプリング周期ＳＭＰが小さくなると、データストローブ信号ＤＱＳのエッジ付近の複数のサンプリングタイミングでそれぞれ得られた複数のサンプル値が不定となる。
【０１８４】
図７９の例では、サンプリングタイミングＳＭＴ３，ＳＭＴ４で得られた２つのサンプル値が不定となる。図７９の例において、サンプリングタイミングＳＭＴ３，ＳＭＴ４で得られた２つのサンプル値がそれぞれ“１”、“０”を示す場合には、サンプリングタイミングＳＭＴ０〜ＳＭＴ７で得られた８ビットのサンプル値は、理想的には“００００１１１１”であるものの、実際には“０００１０１１１”となり、前後の値とは異なる値、つまりグリッジ（パルス状のノイズ）が発生する。したがって、ＦＦ回路のセットアップタイムＳＵＴ及びホールドタイムＨＴを足し合わせた値よりもデータストローブ信号ＤＱＳについてのサンプリング周期ＳＭＰが小さい場合には、オーバーサンプリング回路１００から出力されるサンプル値ＳＭ９［２Ｐ−１：０］にはグリッジが発生する。サンプル値ＳＭ９［２Ｐ−１：０］にグリッジが発生する場合には、選択対象単位保持回路１１０から出力されるサンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］にもグリッジが発生する。そして、サンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］にグリッジが発生すると、処理単位決定回路１２０から出力されるサンプル値ＳＭ１３［３Ｐ：０］にもグリッジが発生する。
【０１８５】
サンプル値ＳＭ１３［３Ｐ：０］にグリッジが発生すると、ＲＤ取得回路２０−ｙは適切にリードデータＲＤを得ることができないことがある。この点について図８０を用いて説明する。
【０１８６】
例えば図８０に示されるようなライズエッジ検出期間１９５でのライズエッジデータＲＥＧ［２Ｐ−１：０］を考える。このライズエッジデータＲＥＧ［２Ｐ−１：０］では、ライズエッジ検出期間１９５でのデータストローブ信号ＤＱＳのライズエッジｒｅｇのタイミングに応じたビット位置のライズエッジデータＲＥＧ［ｋ１］の値が“１”となる。また、ライズエッジデータＲＥＧ［２Ｐ−１：０］の元になるサンプル値ＳＭ１３［２Ｐ：０］にグリッジが含まれているために、ライズエッジ検出期間１９５でのデータストローブ信号ＤＱＳのフォールエッジｆｅｇのタイミングに応じたビット位置のライズエッジデータＲＥＧ［ｋ２］の値が“１”になっているとする。
【０１８７】
ライズ側データ取得回路２４１が、このようなライズエッジデータＲＥＧ［２Ｐ−１：０］と比較するサンプル値ＳＭＲ［２Ｐ−１：０］では、ライズエッジｒｅｇのタイミングに応じたビット位置のライズエッジデータＲＥＧ［ｋ１］と同じビット位置のサンプル値ＳＭＲ［ｋ１］は、当該ライズエッジｒｅｇに応じたリードデータＲＤ２の値を示す。一方で、当該サンプル値ＳＭＲ［２Ｐ−１：０］では、フォールエッジｆｅｇのタイミングに応じたビット位置のライズエッジデータＲＥＧ［ｋ２］と同じビット位置のサンプル値ＳＭＲ［ｋ２］は、当該フォールエッジｆｅｇに応じたリードデータＲＤ３の値を示す。つまり、ライズエッジデータＲＥＧ［２Ｐ−１：０］には、正しい値（リードデータＲＤ２の値）を示すサンプル値ＳＭＲに対応する、“１”を示すライズエッジデータＲＥＧと、正しくない値（リードデータＲＤ３の値）を示すサンプル値ＳＭＲに対応する、“１”を示すライズエッジデータＲＥＧとが含まれることになる。ライズエッジデータＲＥＧ［２Ｐ−１］に、“１”を示すライズエッジデータＲＥＧが複数含まれる場合には、それらに対応する複数のサンプル値ＳＭＲのうちのいずれが正しい値を示しているかは判断することができない。したがって、ライズ側出力データＤＱｏｕｔＲ［ｙ］は不定となり、適切にリードデータＲＤを取得できない。
【０１８８】
上述の処理単位決定回路１２０に設けられたグリッジ除去回路１２１は、サンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］に含まれるグリッジを除去することができることから、サンプル値ＳＭ１３［３Ｐ：０］にはグリッジが含まることを抑制することができる。よって、ＲＤ取得回路２０−ｙは適切にリードデータＲＤを取得することができる。
【０１８９】
上述のように、グリッジ除去回路１２１の除去回路１２２−ｚは、注目するｚビット目のサンプル値ＳＭ１１[ｚ]の論理値が、その前後のビット位置のサンプル値ＳＭ１１[ｚ−１]，ＳＭ１１[ｚ＋１]の論理値のそれぞれと異なる場合には、論理値を反転したサンプル値ＳＭ１１[ｚ]をサンプル値ＳＭ１２[ｚ]として出力する。したがって、図７９の例において、グリッジである、サンプリングタイミングＳＭＴ３のサンプル値“１”が、サンプル値ＳＭ１１[ｚ]である場合には、サンプル値ＳＭ１２[ｚ]は“０”となりグリッジが除去されて、理想的な“００００１１１１”が得られる。
【０１９０】
＜制御回路＞
図８１は制御回路３０の構成を示す図である。制御回路３０は、クロック信号ＣＬＫに同期して動作する。制御回路３０は、ＤＱＳエッジ検出回路１０に入力する設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］と、ＲＤ取得回路２０−０〜２０−７にそれぞれ入力する設定データＳＥＴ１１−０［１：０］〜ＳＥＴ１１−７［１：０］〜と、ＲＤ取得回路２０−０〜２０−７にそれぞれ入力する設定データＳＥＴ１２−０［１：０］〜ＳＥＴ１２−７［１：０］とを生成する。
【０１９１】
本実施の形態に係る制御装置３は、動作モードとして、記憶装置２からデータを読み出したり、記憶装置２にデータを書き込んだりするノーマルモードと、当該制御装置３及び記憶装置２に対して初期設定を行うトレーニングモードとを備えている。半導体記憶装置１が起動すると、制御装置３は、まずトレーニングモードで動作し、制御装置３及び記憶装置２に対して初期設定が完了した後に、ノーマルモードで動作する。
【０１９２】
図８１に示されるように、制御回路３０は、上位制御回路３１と、ＤＱＳ遅延時間取得回路３２と、ＤＱ遅延時間取得回路３３−０〜３３−７と、状態検出回路３４と、タイミング変化検出回路３５と、ＤＱＳ制御回路３６と、ＤＱ制御回路３７−０〜３７−７とを備えている。以下では、まず制御回路３０の各回路の動作の概要を説明し、その後、各回路の動作の詳細を説明する。
【０１９３】
上位制御回路３１は、リードコマンドＲＤＣ等を出力し、制御装置３が記憶装置２からデータを読み出す際の当該制御装置３での各種回路の制御を行う。また上位制御回路３１は、ライトコマンド等を出力し、制御装置３が記憶装置２にデータを書き込む際の当該制御装置３での各種回路の制御を行う。つまり、上位制御回路３１は、半導体記憶装置１の動作を統括的に管理する機能を有する。
【０１９４】
ＤＱＳ遅延時間取得回路３２は、ＤＱＳエッジ検出回路１０のエッジ検出回路１３０でのエッジ検出結果に基づいて、データリード回路５のリードコマンドＲＤＣの出力から、データストローブ信号ＤＱＳのエッジについてのＤＱＳエッジ検出回路１０への入力までの遅延時間を求める。具体的には、ＤＱＳ遅延時間取得回路３２は、ＤＱＳエッジ検出回路１０から出力されるライズエッジデータＲＥＧ[２Ｐ−１：０]に基づいて、制御回路３のリードコマンドＲＤＣの出力から、データストローブ信号ＤＱＳの最初のライズエッジについてのＤＱＳエッジ検出回路１０への入力までの遅延時間を求める。以後、当該遅延時間を「ＤＱＳエッジ遅延時間」と呼ぶ。
【０１９５】
ＤＱ遅延時間取得回路３３−０〜３３−７は互いに同じ回路構成を有している。ＤＱ遅延時間取得回路３３−ｙは、ＲＤ取得回路２０−ｙのエッジ検出回路２３０でのエッジ検出結果に基づいて、制御回路３のリードコマンドＲＤＣの出力から、データ信号ＤＱのエッジについてのＲＤ取得回路２０−ｙへの入力までの遅延時間を求める。具体的には、ＤＱ遅延時間取得回路３３−ｙは、ＲＤ取得回路２０−ｙから出力されるライズエッジデータＲＥＧ−ｙ[２Ｐ−１：０]に基づいて、制御回路３のリードコマンドＲＤＣの出力から、データ信号ＤＱの最初のライズエッジについてのＲＤ取得回路２０−ｙへの入力までの遅延時間を求める。以後、当該遅延時間を「ＤＱエッジ遅延時間」と呼ぶ。
【０１９６】
状態検出回路３４は、データリード回路５の状態を示すリード状態信号ＲＤｎｏｗと、データストローブ信号ＤＱＳの信号レベルの状態を示すＤＱＳ状態信号ＤＱＳｖとを出力する。また状態検出回路３４には、制御回路３０がリードコマンドＲＤＣを出力したときに所定時間Ｈｉｇｈレベルとなるリードコマンド出力通知信号ＲＤＣｏｕｔと、設定データＳＥＴ３とが入力される。リードコマンド出力通知信号ＲＤＣｏｕｔ及び設定データＳＥＴ３は上位制御回路３１から出力される。
【０１９７】
状態検出回路３４は、リードコマンドＲＤＣの出力後、データリード回路５が、記憶装置２からのバースト的なリードデータＲＤの取得処理を行っている間（以後、「リード処理中」と呼ぶことがある）、リード状態信号ＲＤｎｏｗの信号レベルをＨｉｇｈレベルに設定する。状態検出回路３４は、リードコマンド出力通知信号ＲＤＣｏｕｔと設定データＳＥＴ３に基づいて、リード状態信号ＲＤｎｏｗの信号レベルを設定する。リード状態信号ＲＤｎｏｗは、オーバーサンプリング回路１００でのデータストローブ信号ＤＱＳのプリアンプブルのサンプリングの開始から、バースト的に出力されるリードデータＲＤの最後のリードデータＲＤがデータ取得回路２４０から出力されるまでＨｉｇｈレベルを示す。
【０１９８】
また、状態検出回路３４は、リードコマンドＲＤＣの出力後、データストローブ信号ＤＱＳの信号レベルが不定からＬｏｗレベルに変化するタイミングから、リードデータＲＤのバースト出力が終了してデータストローブ信号ＤＱＳの信号レベルが不定になるタイミングまで、ＤＱＳ状態信号ＤＱＳｖの信号レベルをＨｉｇｈレベルに設定する。つまり、状態検出回路３４は、データストローブ信号ＤＱＳの信号レベルが確定している間、ＤＱＳ状態信号ＤＱＳｖの信号レベルをＨｉｇｈレベルに設定する。状態検出回路３４は、リードコマンド出力通知信号ＲＤＣｏｕｔと設定データＳＥＴ３に基づいて、ＤＱＳ状態信号ＤＱＳｖの信号レベルを設定する。
【０１９９】
タイミング変化検出回路３５は、状態検出回路３４が出力するＤＱＳ状態信号ＤＱＳｖがＨｉｇｈレベルを示す間、ライスエッジデータＲＥＧ[２Ｐ−１：０]に基づいて、データストローブ信号ＤＱＳのエッジのタイミングの変化を検出する。そして、タイミング変化検出回路３５は、データストローブ信号ＤＱＳのエッジのタイミングが、基準タイミングよりも遅くなった場合にはＨｉｇｈレベルのダウン信号Ｄｗを出力し、早くなった場合にはＨｉｇｈレベルのアップ信号Ｕｐを出力する。
【０２００】
図８２はＤＱＳ制御回路３６の構成を示す図である。ＤＱＳ制御回路３６は、上位制御回路３１から出力される設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]を、タイミング検出回路３５からのアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整して、それぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。
【０２０１】
ＤＱＳ制御回路３６は、設定データ調整回路３６０，３６１及び選択回路３６２を備えている。設定データ調整回路３６０は、上位制御回路３１からのノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルのとき、上位制御回路３１からの設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]を、タイミング変化検出回路３５からのアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整し、それぞれ設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]として出力する。上位制御回路３１は、制御装置３がノーマルモードで動作するときにはノーマルイネーブル信号ＥＮｎｍをＨｉｇｈレベルに設定し、制御装置３がトレーニングモードで動作するときにはノーマルイネーブル信号ＥＮｎｍをＬｏｗレベルに設定する。
【０２０２】
設定データ調整回路３６１は、アップデイトイネーブル信号ＥＮｕｐｄがＬｏｗレベルになると、設定データ調整回路３６０からの設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]を保持する。設定データ調整回路３６１は、アップデイトイネーブル信号ＥＮｕｐｄがＬｏｗレベルの間、保持した設定データＳＥＴ１Ｂ[１：０]をそのまま設定データＳＥＴ１Ｃ[１：０]として出力する。また設定データ調整回路３６１は、アップデイトイネーブル信号ＥＮｕｐｄがＬｏｗレベルの間、保持した設定データＳＥＴ２Ｂ[Ｘ−１：０]をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整して設定データＳＥＴ２Ｃ[Ｘ−１：０]として出力する。アップデイトイネーブル信号ＥＮｕｐｄは、リード状態信号ＲＤｎｏｗがＨｉｇｈレベルになるとＬｏｗレベルとなり、リード状態信号ＲＤｎｏｗがＬｏｗレベルになるとＨｉｇｈレベルとなる。アップデイトイネーブル信号ＥＮｕｐｄは選択回路３６２から出力される。
【０２０３】
選択回路３６２には、上位制御回路３１からの設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]と、設定データ調整回路３６０からの設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]と、設定データ調整回路３６１からの設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]とが入力される。
【０２０４】
選択回路３６２は、ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルのとき、設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]を選択して、それぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。
【０２０５】
選択回路３６２は、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルであって、リード状態信号ＲＤｎｏｗがＬｏｗレベルのとき、設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]を選択して、それぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。
【０２０６】
選択回路３６２は、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルであって、リード状態信号ＲＤｎｏｗがＨｉｇｈレベルのとき、設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]を選択して、それぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。
【０２０７】
選択回路３６２から出力される設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]は、ＤＱＳエッジ検出回路１０の選択対象単位保持回路１１０及び処理単位決定回路１２０にそれぞれ入力される。
【０２０８】
ＤＱ制御回路３７−０〜３７−７は互いに同じ回路構成を有している。図８３はＤＱ制御回路３７−ｙの構成を示す図である。ＤＱ制御回路３７−ｙは、上位制御回路３１から出力される設定データＳＥＴ１１Ａ−ｙ[１：０]，ＳＥＴ１２Ａ−ｙ[Ｘ−１：０]を、タイミング検出回路３５のアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整して、それぞれ設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]として出力する。
【０２０９】
ＤＱ制御回路３７−ｙは、設定データ調整回路３７０，３７１及び選択回路３７２を備えている。設定データ調整回路３７０は、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルのとき、上位制御回路３１からの設定データＳＥＴ１１Ａ−ｙ[１：０]，ＳＥＴ１２Ａ−ｙ[Ｘ−１：０]を、タイミング変化検出回路３５からのアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整し、それぞれ設定データＳＥＴ１１Ｂ−ｙ[１：０]，ＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]として出力する。
【０２１０】
設定データ調整回路３７１は、アップデイトイネーブル信号ＥＮｕｐｄ−ｙがＬｏｗレベルになると、設定データ調整回路３７０からの設定データＳＥＴ１１Ｂ−ｙ[１：０]，ＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]を保持する。設定データ調整回路３７１は、アップデイトイネーブル信号ＥＮｕｐｄ−ｙがＬｏｗレベルの間、保持した設定データＳＥＴ１１Ｂ−ｙ[１：０]をそのまま設定データＳＥＴ１１Ｃ−ｙ[１：０]として出力する。また設定データ調整回路３７１は、アップデイトイネーブル信号ＥＮｕｐｄ−ｙがＬｏｗレベルの間、保持した設定データＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整して設定データＳＥＴ１２Ｃ−ｙ[Ｘ−１：０]として出力する。アップデイトイネーブル信号ＥＮｕｐｄ−ｙは、リード状態信号ＲＤｎｏｗがＨｉｇｈレベルになるとＬｏｗレベルとなり、リード状態信号ＲＤｎｏｗがＬｏｗレベルになるとＨｉｇｈレベルとなる、アップデイトイネーブル信号ＥＮｕｐｄ−ｙは選択回路３７２から出力される。
【０２１１】
選択回路３７２には、上位制御回路３１からの設定データＳＥＴ１１Ａ−ｙ[１：０]，ＳＥＴ１２Ａ−ｙ[Ｘ−１：０]と、設定データ調整回路３７０からの設定データＳＥＴ１１Ｂ−ｙ[１：０]，ＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]と、設定データ調整回路３７１からの設定データＳＥＴ１１Ｃ−ｙ[１：０]，ＳＥＴ１２Ｃ−ｙ[Ｘ−１：０]とが入力される。
【０２１２】
選択回路３７２は、ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルのとき、設定データＳＥＴ１１Ａ−ｙ[１：０]，ＳＥＴ１２Ａ−ｙ[Ｘ−１：０]を選択して、それぞれ設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]として出力する。
【０２１３】
選択回路３７２は、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルであって、リード状態信号ＲＤｎｏｗがＬｏｗレベルのとき、設定データＳＥＴ１１Ｂ−ｙ[１：０]，ＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]を選択して、それぞれ設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]として出力する。
【０２１４】
選択回路３７２は、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルであって、リード状態信号ＲＤｎｏｗがＨｉｇｈレベルのとき、設定データＳＥＴ１１Ｃ−ｙ[１：０]，ＳＥＴ１２Ｃ−ｙ[Ｘ−１：０]を選択して、それぞれ設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]として出力する。
【０２１５】
選択回路３７２から出力される設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]は、ＲＤ取得回路２０−ｙの選択対象単位保持回路２１０及び処理単位決定回路２２０にそれぞれ入力される。
【０２１６】
次にトレーニングモード及びノーマルモードでの制御回路３０の動作を説明することによって、制御回路３０の各回路の動作を詳細に説明する。
【０２１７】
＜トレーニングモード＞
図８４はトレーニングモードでの制御回路３０の動作を示す図である。図８４に示されるように、ステップｓ１において、上位制御回路３１はノーマルイネーブル信号ＥＮｎｍをＬｏｗレベルに設定して、制御装置３の動作モードをノーマルモードからトレーニングモードに変化する。
【０２１８】
ここで、ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルに設定されると、上位制御回路３１からは、設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]の初期値が出力される。ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルのとき、ＤＱＳ制御回路３６の選択回路３６２からは設定データＳＥＴ１Ａ，ＳＥＴ２Ａ[Ｘ−１：０]がそれぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力されることから、ＤＱＳエッジ検出回路１０の選択対象単位保持回路１１０及び処理単位決定回路１２０には、それぞれ設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]の初期値が入力される。以後、設定データＳＥＴ１Ａ[１：０]の初期値を「設定データＳＥＴ１[１：０]の初期値」と呼び、設定データＳＥＴ２Ａ[Ｘ−１：０]の初期値を「設定データＳＥＴ２[Ｘ−１：０]の初期値」と呼ぶ。
【０２１９】
また、ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルに設定されると、上位制御回路３１からは、設定データＳＥＴ１１Ａ−０[１：０]〜ＳＥＴ１１Ａ−７[１：０]及び設定データＳＥＴ１２Ａ−０[Ｘ−１：０]〜ＳＥＴ１２Ａ−７[Ｘ−１：０]の初期値が出力される。ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルのとき、ＤＱ制御回路３７−ｙの選択回路３７２からは設定データＳＥＴ１１Ａ−ｙ[１：０]及び設定データＳＥＴ１２Ａ−ｙ[Ｘ−１：０]がそれぞれ設定データＳＥＴ１１−ｙ[１：０]及び設定データＳＥＴ１２−ｙ[Ｘ−１：０]として出力されることから、ＲＤ取得回路２０−ｙの選択対象単位保持回路２１０及び処理単位決定回路２２０には、それぞれ設定データＳＥＴ１１Ａ−ｙ[１：０]及び設定データＳＥＴ１２Ａ−ｙ[Ｘ−１：０]の初期値が入力される。以後、設定データＳＥＴ１１Ａ−ｙ[１：０]の初期値を「設定データＳＥＴ１１−ｙ[１：０]の初期値」と呼び、設定データＳＥＴ１２Ａ−ｙ[Ｘ−１：０]の初期値を「設定データＳＥＴ１２−ｙ[Ｘ−１：０]の初期値」と呼ぶ。
【０２２０】
次にステップｓ２において、上位制御回路３１は記憶装置２を初期化する。次にステップｓ３において、上位制御回路３１は、制御装置３と記憶装置２との間のデータストローブ線ＤＱＳＬ及びデータ線ＤＱＬ［０］〜ＤＱＬ［７］のそれぞれを、数百Ω〜１ｋΩ程度の抵抗を用いて弱くプルダウンする。これにより、データストローブ信号ＤＱＳの信号レベルが不定からＬｏｗレベルとなり、データ線ＤＱ[０]〜ＤＱ[７]の信号レベルが不定からＬｏｗレベルとなる。
【０２２１】
次にステップｓ４において、上位制御回路３１は、記憶装置２の動作モードを、ＤＤＲ３等で規定されているＭＰＲ（Multi-Purpose Register）モードに設定する。次にステップｓ５において、上位制御回路３１は、ＤＱＳ遅延時間取得回路３２及びＤＱ遅延時間取得回路３３−０〜３３−７のそれぞれを初期化する。次にステップｓ６において、上位制御回路３１は記憶装置２に対してリードコマンドＲＤＣを発行する。これにより、上位制御回路３１から出力されるリードコマンド出力通知信号ＲＤＣｏｕｔはＨｉｇｈレベルとなる。
【０２２２】
次にステップｓ７において、ＤＱＳ遅延時間取得回路３２はＤＱＳエッジ遅延時間を求め、各ＤＱ遅延時間取得回路３３−ｙはＤＱエッジ遅延時間を求める。
【０２２３】
ここで、記憶装置２は、ＭＰＲモードにおいて、リードコマンドＲＤＣを受信すると、各データ線ＤＱＬに既知のバースト的なリードデータＲＤを出力する。このバースト的なリードデータＲＤの先頭のリードデータＲＤは“１”を示す。したがって、図８５に示されるように、トレーニングモードでは、ステップｓ６でリードコマンドＲＤが発行された後、データストローブ信号ＤＱＳの最初のライズエッジに同期して、データ信号ＤＱ[０]〜[７]のそれぞれにライズエッジが現れる。
【０２２４】
ステップｓ７において、ＤＱＳ遅延時間取得回路３２は、ライズエッジデータＲＥＧ[２Ｐ−１：０]に基づいて、リードコマンド出力通知信号ＲＤＣｏｕｔがＨｉｇｈレベルとなってから、データストローブ信号ＤＱＳの最初のライズエッジｒｅｇｆ１（図８５参照）がＤＱＳエッジ検出回路１０に入力されるまでの時間をＤＱＳエッジ遅延時間ＤＴｄｑｓとして求める。ＤＱＳ遅延時間取得回路３２は、ステップｓ６の後、“１”のライズエッジデータＲＥＧを含むライズエッジデータＲＥＧ[２Ｐ−１：０]が最初に入力されると、当該ライズエッジデータＲＥＧ[２Ｐ−１：０]に含まれる“１”のライズエッジデータＲＥＧのビット位置を、データストローブ信号ＤＱＳの最初のライズエッジｒｅｇｆ１のタイミングとして使用して、ＤＱＳエッジ遅延時間ＤＴｄｑｓを求める。設定データＳＥＴ１[１：０]及び設定データＳＥＴ２[Ｘ−１：０]の初期値は既知であり、ＤＱＳエッジ検出回路１０での設計上の信号遅延は既知であることから、ＤＱＳ遅延時間取得回路３２は、最初のライズエッジｒｅｇｆ１を示すライズエッジデータＲＥＧ[２Ｐ−１：０]に対応するライズエッジ検出期間１９５（図８５参照）と、リードコマンドＲＤＣの発行タイミングとの関係を特定することができる。したがって、ＤＱＳ遅延時間取得回路３２は、最初のライズエッジｒｅｇｆ１を示すライズエッジデータＲＥＧ[２Ｐ−１：０]に対応するライズエッジ検出期間１９５と、当該ライズエッジデータＲＥＧ[２Ｐ−１：０]に含まれる“１”のライズエッジデータＲＥＧのビット位置とに基づいて、ＤＱＳエッジ遅延時間ＤＴｄｑｓを求めることができる。ＤＱＳエッジ遅延時間ＤＴｄｑｓは、リードコマンドＲＤＣの出力から最初のライズエッジｒｅｇｆ１の入力まで何サイクルと何サンプルリング期間遅れているかを示している。以後、ＤＱＳエッジ遅延時間ＤＴｄｑｓが示すサイクルの数を「遅延サイクル数」と呼び、ＤＱＳエッジ遅延時間ＤＴｄｑｓが示すサンプリング期間の数を「遅延サンプリング期間数」と呼ぶ。ＤＱＳエッジ遅延時間ＤＴｄｑｓは、遅延サイクル数で表される期間と、遅延サンプリング期間数で表される期間とを足し合わせたものである。遅延サンプリング期間数は「遅延位相量」とも呼ばれる。
【０２２５】
ステップｓ７では、各ＤＱ遅延時間取得回路３３−ｙが、同様にして、ＤＱエッジ遅延時間ＤＴｄｑ−ｙ（図８５参照）を求める。ＤＱ遅延時間取得回路３３−ｙは、ライズエッジデータＲＥＧ−ｙ[２Ｐ−１：０]に基づいて、リードコマンド出力通知信号ＲＤＣｏｕｔがＨｉｇｈレベルとなってから、データ信号ＤＱ[ｙ]の最初のライズエッジｒｅｇｆ２（図８５参照）がＲＤ取得回路２０−ｙに入力されるまでの時間をＤＱエッジ遅延時間ＤＴｄｑ−ｙとして求める。ＤＱＳエッジ遅延時間ＤＴｄｑｓと同様に、ＤＱエッジ遅延時間ＤＴｄｑ−ｙは、リードコマンドＲＤＣの出力から最初のライズエッジｒｅｇｆ２の入力まで何サイクル（遅延サイクル数）と何サンプルリング期間（遅延サンプリング期間数）遅れているかを示している。
【０２２６】
次にステップｓ８において、上位制御回路３１は、ステップｓ７での結果に基づいて、設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]の値と、設定データＳＥＴ１１Ａ−０[１：０]〜ＳＥＴ１１Ａ−７[１：０]及び設定データＳＥＴ１２Ａ−０[Ｘ−１：０]〜ＳＥＴ１２Ａ−７[Ｘ−１：０]の値とを調整する。調整後の設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]は、設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として、ＤＱＳ制御回路３６からＤＱＳエッジ検出回路１０に入力される。また調整後の設定データＳＥＴ１１Ａ−ｙ[１：０]，ＳＥＴ１２Ａ−ｙ[Ｘ−１：０]は、ＤＱ制御回路３７−ｙからＲＤ取得回路２０−ｙに入力される。さらに、上位制御回路３１は、ＤＱＳ遅延時間取得回路３２から出力されるＤＱＳエッジ遅延時間ＤＴｄｑｓに基づいて、状態検出回路３４に出力する設定データＳＥＴ３を設定する。
【０２２７】
ステップｓ８において、上位制御回路３１は、ステップｓ７で求められたＤＱＳエッジ遅延時間ＤＴｄｑｓ及びＤＱエッジ遅延時間ＤＴｄｑ−０〜ＤＴｄｑ−７に含まれる遅延サイクル数に基づいて、設定データＳＥＴ１Ａ[１：０]及び設定データＳＥＴ１１Ａ−０[１：０]〜ＳＥＴ１１Ａ−７[１：０]を調整する。具体的には、上位制御回路３１は、クロック信号ＣＬＫのあるライズエッジにおいて、ＤＱＳエッジ検出回路１０の選択対象単位保持回路１１０の可変遅延回路１１１から出力されるサンプル値ＳＭ１０[２Ｐ−１：０]と、当該ライズエッジにおいてＲＤ取得回路２０−０〜２０−ｙの選択対象単位保持回路２１０の可変遅延回路２１１から出力されるサンプル値ＳＭ２０[２Ｐ−１：０]とが、クロック信号ＣＬＫの同じサイクルで記憶装置２から出力された信号のサンプル値となるように、設定データＳＥＴ１Ａ[１：０]及び設定データＳＥＴ１１Ａ−０[１：０]〜ＳＥＴ１１Ａ−７[１：０]を調整する。つまり、上位制御回路３１は、クロック信号ＣＬＫのあるライズエッジにおいて、ＤＱＳエッジ検出回路１０の選択対象単位保持回路１１０の可変遅延回路１１１から出力されるサンプル値ＳＭ１０[２Ｐ−１：０]と、当該ライズエッジにおいてＲＤ取得回路２０−０〜２０−ｙの選択対象単位保持回路２１０の可変遅延回路２１１から出力されるサンプル値ＳＭ２０[２Ｐ−１：０]とが、クロック信号ＣＬＫの同じサイクルで記憶装置２から出力された信号のサンプル値となるように、可変遅延回路１１１，２１１での遅延量を調整する。これにより、データストローブ信号ＤＱＳ及びデータ信号ＤＱ[０]〜ＤＱ[７]の間でのスキューがサイクル単位で調整される。
【０２２８】
またステップｓ８において、上位制御回路３１は、ステップｓ７で求められたＤＱＳエッジ遅延時間ＤＴｄｑｓ及びＤＱエッジ遅延時間ＤＴｄｑ−０〜ＤＴｄｑ−７に含まれる遅延サンプリング期間数に基づいて、設定データＳＥＴ２Ａ[Ｘ−１：０]及び設定データＳＥＴ１２Ａ−０[Ｘ−１：０]〜ＳＥＴ１２Ａ−７[Ｘ−１：０]を調整する。
【０２２９】
具体的には、上位制御回路３１は、ＤＱＳエッジ遅延時間ＤＴｄｑｓに含まれる遅延サンプリング期間数に基づいて、ＤＱＳエッジ検出回路１０でのライズエッジ検出期間の中央付近にデータストローブ信号ＤＱＳの最初のライズエッジｒｅｇｆ１が位置するように、設定データＳＥＴ２Ａ[Ｘ−１：０]を調整する。つまり、上位制御回路３１は、ＤＱＳエッジ遅延時間ＤＴｄｑｓの含まれる遅延サンプリング期間数（遅延位相量）に基づいて、ライズエッジデータＲＥＧ[２Ｐ−１：０]のビット位置Ｐあるいはビット位置（Ｐ−１）に、ライズエッジｒｅｇｆ１を示す“１”が立つように、処理単位決定回路１２０が選択対象単位からライズエッジ検出単位を選択する範囲を調整する。
【０２３０】
また、上位制御回路３１は、ＤＱエッジ遅延時間ＤＴｄｑ−ｙに含まれる遅延サンプリング期間数に基づいて、ＲＤ取得回路２０−ｙでのライズエッジ検出期間の中央から半サイクル分前方の付近にデータ信号ＤＱ[ｙ]の最初のライズエッジｒｅｇｆ２が位置するように、設定データＳＥＴ１２Ａ−ｙ[Ｘ−１：０]を調整する。つまり、上位制御回路３１は、ＤＱエッジ遅延時間ＤＴｄｑ−ｙの含まれる遅延サンプリング期間数に基づいて、ライズエッジデータＲＥＧ−ｙ[２Ｐ−１：０]のビット位置Ｐあるいはビット位置（Ｐ−１）からＰ／２個前のビット位置に、ライズエッジｒｅｇｆ２を示す“１”が立つように、処理単位決定回路２２０が選択対象単位からライズエッジ検出単位（ライズ側データ取得範囲）を選択する範囲を調整する。
【０２３１】
以上のようにして、上位制御回路３１が設定データＳＥＴ２Ａ[Ｘ−１：０]を調整することによって、図８６に示されるように、ＤＱＳエッジ検出回路１０では、ライズエッジ検出期間１９５Ｒの中央付近にデータストローブ信号ＤＱＳのライズエッジが、フォールエッジ検出期間１９５Ｆの中央付近にデータストローブ信号ＤＱＳのフォールエッジが位置するようになる。また、以上のようにして、上位制御回路３１が設定データＳＥＴ１２Ａ−０[Ｘ−１：０]〜ＳＥＴ１２Ａ−７[Ｘ−１：０]を調整することによって、各ＲＤ取得回路２０−ｙでは、ライズ側データ取得単位を構成するサンプル値ＳＭＲ［２Ｐ−１：０］が得られるサンプリング期間１９６Ｒの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのライズエッジに対応するリードデータＲＤｒの出力期間の中央が位置するようになり、フォール側データ取得単位を構成するサンプル値ＳＭＦ［２Ｐ−１：０］が得られるサンプリング期間１９６Ｆの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのフォールエッジに対応するリードデータＲＤｆの出力期間の中央が位置するようになる。
【０２３２】
これにより、上述の図６０を用いて説明したように、ライズ側データ取得回路２４１に対してクロック信号ＣＬＫのあるライズエッジに同期して入力されるライズエッジデータＲＥＧ［２Ｐ−１：０］及びサンプル値ＳＭＲ［２Ｐ−１：０］に関して、当該ライズエッジデータＲＥＧ［２Ｐ−１：０］における、“１”を示すライズエッジデータＲＥＧ［ｋ］のビット位置が、当該サンプル値ＳＭＲ［２Ｐ−１：０］における、リードデータＲＤ０を示す複数のサンプル値の中央のサンプル値のビット位置付近に位置するようになる。その結果、図６０に示されるように、サンプル値ＳＭＲ[２Ｐ−１：０]のうち、“１”を示すライズエッジデータＲＥＧ［ｋ］と同じビット位置のサンプル値ＳＭＲ［ｋ］は、データ信号ＤＱ［ｙ］が示す、ライズエッジ検出期間１９５でのライズエッジｒｅｇに応じたリードデータＲＤ０の値を示す可能性が高くなり、リードデータＲＤ０の値を適切に取得することができる。同様の理由により、サンプル値ＳＭＦ[２Ｐ−１：０]のうち、“１”を示すフォールエッジデータＦＥＧ［ｋ］と同じビット位置のサンプル値ＳＭＦ［ｋ］は、データ信号ＤＱ［ｙ］が示す、フォールエッジに応じたリードデータＲＤの値を示す可能性が高くなり、当該リードデータＲＤの値を適切に取得することができる。
【０２３３】
また、以上のようにして、上位制御回路３１が設定データＳＥＴ２Ａ[Ｘ−１：０]及び設定データＳＥＴ１２Ａ−０[Ｘ−１：０]〜ＳＥＴ１２Ａ−７[Ｘ−１：０]を調整することによって、サイクル単位で調整された、データストローブ信号ＤＱＳ及びデータ信号ＤＱ[０]〜ＤＱ[７]の間でのスキューが、サンプリング期間単位で細かく調整される。
【０２３４】
ステップｓ８が実行されると、ステップｓ９において、上位制御回路３１は、データストローブ線ＤＱＳＬ及びデータ線ＤＱＬ［０］〜ＤＱＬ［７］のそれぞれのプルダウンを解除する。これにより、データストローブ信号ＤＱＳ及びデータ線ＤＱ[０]〜ＤＱ[７]の信号レベルが不定となる。
【０２３５】
次にステップｓ１０において、上位制御回路３１は、記憶装置２のＭＰＲモードの設定を解除し、ステップｓ１１において、ノーマルイネーブル信号ＥＮｎｍをＨｉｇｈレベルに設定して、制御装置３の動作モードをトレーニングモードからノーマルモードに変化する。以後、トレーニングモードでの設定データＳＥＴ１Ａ［１：０］等の調整を「初期調整」と呼ぶ。
【０２３６】
＜ノーマルモード＞
図８７〜８９はＤＱＳ制御回路３６の動作を示すフローチャートである。図８７〜８９は設定データ調整回路３６０、設定データ調整回路３６１及び選択回路３６２の動作をそれぞれ示している。
【０２３７】
図８９に示されるように、選択回路３６２は、ステップｓ５１において、クロック信号ＣＬＫのライスエッジを検出すると、ステップｓ５２において、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルか否かを判定する。選択回路３６２は、ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルのときには、ステップｓ５３において、上位制御回路３１からの設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。そして、選択回路３６２はアップデイトイネーブル信号ＥＮｕｐｄをＬｏｗレベルに設定する。
【０２３８】
ステップｓ５２において、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルのときには、選択回路３６２は、ステップｓ５４において、リード状態信号ＲＤｎｏｗがＨｉｇｈレベルか否かを判定する。リード状態信号ＲＤｎｏｗがＬｏｗレベルのときには、ステップｓ５５において、選択回路３６２は、設定データ調整回路３６０からの設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。そして、選択回路３６２はアップデイトイネーブル信号ＥＮｕｐｄをＨｉｇｈレベルに設定する。
【０２３９】
ステップｓ５４において、リード状態信号ＲＤｎｏｗがＨｉｇｈレベルのときには、選択回路３６２は、ステップｓ５６において、設定データ調整回路３６１からの設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。そして、選択回路３６２はアップデイトイネーブル信号ＥＮｕｐｄをＬｏｗレベルに設定する。
【０２４０】
選択回路３６２は、クロック信号ＣＬＫのライズエッジが検出されるたびに、ステップｓ５２以降の処理を実行する。
【０２４１】
このように、選択回路３６２は、トレーニングモードにおいて、設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。したがって、トレーニングモードからノーマルモードに切り替わった直後においては、ＤＱＳ制御回路３６からは、初期調整後の設定データＳＥＴ１［１：０］．ＳＥＴ２［Ｘ−１：０］がＤＱＳエッジ検出回路１０に出力される。
【０２４２】
また、選択回路３６２は、ノーマルモードでは、リード処理中のときには、設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力し、リード処理中ではないときには、設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１[１：０]，ＳＥＴ２[Ｘ−１：０]として出力する。
【０２４３】
また、選択回路３６２から出力されるアップデイトイネーブル信号ＥＮｕｐｄはリード処理中にはＬｏｗレベルとなり、リード処理中ではないときにはＨｉｇｈレベルとなる。
【０２４４】
次に設定データ調整回路３６０の動作について説明する。図８７に示されるように、設定データ調整回路３６０は、ステップｓ２１において、クロック信号ＣＬＫのライスエッジを検出すると、ステップｓ２２において、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルか否かを判定する。設定データ調整回路３６０は、ノーマルイネーブル信号ＥＮｎｍがＬｏｗレベルのときには、ステップｓ２３において、上位制御回路３１からの設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]とし、ステップｓ３２において、設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]を出力する。したがって、トレーニングモードにおいては、設定データＳＥＴ１Ｂ[１：０]＝設定データＳＥＴ１Ａ[１：０]となり、設定データＳＥＴ２Ｂ[Ｘ−１：０]＝設定データＳＥＴ２Ａ[Ｘ−１：０]となる。
【０２４５】
一方で、ステップｓ２２において、ノーマルイネーブル信号ＥＮｎｍがＨｉｇｈレベルのとき、つまりノーマルモードにおいては、設定データ調整回路３６０は、タイミング変化検出回路３５からのアップ信号ＵｐがＨｉｇｈレベルか否かを判定する。アップ信号ＵｐがＬｏｗレベルのときには、設定データ調整回路３６０は、ステップｓ２６において、タイミング変化検出回路３５からのダウン信号ＤｗがＨｉｇｈレベルか否かを判定する。設定データ調整回路３６０は、ステップｓ２４において、アップ信号ＵｐがＨｉｇｈレベルのときには、ステップｓ２５において、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値を１つ増加させる。そして、設定データ調整回路３６０はステップｓ２６を実行する。
【０２４６】
ステップｓ２６において、ダウン信号ＤｗがＬｏｗレベルのときには、設定データ調整回路３６０はステップｓ２８を実行する。一方で、ダウン信号ＤｗがＨｉｇｈレベルのときには、設定データ調整回路３６０は、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値を１つ減少させる。
【０２４７】
ここで、タイミング変化検出回路３５は、上述のように、状態検出回路３４が出力するＤＱＳ状態信号ＤＱＳｖがＨｉｇｈレベルを示す間、つまりデータストローブ信号ＤＱＳの信号レベルが確定している間、ライスエッジデータＲＥＧ[２Ｐ−１：０]に基づいて、データストローブ信号ＤＱＳのエッジのタイミングの変化を検出する。具体的には、タイミング変化検出回路３５は、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、中央付近のビット位置、たとえばビット位置Ｐからずれているか否かを判定する。これは、データストローブ信号ＤＱＳのライズエッジのタイミングが、ライズエッジ検出期間の中央付近からずれているかを判定することと等価である。
【０２４８】
タイミング変化検出回路３５は、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも上位側にずれている場合には、アップ信号ＵｐをＨｉｇｈレベル、ダウン信号ＤｗをＬｏｗレベルに設定する。つまり、タイミング変化検出回路３５は、データストローブ信号ＤＱＳのライズエッジのタイミングが、ライズエッジ検出期間の中央付近よりも後方にずれている場合に、アップ信号ＵｐをＨｉｇｈレベル、ダウン信号ＤｗをＬｏｗレベルに設定する。
【０２４９】
一方で、タイミング変化検出回路３５は、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも下位側にずれている場合には、アップ信号ＵｐをＬｏｗレベル、ダウン信号ＤｗをＨｉｇｈレベルに設定する。つまり、タイミング変化検出回路３５は、データストローブ信号ＤＱＳのライズエッジのタイミングが、ライズエッジ検出期間の中央付近よりも前方にずれている場合に、アップ信号ＵｐをＬｏｗレベル、ダウン信号ＤｗをＨｉｇｈレベルに設定する。
【０２５０】
なお、タイミング変化検出回路３５は、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐと一致する場合には、アップ信号Ｕｐ及びダウン信号ＤｗをともにＬｏｗレベルに設定する。また、ＤＱＳ状態信号ＤＱＳｖがＬｏｗレベルのときには、タイミング変化検出回路３５は、アップ信号Ｕｐ及びダウン信号ＤｗをともにＬｏｗレベルに設定する。
【０２５１】
タイミング変化検出回路３５は、クロック信号ＣＬＫのライズエッジに同期してライズエッジデータＲＥＧ[２Ｐ−１：０]が入力されるたびに、上記の処理を行う。
【０２５２】
上述のように、ステップｓ２４においてアップ信号ＵｐがＨｉｇｈレベルのときには、ステップｓ２５において設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が１つ増加する。したがって、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも上位側にずれている場合には、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が１つ増加する。
【０２５３】
またステップｓ２６においてダウン信号ＵｐがＨｉｇｈレベルのときには、ステップｓ２７において設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が１つ減少する。したがって、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも下位側にずれている場合には、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が１つ減少する。
【０２５４】
ステップｓ２８において、設定データ調整回路３６０は、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が第１基準値以上であるか否かを判定する。第１基準値は、例えば、ＤＱＳエッジ回路１０の選択対象単位保持回路１１０から出力される選択対象単位を構成するサンプル値ＳＭ１１［２Ｐ×Ｍ−１：０］の個数（２Ｐ×Ｍ）から２Ｐ（１サイクル分）を差し引いて得られる値（２Ｐ×（Ｍ−１））に設定される。設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が第１基準値以上である場合には、設定データ調整回路３６０は、ステップｓ２９において、設定データＳＥＴ１Ｂ[１：０]の値を１つ増加し、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値を２Ｐ減少する。その後、設定データ調整回路３６０はステップｓ３０を実行する。一方で、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が第１基準値未満である場合には、設定データ調整回路３６０はステップｓ３０を実行する。
【０２５５】
ステップｓ３０では、設定データ調整回路３６０は、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が第２基準値以上であるか否かを判定する。第２基準値は第１基準値よりも小さい値である。第２基準値は、例えば、２Ｐ（１サイクル分）に対して、エッジ検出単位を構成するＳＭ１３[Ｙ−１：０]の個数Ｙを足し合わせて得られる値（２Ｐ＋Ｙ）に設定される。設定データ調整回路３６０は、設定データＳＥＴ２Ｂ[Ｘ−１：０]が第２基準値以下の場合には、ステップｓ３１において、設定データＳＥＴ１Ｂ[１：０]の値を１つ減少し、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値を２Ｐ増加する。その後、設定データ調整回路３６０は、ステップｓ３２を実行して、設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]を出力する。ステップｓ３０において、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が第２基準値未満である場合には、設定データ調整回路３６０はステップｓ３２を実行して、設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]を出力する。
【０２５６】
設定データ調整回路３６０は、クロック信号ＣＬＫのライズエッジが検出されるたびに、ステップｓ２２以降の処理を実行する。
【０２５７】
このように、設定データ調整回路３６０は、トレーニングモードにおいて、上位制御回路３１からの設定データＳＥＴ１Ａ[１：０]，ＳＥＴ２Ａ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１Ｂ［１：０］，ＳＥＴ２Ｂ［Ｘ−１］としている。そして、設定データ調整回路３６０は、トレーニングモードからノーマルモードになると、アップ信号Ｕｐ及びダウン信号Ｄｗに基づいて、設定データＳＥＴ１Ｂ［１：０］，ＳＥＴ２Ｂ［Ｘ−１］を調整している。したがって、設定データ調整回路３６０は、ノーマルモードにおいて、初期調整後の設定データＳＥＴ１Ｂ［１：０］，ＳＥＴ２Ｂ［Ｘ−１：０］をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整する。
【０２５８】
次に設定データ調整回路３６１の動作について説明する。図８８に示されるように、設定データ調整回路３６１は、ステップｓ４１において、クロック信号ＣＬＫのライスエッジを検出すると、ステップｓ４２において、アップデイトイネーブル信号ＥＮｕｐｄがＨｉｇｈレベルか否かを判定する。設定データ調整回路３６１は、アップデイトイネーブル信号ＥＮｕｐｄがＨｉｇｈレベルのときには、つまりノーマルモードにおいてリード処理中ではないときには、ステップｓ４３において、設定データ調整回路３６０からの設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]とし、ステップｓ４４において、設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]を出力する。したがって、ノーマルモードにおいてリード処理中ではないときには、設定データＳＥＴ１Ｃ[１：０]＝設定データＳＥＴ１Ｂ[１：０]となり、設定データＳＥＴ２Ｃ[Ｘ−１：０]＝設定データＳＥＴ２Ｂ[Ｘ−１：０]となる。
【０２５９】
一方で、ステップｓ４２において、アップデイトイネーブル信号ＥＮｕｐｄがＬｏｗレベルのときには、つまりトレーニングモードあるいはリード処理中のときには、設定データ調整回路３６１は、ステップｓ４５において、アップ信号ＵｐがＨｉｇｈレベルか否かを判定する。アップ信号ＵｐがＬｏｗレベルのときには、設定データ調整回路３６１は、ステップｓ４７において、ダウン信号ＤｗがＨｉｇｈレベルか否かを判定する。設定データ調整回路３６１は、アップ信号ＵｐがＨｉｇｈレベルのときには、ステップｓ４６において、設定データＳＥＴ２Ｃ[Ｘ−１：０]の値を１つ増加させる。そして、設定データ調整回路３６１はステップｓ４７を実行する。
【０２６０】
ステップｓ４７において、ダウン信号ＤｗがＬｏｗレベルのときには、設定データ調整回路３６１はステップｓ４４を実行して、設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]を出力する。一方で、ステップｓ４７において、ダウン信号ＤｗがＨｉｇｈレベルのときには、ステップｓ４８において、設定データ調整回路３６１は、設定データＳＥＴ２Ｃ[Ｘ−１：０]の値を１つ減少させる。そして、設定データ調整回路３６１はステップｓ４４を実行して、設定データＳＥＴ１Ｃ[１：０]，ＳＥＴ２Ｃ[Ｘ−１：０]を出力する。
【０２６１】
設定データ調整回路３６１は、クロック信号ＣＬＫのライズエッジが検出されるたびに、ステップｓ４２以降の処理を実行する。
【０２６２】
このように、設定データ調整回路３６１は、ノーマルモードにおいてリード処理中ではないときには、設定データ調整回路３６０で調整される設定データＳＥＴ１Ｂ[１：０]，ＳＥＴ２Ｂ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１Ｃ［１：０］，ＳＥＴ２Ｃ［Ｘ−１］として出力する。したがって、ノーマルモードにおいてリード処理中ではないときには、設定データ調整回路３６１から出力される設定データＳＥＴ１Ｃ［１：０］，ＳＥＴ２Ｃ［Ｘ−１］は、アップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整される。また、設定データ調整回路３６１は、リード処理中のときには、アップ信号Ｕｐ及びダウン信号Ｄｗに基づいて設定データＳＥＴ２Ｃ[Ｘ−１：０]を調整するものの、設定データＳＥＴ１Ｃ［１：０］は調整しない。したがって、リード処理中では、設定データ調整回路３６１から出力される設定データＳＥＴ２Ｃ［Ｘ−１］はアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整され、リード処理中では、リード処理中ではない状態からリード処理中に変化した際の設定データＳＥＴ１Ｂ［１：０］が常に設定データＳＥＴ１Ｃ［１：０］として設定データ調整回路３６１から出力される。
【０２６３】
以上の説明から理解できるように、ＤＱＳ制御回路３６は、トレーニングモードからノーマルモードに切り替わった直後においては、ＤＱＳエッジ遅延時間ＤＴｄｑｓに基づいて調整された設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］をＤＱＳエッジ検出回路１０に出力する。そして、ノーマルモードにおいてリード処理中ではないときには、ＤＱＳ制御回路３６は、設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］の両方をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整する。一方で、ノーマルモードにおいてリード処理中のときには、ＤＱＳ制御回路３６は、設定データＳＥＴ１［１：０］，ＳＥＴ２［Ｘ−１：０］のうち設定データＳＥＴ２［Ｘ−１：０］だけをアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整する。
【０２６４】
ＤＱＳ制御回路３６がこのように設定データＳＥＴ２［Ｘ−１：０］を制御することによって、データストローブ信号ＤＱＳのエッジのタイミングのロングタームジッタにより、当該エッジのタイミングが徐々に変化する場合であっても、ＤＱＳエッジ検出回路１０では、上述の図８６に示されるように、ライズエッジ検出期間１９５Ｒの中央付近にデータストローブ信号ＤＱＳのライズエッジを、フォールエッジ検出期間１９５Ｆの中央付近にデータストローブ信号ＤＱＳのフォールエッジを位置させることができる。よって、
トレーニングモードからノーマルモードに切り替わった後に、データストローブ信号ＤＱＳのエッジのタイミングが徐々に変化したとしも、データリード回路５は、リードデータＲＤ０の値を適切に取得することができる。以下にこの点について説明する。
【０２６５】
設定データＳＥＴ２[Ｘ−１：０]の値は、処理単位決定回路１２０の決定回路１２３が、選択対象単位からエッジ検出単位を選択する範囲を示している。具体的には、設定データＳＥＴ２[Ｘ−１：０]の値が大きいほど、選択対象単位を構成する複数のサンプル値ＳＭ１２[２Ｐ×Ｍ−２：１]のうち、上位側のサンプル値ＳＭ１２[α]〜ＳＭ１２[α＋Ｙ−１]がエッジ検出単位として選択される。つまり、設定データＳＥＴ２[Ｘ−１：０]の値が大きいほど、選択対象単位でのエッジ検出単位の範囲が上位側に移動する。
【０２６６】
上述の図８７に示されるように、ステップｓ２４においてアップ信号ＵｐがＨｉｇｈレベルのときには、ステップｓ２５において設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が１つ増加する。ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも上位側にずれている場合にアップ信号ＵｐがＨｉｇｈレベルに設定されることから、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも上位側にずれている場合には、設定データＳＥＴ２[Ｘ−１：０]の値が１つ増加する。設定データＳＥＴ２[Ｘ−１：０]の値が１つ増加すると、選択対象単位でのエッジ検出単位の範囲が１ビットだけ上位側に移動する。つまり、選択対象単位でのライズエッジ検出単位の範囲が１ビットだけ上位側に移動する。したがって、ライズエッジデータＲＥＧ[２Ｐ−１：０]において、ビット位置Ｐよりも上位側にずれていた“１”を示すデータのビット位置が、ビット位置Ｐに近づくようになる。つまり、データストローブ信号ＤＱＳのライズエッジのタイミングがライズエッジ検出期間１９５Ｒの中央付近に近づくようになる。
【０２６７】
一方で、上述のステップｓ２６においてダウン信号ＤｗがＨｉｇｈレベルのときには、ステップｓ２７において設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が１つ減少する。ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも下位側にずれている場合にダウン信号ＤｗがＨｉｇｈレベルに設定されることから、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置が、ビット位置Ｐよりも下位側にずれている場合には、設定データＳＥＴ２[Ｘ−１：０]の値が１つ減少する。設定データＳＥＴ２[Ｘ−１：０]の値が１つ減少すると、選択対象単位でのエッジ検出単位の範囲が１ビットだけ下位側に移動する。つまり、選択対象単位でのライズエッジ検出単位の範囲が１ビットだけ下位側に移動する。したがって、ライズエッジデータＲＥＧ[２Ｐ−１：０]において、ビット位置Ｐよりも下位側にずれていた“１”を示すデータのビット位置が、ビット位置Ｐに近づくようになる。つまり、データストローブ信号ＤＱＳのライズエッジのタイミングがライズエッジ検出期間１９５Ｒの中央付近に近づくようになる。
【０２６８】
本実施の形態では、ノーマルモードにおいては、設定データＳＥＴ２［Ｘ−１：０］が常にアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整されることから、データストローブ信号ＤＱＳのエッジのタイミングが徐々に変化したとしても、ライズエッジデータＲＥＧ[２Ｐ−１：０]において“１”を示すデータのビット位置を中央付近のビット位置とすることができる。よって、データストローブ信号ＤＱＳのエッジのタイミングが徐々に変化したとしても、データストローブ信号ＤＱＳのライズエッジのタイミングをライズエッジ検出期間１９５Ｒの中央付近に位置させることができる。また、フォールエッジのタイミングは、ライズエッジのタイミングと同様に変化することから、設定データＳＥＴ２［Ｘ−１：０］をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整することによって、データストローブ信号ＤＱＳのフォールエッジのタイミングをフォールエッジ検出期間１９５Ｆの中央付近に位置させることができる。
【０２６９】
特に、本実施の形態では、リード処理中に設定データＳＥＴ２［Ｘ−１：０］をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整することから、リードコマンドＲＤＣが連続して発行され、リードデータＲＤが長期間連続して読み出される場合にデータストローブ信号ＤＱＳのエッジのタイミングが変化するときであっても、データストローブ信号ＤＱＳのライズエッジ及びフォールエッジのタイミングを、ライズエッジ検出期間１９５Ｒ及びフォールエッジ検出期間１９５Ｆの中央付近にそれぞれ位置させることができる。よって、記憶装置２から長期間連続してリードデータＲＤが読み出される場合に、データストローブ信号ＤＱＳにおいてエッジ間隔が長くなったり短くなったりしたとしても、当該リードデータＲＤを適切に取得することができる。
【０２７０】
ここで、データストローブ信号ＤＱＳのエッジのタイミングが徐々に早くなっていき、アップ信号Ｕｐが連続してＨｉｇｈレベルを示すことにより、設定データＳＥＴ２［Ｘ−１：０］の値が最大値である“Ｑ−１”になってしまった後は、アップ信号ＵｐがＨｉｇｈレベルを示す場合であっても、設定データＳＥＴ２［Ｘ−１：０］の値を大きくすることができない。同様に、設定データＳＥＴ２［Ｘ−１：０］の値が最小値である“０”になってしまった後は、ダウン信号ＤｗがＨｉｇｈレベルを示す場合であっても、設定データＳＥＴ２［Ｘ−１：０］の値を小さくすることができない。
【０２７１】
このような場合には、データストローブ信号ＤＱＳのライズエッジ及びフォールエッジのタイミングが、ライズエッジ検出期間１９５Ｒ及びフォールエッジ検出期間１９５Ｆの中央付近から端の方へ徐々に近づいていき、比較対象リード回路９００のようにリードデータＲＤを適切に取得できない可能性がある。
【０２７２】
そこで、本実施の形態では、上述のステップｓ２８において、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が第１基準値（上記の例では、２Ｐ×（Ｍ−１））以上である場合には、設定データＳＥＴ１Ｂ［１：０］の値を１つ増加するとともに、設定データＳＥＴ２Ｂ［Ｘ−１：０］の値を２Ｐ（１サイクル分）減少している。つまり、選択対象単位が得られるサンプリング期間である第２処理単位期間１９２を、設定データＳＥＴ１Ｂ［１：０］の値を１つ増加しない場合よりも１サイクル分遅れさせ、かつ選択対象単位でのエッジ検出単位の範囲を１サイクル分だけ下位側に移動させている。これにより、選択対象単位でのエッジ検出単位の範囲を端の方から中央の方に移動させつつ、設定データＳＥＴ１Ｂ［１：０］の値を１つ増加しない場合と同じエッジ検出単位を選択することができる。よって、アップ信号Ｕｐが連続してＨｉｇｈレベルを示す場合であっても、より確実に設定データＳＥＴ２［Ｘ−１：０］の値を大きくすることができ、データストローブ信号ＤＱＳのライズエッジ及びフォールエッジを、ライズエッジ検出期間１９５Ｒ及びフォールエッジ検出期間１９５Ｆの中央付近に位置させることができる。
【０２７３】
同様に、本実施の形態では、設定データＳＥＴ２Ｂ[Ｘ−１：０]の値が第２基準値（上記の例では、２Ｐ＋Ｙ）以下である場合には、設定データＳＥＴ１Ｂ［１：０］の値を１つ減少するとともに、設定データＳＥＴ２Ｂ［Ｘ−１：０］の値を２Ｐ（１サイクル分）増加している。つまり、選択対象単位が得られるサンプリング期間である第２処理単位期間１９２を、設定データＳＥＴ１Ｂ［１：０］の値を１つ減少しない場合よりも１サイクル分早くし、かつ選択対象単位でのエッジ検出単位の範囲を１サイクル分だけ上位側に移動させている。これにより、選択対象単位でのエッジ検出単位の範囲を端の方から中央の方に移動させつつ、設定データＳＥＴ１Ｂ［１：０］の値を１つ減少しない場合と同じエッジ検出単位を選択することができる。よって、ダウン信号Ｄｗが連続してＨｉｇｈレベルを示す場合であっても、より確実に設定データＳＥＴ２［Ｘ−１：０］の値を小さくすることができ、データストローブ信号ＤＱＳのライズエッジ及びフォールエッジを、ライズエッジ検出期間１９５Ｒ及びフォールエッジ検出期間１９５Ｆの中央付近に位置させることができる。
【０２７４】
なお、リード処理中に、設定データＳＥＴ１Ｂ［１：０］の値を変化させると、バースト的に出力される各リードデータＲＤを適切に取得することができないことから、本実施の形態では、上述のように、設定データＳＥＴ１Ｂ［１：０］の調整はリード処理中ではないときに行っている。
【０２７５】
ＤＱ制御回路３７−ｙは、ＤＱＳ制御回路３６と同じ回路構成を有しており、ＤＱＳ制御回路３６と同様に動作する。ＤＱ制御回路３７−ｙでは、選択回路３７２は、選択回路３６２と同様に、トレーニングモードにおいて、設定データＳＥＴ１１Ａ−ｙ[１：０]，ＳＥＴ１２Ａ−ｙ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]として出力する。したがって、トレーニングモードからノーマルモードに切り替わった直後においては、ＤＱ制御回路３７−ｙからは、初期調整後の設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］がＲＤ取得回路２０−ｙに出力される。
【０２７６】
また、選択回路３７２は、ノーマルモードでは、リード処理中のときには、設定データＳＥＴ１１Ｂ−ｙ[１：０]，ＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]として出力し、リード処理中ではないときには、設定データＳＥＴ１１Ｃ−ｙ[１：０]，ＳＥＴ１２Ｃ−ｙ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１１−ｙ[１：０]，ＳＥＴ１２−ｙ[Ｘ−１：０]として出力する。
【０２７７】
また、選択回路３７２から出力されるアップデイトイネーブル信号ＥＮｕｐｄ−ｙはリード処理中にはＬｏｗレベルとなり、リード処理中ではないときにはＨｉｇｈレベルとなる。
【０２７８】
設定データ調整回路３７０は、設定データ調整回路３６０と同様に、トレーニングモードにおいて、上位制御回路３１からの設定データＳＥＴ１１Ａ−ｙ[１：０]，ＳＥＴ１２Ａ−ｙ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１１Ｂ−ｙ［１：０］，ＳＥＴ１２Ｂ−ｙ［Ｘ−１］としている。そして、設定データ調整回路３７０は、トレーニングモードからノーマルモードになると、アップ信号Ｕｐ及びダウン信号Ｄｗに基づいて、設定データＳＥＴ１１Ｂ−ｙ［１：０］，ＳＥＴ１２Ｂ−ｙ［Ｘ−１］を調整している。したがって、設定データ調整回路３７０は、ノーマルモードにおいて、初期調整後の設定データＳＥＴ１１Ｂ−ｙ［１：０］，ＳＥＴ１２Ｂ−ｙ［Ｘ−１：０］をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整する。
【０２７９】
設定データ調整回路３７１は、設定データ調整回路３６１と同様に、ノーマルモードにおいてリード処理中ではないときには、設定データ調整回路３７０で調整される設定データＳＥＴ１１Ｂ−ｙ[１：０]，ＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]をそれぞれ設定データＳＥＴ１１Ｃ−ｙ［１：０］，ＳＥＴ１２Ｃ−ｙ［Ｘ−１］として出力する。したがって、ノーマルモードにおいてリード処理中ではないときには、設定データ調整回路３７１から出力される設定データＳＥＴ１１Ｃ−ｙ［１：０］，ＳＥＴ１２Ｃ−ｙ［Ｘ−１］は、アップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整される。また、設定データ調整回路３７１は、リード処理中のときには、アップ信号Ｕｐ及びダウン信号Ｄｗに基づいて設定データＳＥＴ１２Ｃ−ｙ[Ｘ−１：０]を調整するものの、設定データＳＥＴ１１Ｃ−ｙ［１：０］は調整しない。したがって、リード処理中では、設定データ調整回路３７１から出力される設定データＳＥＴ１２Ｃ−ｙ［Ｘ−１］はアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整され、リード処理中では、リード処理中ではない状態からリード処理中に変化した際の設定データＳＥＴ１１Ｂ−ｙ［１：０］が常に設定データＳＥＴ１１Ｃ−ｙ［１：０］として設定データ調整回路３７１から出力される。
【０２８０】
このような構成のＤＱ制御回路３７−ｙは、トレーニングモードからノーマルモードに切り替わった直後においては、ＤＱエッジ遅延時間ＤＴｄｑ−ｙに基づいて調整された設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］をＲＤ取得回路２０−ｙに出力する。そして、ノーマルモードにおいてリード処理中ではないときには、ＤＱ制御回路３７−ｙは、設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］の両方をアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整する。一方で、ノーマルモードにおいてリード処理中のときには、ＤＱ制御回路３７−ｙは、設定データＳＥＴ１１−ｙ［１：０］，ＳＥＴ１２−ｙ［Ｘ−１：０］のうち設定データＳＥＴ１２−ｙ［Ｘ−１：０］だけをアップ信号Ｕｐ及びダウン信号Ｄｗに基づいて調整する。
【０２８１】
ＤＱＳ制御回路３７−ｙがこのように設定データＳＥＴ１２−ｙ［Ｘ−１：０］を制御することによって、データストローブ信号ＤＱＳのエッジのタイミングのロングタームジッタにより、当該エッジのタイミングが徐々に変化し、それに応じてリードデータＲＤの出力タイミングが徐々に変化する場合であっても、ＲＤ取得回路２０−ｙでは、ライズ側データ取得単位を構成するサンプル値ＳＭＲ［２Ｐ−１：０］が得られるサンプリング期間１９６Ｒの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのライズエッジに対応するリードデータＲＤｒの出力期間の中央が位置するようになり、フォール側データ取得単位を構成するサンプル値ＳＭＦ［２Ｐ−１：０］が得られるサンプリング期間１９６Ｆの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのフォールエッジに対応するリードデータＲＤｆの出力期間の中央が位置するようになる。
【０２８２】
また、ＤＱＳ制御回路３７−ｙにおいても、設定データＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]の値が第１基準値以上である場合には、設定データＳＥＴ１１Ｂ−ｙ［１：０］の値が１つ増加するとともに、設定データＳＥＴ１２Ｂ−ｙ［Ｘ−１：０］の値が２Ｐ減少する。つまり、選択対象単位が得られるサンプリング期間である第２処理単位期間を、設定データＳＥＴ１１Ｂ−ｙ［１：０］の値を１つ増加しない場合よりも１サイクル分遅れさせ、かつ選択対象単位でのデータ取得単位の範囲を１サイクル分だけ下位側に移動させている。これにより、選択対象単位でのデータ取得単位の範囲を端の方から中央の方に移動させつつ、設定データＳＥＴ１１Ｂ−ｙ［１：０］の値を１つ増加しない場合と同じデータ取得単位を選択することができる。よって、アップ信号Ｕｐが連続してＨｉｇｈレベルを示す場合であっても、設定データＳＥＴ１２−ｙ［Ｘ−１：０］の値をより確実に大きくすることができる。その結果、ライズ側データ取得単位が得られるサンプリング期間１９６Ｒの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのライズエッジに対応するリードデータＲＤｒの出力期間の中央をより確実に位置させることができる。また、フォール側データ取得単位が得られるサンプリング期間１９６Ｆの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのフォールエッジに対応するリードデータＲＤｆの出力期間の中央をより確実に位置させることができる。
【０２８３】
同様に、ＤＱＳ制御回路３７−ｙでは、設定データＳＥＴ１２Ｂ−ｙ[Ｘ−１：０]の値が第２基準値以下である場合には、設定データＳＥＴ１１Ｂ−ｙ［１：０］の値が１つ減少するとともに、設定データＳＥＴ１２Ｂ−ｙ［Ｘ−１：０］の値が２Ｐ増加する。つまり、選択対象単位が得られるサンプリング期間である第２処理単位期間を、設定データＳＥＴ１１Ｂ−ｙ［１：０］の値を１つ減少しない場合よりも１サイクル分早くし、かつ選択対象単位でのデータ取得単位の範囲を１サイクル分だけ上位側に移動させている。これにより、選択対象単位でのデータ取得単位の範囲を端の方から中央の方に移動させつつ、設定データＳＥＴ１１Ｂ−ｙ［１：０］の値を１つ減少しない場合と同じデータ取得単位を選択することができる。よって、ダウン信号Ｄｗが連続してＨｉｇｈレベルを示す場合であっても、設定データＳＥＴ１２−ｙ［Ｘ−１：０］の値をより確実に小さくすることができる。その結果、ライズ側データ取得単位が得られるサンプリング期間１９６Ｒの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのライズエッジに対応するリードデータＲＤｒの出力期間の中央をより確実に位置させることができる。また、フォール側データ取得単位が得られるサンプリング期間１９６Ｆの中央付近に、データ信号ＤＱ[ｙ]での、データストローブ信号ＤＱＳのフォールエッジに対応するリードデータＲＤｆの出力期間の中央をより確実に位置させることができる。
【０２８４】
なお、上記と同様に、リード処理中に、設定データＳＥＴ１１Ｂ−ｙ［１：０］の値を変化させると、バースト的に出力される各リードデータＲＤを適切に取得することができないことから、設定データＳＥＴ１１Ｂ−ｙ［１：０］の調整はリード処理中ではないときに行っている。
【０２８５】
以上のように、本実施の形態に係るデータリード回路５では、第２処理単位期間１９２においてオーバーサンプリング回路１００で得られた、データストローブ信号ＤＱＳの第１所定数のサンプル値を選択対象単位として保持し、当該選択対象単位から、当該第１所定数よりも小さい第２所定数のサンプル値から成るエッジ検出単位を決定している。これにより、データストローブ信号ＤＱＳについての比較的多い数のサンプル値から、エッジを検出する際に使用する複数のサンプル値を適切に決定することができる。よって、データ信号ＤＱが示すリードデータＲＤを適切に取得することができる。
【０２８６】
また本実施の形態では、データストローブ信号ＤＱＳのライズエッジとフォールエッジとを別々に検出していることから、ライズエッジ検出期間及びフォールエッジ検出期間を大きく設定することができる。上記の例では、１サイクル分のライズエッジ検出期間及びフォールエッジ検出期間を設定している。
【０２８７】
一方で、比較対象リード回路９００では、データストローブ信号ＤＱＳのライズエッジとフォールエッジとを区別せずに検出していることから、処理単位期間９９０は半サイクル分となり、データストローブ信号ＤＱＳのエッジが処理単位期間９９０の始点あるいは終点の近傍に位置しやくなる。よって、処理単位期間９９０においてデータストローブ信号ＤＱＳのエッジがまったく存在しない状況や、処理単位期間９９０においてデータストローブ信号ＤＱＳのエッジが複数存在する状況が発生しやすい。
【０２８８】
本実施の形態では、データストローブ信号ＤＱＳのライズエッジとフォールエッジとを別々に検出することによって、半サイクルよりも大きいライズエッジ検出期間及びフォールエッジ検出期間を設定することができる。したがって、データストローブ信号ＤＱＳのライズエッジのタイミングが変化したとしても、当該ライズエッジがライズエッジ検出期間の始点あるいは終点の近傍に位置しにくくなり、ライズエッジ検出期間においてライズエッジがまったく存在しない状況や、複数のライズエッジが存在する状況が発生しにくくなる。同様に、データストローブ信号ＤＱＳのフォールエッジのタイミングが変化したとしても、当該フォールエッジがフォールエッジ検出期間の始点あるいは終点の近傍に位置しにくくなり、フォールエッジ検出期間においてフォールエッジがまったく存在しない状況や、複数のフォールエッジが存在する状況が発生しにくくなる。よって、リードデータＲＤをより適切に取得することができる。
【０２８９】
以上のように、半導体記憶装置１は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０２９０】
２  記憶装置
５  データリード回路
１０  データストローブエッジ検出回路
２０−０〜２０−７  リードデータ取得回路
３０  制御回路
１００，２００  オーバーサンプリング回路
１１０，２１０  選択対象単位保持回路
１２０，２２０  処理単位決定回路
１３０，２３０  エッジ検出回路
１３１，２３１  ライズエッジ検出回路
１３３，２３３  フォールエッジ検出回路
２４０  データ取得回路
２４１  ライズ側データ取得回路
２４４  フォール側データ取得回路
【図１】
2015197933.tif 000003
【図２】
2015197933.tif 000004
【図３】
2015197933.tif 000005
【図４】
2015197933.tif 000006
【図５】
2015197933.tif 000007
【図６】
2015197933.tif 000008
【図７】
2015197933.tif 000009
【図８】
2015197933.tif 000010
【図９】
2015197933.tif 000011
【図１０】
2015197933.tif 000012
【図１１】
2015197933.tif 000013
【図１２】
2015197933.tif 000014
【図１３】
2015197933.tif 000015
【図１４】
2015197933.tif 000016
【図１５】
2015197933.tif 000017
【図１６】
2015197933.tif 000018
【図１７】
2015197933.tif 000019
【図１８】
2015197933.tif 000020
【図１９】
2015197933.tif 000021
【図２０】
2015197933.tif 000022
【図２１】
2015197933.tif 000023
【図２２】
2015197933.tif 000024
【図２３】
2015197933.tif 000025
【図２４】
2015197933.tif 000026
【図２５】
2015197933.tif 000027
【図２６】
2015197933.tif 000028
【図２７】
2015197933.tif 000029
【図２８】
2015197933.tif 000030
【図２９】
2015197933.tif 000031
【図３０】
2015197933.tif 000032
【図３１】
2015197933.tif 000033
【図３２】
2015197933.tif 000034
【図３３】
2015197933.tif 000035
【図３４】
2015197933.tif 000036
【図３５】
2015197933.tif 000037
【図３６】
2015197933.tif 000038
【図３７】
2015197933.tif 000039
【図３８】
2015197933.tif 000040
【図３９】
2015197933.tif 000041
【図４０】
2015197933.tif 000042
【図４１】
2015197933.tif 000043
【図４２】
2015197933.tif 000044
【図４３】
2015197933.tif 000045
【図４４】
2015197933.tif 000046
【図４５】
2015197933.tif 000047
【図４６】
2015197933.tif 000048
【図４７】
2015197933.tif 000049
【図４８】
2015197933.tif 000050
【図４９】
2015197933.tif 000051
【図５０】
2015197933.tif 000052
【図５１】
2015197933.tif 000053
【図５２】
2015197933.tif 000054
【図５３】
2015197933.tif 000055
【図５４】
2015197933.tif 000056
【図５５】
2015197933.tif 000057
【図５６】
2015197933.tif 000058
【図５７】
2015197933.tif 000059
【図５８】
2015197933.tif 000060
【図５９】
2015197933.tif 000061
【図６０】
2015197933.tif 000062
【図６１】
2015197933.tif 000063
【図６２】
2015197933.tif 000064
【図６３】
2015197933.tif 000065
【図６４】
2015197933.tif 000066
【図６５】
2015197933.tif 000067
【図６６】
2015197933.tif 000068
【図６７】
2015197933.tif 000069
【図６８】
2015197933.tif 000070
【図６９】
2015197933.tif 000071
【図７０】
2015197933.tif 000072
【図７１】
2015197933.tif 000073
【図７２】
2015197933.tif 000074
【図７３】
2015197933.tif 000075
【図７４】
2015197933.tif 000076
【図７５】
2015197933.tif 000077
【図７６】
2015197933.tif 000078
【図７７】
2015197933.tif 000079
【図７８】
2015197933.tif 000080
【図７９】
2015197933.tif 000081
【図８０】
2015197933.tif 000082
【図８１】
2015197933.tif 000083
【図８２】
2015197933.tif 000084
【図８３】
2015197933.tif 000085
【図８４】
2015197933.tif 000086
【図８５】
2015197933.tif 000087
【図８６】
2015197933.tif 000088
【図８７】
2015197933.tif 000089
【図８８】
2015197933.tif 000090
【図８９】
2015197933.tif 000091