(57)【要約】  高速データ受信回路（１０）は、互いに位相が異なる複数のクロックを生成するデータ受信回路である。また、高速データ受信回路（１０）は、生成した複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号から複数のデータを取得する。また、高速データ受信回路（１０）は、取得した各データがそれぞれ一致するか否かを判定し、他のデータと一致しないデータが存在すると判定した場合には、データの不一致が発生しない方向に生成するクロックの位相を補正する。
2012086017.tif 000002
【特許請求の範囲】
【請求項１】
互いに位相が異なる複数のクロックを生成する生成部と、
前記生成部によって生成された複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号からデータを取得する複数の取得部と、
前記複数の取得部によって取得された各データがそれぞれ一致するか否かを判定する判定部と、
前記判定部によって前記複数の取得部によって取得された各データに他のデータと一致しないデータが存在すると判定された場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正部と、
を有することを特徴とするデータ受信回路。
【請求項２】
前記生成部は、前記複数のクロックとして基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成し、
前記取得部は、前記生成部によって生成された基準クロック及び複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号からデータを取得し、
前記判定部は、前記複数の取得部によって取得された各データのうち、前記基準クロックを用いて取得したデータと他のデータとがそれぞれ一致するか否かを判定し、
前記補正部は、前記判定部によって前記基準クロックを用いて取得したデータと一致しないと判定されたデータが存在する場合には、前記基準クロックの位相を基準として、前記一致しないデータを取得した際に用いたクロックの位相とは逆の方向に、前記基準クロックと複数のクロックとの位相を補正する
ことを特徴とする請求項１に記載のデータ受信回路。
【請求項３】
前記生成部は、
受信したクロック信号の位相を段階的に変更した複数の信号を出力するＤＬＬ回路と、
前記ＤＬＬ回路から出力された複数の信号から、前記基準クロックと複数のクロックとを選択し、選択した各信号を出力するセレクタと
を有し、
前記補正部は、前記基準クロックを用いて取得したデータと一致しないと判定されたデータが存在する場合には、前記基準クロックの位相を基準として該一致しないデータを取得した際に用いたクロックの位相の向きと、該一致しないデータの数とを示す位相補正信号を前記生成部に送信し、
前記セレクタは、前記補正部から送信された位相補正信号に応じて、新たな基準クロックと複数のクロックとを選択することを特徴とする請求項１又は２に記載のデータ受信回路。
【請求項４】
前記セレクタは、前記ＤＬＬ回路から出力された複数の信号から一つの信号を基準クロックとして選択するとともに、当該基準クロックの位相よりも進んだ位相を有する複数の信号と、当該基準クロックの位相よりも遅れた位相を有する複数の信号とをクロックとして選択することを特徴とする請求項３に記載のデータ受信回路。
【請求項５】
前記セレクタは、前記位相補正信号を受信した場合には、直前に基準クロックとして選択した信号の位相を基準として、当該位相補正信号が示す向きとは反対の方向に、当該位相補正信号が示す数と同じ段数だけ位相がずれた信号を新たな基準クロックとして選択することを特徴とする請求項３に記載のデータ受信回路。
【請求項６】
前記セレクタは、前記位相補正信号を受信した場合には、直前に基準クロックとして選択した信号の位相を基準として、当該位相補正信号が示す向きとは反対の方向に、前記データ信号の半周期分だけ位相がずれた信号を、新たな基準クロックとして選択することを特徴とする請求項３に記載のデータ受信回路。
【請求項７】
互いに位相が異なる複数のクロックを生成する生成部と、
前記生成部によって生成された複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号からデータを取得する複数の取得部と、
前記複数の取得部によって取得された各データがそれぞれ一致するか否かを判定する判定部と、
前記判定部によって前記複数の取得部によって取得された各データに、他のデータと一致しないデータが存在すると判定された場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正部と、
を有することを特徴とするデータ受信回路と、
Ｉ／Ｏ装置制御回路と、
Ｉ／Ｏ装置と
を備えることを特徴とする情報処理装置。
【請求項８】
データ信号を受信する情報処理装置によって実行されるプログラムであって、
互いに位相が異なる複数のクロックを生成する生成手順と、
前記生成手順によって生成された複数のクロックのうち、それぞれ異なるクロックを用いて、前記受信したデータ信号から複数のデータを取得する取得手順と、
前記取得手順によって取得された各データがそれぞれ一致するか否かを判定する判定手順と、
前記判定手順によって前記取得手順によって取得された複数のデータに他のデータと一致しないデータが存在すると判定された場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正手順と、
を実行させることを特徴とするデータ受信プログラム。
【請求項９】
データ信号を受信する情報処理装置によって実行される方法であって、
互いに位相が異なる複数のクロックを生成する生成し、
前記生成した複数のクロックのうち、それぞれ異なるクロックを用いて、前記受信したデータ信号から複数のデータを取得し、
前記取得した各データがそれぞれ一致するか否かを判定し、
前記取得した各データに他のデータと一致しないデータが存在すると判定した場合に、データの不一致が発生しない方向に前記生成する複数のクロックの位相を補正することを特徴とするデータ受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ受信回路、情報処理装置、データ受信プログラムおよびデータ受信方法に関する。
【背景技術】
【０００２】
従来、データ信号とクロック信号とを受信し、受信したクロック信号が示すタイミングに従って、データ信号から情報を取り出す技術が知られている。このような技術の一例として、データストローブ信号（以下、ＤＱＳ信号と記載する。）の立ち上がりエッジと立下りエッジとをトリガとして、データバス信号（以下、ＤＱ信号と記載する。）から情報を取り出す高速データ受信回路の技術が知られている。【０００３】
このような高速データ受信回路は、ＤＱＳ信号を受信した場合には、ＤＱ信号の有効領域（読み込み可能範囲）内でデータを取り出すため、受信したＤＱＳ信号の位相をＤＱ信号の位相よりも所定量だけ遅延させる。その後、高速データ受信回路は、位相を遅延させたＤＱＳ信号の立ち上がりエッジと立下りエッジとをトリガとして、ＤＱ信号から情報を取り出す。【０００４】
また、高速データ受信回路は、受信したＤＱＳ信号の位相をＤＱ信号の位相に対して正確に遅延させるため、位相変動量の基準となるクロックを生成し、生成したクロックとＤＱＳ信号との位相ズレを検出する。そして、高速データ受信回路は、検出した位相のズレに基づいて、ＤＱＳ信号の位相を補正し、ＤＱ信号から情報を取得する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００２−５３１９６６号公報
【特許文献２】再公表２００８−０６８８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述したＤＱＳ信号の位相と基準となるクロックの位相とのズレに応じてＤＱＳ信号の位相を補正する技術では、ＤＱ信号の位相とＤＱＳ信号の位相とにそれぞれ異なる変動が生じた場合には、ＤＱ信号から適切に情報を取得できないという問題があった。【０００７】
つまり、高速データ受信回路は、データ信号であるＤＱ信号とクロック信号であるＤＱＳ信号とを受信した場合には、位相変動量の基準となるクロックの位相と受信したＤＱＳ信号の位相とのズレに基づいて、ＤＱＳ信号の位相を補正する。このため、高速データ受信回路は、ＤＱ信号の位相とＤＱＳ信号の位相とに異なる変動が生じた場合には、ＤＱＳ信号の位相に誤った補正を行ってしまう。【０００８】
この結果、高速データ受信回路は、ＤＱ信号の位相とＤＱＳ信号の位相とに異なる変動が生じた場合には、データ化け等を発生させ、ＤＱ信号から適切に情報を取得することができない。つまり、高速データ受信回路は、データ信号の位相とクロック信号の位相とに異なる変動が生じた場合には、データ信号から適切に情報を取得することができない。【０００９】
本願に開示の技術は、一つの側面では、データ信号から情報を適切に取得する。
【課題を解決するための手段】
【００１０】
一つの側面では、互いに位相が異なる複数のクロックを生成するデータ受信回路である。また、データ受信回路は、生成した複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号から複数のデータを取得する。また、データ受信回路は、取得した各データがそれぞれ一致するか否かを判定し、他のデータと一致しないデータが存在すると判定した場合には、データの不一致が発生しない方向に生成するクロックの位相を補正する。
【発明の効果】
【００１１】
本願に開示の技術は、一つの態様によれば、データ信号から情報を適切に取得する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るＩ／Ｏ装置制御回路を説明するための図である。
【図２】図２は、実施例１に係る高速データ受信回路の一例を説明するための図である。
【図３】図３は、実施例１に係るクロック位相調整回路の一例を説明するための図である。
【図４】図４は、初期位相補正処理を説明するための図である。
【図５】図５は、初期位相補正処理における位相の補正量を説明するための図である。
【図６】図６は、状態０の場合に実行する補正処理を説明するための図である。
【図７】図７は、状態１を説明するための図である。
【図８】図８は、状態１の場合に実行する補正処理を説明するための図である。
【図９】図９は、補正処理による補正結果を説明するための図である。
【図１０】図１０は、補正処理と補正処理による結果を説明するための図である。
【図１１】図１１は、状態２の場合に実行する補正処理を説明するための図である。
【図１２】図１２は、位相補正量を説明するための図である。
【図１３】図１３は、実施例１に係る高速データ受信回路の処理の流れを説明するためのフローチャートである。
【図１４】図１４は、位相変動観測処理の流れを説明するためのフローチャートである。
【図１５】図１５は、補正処理の他の例を説明するための図である。
【図１６】図１６は、データ受信プログラムの一例を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して本願に係るデータ受信回路、情報処理装置、データ受信プログラムおよびデータ受信方法について説明する。
【実施例１】
【００１４】
以下の実施例１では、図１を用いて、高速データ受信回路を有するＩ／Ｏ（Input  Output）装置制御回路の一例を説明する。図１は、実施例１に係るＩ／Ｏ装置制御回路を説明するための図である。【００１５】
図１に示すように、実施例１に係るＩ／Ｏ装置制御回路１は、メモリ５に記憶された情報を取得するメモリコントローラの一部として高速データ受信回路１０を有する。また、Ｉ／Ｏ装置制御回路１は、Ｉ／Ｏ装置２、Ｉ／Ｏ装置３、ＣＰＵ（Central  Processing  Unit）４、メモリ５と接続される。【００１６】
このような高速データ受信回路１０は、メモリ５に対して、読み取りコマンドを送信する。すると、メモリ５は、高速データ受信回路１０に対して、データ信号であるＤＱ信号とクロック信号であるＤＱＳ信号とを返信する。そして、高速データ受信回路１０は、ＤＱ信号とＤＱＳ信号とを受信した場合には、受信したＤＱＳ信号に基づくクロックを生成し、生成したクロックを用いて、ＤＱ信号から情報を取得する。【００１７】
また、高速データ受信回路１０は、メモリ５に記憶された情報の取得に先立って、従来技術と同様に、ＤＱＳ信号の位相をずらす量を決定する初期位相補正処理を実行する。なお、初期位相補正処理の具体的な処理内容については、後述する。【００１８】
次に、図２を用いて、高速データ受信回路１０が有する各部について説明する。図２は、実施例１に係る高速データ受信回路の一例を説明するための図である。図２に示す例では、高速データ受信回路１０は、クロック位相調整回路２０と、位相ズレ検出回路３０とを有する。また、位相ズレ検出回路３０は、複数のデータサンプリング回路Ａ３１〜Ｇ３８、位相ズレ判定回路４０を有する。【００１９】
クロック位相調整回路２０は、受信したＤＱＳ信号の位相に基づいて、一つの基準クロック及び基準クロックと段階的に位相が異なる複数のクロックを生成する。具体的には、クロック位相調整回路２０は、受信したＤＱＳ信号の位相を調節し、それぞれ段階的に位相をずらしたＤＱＳ＿ＤＬＬ＃Ａ信号〜ＤＱＳ＿ＤＬＬ＃Ｇ信号を生成する。そして、クロック位相調整回路２０は、生成したＤＱＳ＿ＤＬＬ＃Ａ信号〜ＤＱＳ＿ＤＬＬ＃Ｇ信号を各データサンプリング回路Ａ３１〜Ｇ３８へ送信する。【００２０】
以下、図３を用いて、クロック位相調整回路２０が実行する処理を具体的に説明する。図３は、実施例１に係るクロック位相調整回路２０の一例を説明するための図である。図３に示す例では、クロック位相調整回路２０は、ＤＱＳ信号の位相を遅延させる複数の遅延素子であるＤＬＹ＃１〜＃１３を直列に接続したＤＬＬ（Delay  Locked  Loop）回路を有する。なお、ＤＬＹの数はあくまで一例であり、任意の数および任意の遅延性能を有するＤＬＹを設置するＤＬＬ回路を用いることができる。【００２１】
このようなクロック位相調整回路２０は、ＤＱＳ信号を受信した場合には、受信したＤＱＳ信号をＤＬＬ回路に伝達する。そして、クロック位相調整回路２０は、各ＤＬＹを段階的に用いることによって、受信したＤＱＳ信号の位相を段階的に遅延させた複数の信号を作成する。【００２２】
また、クロック位相調整回路２０は、後述する位相ズレ判定回路４０から受信した位相補正信号に応じて、各ＤＬＹが出力する信号から基準クロックと複数のクロックとを選択し、出力するセレクタ２１を有する。具体的には、セレクタ２１は、各ＤＬＹが出力した信号を取得し、後述する初期位相補正処理の結果に応じて、取得した信号のうち、一つの信号を基準クロックとして選択し、選択した信号をＤＱＳ＿ＤＬＬ＃Ｄ信号としてデータサンプリング回路Ｄ３５へ送信する。また、セレクタ２１は、ＤＱＳ＿ＤＬＬ＃Ｄ信号よりも進んだ位相を有する複数の信号と、基準クロックとして選択した信号よりも送れた位相を有する複数の信号とをクロックとして選択し、選択した各信号を出力する。【００２３】
ここで、後述する位相ズレ判定回路４０は、基準クロックを用いて取得したデータと一致しないデータが存在する場合は、基準クロックの位相を基準として、一致しないデータを取得したデータサンプリング回路が用いたクロックの位相の向きを判別する。そして、位相ズレ判定回路４０は、判別した位相の向きと一致しないデータの数とを示す位相補正信号をクロック位相調整回路２０に送信する。【００２４】
このような場合には、セレクタ２１は、位相補正信号を受信するとともに、直前に基準クロックとして選択した信号を基準とし、位相補正信号が示す向きとは反対の方向に、位相補正信号が示す数だけ位相をずらした信号を基準クロックとして選択する。【００２５】
以下、セレクタ２１が実行する処理について、具体例を挙げて説明する。例えば、セレクタ２１は、後述する初期位相補正処理に基づいて、ＤＬＹ＃１０が出力した信号を基準クロックであるＤＱＳ＿ＤＬＬ＃Ｄ信号として選択する。そして、セレクタ２１は、ＤＱＳ＿ＤＬＬ＃Ｄ信号をデータサンプリング回路Ｄ３５へ送信する。【００２６】
また、セレクタ２１は、ＤＬＹ＃７が出力した信号を基準クロックとして選択した場合には、ＤＬＹ＃４〜＃６が出力した各信号をＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｃ信号として選択する。そして、セレクタ２１は、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｃ信号を、それぞれデータサンプリング回路Ａ３１、Ｂ３３、Ｃ３４へ送信する。【００２７】
また、セレクタ２１は、ＤＬＹ＃７が出力した信号を基準クロックとして選択した場合には、ＤＬＹ＃８〜＃１０が出力した各信号をＤＱＳ＿ＤＬＬ＃Ｅ〜＃Ｇ信号として選択する。そして、セレクタ２１は、ＤＱＳ＿ＤＬＬ＃Ｅ〜＃Ｇ信号を、それぞれデータサンプリング回路Ｅ３６〜Ｇ３８へ送信する。【００２８】
次に、セレクタ２１が位相ズレ判定回路４０から位相補正信号を受信した際の処理について、具体例を挙げて説明する。例えば、セレクタ２１は、ＤＬＹ＃７が出力した信号を基準クロックとして選択した際に、後述する位相ズレ判定回路４０から「−２」を示す位相補正信号を受信する。このような場合には、セレクタ２１は、直前に基準クロックとして選択した信号を出力するＤＬＹよりも２つ分前段に設置されたＤＬＹが出力する信号を新たな基準クロック信号として選択する。【００２９】
つまり、セレクタ２１は、ＤＬＹ＃７が出力した信号を基準クロック信号として選択した際に、「−２」を示す位相補正信号を受信した場合には、ＤＬＹ＃７よりも２つ前のＤＬＹ＃５が出力した信号を基準クロック信号として新たに選択する。【００３０】
また、例えば、セレクタ２１は、「＋２」を示す位相補正信号を受信した場合には、直前に基準クロックとして選択した信号を出力するＤＬＹよりも２つ分後段に設置されたＤＬＹが出力する信号を新たな基準クロック信号として選択する。例えば、セレクタ２１は、ＤＬＹ＃７が出力した信号を基準クロックとして選択した際に「＋２」を示す位相補正信号を受信した場合には、ＤＬＹ＃９が出力した信号を新たな基準クロック信号として選択する。【００３１】
このように、セレクタ２１は、位相ズレ判定回路４０から受信した位相補正信号に基づいて、ＤＬＬ回路がＤＱＳ信号に基づいて生成した複数の信号から新たな位相を有する基準クロックと複数のクロックとを選択する。このため、セレクタ２１は、後述する位相ズレ判定回路４０によってＤＱ信号とＤＱＳ信号との位相のズレが検出された場合には、位相のズレとは逆の方向に基準クロック信号の位相を即時に補正することができる。【００３２】
図２に戻って、データサンプリング回路Ａ３１〜Ｇ３８は、クロック位相調整回路２０によって生成された基準クロックおよび複数のクロックのうち、それぞれ異なるクロックを用いて、ＤＱ信号からデータを取得する。以下、データサンプリング回路Ａ３１〜Ｇ３８について詳しく説明する。【００３３】
なお、以下の説明では、高速データ受信回路１０は、ＤＱ＃０〜＃３信号が多重化されたＤＱ信号を受信するものとする。また、図２では、各データサンプリング回路Ｂ３３〜データサンプリング回路Ｇ３８の詳細な図示を省略したが、各データサンプリング回路Ｂ３３、Ｃ３４、Ｅ３６〜Ｇ３８は、データサンプリング回路Ａ３１と同様の回路を有する。また、データサンプリング回路Ｄ３５は、比較器を有しておらず、ＤＱ信号から情報を取得するＦＦのみを有する。【００３４】
例えば、図２に示す例では、データサンプリング回路Ａ３１は、フリップフロップ（以下、単にＦＦとする。）＃０〜＃３と比較器Ａ３２を有する。また、各ＦＦ＃０〜＃３は、ＤＱ＃０信号〜ＤＱ＃３信号と、クロック位相調整回路２０からＤＱＳ＿ＤＬＬ＃Ａ信号とを受信する。そして、各ＦＦ＃０〜＃３は、受信したＤＱＳ＿ＤＬＬ＃Ａ信号の電圧値が所定の閾値よりも高い状態に遷移したことをトリガとして、ＤＱ＃０〜＃３信号の電圧値を取り込む。つまり、各ＦＦ＃０〜＃３は、クロック位相調整回路２０が生成したＤＱＳ＿ＤＬＬ＃Ａ信号が示すタイミングで、ＤＱ信号から情報を取得する。【００３５】
比較器Ａ３２は、データサンプリング回路Ａ３１の各ＦＦ＃０〜＃３が取得した情報とともに、ＤＱ＃Ｄ０〜Ｄ３を取得する。そして、比較器Ａ３２は、データサンプリング回路Ａ３１の各ＦＦ＃０〜＃３が取得した情報と、データサンプリング回路Ｄ３５が取得した情報であるＤＱ＃Ｄ０〜Ｄ３とが一致するか否かを判定する。【００３６】
ここで、データサンプリング回路Ｄ３５は、基準クロックとして選択されたＤＱＳ＿ＤＬＬ＃Ｄ信号を用いて、ＤＱ信号から情報を取得する。このため、比較器Ａ３２は、同一の信号から取得した情報であって、ＤＱＳ＿ＤＬＬ＃Ａ信号の位相に基づいて取得した情報と、基準クロックであるＤＱＳ＿ＤＬＬ＃Ｄ信号の位相に基づいて取得された情報とが一致するか否かを判別することとなる。その後、比較器Ａ３２は、データサンプリング回路Ａ３１が取得した情報と、ＤＱ＃Ｄ０〜Ｄ３とが一致するか否かの判定結果を位相ズレ判定回路４０に通知する。【００３７】
データサンプリング回路Ｂ３３、データサンプリング回路Ｃ３４、データサンプリング回路Ｅ３６〜Ｇ３８は、各回路が有する比較器を用いて、ＤＱ＃Ｄ０〜Ｄ３と自装置が取得した情報とが一致するか否かを判別する。そして、データサンプリング回路Ｂ３３、データサンプリング回路Ｃ３４、データサンプリング回路Ｅ３６〜Ｇ３８は、ＤＱ＃Ｄ０〜Ｄ３と自装置が取得した情報とが一致するか否かの判定結果を位相ズレ判定回路４０に通知する。【００３８】
データサンプリング回路Ｄ３５は、クロック位相調整回路２０から受信したＤＱＳ＿ＤＬＬ＃Ｄ信号を用いて、ＤＱ信号から情報を取得する。そして、データサンプリング回路Ｄ３５は、取得した情報をＤＱ＃Ｄ０〜Ｄ３として、他のデータサンプリング回路Ａ３１、Ｂ３３、Ｃ３４、Ｅ３６〜Ｇ３８が有する比較器へ送信する。また、データサンプリング回路Ｄ３５は、ＤＱ＃Ｄ０〜Ｄ３をメモリ５から受信した情報として、Ｉ／Ｏ装置制御回路１が有する他の回路へ出力する。【００３９】
このように、各データサンプリング回路Ａ３１〜Ｃ３４は、データサンプリング回路Ｄ３５が用いる基準クロックよりも位相が進んだクロックを用いて、ＤＱ信号から情報を取得する。そして、各データサンプリング回路Ａ３１〜Ｃ３４は、自装置が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致するか否かの判定結果を位相ズレ判定回路４０に通知する。【００４０】
また、各データサンプリング回路Ｅ３６〜Ｇ３８は、データサンプリング回路Ｄ３５が用いる基準クロックよりも位相が遅いクロックを用いて、ＤＱ信号から情報を取得する。そして、各データサンプリング回路Ｅ３６〜Ｇ３８は、自装置が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致するか否かの判定結果を位相ズレ判定回路４０に通知する。【００４１】
図２に戻って、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１、Ｂ３３、Ｃ３４、Ｅ３６〜Ｇ３８が取得した情報とＤＱ＃Ｄ０〜Ｄ３とがそれぞれ一致するか否かを判別する。そして、位相ズレ判定回路４０は、ＤＱ＃Ｄ０〜Ｄ３と異なる情報が取得されていた場合には、一致しない情報を取得したデータサンプリング回路が用いた信号の位相とは逆の方向に、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相を補正する。つまり、位相ズレ判定回路４０は、ＤＱＳ信号とＤＱ信号との位相のズレを検出し、検出した位相のズレを考慮した補正を行う。【００４２】
具体的には、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１〜Ｇ３８が情報を取得する度に、各データサンプリング回路Ａ３１〜Ｇ３８が有する各比較器からの通知を取得する。そして、位相ズレ判定回路４０は、取得した通知に基づいて、ＤＱ＃Ｄ０〜Ｄ３と一致しない情報を取得した回路が存在するか否かを判定する。また、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１〜Ｇ３８が取得した情報が全て一致する場合には、位相ズレの状態が補正不要な「状態０」であると判別する。【００４３】
また、位相ズレ判定回路４０は、ＤＱ＃Ｄ０〜Ｄ３とは一致しない情報を取得した回路が存在する場合には、データサンプリング回路Ｃ３４、Ｅ３６が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致するか否かを判別する。また、位相ズレ判定回路４０は、各データサンプリング回路Ｃ３４、Ｅ３６が取得した情報がＤＱ＃Ｄ０〜Ｄ３と一致する場合には、各データサンプリング回路Ａ３１〜Ｃ３４が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致するか否かを判別する。あわせて、位相ズレ判定回路４０は、各データサンプリング回路Ｅ３６〜Ｇ３８が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致するか否かを判別する。【００４４】
そして、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１〜Ｃ３４又は各データサンプリング回路Ｅ３６〜Ｇ３８が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致する場合には、位相ズレの状態が「状態１」であると判別する。また、位相ズレ判定回路４０は、位相ズレの状態が「状態１」であると判別した場合には、ＤＱ＃Ｄ０〜Ｄ３とは一致しない情報を取得したデータサンプリング回路の数を計数する。【００４５】
また、位相ズレ判定回路４０は、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相を基準として、ＤＱ＃Ｄ０〜Ｄ３とは異なる情報を取得したデータサンプリング回路が用いたクロック信号の位相の向きを判別する。そして、位相ズレ判定回路４０は、判別した位相の向きと計数したデータサンプリング回路の数とを示す位相補正信号を生成し、生成した位相補正信号をクロック位相調整回路２０へ送信する。【００４６】
つまり、ＤＱ信号の位相がＤＱＳ信号の位相に比べて早い方向にずれた場合には、ＤＱＳ＿ＤＬＬ＃Ｄ信号よりも遅い位相を有するＤＱＳ＿ＤＬＬ＃Ｅ〜＃Ｇ信号に基づいて取得した情報とＤＱＳ＿ＤＬＬ＃Ｄ信号に基づいて取得した情報とが一致しなくなる。また、ＤＱ信号の位相がＤＱＳ信号の位相に比べて遅い方向にずれた場合には、ＤＱＳ＿ＤＬＬ＃Ｄ信号よりも早い位相を有するＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｃ信号に基づいて取得した情報とＤＱＳ＿ＤＬＬ＃Ｄ信号に基づいて取得した情報とが一致しなくなる。【００４７】
このため、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１〜Ｇ３８が有する比較器から取得した通知に基づいて、ＤＱＳ信号とＤＱ信号との位相ズレの大きさ及び向きを検出する。そして、位相ズレ判定回路４０は、検出した位相ズレの大きさ及び向きを示す位相補正信号を生成し、生成した位相補正信号をクロック位相調整回路２０へ送信する。【００４８】
ここで、ＤＱＳ信号とＤＱ信号との位相差があまりにも大きく、データサンプリング回路Ｃ３４、Ｅ３６が取得した情報が、ＤＱ＃Ｄ０〜Ｄ３と異なる場合には、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相を正確に補正できるとは言い難い。そこで、位相ズレ判定回路４０は、データサンプリング回路Ｃ３４、Ｅ３６が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致しない場合には、位相のズレの状態が補正可能ではない「状態２」であると判別する。このような場合には、高速データ受信回路１０は、稼働を一時中断して、初期位相補正処理を再度実行する。【００４９】
また、位相ズレ判定回路４０は、全てのデータサンプリング回路Ａ３１〜Ｇ３８が取得した情報が一致する場合には、位相のズレの状態を補正しない「状態０」であると判別する。このような場合には、位相ズレ判定回路４０は、位相補正信号を生成せず、クロック位相調整回路２０が生成する各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を保持する。【００５０】
次に、具体例を用いて、位相ズレ判定回路４０が実行する処理の流れを説明する。例えば、位相ズレ判定回路４０は、データサンプリング回路Ａ３１およびデータサンプリング回路Ｂ３３の比較器から、ＤＱ＃Ｄ０〜Ｄ３と一致しない情報を取得した旨の通知を取得する。また、位相ズレ判定回路４０は、データサンプリング回路Ｃ３４、Ｅ３６〜Ｇ３８の比較器から、ＤＱ＃Ｄ０〜Ｄ３と一致する情報を取得した旨の通知を取得する。【００５１】
このような例では、位相ズレ判定回路４０は、位相のズレの状態が「状態１」であると判別する。また、位相ズレ判定回路４０は、ＤＱＳ＿ＤＬＬ＃Ｄ信号よりも位相が進んだクロックを用いるデータサンプリング回路Ａ３１、Ｂ３２が、誤った情報を取得したと判別する。このような場合には、位相ズレ判定回路４０は、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相をクロック位相調整回路２０のＤＬＹ二つ分遅らせるため、「＋２」を示す位相補正信号を生成し、生成した位相補正信号をクロック位相調整回路２０に送信する。【００５２】
また、例えば、位相ズレ判定回路４０は、データサンプリング回路Ｇ３８の比較器のみからＤＱ＃Ｄ０〜Ｄ３と一致しない情報を取得した旨の通知を取得する。このような例では、位相ズレ判定回路４０は、位相のズレの状態が「状態１」であると判別し、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相をＤＬＹ一つ分早めるため、「−１」を示す位相補正信号を生成し、生成した位相補正信号をクロック位相調整回路２０に送信する。【００５３】
また、例えば、位相ズレ判定回路４０は、データサンプリング回路Ａ３１、Ｂ３３、Ｃ３４の比較器からＤＱ＃Ｄ０〜Ｄ３と一致しない情報を取得した旨の通知を取得する。このような例では、位相ズレ判定回路４０は、位相のズレの状態が補正可能ではない「状態２」であると判別する。このような場合には、高速データ受信回路１０は、稼働を一時中断して、初期位相補正処理を再度実行する。【００５４】
また、例えば、位相ズレ判定回路４０は、データサンプリング回路Ａ３１、Ｂ３３、Ｃ３４のいずれかの比較器とデータサンプリング回路Ｅ３６〜Ｇ３８のいずれかの比較器から同時に一致しない情報を取得した旨の通知を取得する。このような例では、位相ズレ判定回路４０は、位相のズレが修復可能ではない「状態２」であると判別する。このような場合には、高速データ受信回路１０は、稼働を一時中断して、初期位相補正処理を再度実行する。【００５５】
このように、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１〜Ｃ３４、Ｅ３６〜Ｇ３８が取得した情報がＤＱ＃Ｄ０〜Ｄ３と一致するか否かを判別する。そして、位相ズレ判定回路４０は、一致しない情報を取得したデータサンプリング回路の数と、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相を基準として、一致しない情報を取得したデータサンプリング回路が用いたクロックの位相の向きを示す位相補正信号を生成する。その後、位相ズレ判定回路４０は、生成した位相補正信号をクロック位相調整回路２０へ送信する。【００５６】
つまり、位相ズレ判定回路４０は、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相を基準として、一致しない情報を取得したデータサンプリング回路が用いたクロックの位相とは逆側に、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正する。このため、高速データ受信回路１０は、継続してＤＱ信号から情報を適切に取得することができる。【００５７】
近年、情報が送受信される速度の高速化に従って、データ信号とクロック信号との周波数が大きくなっており、データ信号の位相とクロック信号の位相とがずれやすくなる結果、信号波形品質（アイパターン）が劣化する傾向にある。つまり、データ信号の位相とクロック信号の位相とが必ずしも同一傾向で変動しない場合が増加している。このため、従来のＤＱＳ信号の位相と基準となるクロックの位相とのズレに応じてＤＱＳ信号の位相を補正する方法では、位相を調整できる限界に達している。【００５８】
一方、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１〜Ｇ３８が取得した情報を比較することで位相のズレを検出し、検出した位相のズレに応じてＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正する。このため、高速データ受信回路１０は、データ信号とクロック信号との位相にズレが生じた場合にも、適切に情報を取得することができる。【００５９】
また、位相ズレ判定回路４０は、各データサンプリング回路Ａ３１〜Ｇ３８が情報を取得する度に、継続してＤＱＳ信号とＤＱ信号との位相のズレを検出し、検出した位相のズレに応じて、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正し続ける。このため、位相ズレ判定回路４０は、位相のズレが「状態１」であるうちに、各信号ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を適切に補正し、位相のズレが「状態２」へと至ることを抑止できる。【００６０】
つまり、ＤＱＳ信号の位相とＤＱ信号の位相とのズレは、一度の読み取りサイクル単位ではごく僅かしか変化しない。つまり、ＤＱＳ信号とＤＱ信号との位相のズレは、メモリ５から継続してＤＱ信号を受信する過程において、「状態０」から「状態１」へと遷移し、その後「状態２」へと遷移する。しかし、位相ズレ判定回路４０は、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正し続けるので、各信号ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を適切に補正し、位相のズレが「状態２」へと至ることを抑止できる。【００６１】
結果として、高速データ受信回路１０は、ＤＱＳ信号とＤＱ信号とのタイミングマージンを保持し続けるとともに、再度の初期位相補正処理を不要とし、性能低下につながるシステム動作停止を回避することができる。【００６２】
次に、図４を用いて、初期位相補正処理について説明する。図４は、初期位相補正処理を説明するための図である。図４に示す例では、高速データ受信回路１０およびメモリ５は、あらかじめ定められた情報であるトレーニングパターンを記憶する。このような場合に、高速データ受信回路は、任意のデータサンプリング回路を用いて、メモリ５に記憶されたトレーニングパターンが格納されたＤＱ信号を受信する。【００６３】
ここで、高速データ受信回路１０は、メモリ５から送信されたＤＱＳ信号をクロック位相調整回路２０に伝達し、ＤＱＳ信号の位相を遅延させる。そして、高速データ受信回路１０は、位相をずらしたＤＱＳ信号を用いて、ＤＱ信号から情報を取得する。その後、高速データ受信回路１０は、比較器５０を用いて、あらかじめ記憶したトレーニングパターンと取得した情報とが一致するか否かを判別する。【００６４】
また、高速データ受信回路１０は、ＤＱＳ信号の位相を遅延させる量を逐次的に変更し、クロック位相調整回路２０が遅延させることができる全ての範囲について、記憶したトレーニングパターンと一致する情報を取得できるか否かを判別する。その後、高速データ受信回路１０は、クロック位相調整回路２０がＤＱＳ信号の位相を遅延させることができる全ての範囲のうち、トレーニングパターンと一致する情報を取得可能な範囲の中心を初期位相補正量として採用する。【００６５】
例えば、高速データ受信回路１０は、図５に外部受信信号として示すＤＱ信号とＤＱＳ信号とを受信する。このような場合には、図５中の位相調整＃１〜＃４に示すように、高速データ受信回路１０は、ＤＱＳ信号の位相を遅延させる量を逐次的に変更し、遅延させた量がそれぞれ異なるＤＱＳ＿ＤＬＬ＃１〜＃４を用いて、トレーニングパターンを取得する。図５に示す例では、高速データ受信回路１０は、ＤＱＳ＿ＤＬＬ＃１〜＃３を用いた場合に、正確なトレーニングパターンを取得することとなる。【００６６】
このような場合には、高速データ受信回路１０は、正常にトレーニングパターンを取得することができる範囲のうち、中心となるＤＱＳ＿ＤＬＬ＃２が最適な位相であると判断する。その後、高速データ受信回路１０は、ＤＱＳ信号の位相を基準としてＤＱＳ＿ＤＬＬ＃２の遅延量を初期所定量として採用する。つまり、高速データ受信回路１０は、ＤＱＳ＿ＤＬＬ＃２として選択した信号をＤＱＳ＿ＤＬＬ＃Ｄ信号として選択する。図５は、初期位相補正処理における位相の補正量を説明するための図である。【００６７】
次に、図６〜図１１を用いて、高速データ受信回路１０が各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正する処理について説明する。まず図６を用いて、ＤＱ信号とＤＱＳ信号との位相のズレの状態が「状態０」である場合の処理について説明する。図６は、状態０の場合に実行する補正処理を説明するための図である。【００６８】
ここで、図６中の破線は、データサンプリング回路Ｄ３５が情報を取得する位相のタイミングを示す。また、図６中の受信データＤＱ［０］〜［３］中の×印は、多重化されたＤＱ＃０〜＃３信号の情報が切り替わるタイミングを示す。つまり、図６中の受信データＤＱ［０］〜［３］には、各ＤＱ＃０〜＃３信号のデータアイが記載されている。また、図６中αは、各データサンプリング回路Ａ３１〜Ｇ３８が情報を取得する位相のタイミングを示す。また、図６中のβは、各データサンプリング回路Ａ３１〜Ｇ３８が取得した情報を示す。【００６９】
図６に示す例では、各データサンプリング回路Ａ３１〜Ｇ３８が取得した情報は、「１０１０」で一致している。このため、高速データ受信回路１０は、各データサンプリング回路Ａ３１〜Ｇ３８が用いるＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相補正を行わず、次のデータアイから情報を取得する。【００７０】
次に、図７〜図９を用いて、ＤＱＳ信号の位相がＤＱ信号の位相よりも遅延した場合の処理について説明する。図７は、状態１を説明するための図である。また、図８は、状態１の場合に実行する補正処理を説明するための図である。また、図９は、補正処理による補正結果を説明するための図である。【００７１】
図７に示す例では、各データサンプリング回路Ｆ３７、Ｇ３８の情報取得タイミングがＤＱ信号の情報が切り替わるタイミングと重複し、データサンプリング回路Ｄ３５とは異なる情報「１０００」を取得する。このため、高速データ受信回路１０はＤＱ信号とＤＱＳ信号との位相のズレが「状態１」であると判別する。【００７２】
このような場合には、図８に示すように、高速データ受信回路１０は、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相をＤＬＹ２つ分だけ早める。この結果、高速データ受信回路１０は、各データサンプリング回路Ａ３１〜Ｇ３８が情報を取得するタイミングをデータアイの中に収めることができるので、図９に示すように、位相のズレを「状態０」に戻すことができる。【００７３】
次に、図１０を用いて、ＤＱＳ信号の位相がＤＱ信号の位相よりも進んだ場合の処理について説明する。図１０は、補正処理と補正処理による結果を説明するための図である。図１０に示す例では、各データサンプリング回路Ａ３１、Ｂ３３の情報取得タイミングがＤＱ信号の情報が切り替わるタイミングと重複し、データサンプリング回路Ｄ３５とは異なる情報「１１１０」を取得する。このため、高速データ受信回路１０はＤＱ信号とＤＱＳ信号との位相のズレが「状態１」であると判別する。【００７４】
そこで、図１０に示すように、高速データ受信回路１０は、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相をＤＬＹ２つ分だけ遅延させる。この結果、高速データ受信回路１０は、各データサンプリング回路Ａ３１〜Ｇ３８が情報を取得するタイミングをデータアイの中に収めることができるので、図１０に示すように、位相のズレを「状態０」に戻すことができる。【００７５】
一方、図１１は、状態２の場合に実行する補正処理を説明するための図である。図１１に示すように、各データサンプリング回路Ｅ３６〜Ｇ３８がデータサンプリング回路Ｄ３５とは異なる情報を取得した場合には、データサンプリング回路Ｄ３５が情報を取得するタイミングが、ＤＱ信号の情報が切り替わる境界までずれている。このような場合には、高速データ受信回路１０は、補正を行わずにＤＱ信号の受信を中止し、再度、初期位相補正処理を実行する。【００７６】
次に、図１２を用いて、高速データ受信回路１０が各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相を補正する量について説明する。図１２は、位相補正量を説明するための図である。また、図１２には、各データサンプリング回路Ａ３１〜Ｃ３４、Ｅ３６〜Ｇ３８によって取得された情報がデータサンプリング回路Ｄ３５によって取得された情報と一致するか否かの一例が示されている。【００７７】
図１２に示す例では、高速データ受信回路１０は、「状態０」の場合には、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相の補正を行わない。一方、高速データ受信回路１０は、データサンプリング回路Ａ３１のみがデータサンプリング回路Ｄ３５と異なる情報を取得した場合には、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相をＤＬＹ１つ分だけ遅くする。また、高速データ受信回路１０は、データサンプリング回路Ａ３１とデータサンプリング回路Ｂ３３がデータサンプリング回路Ｄ３５と異なる情報を取得した場合には、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相をＤＬＹ２つ分だけ遅くする。【００７８】
また、高速データ受信回路１０は、データサンプリング回路Ｇ３８のみがデータサンプリング回路Ｄ３５と異なる情報を取得した場合には、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相をＤＬＹ１つ分だけ早くする。また、高速データ受信回路１０は、データサンプリング回路Ｆ３７、Ｇ３８がデータサンプリング回路Ｄ３５と異なる情報を取得した場合には、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相をＤＬＹ２つ分だけ早くする。また、高速データ受信回路１０は、「状態２」の場合には、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相の補正を行わず、初期補正処理を実行する。【００７９】
［高速データ受信回路の処理の流れ］
次に、図１３を用いて、高速データ受信回路１０が実行する処理の流れを説明する。図１３は、実施例１に係る高速データ受信回路の処理の流れを説明するためのフローチャートである。図１３に示す例では、高速データ受信回路１０は、システムが起動されたことをトリガとして処理を開始する。【００８０】
まず、高速データ受信回路１０は、初期位相調整処理を実行する（ステップＳ１０１）。次に、高速データ受信回路１０は、各データサンプリング回路Ａ３１〜Ｇ３８が取得した情報を比較し、位相の変動を検出する（ステップＳ１０２）。次に、高速データ受信回路１０は、位相の変動が検出されたか否かを判別する（ステップＳ１０３）。【００８１】
そして、高速データ受信回路１０は、位相の変動が検出されていないと判別した場合には（ステップＳ１０３否定）、再度、位相の変動を検出する（ステップＳ１０２）。一方、高速データ受信回路１０は、位相の変動を検出したと判別した場合には（ステップＳ１０３肯定）、位相の変動が補正可能な範囲内であるか否かを判別する（ステップＳ１０４）。つまり、高速データ受信回路１０は、位相のズレが「状態１」であるか「状態２」であるかを判別する。【００８２】
次に、高速データ受信回路１０は、位相の変動が補正可能な範囲内ではないと判別した場合（ステップＳ１０４否定）、つまり、位相のズレが「状態２」であると判別した場合には、再度、初期位相調整処理を実行する（ステップＳ１０１）。一方、高速データ受信回路１０は、位相の変動が補正可能な範囲であると判別した場合には（ステップＳ１０４肯定）、つまり、位相のずれが「状態１」であると判別した場合には、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相を位相補正量だけ補正する（ステップＳ１０５）。【００８３】
その後、高速データ受信回路１０は、情報を受信する処理が終了したか否かを判別する（ステップＳ１０６）。そして、高速データ受信回路１０は、情報を受信する処理が終了した場合には（ステップＳ１０６肯定）、受信を終了し（ステップＳ１０７）、その後、処理を終了する。一方、高速データ受信回路１０は、情報受信する処理が終了していない場合には（ステップＳ１０６否定）、再度位相の変動を観測する（ステップＳ１０２）。【００８４】
次に、図１４を用いて、位相変動観測処理（図１３中ステップＳ１０２）の流れについて詳しく説明する。図１４は、位相変動観測処理の流れを説明するためのフローチャートである。図１４に示す例では、高速データ受信回路１０は、初期位相調整処理を実行したことをトリガとして（図１３中ステップＳ１０１）、処理を開始する。【００８５】
まず、高速データ受信回路１０は、各データサンプリング回路Ａ３１、Ｂ３３、Ｃ３４、Ｅ３６〜Ｇ３８によって取得された各情報とデータサンプリング回路Ｄ３５によって取得された情報とを比較する（ステップＳ２０１）。次に、高速データ受信回路１０は、各データサンプリング回路Ａ３１、Ｂ３３、Ｃ３４、Ｅ３６〜Ｇ３８によって取得された全ての情報がデータサンプリング回路Ｄ３５によって取得された情報と一致するか否かを判別する（ステップＳ２０２）。つまり、高速データ受信回路１０は、各データサンプリング回路Ａ３１〜Ｇ３８によって取得されたすべての情報が一致するか否かを判別する。【００８６】
そして、高速データ受信回路１０は、取得されたすべての情報が一致しないと判別した場合には（ステップＳ２０２否定）、データサンプリング回路Ｃ３４〜Ｅ３６が取得した情報が一致するか否かを判別する（ステップＳ２０３）。つまり、高速データ受信回路１０は、基準面であるＤＱ＃Ｄ０〜Ｄ３と、データサンプリング回路Ｃ３４、Ｅ３６が取得した各情報が一致するか否かを判別する。【００８７】
次に、高速データ受信回路１０は、データサンプリング回路Ｃ３４〜Ｅ３６が取得した情報が一致すると判別した場合は（ステップＳ２０３肯定）、基準面が取得した情報と前後どちらか片方のサンプリング値が全部一致するか否か判別する（ステップＳ２０４）。つまり、高速データ受信回路１０は、各データサンプリング回路Ａ３１〜Ｃ３４又は各データサンプリング回路Ｅ３６〜Ｇ３８が取得した情報とＤＱ＃Ｄ０〜Ｄ３とが一致するか否かを判別する。【００８８】
そして、高速データ受信回路１０は、基準面が取得した情報と前後どちらか片方のサンプリング値が全部一致すると判別した場合には（ステップＳ２０４肯定）、位相ズレが「状態１」であると判断する（ステップＳ２０５）。また、高速データ受信回路１０は、位相補正量を算出し（ステップＳ２０６）、その後、位相変動観測処理を終了する。【００８９】
また、高速データ受信回路１０は、データサンプリング回路Ｃ３４〜Ｅ３６が取得した情報が一致しないと判別した場合は（ステップＳ２０３否定）、位相ズレが「状態２」であると判断する（ステップＳ２０７）。また、高速データ受信回路１０は、基準面が取得した情報と前後どちらか片方のサンプリング値が一致しないと判別した場合には（ステップＳ２０４否定）、位相ズレが「状態２」であると判断する（ステップＳ２０７）。その後、高速データ受信回路１０は、位相変動観測処理を終了する。【００９０】
また、高速データ受信回路１０は、各データサンプリング回路Ａ３１〜Ｇ３８によって取得されたすべての情報が一致した場合には（ステップＳ２０２肯定）、位相ズレが「状態０」であると判断する（ステップＳ２０８）。その後、高速データ受信回路１０は、位相変動観測処理を終了する。【００９１】
[実施例１の効果]
上述したように、実施例１に係る高速データ受信回路１０は、互いに位相が異なる複数のクロックを生成し、それぞれ異なるクロックを用いて、受信したＤＱ信号から複数のデータを取得する。また、高速データ受信回路１０は、取得した各データがそれぞれ一致するか否かを判定し、他のデータと一致しないデータが存在すると判定した場合には、データの不一致が発生しない方向に生成するクロックの位相を補正する。【００９２】
このため、高速データ受信回路１０は、ＤＱ信号等のデータ信号から情報を適切に取得することができる。つまり、高速データ受信回路１０は、受信したＤＱ信号からそれぞれ異なる位相を有するクロック信号で情報を取得し、取得した情報が一致するか否かを判別することで、位相のズレを検出する。その後、高速データ受信回路１０は、位相のズレを検出した場合には、検出した位相のズレを打ち消す方向へ生成するクロック信号の位相を補正するので、ＤＱＳ信号とＤＱ信号との位相に異なる変動が生じた場合にも、情報を適切に取得することができる。【００９３】
また、高速データ受信回路１０は、ＤＱＳ信号に基づいて、段階的に位相が異なるクロックであるＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号を生成し、生成したＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号を用いて、ＤＱ信号から情報を取得する。また、高速データ受信回路１０は、基準となるＤＱＳ＿ＤＬＬ＃Ｄ信号を用いて取得した情報と他のＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｃ，＃Ｅ〜＃Ｇ信号を用いて取得した情報とが一致するか否かを判別する。【００９４】
そして、高速データ受信回路１０は、基準となる情報と一致しない情報が存在する場合には、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相を基準として、一致しない情報を取得した際に用いたクロックの位相とは逆の方向に、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相を補正する。このため、高速データ受信回路１０は、ＤＱ信号等のデータ信号から情報を適切に取得することができる。【００９５】
つまり、高速データ受信回路１０は、それぞれ位相が異なる複数のクロックを用いて情報を取得し、ＤＱＳ＿ＤＬＬ＃Ｄ信号を用いて取得した信号と、他の情報とが一致するか否かを判別することで、ＤＱＳ信号とＤＱ信号との位相のズレを検出する。そして、高速データ受信回路１０は、検出した位相のズレに応じて、情報を取得するタイミングを補正するので、温度や電圧等の動作環境の変化等による信号揺らぎによってＤＱＳ信号とＤＱ信号との位相に異なる変動が生じた場合にも、情報を適切に取得できる。【００９６】
また、高速データ受信回路１０は、基準面であるデータサンプリング回路Ｄ３５が取得する情報に位相変動の影響が発生するよりも先に、位相変動を検出し、各クロックの位相を補正することができる。このため、高速データ受信回路１０は、適切な情報を継続して取得することができる。また、高速データ受信回路１０は、稼働中に位相の補正を適切に行う事ができるので、稼働中に初期位相補正を行うことによる受信処理の中断を発生させず、信頼性の高いシステムの構築を可能とする。【００９７】
また、高速データ受信回路１０は、ＤＬＬ回路を用いて、受信したＤＱＳ信号から段階的に位相が異なる複数の信号を生成し、位相ズレの大きさと向きとに基づいて、生成された信号の中から新たなＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号を選択する。このため、高速データ受信回路１０は、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号が有する位相の補正を即時に行う事ができる結果、受信するＤＱ信号とＤＱＳ信号との周波数が高く、データアイが狭くなる場合にも、信頼性の高いデータ受信を行う事ができる。また、高速データ受信回路１０は、複雑な回路を不要とすることができる。【００９８】
また、高速データ受信回路１０は、ＤＬＬ回路から出力された複数の信号のうち、一つの信号を基準クロックであるＤＱＳ＿ＤＬＬ＃Ｄ信号として選択する。そして、高速データ受信回路は、ＤＱＳ＿ＤＬＬ＃Ｄ信号よりも進んだ位相を有する信号をＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｃ信号とし、ＤＱＳ＿ＤＬＬ＃Ｄ信号よりも送れた位相を有する信号をＤＱＳ＿ＤＬＬ＃Ｅ〜＃Ｇ信号として選択する。【００９９】
このため、高速データ受信回路１０は、ＤＱＳ信号の位相とＤＱ信号の位相とがずれる方向に係らず位相変動の兆候を検出することができる。結果として、高速データ受信回路１０は、ＤＱＳ信号の位相とＤＱ信号の位相とがずれる方向に係らず、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正し、適切な情報を継続して取得することができる。【０１００】
また、高速データ受信回路１０は、データサンプリング回路Ｄ３５とは異なる情報を取得したデータサンプリング回路の数を計数する。また、高速データ受信回路１０は、ＤＱＳ＿ＤＬＬ＃Ｄ信号の位相を基準として、データサンプリング回路Ｄ３５とは異なる情報を取得したデータサンプリング回路において、用いられた信号の位相の向きを判別する。【０１０１】
そして、高速データ受信回路１０は、ＤＱＳ＿ＤＬＬ＃Ｄ信号として選択された信号を基準として、判別された位相の向きとは反対の方向に、計数された数と同じ段数だけ位相がずれた信号を新たなＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号として選択する。【０１０２】
このため、高速データ受信回路１０は、適切な位相の補正を行う事ができる。つまり、高速データ受信回路１０は、位相ズレの量に応じて、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正するので、各データサンプリング回路Ａ３１〜Ｇ３８が情報を取得するタイミングを、ＤＱ信号のデータアイの範囲内に収めることができる。
【実施例２】
【０１０３】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。【０１０４】
（１）補正の方法について
上述した高速データ受信回路１０は、位相ズレを検出した場合には、検出した位相ズレの量と同じ量だけ各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を補正した。しかし、実施例は、これに限定されるものではない。例えば、高速データ受信回路１０は、位相ズレを検出した場合には、位相がズレた方向とは反対の方向に、ＤＱ信号の半周期分だけ異なる位相を有する信号を、新たなＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号として選択してもよい。【０１０５】
例えば、図１５は、補正処理の他の例を説明するための図である。図１５に示す例では、データサンプリング回路Ｆ３７、Ｇ３８がデータサンプリング回路Ｄ３５とは異なる情報を取得した。このような場合には、実施例２に係る高速データ受信回路１０ａは、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を、ＤＱ信号の位相の半分だけ進めるように選択しなおしてもよい。【０１０６】
具体的には、高速データ受信回路１０ａは、初期位相調整処理において、ＤＱ信号の情報が切り替わるタイミングの周期を判別し、判別した周期の半周期分だけ信号の位相を遅延させるＤＬＹの数を計数する。そして、図１５に示す例では、高速データ受信回路１０ａは、ＤＱＳ＿ＤＬＬ＃Ｄ信号として選択した信号を基準に、計数した数だけ前段のＤＬＹから出力された信号を新たなＤＱＳ＿ＤＬＬ＃Ｄ信号として選択しなおす。【０１０７】
また、高速データ受信回路１０ａは、データサンプリング回路Ａ３１、Ｂ３３がデータサンプリング回路Ｄ３５とは異なる情報を取得した場合には、計数した数だけ後段のＤＬＹから出力された信号を新たなＤＱＳ＿ＤＬＬ＃Ｄ信号として選択しなおす。【０１０８】
つまり、図１５中γに示すように、いずれかのデータサンプリング回路において、データサンプリング回路Ｄ３５とは異なる情報が取得された場合には、情報を取得するタイミングとＤＱ信号の情報が切り替わるタイミングとが近づいてしまっていると考えられる。そこで、高速データ受信回路１０ａは、図１５中に示すように、位相ズレが検出された場合には、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇ信号の位相を、検出された位相ズレと反対の方向に、ＤＱ信号の位相の半分だけ進めるように選択しなおす。【０１０９】
このため、高速データ受信回路１０ａは、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相を補正する回数を少なくすることができる。また、高速データ受信回路１０ａは、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相差を小さくしても、適切な位相補正を行う事ができるため、ＤＬＬ回路の規模を小さくすることができる。【０１１０】
また、高速データ受信回路１０ａは、各ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇの位相差を小さくしても、適切な位相補正を行う事ができるため、ＤＱ信号の周波数が大きい場合にも、データアイの適切な範囲内で情報を取得することができる。【０１１１】
（２）受信する信号について
上述した高速データ受信回路１０、１０ａは、ＤＱ信号とＤＱＳ信号とを受信し、受信したＤＱＳ信号に基づくタイミングで、ＤＱ信号から情報を取得していた。しかし、実施例はこれに限定されるものではなく、ＤＱ信号とＤＱＳ信号とを用いるプロトコル以外にも、データが格納された信号とデータが格納されたタイミングを示す信号とを用いるプロトコルに適宜適用してよい。【０１１２】
（３）クロック位相調整回路について
上述したクロック位相調整回路２０は、受信したＤＱＳ信号に基づいて、複数の異なる位相を有するクロック信号ＤＱＳ＿ＤＬＬ＃Ａ〜Ｇを生成していた。しかし、実施例は、これに限定されるものではない。【０１１３】
例えば、クロック位相調整回路２０は、ＤＱＳ信号の位相に係らず、単に、所定の周波数を有しそれぞれ位相をずらした複数のＤＱＳ＿ＤＬＬ＃Ａ〜Ｇ信号を出力する。ここで、クロック位相調整回路２０が最初に出力する各信号の位相は、上述した初期位相補正処理によって決定される。その後、クロック位相調整回路２０は、位相ズレ判定回路４０によって通知された位相補正信号に基づいて、出力する各信号の位相を補正することとしてもよい。【０１１４】
（４）データサンプリング回路について
上述した高速データ受信回路１０、１０ａは、ＤＱ信号から情報を取得する複数のデータサンプリング回路Ａ３１〜Ｇ３８を有していた。しかし、実施例はこれに限定されるものではなく、高速データ受信回路１０、１０ａは、複数のデータサンプリング回路であれば、任意の数のデータサンプリング回路を有してもよい。【０１１５】
また、上述した高速データ受信回路１０、１０ａは、データサンプリング回路Ｄ３５を基準面とし、ＤＱ＃Ｄ０〜Ｄ３と他の回路が取得した情報とが一致するか否かを判別した。しかし、実施例はこれに限定されるものではなく、例えば、高速データ受信回路１０、１０ａは、任意のデータサンプリング回路を基準面としてよい。【０１１６】
また、上述した高速データ受信回路１０、１０ａは、データサンプリング回路Ｄ３５に比較器を有していなかった。しかし、実施例はこれに限定されるものではない。例えば、全てのデータサンプリング回路に対して同一の回路を適用し、選択された一つの回路を基準面としてよい。【０１１７】
（５）ＤＬＬ回路について
上述した高速データ受信回路１０、１０ａは、ＤＬＬ回路を用いて、受信したＤＱＳ信号から段階的に位相が異なる複数のクロックＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇを生成した。しかし、実施例はこれに限定されるものではなく、例えば、高速データ受信回路１０、１０ａは、受信したＤＱＳ信号に基づいて、段階的に位相が異なる複数のクロックを生成する任意の方法を用いて、ＤＱＳ＿ＤＬＬ＃Ａ〜＃Ｇを生成してよい。【０１１８】
（６）プログラム
ところで、実施例１に係る高速データ受信回路１０は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムをデータ信号とクロック信号とを受信する情報処理装置やＩ／Ｏ（Input  Output）装置制御回路で実行することによって実現するようにしてもよい。そこで、以下では、図１６を用いて、実施例１に示した高速データ受信回路と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１６は、データ受信プログラムの一例を説明するための図である。【０１１９】
図１６に例示されたコンピュータ２００は、ＲＡＭ（Random  Access  Memory）１２０、ＲＯＭ（Read  Only  Memory）１３０、ＣＰＵ（Central  Processing  Unit）１４０がバス１７０で接続される。さらにバス１７０には、データ信号とクロック信号とを受信するためのＩ／Ｏ１５０が接続される。【０１２０】
ＲＯＭ１３０には、生成プログラム１３１、取得プログラム１３２、判定プログラム１３３、補正プログラム１３４があらかじめ保持される。ＣＰＵ１４０が各プログラム１３１〜１３４をＲＯＭ１３０から読み出して実行することによって、図１６に示す例では、各プログラム１３１〜１３４は、生成プロセス１４１、取得プロセス１４２、判定プロセス１４３、補正プロセス１４４として機能する。なお、各プロセス１４１〜１４４は、図２に示した各部１０〜４０と同様の機能を発揮する。【０１２１】
なお、本実施例で説明したデータ受信プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。また、このプログラムは、ＡＳＩＣ、ＦＰＧＡ、ＳｏＣ（System-on-a-chip）などのワンチップ上で実行されるマイクロコードとして実行することもできる。
【符号の説明】
【０１２２】
１  Ｉ／Ｏ装置制御回路
１０  高速データ受信回路
２０  クロック位相調整回路
２１  セレクタ
３０  位相ズレ検出回路
３１  データサンプリング回路Ａ
３２  比較器Ａ
３３  データサンプリング回路Ｂ
３４  データサンプリング回路Ｃ
３５  データサンプリング回路Ｄ
３６  データサンプリング回路Ｅ
３７  データサンプリング回路Ｆ
３８  データサンプリング回路Ｇ
４０  位相ズレ判定回路
５０  比較器
【図１】
2012086017.tif 000003
【図２】
2012086017.tif 000004
【図３】
2012086017.tif 000005
【図４】
2012086017.tif 000006
【図５】
2012086017.tif 000007
【図６】
2012086017.tif 000008
【図７】
2012086017.tif 000009
【図８】
2012086017.tif 000010
【図９】
2012086017.tif 000011
【図１０】
2012086017.tif 000012
【図１１】
2012086017.tif 000013
【図１２】
2012086017.tif 000014
【図１３】
2012086017.tif 000015
【図１４】
2012086017.tif 000016
【図１５】
2012086017.tif 000017
【図１６】
2012086017.tif 000018
【手続補正書】
【提出日】平成25年7月11日(2013.7.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成する生成部と、
前記生成部によって生成された前記基準クロックおよび前記複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号からデータを取得する複数の取得部と、
前記複数の取得部によって取得された各データのうち前記基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定する判定部と、
前記判定部によって前記複数の取得部によって取得された前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正部と、
を有することを特徴とするデータ受信回路。
【請求項２】
前記補正部は、前記判定部によって前記基準クロックを用いて取得したデータと一致しないと判定されたデータが存在する場合には、前記基準クロックの位相を基準として、前記一致しないデータを取得した際に用いたクロックの位相とは逆の方向に、前記基準クロックと複数のクロックとの位相を補正する
ことを特徴とする請求項１に記載のデータ受信回路。
【請求項３】
前記生成部は、
受信したクロック信号の位相を段階的に変更した複数の信号を出力するＤＬＬ回路と、
前記ＤＬＬ回路から出力された複数の信号から、前記基準クロックと複数のクロックとを選択し、選択した各信号を出力するセレクタと
を有し、
前記補正部は、前記基準クロックを用いて取得したデータと一致しないと判定されたデータが存在する場合には、前記基準クロックの位相を基準として該一致しないデータを取得した際に用いたクロックの位相の向きと、該一致しないデータの数とを示す位相補正信号を前記生成部に送信し、
前記セレクタは、前記補正部から送信された位相補正信号に応じて、新たな基準クロックと複数のクロックとを選択することを特徴とする請求項１又は２に記載のデータ受信回路。
【請求項４】
前記セレクタは、前記ＤＬＬ回路から出力された複数の信号から一つの信号を基準クロックとして選択するとともに、当該基準クロックの位相よりも進んだ位相を有する複数の信号と、当該基準クロックの位相よりも遅れた位相を有する複数の信号とをクロックとして選択することを特徴とする請求項３に記載のデータ受信回路。
【請求項５】
前記セレクタは、前記位相補正信号を受信した場合には、直前に基準クロックとして選択した信号の位相を基準として、当該位相補正信号が示す向きとは反対の方向に、当該位相補正信号が示す数と同じ段数だけ位相がずれた信号を新たな基準クロックとして選択することを特徴とする請求項３に記載のデータ受信回路。
【請求項６】
前記セレクタは、前記位相補正信号を受信した場合には、直前に基準クロックとして選択した信号の位相を基準として、当該位相補正信号が示す向きとは反対の方向に、前記データ信号の半周期分だけ位相がずれた信号を、新たな基準クロックとして選択することを特徴とする請求項３に記載のデータ受信回路。
【請求項７】
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成する生成部と、
前記生成部によって生成された前記基準クロックおよび前記複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号からデータを取得する複数の取得部と、
前記判定部によって前記複数の取得部によって取得された前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正部と、
を有することを特徴とするデータ受信回路と、
Ｉ／Ｏ装置制御回路と、
Ｉ／Ｏ装置と
を備えることを特徴とする情報処理装置。
【請求項８】
データ信号を受信する情報処理装置によって実行されるプログラムであって、
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成する生成手順と、
前記生成手順によって生成された前記基準クロックおよび前記複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号からデータを取得する複数の取得手順と、
前記複数の取得手順によって取得された各データのうち前記基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定する判定手順と、
前記判定手順によって前記複数の取得手順によって取得された前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正手順と、
を実行させることを特徴とするデータ受信プログラム。
【請求項９】
データ信号を受信する情報処理装置によって実行される方法であって、
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成し、
前記生成した前記基準クロックおよび前記複数のクロックのうち、それぞれ異なるクロックを用いて、前記受信したデータ信号から複数のデータを取得し、
前記取得した各データのうち前記基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定し、
前記取得した前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する
ことを特徴とするデータ受信方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
一つの側面では、基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成するデータ受信回路である。また、データ受信回路は、生成した基準クロックおよび複数のクロックのうち、それぞれ異なるクロックを用いて、受信したデータ信号から複数のデータを取得する。また、データ受信回路は、取得した各データのうち基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定し、他のデータに基準クロックを用いて取得されたデータと一致しないデータが存在すると判定した場合には、データの不一致が発生しない方向に生成するクロックの位相を補正する。
【手続補正書】
【提出日】平成26年1月20日(2014.1.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成する生成部と、
前記生成部によって生成された前記基準クロックおよび前記複数のクロックのうち、それぞれ異なる位相のクロックに従って、１つのクロック信号に対応する複数のデータ信号から複数ビットのデータを取得する複数の取得部と、
前記複数の取得部によって取得された複数のデータのうち前記基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定する判定部と、
前記判定部によって前記複数の取得部によって取得された前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正部と、
を有することを特徴とするデータ受信回路。 
【請求項２】
前記補正部は、前記判定部によって前記基準クロックを用いて取得したデータと一致しないと判定されたデータが存在する場合には、前記基準クロックの位相を基準として、前記一致しないデータを取得した際に用いたクロックの位相とは逆の方向に、前記基準クロックと複数のクロックとの位相を補正する
ことを特徴とする請求項１に記載のデータ受信回路。 
【請求項３】
前記生成部は、
受信したクロック信号の位相を段階的に変更した複数の信号を出力するＤＬＬ回路と、
前記ＤＬＬ回路から出力された複数の信号から、前記基準クロックと複数のクロックとを選択し、選択した各信号を出力するセレクタと
を有し、
前記補正部は、前記基準クロックを用いて取得したデータと一致しないと判定されたデータが存在する場合には、前記基準クロックの位相を基準として該一致しないデータを取得した際に用いたクロックの位相の向きと、該一致しないデータの数とを示す位相補正信号を前記生成部に送信し、
前記セレクタは、前記補正部から送信された位相補正信号に応じて、新たな基準クロックと複数のクロックとを選択することを特徴とする請求項１又は２に記載のデータ受信回路。 
【請求項４】
前記セレクタは、前記ＤＬＬ回路から出力された複数の信号から一つの信号を基準クロックとして選択するとともに、当該基準クロックの位相よりも進んだ位相を有する複数の信号と、当該基準クロックの位相よりも遅れた位相を有する複数の信号とをクロックとして選択することを特徴とする請求項３に記載のデータ受信回路。 
【請求項５】
前記セレクタは、前記位相補正信号を受信した場合には、直前に基準クロックとして選択した信号の位相を基準として、当該位相補正信号が示す向きとは反対の方向に、当該位相補正信号が示す数と同じ段数だけ位相がずれた信号を新たな基準クロックとして選択することを特徴とする請求項３に記載のデータ受信回路。 
【請求項６】
前記セレクタは、前記位相補正信号を受信した場合には、直前に基準クロックとして選択した信号の位相を基準として、当該位相補正信号が示す向きとは反対の方向に、前記データ信号の半周期分だけ位相がずれた信号を、新たな基準クロックとして選択することを特徴とする請求項３に記載のデータ受信回路。 
【請求項７】
前記補正部は、前記判定部によって前記基準クロックを用いて取得したデータと一致しないと判定されたデータが存在する場合には、前記基準クロックの位相を基準として、前記一致しないデータを取得した際に用いたクロックの位相とは逆の方向に、前記基準クロックと複数のクロックとの位相を、前記基準クロックの半周期分補正する
ことを特徴とする請求項１又は２に記載のデータ受信回路。
【請求項８】
前記補正部は、前記基準クロックを用いて取得したデータと、当該基準クロックよりも位相が遅いクロックを用いて取得した全てのデータが一致しない場合、または、前記基準クロックを用いて取得したデータと、当該基準クロックよりも位相が早いクロックを用いて取得した全てのデータとが一致しない場合は、所定のトレーニングパターンを用いて、前記基準クロックの位相を補正する
ことを特徴とする請求項１又は２に記載のデータ受信回路。
【請求項９】
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成する生成部と、
前記生成部によって生成された前記基準クロックおよび前記複数のクロックのうち、それぞれ異なる位相のクロックに従って、１つのクロック信号に対応する複数のデータ信号から複数ビットのデータを取得する複数の取得部と、
前記複数の取得部によって取得された複数のデータのうち前記基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定する判定部と、
前記判定部によって前記複数の取得部によって取得された前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正部と、
を有することを特徴とするデータ受信回路と、
Ｉ／Ｏ装置制御回路と、
Ｉ／Ｏ装置と
を備えることを特徴とする情報処理装置。 
【請求項１０】
データ信号を受信する情報処理装置によって実行されるプログラムであって、
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成する生成手順と、
１つのクロック信号に対応する複数のデータ信号から取得される複数ビットのデータを、前記生成手順によって生成された前記基準クロックおよび前記複数のクロックのそれぞれを用いて取得する取得手順と、
前記取得手順によって取得された複数のデータのうち前記基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定する判定手順と、
前記判定手順によって前記取得手順によって取得された前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する補正手順と、
を実行させることを特徴とするデータ受信プログラム。 
【請求項１１】
データ信号を受信する情報処理装置によって実行される方法であって、
基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成し、
１つのクロック信号に対応する複数のデータ信号から取得される複数ビットのデータを、前記生成した前記基準クロックおよび前記複数のクロックのそれぞれを用いて取得し、
前記取得した複数のデータのうち前記基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定し、
前記取得した前記他のデータに前記基準クロックを用いて取得されたデータと一致しないと判定されたデータが存在する場合に、データの不一致が発生しない方向に前記複数のクロックの位相を補正する
ことを特徴とするデータ受信方法。 
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
一つの側面では、基準クロックおよび当該基準クロックと段階的に位相が異なる複数のクロックを生成するデータ受信回路である。また、データ受信回路は、生成した基準クロックおよび複数のクロックのうち、それぞれ異なる位相のクロックに従って、１つのクロック信号に対応する複数のデータ信号から複数ビットのデータを複数取得する。また、データ受信回路は、取得した複数のデータのうち基準クロックを用いて取得されたデータと他のデータとがそれぞれ一致するか否かを判定し、他のデータに基準クロックを用いて取得されたデータと一致しないデータが存在すると判定した場合には、データの不一致が発生しない方向に生成するクロックの位相を補正する。
【国際調査報告】
2012086017.tif 000019
2012086017.tif 000020