(57)【要約】      （修正有）【課題】  クロックが重畳された入力データから該クロックを復元することなく、正確にデータを復元できるデータリカバリ方法。【解決手段】  シリアル転送されたデータをオーバーサンプリングすることにより復元するデータリカバリ方法で、シリアル転送されたデータを、所定周波数のクロックを所定位相ずつずらして生成された多相クロックによりオーバーサンプリングし、データ位相状態に応じて、位相状態が互いに異なるクロックパターンを生成、データから生成した第１の位相パターンと、クロックパターンから生成した第２の位相パターンとを比較し、抽出するビット数を制御する位相状態制御と、第１の位相パターンと第２の位相パターンに基づき、位相誤差を検出する位相誤差検出と、クロックパターンの位相状態及び位相誤差検出工程により検出された位相誤差に基づき、オーバーサンプリングデータから抽出するビットを選択してデータを復元する。【選択図】  図４
2006262165.tif 000002
【特許請求の範囲】
【請求項１】
シリアル転送されたデータをオーバーサンプリングすることにより復元するデータリカバリ方法であって、
シリアル転送された前記データを、所定周波数のクロックを所定位相ずつずらして生成された多相クロックによりオーバーサンプリングしてオーバーサンプリングデータを取得するサンプリング工程と、
前記オーバーサンプリングデータのデータ位相状態に応じて、位相状態が互いに異なるクロックパターンを生成するクロックパターン生成工程と、
前記オーバーサンプリングデータから生成した第１の位相パターンと、前記クロックパターンから生成した第２の位相パターンとを比較して、前記オーバーサンプリングデータから抽出するビット数を制御する位相状態制御工程と、
前記第１の位相パターンと前記第２の位相パターンに基づき、前記オーバーサンプリングデータの位相誤差を検出する位相誤差検出工程と、
前記クロックパターンの位相状態及び前記位相誤差検出工程により検出された前記位相誤差に基づき、前記オーバーサンプリングデータから抽出するビットを選択して前記データを復元するデータ選択工程と、を有することを特徴とするデータリカバリ方法。
【請求項２】
前記位相誤差検出工程は、
所定の期間における前記位相誤差の移動平均を算出し、前記位相誤差の移動平均を位相誤差とする、
ことを特徴とする請求項１記載のデータリカバリ方法。
【請求項３】
前記位相誤差検出工程は、
前記第１の位相パターンと前記第２の位相パターンとの位相差が略π程度となった場合、略π程度となる直前の前記位相誤差に基づき位相進み又は遅れを判定する、
ことを特徴とする請求項１又は２記載のデータリカバリ方法。
【請求項４】
前記位相誤差検出工程は、前記位相誤差の平均値を算出している間に、前記クロックパターンの位相状態が遷移した場合、前記位相誤差を遷移状態に応じて補正する、
ことを特徴とする請求項２又は３記載のデータリカバリ方法。
【請求項５】
前記クロックパターン生成工程が前記位相状態の異なる前記クロックパターンに遷移するか否かを判定する期間は、
前記位相誤差の移動平均を算出するための前記所定の期間より長い、
ことを特徴とする請求項２ないし４のいずれか記載のデータリカバリ方法。
【請求項６】
前記データ選択工程は、
前記クロックパターンの前記位相状態に基づき前記オーバーサンプリングデータから抽出するビットの複数個の候補を選択する第１の選択工程と、
前記第１の選択工程により選択された前記複数個の候補から、前記位相誤差検出工程が検出した位相誤差に基づき１ビットを抽出する第２の選択工程と、
を有することを特徴とする請求項１ないし５いずれか記載のデータリカバリ方法。
【請求項７】
シリアル転送されたデータをオーバーサンプリングすることにより復元するデータリカバリ回路であって、
シリアル転送された前記データを、所定周波数のクロックを所定位相ずつずらして生成された多相クロックによりオーバーサンプリングしてオーバーサンプリングデータを取得するサンプリング部と、
前記オーバーサンプリングデータのデータ位相状態に応じて、位相状態が互いに異なるクロックパターンを生成するクロックパターン生成部と、
前記オーバーサンプリングデータから生成した第１の位相パターンと、前記クロックパターンから生成した第２の位相パターンとを比較して、前記オーバーサンプリングデータから抽出するビット数を制御する位相状態制御部と、
前記第１の位相パターンと前記第２の位相パターンに基づき、前記オーバーサンプリングデータの位相誤差を検出する位相誤差検出部と、
前記クロックパターンの位相状態及び前記位相誤差検出部により検出された前記位相誤差に基づき、前記オーバーサンプリングデータから抽出するビットを選択して前記データを復元するデータ選択部と、を有することを特徴とするデータリカバリ回路。
【請求項８】
前記位相誤差検出部は、
所定の期間における前記位相誤差の移動平均を算出し、前記位相誤差の移動平均を位相誤差とする、
ことを特徴とする請求項７記載のデータリカバリ回路。
【請求項９】
前記位相誤差検出部は、
前記第１の位相パターンと前記第２の位相パターンとの位相差が略π程度となった場合、略π程度となる直前の前記位相誤差に基づき位相進み又は遅れを判定する、
ことを特徴とする請求項７又は８記載のデータリカバリ回路。
【請求項１０】
前記位相誤差検出部は、前記位相誤差の平均値を算出している間に、前記クロックパターンの位相状態が遷移した場合、前記位相誤差を遷移状態に応じて補正する、
ことを特徴とする請求項７ないし９いずれか記載のデータリカバリ回路。
【請求項１１】
前記クロックパターン生成部が前記位相状態の異なる前記クロックパターンに遷移するか否かを判定する期間は、
前記位相誤差の移動平均を算出するための前記所定の期間より長い、
ことを特徴とする請求項７ないし１０のいずれか記載のデータリカバリ回路。
【請求項１２】
前記データ選択部は、
前記位相状態に基づき前記オーバーサンプリングデータから抽出するビットの複数個の候補を選択する第１の選択部と、
前記第１の選択部により選択された前記複数個の候補から、前記位相誤差検出部が検出した位相誤差に基づき１ビットを抽出するする第２の選択部と、
を有することを特徴とする請求項７ないし１１いずれか記載のデータリカバリ回路。
【請求項１３】
周波数ｆ１のクロックに同期してデータをシリアル転送するデータ送信部と、
シリアル転送された前記データを、周波数ｆ２のクロックを所定位相ずつずらして生成された多相クロックによりオーバーサンプリングしてオーバーサンプリングデータを取得するサンプリング部と、
前記オーバーサンプリングデータのデータ位相状態に応じて、位相状態が互いに異なるクロックパターンを生成するクロックパターン生成部と、
前記オーバーサンプリングデータから生成した第１の位相パターンと、前記クロックパターンから生成した第２の位相パターンとを比較して、前記オーバーサンプリングデータから抽出するビット数を制御する位相状態制御部と、
前記第１の位相パターンと前記第２の位相パターンに基づき、前記オーバーサンプリングデータの位相誤差を検出する位相誤差検出部と、
前記クロックパターンの位相状態及び前記位相誤差検出部により検出された前記位相誤差に基づき、前記オーバーサンプリングデータから抽出するビットを選択して前記データを復元するデータ選択部と、を有することを特徴とするデータ送受信装置。
【請求項１４】
前記位相誤差検出部は、
所定の期間における前記位相誤差の移動平均を算出し、前記位相誤差の移動平均を位相誤差とする、
ことを特徴とする請求項１３記載のデータ送受信装置。
【請求項１５】
前記位相誤差検出部は、
前記第１の位相パターンと前記第２の位相パターンとの位相差が略π程度となった場合、略π程度となる直前の前記位相誤差に基づき位相進み又は遅れを判定する、
ことを特徴とする請求項１３又は１４記載のデータ送受信装置。
【請求項１６】
前記位相誤差検出部は、
前記位相誤差の平均値を算出している間に、前記クロックパターンの位相状態が遷移した場合、前記位相誤差を遷移状態に応じて補正する、
ことを特徴とする請求項１４又は１５記載のデータ送受信装置。
【請求項１７】
前記クロックパターン生成部が前記位相状態の異なる前記クロックパターンに遷移するか否かを判定する期間は、
前記位相誤差の移動平均を算出するための前記所定の期間より長い、
ことを特徴とする請求項１４ないし１６のいずれか記載のデータ送受信装置。
【請求項１８】
前記データ選択部は、
前記位相状態に基づき前記オーバーサンプリングデータから抽出するビットの複数個の候補を選択する第１の選択部と、
前記第１の選択部により選択された前記複数個の候補から、前記位相誤差検出部が検出した位相誤差に基づき１ビットを抽出するする第２の選択部と、
を有することを特徴とする請求項１３ないし１７いずれか記載のデータ送受信装置。
【請求項１９】
請求項７ないし１２いずれか記載のデータリカバリ回路を用いた情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル転送されたデータを復元するためのデータリカバリ方法、データリカバリ回路、送受信装置及び情報処理装置に関する。
【背景技術】
【０００２】
近年、機器間、ボード間、チップ間での大容量・高速データ伝送の要求に伴い、USB（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）、Ｓｅｒｉａｌ ATA、IEEE1394、1G/10G Ethernet（登録商標）、InfiniBand、RapidIO、Fibre Channel、PCI Expressといった様々な高速インタフェース規格が提唱され実用化に供されており、今後高速化・大容量化の傾向はますます強まるものと予想される。
【０００３】
これら高速インタフェース規格の多くがシリアル転送方式を採用しており、予め定められた周波数に同期するようにデータが伝送される。伝送データには、この周波数のクロック信号が重畳され（エンベデッドクロック）、データ受信部では、受信データよりこのクロックを抽出し、この抽出したクロック信号により受信データを復元している（例えば、特許文献１参照。）。これらの動作を行う回路をクロックデータリカバリ回路（以下適宜ＣＤＲ：Clock Data Recovery）と称する。
【０００４】
従来のＣＤＲ回路では、一般にＰＬＬ（Phase Locked Loop）回路が用いられ、ＰＬＬに含まれるＶＣＯ（Voltage Controlled Oscillator）の発振信号（クロック）が受信データの位相に対して同期するように制御され、再生クロックとして抽出される。そしてこの再生クロックを基準として受信データをラッチすることにより正確に受信データが復元できる。
【０００５】
しかしながら、今般の高速化の要求によりデータ転送レートが向上（例えばGbpsオーダーを超えるデータ転送レートになると）、ＶＣＯの発振周波数もＧＨｚオーダーを超え、このような高速なデータを復元できるＣＤＲ回路を実現することは容易ではない。また、チップサイズの増大や消費電力の増大、コストアップなどのマイナスの要因も大きい。
【０００６】
また、高速になると配線遅延なども無視できるものではないので、素子の配置や配線などのレイアウトも考慮に入れなければならず、設計が非常に困難となる。また使用するデバイス特性に大きく依存するので、プロセス毎にレイアウトの再設計が必要となり（あるいは回路の再設計まで必要となり）、回路の再利用性についても劣り、開発期間の増大を招いていた。
【０００７】
このような問題を解決するものとして、オーバーサンプリング型のクロックデータリカバリ回路が提案されている（例えば、非特許文献１参照。）。図１は、従来のオーバーデータサンプリング型のＣＤＲ回路の構成図を示す。多相クロック生成部２００はＰＬＬやＤＬＬ（Delayed Locked Loop）などにより構成され、基準クロックＲｅｆＣＬＫから互いに等間隔の位相差の多相クロックを生成する。フリップフロップ２０１には（以下、適宜フリップフロップは単にFFあるいはF/Fと称する）、入力データがデータ端子に共通入力される。フリップフロップ２０１は、多相クロック生成部２００から供給される多相クロックの各クロックをそれぞれクロック端子に入力して、各クロックの立ち上がりで（あるいは立下りで）入力データを取り込む。
【０００８】
すなわちフリップフロップ２０１から出力されるデータは入力データを少しずつ位相のずれたクロックでサンプルしたものとなる。ディジタルＰＬＬ202では、フリップフロップ２０１から供給されるデータからデータの遷移タイミングを検出し、そのタイミングに同期する位相のクロックを多相クロックの中から選択し、再生クロックRecCLKとして復元する。また、再生クロックRecCLKと所定の位相差（例えば逆位相）を持つクロックで取り込んだデータを再生データRecDataとして選択し、出力する。再生クロックの選択には、データの遷移タイミングをフィルタで平滑化して検出している。そして後段の信号処理部（不図示）ではこの再生クロックRecCLKをクロックとして動作を行うことになる。ＣＤＲ回路をこのような構成にすれば、多相クロック生成部以外はディジタル回路で構成できるので回路の実現が比較的容易となる。
【０００９】
ところで、この多相クロックはほぼ等位相間隔であることが望ましい。図２は、多相クロックが等間隔でない場合の問題点の一例を示す図である。ここでは4位相を例に説明する。図２では、再生クロックとして選択されたCLK2の位相が理想状態よりΔだけ遅れているものとする。信号処理部内の各データはこの再生クロックＣＬＫ２に同期して動作している。
【００１０】
ここでTswのタイミングでCLK1の位相に再生クロックが切り替わったとすると、局所的に元々の位相差に加えてさらにΔだけ再生クロックの周期が短くなり、信号処理部内でフリップフロップのセットアップ時間Tsu'が十分確保できなくなり、最悪の場合誤動作の恐れもある。これはたとえ多相クロック生成部100の出力端で等位相間隔になるように設計したとしても、再生クロックRecCLK出力端までの各クロックのスキュー（例えば配線遅延や負荷などにより影響する）により生じ、特に高速になると顕著となる。従って、各部で多相クロックの遅延量の合せ込みを行わなければならいため実現は容易ではなく、上述の問題点を解決するには至っていない。
【００１１】
また、この多相クロック生成部において、位相インターポレータを用い、位相を調整する方法が開示されている（例えば、特許文献２参照。）。位相インターポレータのような回路を設ければ、多相クロックの位相を等間隔で出力することは可能となる。
【特許文献１】特開2004-128980号公報
【特許文献２】特開2002-190724号公報
【非特許文献１】B.Kim et.al.“A 30-MHz Hybrid Analog/Digtal Clock Recovery Circuit in 2-um CMOS", IEEE JSSC, December 1990, pp1385-1394
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献２記載のＣＤＲ回路は装置の増大化を招くほか、高速化に伴う配線遅延を無視しえない。配線遅延を回避する方法として、各部入力においてそれぞれ多相クロックの位相を合わせる方法が考えられる。しかし、多相クロックの位相を合わせることは、オーバーサンプリング周波数（図２の例では、転送データに含まれるクロックの４倍の周波数）で動作するオーバーサンプリング型ＣＤＲ回路を実現するのと同等の困難性がある。
【００１３】
すなわち、従来のアナログ型ＰＬＬを用いたＣＤＲ回路やオーバーサンプリング型のＣＤＲ回路のように、入力データからクロックを復元し、この復元したクロックにより信号処理を行う装置においては、転送速度の高速化に伴ってＣＤＲの実現が困難となってきている。そしてＣＤＲ部の設計期間がネックとなり開発期間の増大を招いており、今後の更なる高速化においては、この傾向はより顕著となり、その実現が益々困難になってきている。
【００１４】
本出願人はかかる問題を鑑みて、クロックが重畳された入力データから、その重畳されたクロックを復元することなく、独立したクロックによりデータを復元するデータリカバリ回路及びその方法を提案している。
【００１５】
本発明は、クロックが重畳された入力データから該クロックを復元することなく、データを復元するデータリカバリ回路及び方法を改善するものであり、入力データのジッタ（データ変化タイミングの時間的なぶれ）が増大しても正確にデータを復元できるデータリカバリ方法、データリカバリ回路、データ送受信装置及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記問題を解決するため、本発明は、シリアル転送されたデータをオーバーサンプリングすることにより復元するデータリカバリ方法であって、シリアル転送されたデータを、所定周波数のクロックを所定位相ずつずらして生成された多相クロックによりオーバーサンプリングしてオーバーサンプリングデータを取得するサンプリング工程と、オーバーサンプリングデータのデータ位相状態に応じて、位相状態（例えばＳｔ０〜５）が互いに異なるクロックパターン（例えばＣＫＰ）を生成するクロックパターン生成工程と、オーバーサンプリングデータから生成した第１の位相パターン（例えば、ＲｘＥｄｇｅ）と、クロックパターンから生成した第２の位相パターン（例えばＣＫＥｄｇｅ）とを比較して、オーバーサンプリングデータから抽出するビット数（例えばＳ０〜２）を制御する位相状態制御工程と、第１の位相パターンと第２の位相パターンに基づき、オーバーサンプリングデータの位相誤差（例えばＥｒｒ）を検出する位相誤差検出工程と、クロックパターンの位相状態及び位相誤差検出工程により検出された位相誤差に基づき、オーバーサンプリングデータから抽出するビットを選択して前記データを復元するデータ選択工程と、を有することを特徴とする。
【００１７】
本発明によれば、クロックが重畳された入力データから該クロックを復元することなくデータを復元でき、また、入力データのジッタが増大しても正確にデータを復元できるデータリカバリ方法を提供できる。なお、オーバーサンプリングデータやクロックパターンから生成する位相パターンは、オーバーサンプリングデータの位相遅れ又は位相進みを検出できれば、どのように生成してもよい。
【００１８】
また、本発明のデータリカバリ方法の一形態において、位相誤差検出工程は、所定の期間における前記位相誤差の移動平均を算出し、位相誤差の移動平均を位相誤差とする、ことを特徴とする。
【００１９】
本発明によれば、所定の期間の位相誤差の平均を算出することで、ジッタの高周波成分を平均化して位相誤差を検出できる。
【００２０】
また、本発明のデータリカバリ方法の一形態において、位相誤差検出工程は、第１の位相パターンと第２の位相パターンとの位相差が略π程度となった場合、略π程度となる直前の前記位相誤差に基づき位相進み又は遅れを判定する、とを特徴とする。
【００２１】
本発明によれば、位相誤差が所定値以上又は所定値以下となった場合、すなわち、位相進みか位相遅れかの判別が困難な位相状態であっても、所定値以上又は以下となる直前の位相誤差により位相進みか遅れかを判定でき、適切な位相誤差を抽出できる。
【００２２】
また、本発明のデータリカバリ方法の一形態において、位相誤差検出工程は、位相誤差の平均値を算出している間に、クロックパターンの位相状態が遷移した場合、位相誤差を遷移状態に応じて補正する、ことを特徴とする。
【００２３】
本発明によれば、平均の算出中に、位相誤差を検出するための位相状態が遷移しても（変化しても）、遷移状態に応じて位相誤差を補正できるので、適切な位相誤差を検出できる。
【００２４】
また、本発明のデータリカバリ方法の一形態において、クロックパターン生成工程が位相状態の異なるクロックパターンに遷移するか否かを判定する期間は、位相誤差の移動平均を算出するための所定の期間より長い、ことを特徴とする。
【００２５】
本発明によれば、クロックパターンの位相状態を遷移するか否かを判定する期間よりも短い期間で位相誤差を平均化することにより、クロックパターンの位相状態の遷移より変化の早いジッタ成分に含まれる高周波のジッタ成分を平滑化して求め、これに応じて復元データの位相を選択しているので、常にアイ開口のほぼ中心でデータを取り込むようにでき、安定して正確にデータを復元できる。つまり、移動平均の帯域以下のジッタ成分まで抑圧できるようになるのでジッタ許容値が拡大される。
【００２６】
また、本発明のデータリカバリ方法の一形態において、データ選択工程は、クロックパターンの位相状態に基づきオーバーサンプリングデータから抽出するビットの複数個の候補を選択する第１の選択工程と、第１の選択工程により選択された複数個の候補から、位相誤差検出工程が検出した位相誤差に基づき１ビットを抽出する第２の選択工程と、を有することを特徴とする。
【００２７】
本発明によれば、検出された位相誤差に基づいて、アイ開口部の略中央のビットを選択できるので、正確にデータを復元できる。
【００２８】
また、本発明は、シリアル転送されたデータをオーバーサンプリングすることにより復元するデータリカバリ回路であって、シリアル転送されたデータを、所定周波数のクロックを所定位相ずつずらして生成された多相クロックによりオーバーサンプリングしてオーバーサンプリングデータを取得するサンプリング部と、オーバーサンプリングデータのデータ位相状態に応じて、位相状態が互いに異なるクロックパターンを生成するクロックパターン生成部と、オーバーサンプリングデータから生成した第１の位相パターンと、クロックパターンから生成した第２の位相パターンとを比較して、オーバーサンプリングデータから抽出するビット数を制御する位相状態制御工程と、第１の位相パターンと第２の位相パターンに基づき、オーバーサンプリングデータの位相誤差を検出する位相誤差検出工程と、クロックパターンの位相状態及び位相誤差検出部により検出された位相誤差に基づき、オーバーサンプリングデータから抽出するビットを選択してデータを復元するデータ選択部と、を有することを特徴とする。
【００２９】
また、本発明のデータリカバリ回路の一形態において、位相誤差検出部は、所定の期間における位相誤差の移動平均を算出し、位相誤差の移動平均を位相誤差とする、ことを特徴とする。
【００３０】
また、本発明のデータリカバリ回路の一形態において、位相誤差検出部は、第１の位相パターンと第２の位相パターンとの位相差が略π程度となった場合、略π程度となる直前の位相誤差に基づき位相進み又は遅れを判定する、ことを特徴とする。
【００３１】
また、本発明のデータリカバリ回路の一形態において、位相誤差検出部は、位相誤差の平均値を算出している間に、クロックパターンの位相状態が遷移した場合、位相誤差を遷移状態に応じて補正する、ことを特徴とする。
【００３２】
また、本発明のデータリカバリ回路の一形態において、クロックパターン生成部が位相状態の異なるクロックパターンに遷移するか否かを判定する期間は、位相誤差の移動平均を算出するための所定の期間より長い、ことを特徴とする。
【００３３】
また、本発明のデータリカバリ回路の一形態において、データ選択部は、位相状態に基づきオーバーサンプリングデータから抽出するビットの複数個の候補を選択する第１の選択部と、第１の選択部により選択された複数個の候補から、位相誤差検出部が検出した位相誤差に基づき１ビットを抽出するする第２の選択部と、を有することを特徴とする。
【００３４】
また、本発明は、周波数ｆ１のクロックに同期してデータをシリアル転送するデータ送信部と、シリアル転送されたデータを、周波数ｆ２のクロックを所定位相ずつずらして生成された多相クロックによりオーバーサンプリングしてオーバーサンプリングデータを取得するサンプリング部と、オーバーサンプリングデータのデータ位相状態に応じて、位相状態が互いに異なるクロックパターンを生成するクロックパターン生成部と、  前記オーバーサンプリングデータから生成した第１の位相パターンと、前記クロックパターンから生成した第２の位相パターンとを比較して、オーバーサンプリングデータから抽出するビット数を制御する位相状態制御部と、第１の位相パターンと前記第２の位相パターンに基づき、オーバーサンプリングデータの位相誤差を検出する位相誤差検出部と、クロックパターンの位相状態及び位相誤差検出部により検出された位相誤差に基づき、オーバーサンプリングデータから抽出するビットを選択してデータを復元するデータ選択部と、を有することを特徴とする。
【００３５】
また、本発明のデータ送受信装置の一形態において、位相誤差検出部は、所定の期間における位相誤差の移動平均を算出し、位相誤差の移動平均を位相誤差とする、ことを特徴とする。
【００３６】
また、本発明のデータ送受信装置の一形態において、位相誤差検出部は、第１の位相パターンと第２の位相パターンとの位相差が略π程度となった場合、略π程度となる直前の前記位相誤差に基づき位相進み又は遅れを判定する、ことを特徴とする。
【００３７】
また、本発明のデータ送受信装置の一形態において、位相誤差検出部は、位相誤差の平均値を算出している間に、クロックパターンの位相状態が遷移した場合、位相誤差を遷移状態に応じて補正する、ことを特徴とする。
【００３８】
また、本発明のデータ送受信装置の一形態において、クロックパターン生成部が位相状態の異なるクロックパターンに遷移するか否かを判定する期間は、位相誤差の移動平均を算出するための所定の期間より長い、ことを特徴とする。
【００３９】
また、本発明のデータ送受信装置の一形態において、データ選択部は、位相状態に基づきオーバーサンプリングデータから抽出するビットの複数個の候補を選択する第１の選択部と、第１の選択部により選択された複数個の候補から、位相誤差検出部が検出した位相誤差に基づき１ビットを抽出するする第２の選択部と、を有することを特徴とする。
【００４０】
また、本発明は、請求項７ないし１２いずれか記載のデータリカバリ回路を用いた情報処理装置を提供する。
【発明の効果】
【００４１】
クロックが重畳された入力データから該クロックを復元することなく、入力データのジッタが増大しても正確にデータを復元できるデータリカバリ方法、データリカバリ回路、データ送受信装置及び情報処理装置を提供することができる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明を実施するための最良の形態を図面を参照しながら説明する。
【００４３】
〔第１の実施形態〕
まず、本実施の形態のデータリカバリ回路が適用されるシリアル転送部の物理層（Physical Layer）の全体構成例と概略動作について説明する。
【００４４】
図３は、データリカバリ回路が適用されたシリアル転送部の物理層部１００の全体構成図を示す。物理層部１００はデータの送信を行う送信部１０１と受信を行う受信部１０２とを有する。これら送信部１０１と受信部１０２の一組をポートと称する。
【００４５】
シリアル転送はpoint-to-pointで行われ、ポートが1対1で対応している。対向したポートには同等機能をもつ受信部１２１と送信部１２２を備える物理層部１２０が接続されている。
本実施形態における伝送路１０６、１０７は、送信と受信とは別個の伝送路により同時に行なうことが可能な全２重回線を構成しているが、必ずしも全２重回線である必要はなく、片２重回線により構成されている場合でも、本実施の形態のデータリカバリ回路が適用される。なお、伝送路１０６、１０７は、それぞれ２本の線路により構成されているが、無線により構成されていてもよい。
【００４６】
送信部１０１は、上位層から供給される送信データＤｔｘを所定の変換規則に従って符号化を行うエンコーダ部ＥＮＣ１０３と、エンコードされたデータをシリアル変換するシリアライザＳＥＲ１０４と、シリアル変換したデータを伝送線路１０６上に送信する送信出力部Ｔｘ１０５とを有する。
【００４７】
伝送線路１０６上における伝送は差動信号で行うものとする。また、エンコーダ部ＥＮＣ１０３での符号化は、８Ｂ／１０Ｂ変換が適用される。８Ｂ／１０Ｂ変換は、８ビットのデータから１０ビットのデータ（以下、シンボルデータと称す）に変換するものであり、８ビットデータに加えＫコード（あるいはＫキャラクタ）と呼ばれる制御用の1ビットＤｔｘｋを用いデータ以外の制御のための特殊符号に変換する。８Ｂ／１０Ｂ変換は公知の技術であるので詳細説明は省略する。
【００４８】
物理層部１００は、ＰＬＬ部１１３を備え、供給される基準クロックＲｅｆＣＬＫ１を基に、データ転送のため各規格に定められた周波数の転送クロックＢＣＬＫと内部動作のため転送クロックＢＣＬＫを１０分周した（本実施の形態の８Ｂ／１０Ｂ変換の場合）クロックＰＣＬＫを生成する。例えば、データ転送が２．５Ｇｐｓで行われる場合、転送クロックＢＣＬＫは2.5GHzとし、クロックＰＣＬＫは２５０ＭＨｚのクロックを生成する。そして、エンコーダ部１０３にはクロックＰＣＬＫを、シリアライザＳＥＲ104にはクロックＰＣＬＫ、ＢＣＬＫを供給し各部を動作させる。また上位層とのデータの受け渡しもクロックＰＣＬＫに同期して行われる。
【００４９】
受信部１０２は、伝送線路１０７上を伝送されてきた差動信号を二値化する受信入力部Ｒｘ１０８と、受信信号からデータを復元するデータリカバリ部ＤＲ１０９と、復元したデータを１０ビットのシンボルデータにパラレル変換するデシリアライザＤＥＳ１１０と、送信側と受信側のクロックの周波数差を吸収するエラスティックバッファＥＢ１１１と、１０ビットシンボルを８ビットデータに変換する１０Ｂ／８Ｂ変換を行うデコーダ部ＤＥＣ１１２とを有する。
【００５０】
対向する送信部１２２は、ＰＬＬ１２３において基準クロックＲｅｆＣＬＫ２を基に生成されるクロックに同期して送信する。一方、受信部１０２では最終的にはＰＬＬ１１３において基準クロックＲｅｆＣＬＫ１を基に生成されるクロックに同期して上位層へデータを出力しなければならないため、この基準クロックの周波数差を吸収するする必要がある。
【００５１】
エラスティックバッファＥＢ１１１は、周波数差を吸収するために設けられており、例えば特殊符号の追加、削除により周波数差を吸収する。なお、エラスティックバッファＥＢ１１１は、デコーダ部の後段に設けられることもある。また、この周波数差の許容値はインタフェース規格毎に定められている。
【００５２】
本実施の形態のデータリカバリ回路は、データリカバリ部ＤＲ１０９に適用されるものであり、デシリアライザＤＥＳ１１０の機能を併せて有する。したがって、データリカバリ部ＤＲ１０９以外の他の部位の構成・機能は、以下に説明する本発明の要旨から大きく逸脱しない範囲で変更することが可能である。また、後述するように、図３ではデータリカバリ部ＤＲ１０９に供給する多相クロックＣＫＯ０〜１１をＰＬＬ１１３で生成しており、送信部１０１に供給するクロックと共通のクロックを利用している。
【００５３】
これは、対向する物理層部１００、１２０それぞれが、独立の基準クロックＲｅｆＣＬＫ１、ＲｅｆＣＬＫ２から生成されたクロックそれぞれにより動作するよう構成されているためである。対向するポートの基準クロックＲｅｆＣＬＫ２とは独立の基準クロックＲｅｆＣＬＫ１に基づき生成したクロックによりこの物理層部１００の全てが動作することになり、後述のように、物理層１００でＰＬＬ１１３を共通化して利用することができ、回路（チップサイズ）の小型化、コストの低減が可能となる。
【００５４】
続いて、データリカバリ回路の実施形態について説明する。図４は、本実施形態の基本となるデータリカバリ回路のブロック図を示す。データリカバリ回路は、オーバーデータサンプリング部１、多相クロック生成部２及びシンボルデータ復元部３とを有する。
【００５５】
オーバーサンプリング部1は、多相クロック生成部2から供給される多相クロックＣＫ０〜１１により受信データDataを取り込み、オーバーサンプリングデータＯＶＳＤを出力する。
【００５６】
シンボルデータ復元部３は、オーバーサンプリングデータＯＶＳＤから１０ビットのシンボルデータSYMを復元し、シンボルクロックSYMCLKを生成するもので、データリカバリの機能とデシリアライザの機能を有する。シンボルデータ復元部３は、データ選択部６、選択信号生成部７、デシリアライザＤＥＳ８及びコンマ検出部９とから構成される。なお、シンボルデータ復元部３は、多相クロックの内の1つのクロックＣＫ０で動作する。
【００５７】
多相クロック生成部２は、基準クロックＲｅｆＣＬＫ１から生成された所定周波数のクロックを所定位相ずつシフトし、互いにほぼ等間隔の位相差の多相クロックを生成する。
【００５８】
本実施の形態では、周期ＵＩが定められている転送クロックＢＣＬＫの約1/2の周波数ｆ２を有し、位相差が例えば1/6ＵＩの多相クロックＣＫ０〜１１を生成する。例えば転送レートが2.5Gbpsの場合（ＵＩ=400ps）、800ps（1.25GHz）で66.7psずつ位相差を持つ12個のクロックを生成する。
【００５９】
なお、多相クロックの周波数ｆ２は、転送クロックの１／２である必要はなく、例えば１／４にすることにより２４個のクロックを生成してもよいし、転送クロックと同一にしてもよい。さらに、多相クロックの位相差は、転送クロックの周期ＵＩの１／６ＵＩに限定する必要はない。また、本実施形態のデータリカバリ回路は、多相クロック生成部２を含んで構成されているが、多相クロック生成部２をデータリカバリ回路とは別個に構成してもよい。
【００６０】
このようにデータリカバリ回路に、転送クロック周波数ｆ１より低い周波数ｆ２に設定された多相クロックを用いることにより、各部動作周波数や多相クロック生成部の発振周波数を下げることができるので実現が容易となる。
【００６１】
なお、本実施の形態によれば、多相クロック生成部２は図３におけるＰＬＬ１１３と兼用できる。詳細構成については後述する。
【００６２】
次に、データリカバリ回路の各部の詳細について説明する。
オーバーサンプリング部1は、１２個のフリップフロップ（Ｆ／Ｆ０〜Ｆ／Ｆ１１）４と、入力されたデータを１つのクロック（例えばＣＫ０）に同期させて出力する並列化部５と、を有する。
【００６３】
フリップフロップＦ／Ｆ０〜Ｆ／Ｆ１１には、それぞれの受信データDataが共通入力され、多相クロックＣＫ０〜１１の各クロックをそれぞれクロック端子に入力して、各クロックの立ち上がりで受信データを取り込み、出力Ｑ０〜１１を出力する。
【００６４】
並列化部５は、フリップフロップ４からの各出力Ｑ０〜１１を多相クロックの内の1つのクロック（ここではＣＫ０とする）に同期させて、オーバーデータサンプルデータＯＶＳＤを出力する。
【００６５】
図５は、オーバーサンプリング部の各主要信号の信号波形図の一例を示す。図５(a)は、受信データDataの一波形例を示す。図５（b）は、データ転送クロックを示す（実際にはオーバーデータサンプリング部には存在しないが説明のため記載した。）。図５（(ｃ-０)〜(ｃ-１１)）は、多相クロックＣＫ０〜１１を示し、２ＵＩの周期でそれぞれ等位相間隔のクロックである。図５（（ｄ−０）〜（ｄ−１１））は、多相クロックＣＫ０〜１１によりＦＦに取り込まれ、各ＦＦから出力されるデータＱ０〜Ｑ１１を示す。図５（ｅ）は、並列化部に一旦取り込まれたデータＱ０〜Ｑ５、データＱ６〜Ｑ１１、を図５（ｆ）は、並列化部から出力されるオーバーサンプリングデータＯＶＳＤを表している。
【００６６】
多相クロックＣＫ０〜１１の周期は、上述のようにデータ転送クロックの周期（ＵＩ）の２倍（２ＵＩ）に設定され、隣接したクロック相互の位相差が等間隔になるように位相をシフトしたクロックである。
【００６７】
図５（a）の受信データDataの黒点は、各多相クロックＣＫ０〜１１によるサンプリング点であり、多相クロックＣＫ０〜１１により取り込まれた各FF出力Ｑ０〜１１は、（ｄ-０）〜（ｄ-１１）のように変化する。
【００６８】
並列化部５においては、一旦、クロックＣＫ０でQ0〜Q5を取り込み（出力をQQ0〜5とする（e-0））、クロックCK6でQ6〜11を取り込む（出力をQQ6〜11とする(e-6)）。次にクロックＣＫ０でQQ0〜11を取り込んで並列同期化し、オーバーサンプリングデータＯＶＳＤ[0:11]を出力する。なお、図５では左側がLSBで時間的に早いサンプル点を表している。
【００６９】
このように、クロックＣＫ０でQ0〜Q5を取り込み、次いでクロックＣＫ６でQ6〜11を取り込むことで、クロックＣＫ０でＱ０〜１１を同期する際、セットアップ時間が不足してQ11やQ10が正常に取り込めないことが防止できる。なお、並列化部5において各データが安定して取り込めるようさらに段数を増やしてもよい。
【００７０】
ところで、一般に受信データDataの立ち上がり／立下りタイミングは、ランダムにあるいは多種多様な要因により図５の斜線部(ア)のように変動する、いわゆるジッタが生じる。ジッタが生じると、データ遷移タイミング付近のサンプルは図示した白丸のように変動することになる。このようなジッタが原因となってデータの正確な復元を妨げることもあるが、本実施の形態のデータリカバリ回路によればこのような問題も解決できる。
【００７１】
次に、オーバーサンプリングデータＯＶＳＤからデータを復元するシンボルデータ復元部３の構成およびその作用について説明する。
【００７２】
シンボルデータ復元部３は、データ選択部６と、選択信号生成部７と、デシリアライザ
８と、コンマ検出部９とを備え、オーバーサンプリングデータＯＶＳＤから１０ビットのシンボルデータＳＹＭを復元するとともに、位相状態を遷移させたシンボルクロックＳＹＭＣＬＫを生成する。
【００７３】
オーバーサンプリングデータＯＶＳＤは、転送データ２ビットを６位相のクロックでサンプリングした１２ビットのデータである。したがって、１２ビットのオーバーサンプリングデータＯＶＳＤから所定の位相クロックで取り込んだデータ（ビット）を選択出力すればよい。
【００７４】
ただし、対向する物理送部１２０の送信部１２２から送られるデータに含まれる転送クロック（受信データの基準クロックであり、重畳されているクロック）と、物理層１００の受信部１０２でサンプリングに用いる多相クロック（図５（ｂ）のクロックＣＫ０〜１１の2倍のクロック）がまったく同一周波数ならば常に一定の取り込み位相でよい。しかし、通常はある範囲内で周波数差を持つので、徐々に取り込み位相をずらしていき、通常は２ビットで、時折１ビットあるいは３ビットのデータを選択出力する。
【００７５】
例えば０．１％（＝1000ppm）の周波数差があるとすると、転送データ1000ビットで1ビットのずれが発生するので、クロックＣＫ０が500サイクルに1回、1または3ビットの出力となる。
【００７６】
選択信号生成部7は、オーバーサンプリングデータＯＶＳＤからこの取り込み位相を指示する選択信号Ｓｅｌを生成するものであり、同時にデータ有効数を示す状態信号Ｓ０、Ｓ１も生成する。ここで、Ｓ０=１の時はデータ数が１個有効を、Ｓ１=１の時はデータ数が3個有効を示す。また、通常はＳ０=Ｓ１=０となり、２個のデータが有効であることを示す。なお、Ｓ０=Ｓ１=１となることがないように設定されている。
【００７７】
データ選択部6は、この選択信号Ｓｅｌ及び状態信号Ｓ０,Ｓ１に従って、１〜３個の復元データＤ０〜Ｄ２をオーバーサンプリングデータＯＶＳＤから選択出力する。また、状態信号Ｓ０,Ｓ１を所定量遅延させた状態信号Ｓ０’、Ｓ１’も出力する。状態信号Ｓ０’、Ｓ１’は、復元データＤ０〜Ｄ２の有効データを示す。
【００７８】
転送されるシリアルデータにはコンマと呼ばれる特殊符号が所定の間隔で挿入されており、このコンマ符号を区切りとしてシリアルデータを10ビットのシンボルデータＳＹＭに変換する。コンマ検出部９は、このコンマ符号を検出しコンマ検出信号Ｄｅｔを出力する。
【００７９】
デシリアライザＤＥＳ８は、このコンマ検出信号Ｄｅｔを基に、データ選択部6から供給される１〜３個の復元データＤ０〜Ｄ２を１０ビットのシンボルデータSYMにパラレル変換する。また、シンボルクロックSYMCLKの生成も行う。
【００８０】
シンボルデータ復元部３についてより詳細に説明する。
図６は、選択信号生成部7の構成例を、また、図７は選択信号生成部７の各主要信号の波形例を示す図である。
【００８１】
選択信号生成部７は、両エッジ検出部２０と、比較部２１と、カウンタ２２と、状態制御部２３と、ＣＫＰ変換部２４と、エッジ検出部２５と、選択信号変換部２６とを備え、多相クロック生成部２から供給される図７（ａ）クロックＣＫ０を基準にして動作するように構成されている。
【００８２】
図７の（ｂ）〜（ｈ−２）に示す信号名は、図６における同一信号名の波形を示し、図７の下段（ｂ）〜（ｇ−２）は、上段の破線期間における、（ｂ）〜（ｇ−２）を拡大したものである。なお、図中のビット列は、ＬＳＢからＭＳＢの順に記述され、ＬＳＢは、最初に受信したデータを示す。
【００８３】
図７（ａ）は、多相クロック生成部２から供給されるクロック（ＣＫ０）、図７（ｂ）は、オーバーサンプリングデータＯＶＳＤ［０：１１］、図７（ｃ）は、オーバーサンプリングデータＯＶＳＤのエッジ信号ＲｘＥｄｇｅ、図７（ｄ）は、転送データに合わせてクロックパターンの位相を遷移させたときの遷移状態ｓｔａｔｅ、図７（ｅ）は、クロック（ＣＫ０）をオーバーサンプリングした１２個のビット列からなるクロックパターンＣＫＰ、図７（ｆ）は、クロックパターンＣＫＰの立下りエッジＣＫＥｄｇｅ［０：１１］、図７（ｇ）は、クロックパターンＣＫＰの位相遷移を示す信号（ＵＰ、ＤＮ）、図７（ｈ）は、位相遷移を示す信号（ＵＰ、ＤＮ）の回数が所定値（Ｎ）を超えたタイミングを表す。
【００８４】
両エッジ検出部20は、オーバーサンプリングデータＯＶＳＤ（ｂ）から立ち上がり及び立下りの両エッジを検出し、そのエッジ位置を示すRxエッジ信号ＲｘＥｄｇｅを出力する。
【００８５】
これはオーバーサンプリングデータＯＶＳＤ［０：１１］とＯＶＳＤを1位相分遅らせたデータdＯＶＳＤ[0:11]とで各ビット毎排他的論理和した演算を行えば生成される（1クロック前のＯＶＳＤ[11]をpＯＶＳＤ11とすると、dＯＶＳＤ[0:11]=｛pＯＶＳＤ11,ＯＶＳＤ[0:10]｝）。
【００８６】
例えば図７に示すように、ＯＶＳＤ[0:11]=011111100000が連続しているとすると、
ＯＶＳＤ[0:11]=  [0:11]=     011111100000
dＯＶＳＤ[0:11]=  [0:11]=    001111110000
ＲｘＥｄｇｅ[0:11]=  [0:11]=   0100000100
となる。
【００８７】
比較部２１は、Rxエッジ信号ＲｘＥｄｇｅと後述するクロック立下りエッジ信号ＣＫＥｄｇｅとを比較し、どちらの位相が進んでいるか検出し、ＲｘＥｄｇｅに対しＣＫＥｄｇｅの位相が進んでいればＤＮ信号（ｇ−２）を「H」に、遅れていればUP信号（ｇ−１）を「H」に、一致していれば双方を「L」として出力する。
【００８８】
ここでＲｘＥｄｇｅに複数個の1がある場合、それぞれについて位相進み／遅れ判定を行い、いずれか多い方の結果を出力する。同数であれば一致と判定する。
【００８９】
カウンタ２２は、比較部２１より供給されるＵＰ/ＤＮ信号をカウントし、その結果よりＳＵＰ信号（ｈ−１）及びＳＤＮ信号（ｈ−２）を出力する。
【００９０】
このようにカウンタ２２は、ＵＰ/ＤＮ信号の平均化を行うので、ＰＬＬにおけるループフィルタの役割を果たす。カウンタ２２は、例えばアップダウンカウンタなどにより構成され、ＵＰ=「Ｈ」ならばカウント値を＋1し、ＤＮ=「Ｈ」ならばカウント値を−1する。そしてカウント値が正の所定値（例えば＋Ｎ）を超えればＳＵＰ信号を「Ｈ」に、負の所定値（例えば-N）を下回ればＳＤＮ信号を「Ｈ」として出力し、カウント値を初期値（例えば０）にクリアする。
【００９１】
ここで正負の所定値を変更すれば平均化の帯域を変えることができ、正負の所定値はＬＰＦ（ループフィルタ）設定信号により変更可能である。
【００９２】
また、このようにカウンタ２２で平均化することにより、受信データにジッタがあり、オーバーサンプリングデータＯＶＳＤのデータ遷移タイミングが変動する場合であっても、その平均位置がクロックに対して進んでいるか遅れているかを検出できる。
【００９３】
また、正負の閾値は、送信側との周波数差に対する応答性を考慮して選択すればよい。例えば、周波数差が０．１％（＝1000ppm）とすると、500クロック（ＣＫ０）で6回のＳＵＰ（またはＳＤＮ)がでればよいので、Ｎは83以下であればよい。ここで上限値83に近いと制御系が不安定になるので、十分平均化の効果が得られる値（例えば8や16）に設定するとよい。
【００９４】
また、より簡単に構成するには、比較部２１において複数のエッジに対し位相進み／遅れ両方の結果が出た場合はＵＰ/ＤＮとも「Ｈ」を出力し、次段のカウンタ２２でＵＰ=Ｈ、ＤＮ=Ｈの場合はカウントアップ／ダウンを行わないようにすればようにしてもよい。
【００９５】
状態制御部23は、クロックパターンＣＫＰの位相状態を表す６つの状態Ｓｔ０〜Ｓｔ５を制御する。
【００９６】
状態制御部２３は、転送クロックと等価な周波数を有し、１周期が１２等分される１２位相のクロックで、転送クロックをオーバーサンプリングした、１２ビットのクロックパターンＣＫＰの６つの位相状態（Ｓｔ０〜Ｓｔ５）を制御する。
【００９７】
図８は、クロックパターンＣＫＰの位相遷移状態を模式的に示す図である。クロックパターンＣＫＰの遷移条件は、図示するようにカウンタ22から供給されるＳＵＰ、ＳＤＮ信号がそれぞれ「Ｈ」となることである。
【００９８】
また、位相の初期状態は例えばＳｔ0とする。状態Ｓｔ０〜Ｓｔ５は、カウンタ２２からＳＵＰ信号「Ｈ」が出力されるたびに時計方向に１つずつクロックパターンＣＫＰ（ａ）の位相状態が遷移し、カウンタ２２からＳＤＮ信号「Ｈ」が出力されるたびに反時計方向に１つずつクロックパターンＣＫＰ（ａ）の位相状態が遷移する。
【００９９】
状態制御部２３は、この状態を示すｓｔａｔｅ信号と状態信号Ｓ０,Ｓ１を出力する。なお、状態信号Ｓ０はＳｔ４からＳｔ３に遷移した時に、また状態信号Ｓ１はＳｔ３からＳｔ４に遷移した時のみ「Ｈ」となる。
【０１００】
ＣＫＰ変換部２４は、ｓｔａｔｅ信号をクロックパターン信号ＣＫＰに変換する。図９は、ｓｔａｔｅ信号をクロックパターンＣＫＰに変換する変換規則の一例を示す図である。クロックパターン信号ＣＫＰは、周期1ＵＩのクロックを1ＵＩあたり6位相でオーバーサンプリングしたデータとなっており、Ｓｔ０〜Ｓｔ５に遷移するにつれ1位相ずつ進むものとしている。
【０１０１】
選択信号変換部２６は、ｓｔａｔｅ信号を選択信号Ｓｅｌに変換する。選択信号Ｓｅｌは、クロックパターンＣＫＰの立ち上がり時に「１」となる信号である。図９は、ｓｔａｔｅ信号を選択信号Ｓｅｌに変換する変換規則を例示する。
【０１０２】
なお、状態Ｓｔ4からＳｔ3に遷移した場合、及びＳｔ3からＳｔ4に遷移した場合は、図９に示すように異なるパターンを出力する。これは先に示したＳ０,Ｓ１の「H」期間に対応し、信号Ｓ０,Ｓ１は選択信号Ｓｅｌの「1」の数（つまりクロック立ち上がり数）を表している。Ｓ０=1の時は「1」の数は1個、Ｓ１=1の時は「1」の数は3個、その他は2個となっている。
【０１０３】
エッジ検出部25は、クロックパターン信号ＣＫＰの「1」→「0」に変化するビット、すなわちＣＫＰの立ち下がりエッジを検出しクロック立下りエッジ信号CKEdge信号を出力する。
【０１０４】
クロック立下りエッジ信号CKEdge信号は、クロックパターン信号ＣＫＰとＣＫＰを1位相分遅らせたデータdCKP[0:11]とで各ビット毎に、（~ＣＫＰ ＆ dＣＫＰ）なる演算を行うことで生成される。ただし、“~”は否定演算、＆は論理積を表す。また、1クロック前のＣＫＰ[11]をpCKP11とすると、dCKP[0:11]=｛pCKP11,CKP[0:10]｝と表せる。
【０１０５】
図７に戻って、信号波形例において、（b）オーバーサンプリングデータＯＶＳＤは、転送データ「１０１０１０１０‥」がオーバーサンプリング部１でオーバーサンプリングされたものであり、「011111100000」のデータが連続している。
【０１０６】
また、（d）ｓｔａｔｅはＳｔ０で始まり、図９の変換規則に従い（e）クロックパターンＣＫＰは「000111000111」が出力されている。したがって、各エッジ信号（c）RxEdgeは「010000010000」、（f）ＣＫＥｄｇｅは「100000100000」となる。
【０１０７】
拡大図Iに示す期間（ｉ）においては、クロックパターンＣＫＰの立下り位置の方がオーバーサンプリングデータＯＶＳＤのエッジ位置ＲｘＥｄｇｅよりも進んでいるので、（ｇ−２）ＤＮ信号が「Ｈ」となる。そしてカウンタ２２において、カウント値が−Nとなったとき、（ｈ−２）ＳＤＮ信号が「Ｈ」となり、（ｄ）遷移状態ｓｔａｔｅは、Ｓｔ５に遷移する。その結果（ｅ）クロックパターンＣＫＰは、「100011100011」に変わり、拡大図IIに示すように、（ｃ）ＲｘＥｄｇｅと（ｆ）ＣＫＥｄｇｅの位相が一致するようになる。すなわち、クロックパターンＣＫＰがオーバーサンプリングデータＯＶＳＤに同期する。
【０１０８】
続いて、データ選択部６について詳細に説明する。
図１０は、データ選択部６の構成例を示す図である。第1選択部３０は、オーバーサンプリングデータＯＶＳＤ[0:5]から選択信号Ｓｅｌ[0:5]及び状態信号Ｓ０,Ｓ１に従い、データＤ０、Ｄ１を復元する。変換方法を下記に示す。
【０１０９】
・Ｓ０=「H」の時、
Ｄ０、Ｄ１は、ともに無視する。
【０１１０】
・Ｓ１=「H」の時、
Ｄ０はＯＶＳＤ［０］に、Ｄ１はＯＶＳＤ［５］にそれぞれ変換する。
【０１１１】
・その他の場合、すなわち、Ｓ０=Ｓ１=「L」の時、  
Ｄ０は無視する。Ｄ１は、ｋが０〜５まで変化させたときにおける（ＯＶＳＤ［ｋ］＆Ｓｅｌ「ｋ」)の論理和に変換する（式で表せば、  Ｄ１=(ＯＶＳＤ[0]＆Ｓｅｌ[0])|(ＯＶＳＤ[1]＆Ｓｅｌ[1])|(ＯＶＳＤ[2]＆Ｓｅｌ[2])|(ＯＶＳＤ[3]＆Ｓｅｌ[3])|(ＯＶＳＤ[4]＆Ｓｅｌ[4])|(ＯＶＳＤ[5]＆Ｓｅｌ[5]  となる。ただし、“＆”は論理積演算、“|”は論理和演算を表す（以下、同様）。)。
【０１１２】
また、第2選択部３１はオーバーサンプリングデータＯＶＳＤ[6:11]から選択信号Ｓｅｌ[6:11]に従い、データＤ２を復元する。変換方法を下記に示す。
【０１１３】
D2=(ＯＶＳＤ[6]＆Ｓｅｌ[6])|(ＯＶＳＤ[7]＆Ｓｅｌ[7]|(ＯＶＳＤ[8]＆Ｓｅｌ[8])|(ＯＶＳＤ[9]＆Ｓｅｌ[9])|(ＯＶＳＤ[10]＆Ｓｅｌ[10]))|(ＯＶＳＤ[11]＆Ｓｅｌ[11])
すなわち、第１選択部３０及び第２選択部３１により、
・Ｓ０=「H」の時はＤ２の1つのデータが有効データとなり、
・Ｓ１=「H」の時はＤ０、Ｄ１,Ｄ２の３つのデータが有効データとなり、
・それ以外の時（Ｓ０=Ｓ１=「L」）は、Ｄ１,Ｄ２の２つのデータが有効データとなり、
元のデータが復元される。
【０１１４】
また同時に各々の状態信号Ｓ０,Ｓ１を選択部３０又は３１での演算遅延時間だけ遅延させた信号Ｓ０'、Ｓ１'を出力する。遅延させた信号Ｓ０'、Ｓ１'は復元データＤ０,Ｄ１,Ｄ２の有効状態を示す。
【０１１５】
図１１は、本実施形態のデータリカバリ回路におけるビット同期動作（クロックパターンＣＫＰとオーバーサンプリングデータＯＶＳＤの同期動作）の説明図である。受信データに重畳されているクロック周波数Frxと受信側のクロック（多相クロックＣＫ０〜11の2逓倍のクロック）周波数Fckとが一致していない場合を考える。図１１(a)はFrx>Fckの場合であり、図１１(b)はFrx<Fckの場合を示す。
【０１１６】
図１１において、ΔΦは受信データ（図５（ａ））とクロックパターンＣＫＰ（図５（ｂ）との位相差であり、受信データの位相が進んでいる時を正とする。時刻ta0、tb0ではクロックパターンはＣＫ０に立下りエッジがあるとし（つまり位相状態Ｓｔ0）、受信データと一致しているとする。
【０１１７】
(a)Frx>Fckの場合
位相差ΔΦは徐々に増加していくが、受信データは離散的なオーバーサンプリングデータＯＶＳＤとクロックパターンＣＫＰとの位相比較をしているので、ΔΦが0〜π/3の間は一致していると見なされる。そして位相差がπ/3を越えた時点ta1から位相進み信号UPが「H」となりカウンタ２２のカウント値Countが増加していく。そして所定値＋Nに達すると（時刻ta2）ＳＵＰ信号を「H」とし、位相状態を進める。その結果クロックパターンＣＫＰの位相はπ/3進み、位相差ΔΦはπ/3減少する。
【０１１８】
(b)Frx<Fckの場合
位相差ΔΦは徐々に減少していき、ΔΦ<0のときは位相遅れ信号DNが検知されるので、カウント値Countが減少していく。そして所定値−Nに達すると（時刻tb1）ＳＤＮ信号を「H」とし、位相状態を遅らせ、その結果位相差ΔΦはπ/3増加する。
【０１１９】
図１１（ａ）又は（ｂ）の動作が繰り返されビット同期状態となる。但し、図示するような定常位相誤差は発生する。
【０１２０】
図１２は、位相誤差とジッタ許容値の関係を説明するための図である。図１２（ａ）は、位相差ΔΦが0の場合のアイパターンを、図１２(b)は位相差ΔΦがπ/2の場合のアイパターンを示す。アイパターンにおいては、ジッタ部を斜線部で表し、ジッタ部は正確にデータを復元できない領域であることを示し、アイ開口部（中央の白抜き部）は正確にデータを復元できることを示す。
【０１２１】
今、位相状態がＳｔ0である場合、クロックパターンＣＫＰの立下りエッジは位相0にある。このとき選択信号Ｓｅｌは位相3（及び位相９）が「1」となっており、この位相3でサンプルされたオーバーサンプリングデータＯＶＳＤ[3]（及びＯＶＳＤ[9]）がデータとして復元される。よって図示したジッタ量であれば、位相差ΔΦが０及びπ／２の場合共に、位相3はアイ開口部にあるので、正確にデータが復元される。
【０１２２】
しかし、図１２(b)のように位相誤差があると、ジッタ量が増大した場合に位相３がアイ開口部でなくなるため正確な復元ができなくなることがある。このような場合には多相クロックの相数を増やし、定常位相誤差が減少するようにすればよい。
【０１２３】
図１３は、デシリアライザ8の構成例を示す図である。デシリアライザ８は、復元データＤ０、Ｄ１、Ｄ２が入力されるシフトレジスタ３６と、シンボル変換部３７と、シンボル同期制御部３８とを備えている。シフトレジスタ３６は、復元データＤ０,Ｄ１,Ｄ２を状態信号Ｓ０',Ｓ１'に従い逐次シフトして保持し、各レジスタ出力をパラレルデータＰＤａｔａとして出力する。
【０１２４】
図１４は、デシリアライザ８のシフトレジスタ３６の詳細な構成例を示す図である。シフトレジスタ３６は、フリップフロップ（レジスタ）４０（０）〜(１１)と、マルチプレクサ４１（１）〜(１１)とを備え、フリップフロップ（レジスタ）４０（０）〜(１１)は、縦列接続されてシフトレジスタを構成し、マルチプレクサ４１（１）〜(１１)は、状態信号Ｓ０’、Ｓ１’に従ってシフト量を変更するために設けられ、各レジスタへ入力されるデータが選択される。図において、フリップフロップ４０（５）以降のものは省略されている。
【０１２５】
マルチプレクサに入力されるデータの３つの入力のうち、上から３ビットシフト、２ビットシフト、１ビットシフトに対応し、Ｓ１'=「H」のときは一番上の入力が、Ｓ０'=「H」の時は一番下の入力が、その他の時は真中の入力が選択出力される。
【０１２６】
フリップフロップ40は、12個設けるものとし、各レジスタの出力Ｑ０〜Ｑ１１をパラレルデータＰＤａｔａ[0:11]として出力する。このシフトレジスタ３６により、１〜３個づつ復元されるデータがパラレル変換される。ここで、ＰＤａｔａ[11]が最初に転送された（受信した）ビット（以下適宜FRB：First Recieved Bitとする）であり、ＰＤａｔａ[0]が最後に転送されたビット（以下適宜LRB：Last Recieved Bitとする）である。
【０１２７】
コンマ検出部９は、デシリアライザ８から供給されるパラレルデータＰＤａｔａ中に所定のコンマ符号のパターンが含まれているか否かを検出し、その検出結果Detと検出された場合はその検出位置DetPos（例えば検出されたパターンのLSBのビットナンバー）をデシリアライザ8に供給する。
【０１２８】
8B/10B変換の場合、コンマ符号は「0011111010」（又は「1100000101」）である（左側がFRB）。またシンボルの区切りを示す属性を持つ他の符号として、「0011111001」や「1100000110」を検出する場合もある。
【０１２９】
例えば、ＰＤａｔａ[11:0]=「100111110101」の場合、ＰＤａｔａ[１０：１]がコンマパターンと一致するので、Ｄｅｔ=「Ｈ」とし、コンマ検出部９は同時に検出位置DetPos=1を出力する。
【０１３０】
次に、シンボル同期制御部３８及びシンボル変換部３７の動作を説明する。図１５は、図１３のシンボル同期制御部３８のシンボル同期動作を説明する信号波形図を示す。
【０１３１】
図１５において、ＰＤａｔａ［１１］は、最初に受信されたビット（ＦＲＢ）であり、
ＰＤａｔａ［０］は、最後に受信されたビット（ＬＲＢ）である。図１５（ａ）はクロック（ＣＫ０）、図１５（ｂ）はＰＤａｔａ［１１：０］、図１５（ｃ）は検出信号Ｄｅｔ、図１５（ｄ）は検出位置信号ＤｅｔＰｏｓ、図１５（ｅ）は状態信号Ｓ０’、Ｓ１’、図１５（ｇ）はパラレルデータＰＤａｔａを1クロック遅延させたｄＰＤａｔａ、図１５（ｈ）はシンボルクロックＳＹＭＣＬＫ（ラッチイネーブル信号ＬＥと同一信号）、図１５（ｉ）はパラレルデータＰＤａｔａのシンボル有効位置を示すシンボル位置信号ＬＥＰｏｓ、図１５（ｊ）は、１０ビットのシンボルＳＹＭ信号を、それぞれ表している。
【０１３２】
今、コンマ検出部９が(b)パラレルデータＰＤａｔａ中にコンマパターンCOMを検出すると（図１５の拡大図の下線部）、コンマ検出部9は(c)検出信号Detと(d)検出位置信号DetPosを出力する。シンボル同期制御部38ではカウンタを内蔵しており、この検出信号Detをスタート信号、検出位置信号DetPosをカウント初期値とし、カウントを開始する。このカウントはデシリアライザ８に入力される１〜３個の復元データの個数分だけ進む。すなわち、状態信号Ｓ０'、Ｓ１'により復元データ個数をカウントし、カウント値が1シンボル分（10ビット）貯まる毎に、(h)ラッチイネーブル信号LEを出力（LEを「H」とする）し、カウント値を-10する。また同時に、パラレルデータＰＤａｔａのシンボル有効位置を示す(i)シンボル位置信号LEPosとしてカウント値を出力する。なお、状態信号は各ブロックでの処理時間の分遅延させた（本例では2クロック）Ｓ０”、Ｓ１”（e-1,e-2）を用いてカウントを行う。Ｓ０”=「H」の時はカウントは１進み、Ｓ１”=「H」のときは３進み、その他の時は２進む。
【０１３３】
シンボル変換部37は、パラレルデータＰＤａｔａを1クロック遅延させた(g)dＰＤａｔａから、ラッチイネーブル信号LE=「H」の時、シンボル位置信号LEPosに従い10ビットの(j)シンボルSYM[0:9]（[0]：FRB）を取り出す。すなわち、LEPos=0,1,2であれば、それぞれ、dＰＤａｔａ[9:0],[10：1],[11:2]を取り出す。LEPos≧3の場合はそれ以前のクロックで取り出されるので、LEPos≧3の場合は存在しない。また、シンボル同期制御部３８は、ラッチイネーブル信号LEと同一の信号がシンボルクロックSYMCLKを出力する。
【０１３４】
このようにして、シンボルクロックSYMCLKに同期して１０ビットのシンボルSYMが復元される。なお、シンボルクロックの周期は、通常、ＣＫ０クロック５個分（転送クロックの１０クロック分）であるが、送信側と受信側の周波数差により、時折４ＣＫＯクロック分又は６ＣＫＯクロック分となる。この差分は図３の全体構成図で説明したようにエラスティックバッファＥＢで吸収する。
【０１３５】
続いて、図３のＰＬＬ１１３について詳細に説明する。図１６は、ＰＬＬ１１３の構成例を示す。ＰＬＬ１１３は、分周器５０と、位相周波比較器ＰＦＤ５１と、ローパスフィルタＬＰＦ５２と、電圧制御発振器ＶＣＯ５３と、分周器５５と、分周器５８とを備えており、基準クロックＲｅｆＣＬＫ１から、転送クロックＢＣＬＫと、内部動作用クロックＰＣＬＫと、多相クロックＣＫ０〜ＣＫ１１とを生成する。
【０１３６】
ＶＣＯ５３は、３段の差動バッファ５４ａ〜ｃを接続したリングオシレータで構成され、６位相のクロックｃ０〜ｃ５を生成しており、このうちの1つをクロックBCLKとして出力する。
【０１３７】
分周器５０はクロックＢＣＬＫを１０分周し、位相周波比較器ＰＦＤ５１にフィードバックする。
【０１３８】
位相周波比較器ＰＦＤ５１は、基準クロックＲｅｆＣＬＫ１と分周器５０出力との位相比較を行い、この位相差情報に基づき内在するチャージポンプを駆動する。
【０１３９】
ローパスフィルタＬＰＦ５２はチャージポンプ出力を平滑化し、制御電圧Ｖｃを電圧制御発信器ＶＣＯ５３に供給する。
【０１４０】
ＶＣＯ５３内の差動バッファ５４ａ〜ｃは、制御電圧Ｖｃに従って遅延量が変化し、位相同期制御が行われる。例えば、基準クロックＲｅｆＣＬＫ１として２５０ＭＨｚのクロックが供給されると、差動バッファ５４ａ〜ｃは、２．５ＧＨｚの転送クロックＢＣＬＫを生成する。
【０１４１】
分周器５８は、クロックＢＣＬＫを１０分周してクロックＰＣＬＫを生成する。
【０１４２】
分周器５５は、クロックｃ０〜ｃ５をそれぞれクロック入力する６つの２分周器５６ａ〜ｆを備え（トグルフリップフロップなどにより構成）、それぞれの２分周器５６ａ〜ｆが、６位相クロックｃ０〜ｃ５をそれぞれを２分周し、その正転及び反転出力を出力する。すなわち、分周器５５は、クロックＢＣＬＫの1／２の周波数で１２位相のクロックＣＫ０〜１１を生成する。
【０１４３】
また、これら２分周器５６ａ〜ｆは、リセット回路５７の出力ＲＳＴＢによりリセットされ、各位相が図５の(ｃ-０)〜(ｃ-１１)となるように揃えられる。
【０１４４】
以上説明したように、本実施の形態のデータリカバリ回路は、受信データに重畳されているクロックを復元することなく、つまり受信データに重畳されたクロックとは同期していない独立のクロックを生成し、その多相クロックでオーバーサンプリングしたデータから受信データ及びシンボルを復元することができる。（選択信号生成部7では、オーバーサンプリングデータＯＶＳＤから受信データに重畳されたクロックをクロックパターンＣＫＰとして仮想的に復元しており、またデータ選択部6において、このクロックパターンＣＫＰに基づき変換された選択信号Ｓｅｌによりデータを復元している。）
したがって、物理層１００の送信部１０１及び受信部１０２（一組のポート）で、物理層１２０のＰＬＬ１２３とは別体のＰＬＬを、共通化して利用することができ、回路（チップサイズ）の小型化、コストの低減が可能となる。
【０１４５】
かかる効果は、更に、データリカバリ回路が複数の物理層を有している場合に顕著に奏される。図１７は、複数の物理層部とＰＬＬとの関係を示す図である。図１７におけるＰＬＬ１５０は、多相クロック生成部を兼ね、複数の物理層部（ここでは第１及び第２レーン物理層部１５１、１５２を示し、他は図示が省略されている。）に、転送クロックＢＣＬＫとクロックＰＣＬＫと多相クロックＣＫ０〜ＣＫ１１とを共通に供給するように構成されている。
【０１４６】
第１レーン物理層部１５１は、送信部１０１−１と、受信部１０２−１（本実施形態のデータリカバリ回路を有する）とを備え、第２レーン物理層部１５２も、第１レーン物理層部１５１と同様に送信部１０１−２と、受信部１０２−２（本実施形態のデータリカバリ回路を有する）とを備えている。
【０１４７】
図１７のＰＬＬ１５０は、供給された基準クロックＲｅｆＣＬＫから生成した転送クロックＢＣＬＫ、クロックＰＣＬＫを各送信部１０１−１、１０１−２に供給すると共に、各受信部１０２−１、１０２−２に多相クロックＣＫ０〜ＣＫ１１を供給する。すなわち、本実施の形態のデータリカバリ回路は、複数の物理層においてＰＬＬを共通化することもでき、回路（チップサイズ）の小型化、コストの低減を可能となる。
【０１４８】
また、本実施形態のデータリカバリ回路は、オーバーサンプリング部を除く大部分が単一周波数のクロックＣＫ０で動作しており、多相クロック間やデータ間のスキューをほとんど気にすることなく設計できるので、高速化も容易に実現できる。
【０１４９】
また、近年発展の著しい回路・レイアウト設計検証ツールも容易に適用できるため、設計の簡易化が図れ、また回路の再利用性も向上するので、開発期間の短縮化も図れる。
【０１５０】
また、データのパラレル処理化しによりさらにその動作周波数を低減することも容易にできるので、転送レートの高速化に対しても容易に対応できる。
【０１５１】
また、本実施の形態では、転送クロック周波数の１／２の周波数で１２位相のオーバーサンプリングをする例を説明したが、例えば転送クロック周波数の１／４の周波数で２４位相のオーバーサンプリングをしてもよい。かかる場合も上述した各ブロックを適宜変更するだけで適用することができ、また、これによりさらに動作周波数を下げてることができるので、より高速な転送レートにも容易に対応できる。一方、転送クロック周波数で6位相のオーバーサンプリングを行ってもよく、また、多相クロックの相数も適宜変更可能である。
〔第２の実施形態〕
第２の実施形態では、受信データのジッタに様々な周波数成分のジッタが含まれている場合のデータの復元について説明する。
【０１５２】
一般に、受信データのジッタには様々な周波数成分のジッタが含まれている。低周波数成分のジッタ（すなわち位相変動）に対しては選択信号生成部7による位相状態の制御により追従されるため、図１２で説明したように若干の位相誤差は残るもののアイ開口部が大きく減少することはなく正確にデータを復元できる。
【０１５３】
この追従可能な周波数帯域は位相状態の制御帯域つまりＬＰＦ設定信号によって設定されるカウンタ２２の正負所定値により定まる。しかし、制御帯域以上の高周波数成分のジッタに対しては、クロックパターンＣＫＰの位相状態が追従できないので、ジッタ成分として加算されてアイ開口部が縮小され、正確なデータの復元が困難になる。
【０１５４】
図１８は、高周波ジッタとアイ開口の関係の一例を示す。図１８(b)は、時刻tにおけるジッタ（ジッタの経時変化）を表し、制御帯域以上の周波数ｆｊのジッタ（一点鎖線）にランダムジッタＲｊが重畳されている。ランダムジッタＲｊのピークトゥピーク（振幅）がトータルジッタＴｊとして現れる。図１８では説明のため周波数ｆｊ成分のジッタとランダムジッタＲｊの重畳としたが、実際には様々な周波数成分のジッタが加算されており、ｆｊより高周波数のジッタはランダムジッタＲｊとしてまとめて取り扱う。
【０１５５】
このようにトータルジッタＴｊが現れる場合、アイパターンは図１８（ａ）のようになる。すなわち、アイ開口部（白抜き部分）は、高周波成分のジッタの重畳により大幅に縮小されてしまうため正確なデータの復元が困難になる。
【０１５６】
また、受信データのジッタは対向するポートの送信データ用のＰＬＬの特性に大きく依存し、種々のポートが接続されることを想定するデータ受信装置においては、いかなる対向送信部に対してもジッタを抑圧できるように位相状態の制御帯域を設定することは困難であり、また制御ループの時間遅れも０にすることはできない。このため、制御帯域を高域化していくと位相余裕がなくなり制御が不安定になり最悪の場合発振の恐れもあるため、制御帯域の拡大にも限界がある。つまり図１８のようなジッタ特性を持つ受信データを正確に復元することは困難であった。これは本実施の形態のデータリカバリ回路に限らず、従来のＣＤＲ回路についても同様である。
【０１５７】
図１８(ｃ−０)は時刻ｔ０におけるアイパターンを、（ｃ−１）は時刻ｔ１におけるアイパターンを、（ｃ−２）は時刻ｔ２におけるアイパターンを、それぞれ示す。図１８（ｃ−１）〜（ｃ−２）に示されるように、開口の中心は時刻と共に変動するものの、所定の時刻においては、十分広いアイ開口が得られている。したがって、周波数ｆｊのジッタの周期（1/ｆｊ）より十分短い時間ｔａｖ（例えば１／１０×（１／ｆｊ））の受信データエッジの平均を検出し、これに応じてデータ復元する位相（図(c−０)〜（ｃ−２）の黒点）を変化（シフト）させれば、その復元位相に対しては十分広いアイ開口があるので正確にデータを復元できる。以下、図面に基づき、高周波成分のジッタを含むデータの復元について説明する。
【０１５８】
図１９は、第２の実施形態の基本となるデータリカバリ回路のブロック図を示す。なお、図１９において、図４と同一部分には同一の符号を付しその説明は省略する。図１９は、図４で説明したシンボルデータ復元部のうち選択信号生成部の代わりに位相状態制御部６２を有する点、位相誤差検出部６３を有する点、および、データ選択部６１の処理が相違する点で図４と異なる。
【０１５９】
位相状態制御部６２は、図４の選択信号生成部７と同様に、オーバーサンプリングデータＯＶＳＤの両エッジを検出し、これにクロックパターンＣＫＰの立下りエッジが一致するように制御した位相状態信号ｓｔａｔｅとデータ有効数（１〜３）を示す状態信号Ｓ０、Ｓ１を生成する。当該処理の詳細は図６と同様であり、第２実施形態の位相状態制御部６２は、図６の選択信号生成部７において、選択信号変換部２６を省き、状態制御部２３から、直接、位相状態信号ｓｔａｔｅを出力する。
【０１６０】
位相誤差検出部６３は、オーバーサンプリングデータＯＶＳＤの所定期間内のエッジ位置の平均を検出し、このエッジ位置平均の位相状態ｓｔａｔｅに対する誤差を示す位相誤差信号PhErrを生成する。すなわち、図18における期間ｔａｖ中のデータエッジ平均値Ｅａｖのジッタ中心値からのずれＰｅを検出する。
【０１６１】
データ選択部６１は、位相状態信号ｓｔａｔｅ、状態信号Ｓ０,Ｓ１及び位相誤差信号PhErrに従って１〜３個の復元データＤ０〜Ｄ２をオーバーサンプリングデータＯＶＳＤから選択出力する。また、復元データＤ０〜Ｄ２の有効データを示す状態信号Ｓ０'、Ｓ１'も状態信号Ｓ０,Ｓ１を回路遅延に合わせて所定量遅延させて出力する。
【０１６２】
続いて、位相誤差検出部６３の詳細について説明する。
図２０は、位相誤差検出部６３の構成例を示す図である。位相誤差検出部６３は、エッジ検出部６６、位相比較部６７及び移動平均部６８を有する。
【０１６３】
エッジ検出部６６は、オーバーサンプリングデータＯＶＳＤから立ち上がり及び立下りの両エッジを検出し、そのエッジ位置を示すエッジ信号ＲｘＥｄｇｅを出力する。すなわち、図６の両エッジ検出部２０と同様に作用する。したがって、位相状態制御部６２内の両エッジ検出部２０と兼用するように回路を構成してもよい。
【０１６４】
また、エッジ検出部６６は、次段の構成を容易にするため、立ち上がりエッジと立ち下がりエッジを個別に検出し、そのエッジ信号を示すエッジ信号RxEdgeP及びRxEdgeNを出力するようにしても良い。この場合は、それぞれ、RxEdgeP=ＯＶＳＤ ＆ ~dＯＶＳＤ、及び、RxEdgeN=~ＯＶＳＤ ＆ dＯＶＳＤの演算を行えば、エッジ信号RxEdgeP及びRxEdgeNが得られる。
【０１６５】
位相比較部６７は、エッジ信号RxEdge(P,N)と位相状態信号ｓｔａｔｅより、各エッジのクロックパターンＣＫＰの立ち下がりエッジからの位相誤差Ｅｒｒを所定の対応表に基づき検出する。図２１は、エッジ信号RxEdge(P,N)と位相状態信号ｓｔａｔｅの対応表の一例を示す。位相誤差Ｅｒｒは、エッジ信号RxEdge(P,N)と位相状態信号ｓｔａｔｅとに基づき、図２１の対応表に従い算出される。
【０１６６】
図２１の対応表によれば、各エッジがクロックパターンＣＫＰの立ち下がりエッジから遅れていれば正、進んでいれば負とし、その差が１位相あれば１となる。また、*印は＋３又は−３となることを表し、位相誤差信号PhErrの符号が正であれば＋３を、負であれば−３を選択する。図１８（ｂ）のように、データエッジ平均値Ｅａｖのジッタ中心値は周期的な変動を示すため、移動平均値が+1の時、次のエッジ位置が−３となるような急激な位相変動は通常起こらないと想定される。したがって、このような変換を行うことで±πの境界付近でも誤差を正確に検出できる。
【０１６７】
図２２は、位相差と位相誤差Ｅｒｒの関係における位相比較特性を示す図である。点線は＋３または−３と固定とした場合であり、上記のように変換することで±πの境界付近で正確に検出できるようになる。
【０１６８】
図２１の変換表を用いた位相誤差Ｅｒｒ検出の具体例を示す。今、位相状態ｓｔａｔｅがＳｔ０の時、クロックパターンＣＫＰは図９に示すように変換されており、立下りエッジ位置は[０]及び[６]にある。ここでエッジ信号RxEdgeの[0]が1の場合、クロックパターンＣＫＰの立ち下がりエッジと一致しているので位相誤差Ｅｒｒは０である。またエッジ信号RxEdgeの[1]が1の場合、エッジ位置が１位相分遅れているので位相誤差Errは＋１となる。
【０１６９】
なお、前述したようにエッジ信号を立ち上がりと立下りで個別に検出するとRxEdgeP は[0]〜[5]内に「1」が1個、RxEdgeNは「１」が0個、RxEdgeP は[6]〜[11]内に「1」が1個、RxEdgeNは「１」が0個となるので変換が容易になる。この場合はそれぞれ対応した位相誤差ErrP、ErrNを出力するものとする。また、RxEdgeP[k]のk=0〜5とした時の論理和がこの範囲内でのエッジの有無を示すので、これを用いて次段の移動平均を算出する。
【０１７０】
移動平均部６８は、直近ｎ個の位相誤差Ｅｒｒの平均を算出し、位相誤差信号PhErrとして出力する。図２３は、ｎ＝４とした場合の移動平均部６８の構成例を示す。移動平均部６８は、フリップフロップＦ／Ｆ７０ａ〜ｃ、加算器７１、補正部７２、及び乗算器７３を有する。
【０１７１】
フリップフロップＦ／Ｆ７０ａ〜７０ｃは、シフトレジスタ７０を構成し、エッジが検出されるたび誤差信号Ｅｒｒを１段ずつシフトしていく。加算器７１は、シフトレジスタ７０の各段の出力Ｅｒｒ,Ｅｒｒ１,Ｅｒｒ２,Ｅｒｒ３を加算するものである。
【０１７２】
補正部７２は位相状態の遷移が生じた時に加算器７１からの出力に対し補正を行う。すなわち、誤差信号Ｅｒｒを算出する前に位相状態の遷移があった場合、例えば位相誤差Ｅｒｒはｓｔａｔｅ＝Ｓｔ１に対する誤差であり、Ｅｒｒ１〜Ｅｒｒ３はｓｔａｔｅ＝Ｓｔ０に対する誤差を検出したものであったとすると、補正値を＋３とすることにより、誤差の加算値は位相状態ｓｔａｔｅ＝Ｓｔ１に対する値に補正できるようになる。位相状態の遷移はＳＵＰ又はＳＤＮが「Ｈ」となったときに起こるので、ＳＵＰ=Ｈとなったときは＋３とし、シフトする毎に＋２,＋１,０と補正値を変化させる。各位相誤差Errの値は−３〜＋３を取り補正値も−３〜＋３なので補正部出力は−１５〜＋１５の値となり、補正部から出力される信号は符号ビットも含め５ビットである。
【０１７３】
乗算器７３は、補正部７２からの出力に1/4を掛け位相誤差の平均値を算出し、位相誤差信号PhErrとして出力する。１／４するので補正部７２からの出力を２ビットＬＳＢ側にシフトすればよい。また小数点以下を四捨五入としても良い。このように位相誤差を平均化することによりランダムジッタ成分に含まれるような高周波のジッタ成分は平滑化される。
【０１７４】
また位相誤差が立ち上がりと立ち下がりで個別に出力される場合は、点線枠７４内のブロックを２つ備え、それぞれErrPとErrNの4エッジ分の加算値を求め、さらにこれらを加算した後、１／８すればよい。なお、移動平均の値ｎは適宜変更可能である。
【０１７５】
データ選択部６１について説明する。図２４は、データ選択部６１の構成例を示す図である。データ選択部６１は、第１選択部８０と第２選択部８１とを有する。
【０１７６】
第１選択部８０は、オーバーサンプリングデータＯＶＳＤから位相状態信号ｓｔａｔｅに従って、復元データＤ１、Ｄ２毎（Ｄ０が有効な場合はＤ０に対しても）に複数個（本第２の実施形態ではa〜dの４個とする）の候補を選択する。
【０１７７】
第１選択部８０は、a〜dの４個の候補を図２５の対応表に基づいて選択する。図２５においてｐ９〜ｐ１１は、オーバーサンプリングデータＯＶＳＤ[9]〜[11]をクロックＣＫ０の1サイクル分遅延させたものである。これらの遅延は第１選択部８０内で行われる。またｎ０は次サイクルのオーバーサンプリングデータＯＶＳＤ[0]である。
【０１７８】
第１選択部８０は、位相状態ｓｔａｔｅに応じて、復元データ候補Ｄ1ａ〜ｄ及びＤ２a〜ｄに対応するオーバーデータサンプルデータを、それぞれ実線枠及び点線枠内のａ〜ｄから選択する。またＤ０ａ〜ｄは、Ｓｔ３からＳｔ４に遷移した場合のみ有効となるのでＳｔ4の時のみ選択し、残りの状態では無視される。
【０１７９】
具体例で説明する。今、位相状態ｓｔａｔｅがＳｔ０の時、Ｄ１ａ〜Ｄ１ｄはそれぞれＯＶＳＤ[１]〜[４]が選択され、Ｄ２ａ〜ｄはそれぞれＯＶＳＤ[７]〜[１０]が選択される。Ｄ０ａ〜ｄは、Ｓｔ０では無視されるので、なんであってもよい。
【０１８０】
第２選択部８１は、復元データ候補Ｄ０ａ〜ｄ、Ｄ１ａ〜Ｄ１d、Ｄ２ａ〜ｄの中から位相誤差信号PhErrに従って復元データＤ０,Ｄ１,Ｄ２を選択出力する。位相誤差信号PhErr=0であれば、現在の位相状態ｓｔａｔｅに対して局所的な受信データエッジ位置も一致しているので（図１８の時刻ｔ０のアイパターン（ｃ-０）に相当する）、クロックパターンＣＫＰの立下り位置の逆位相となる候補ｃをそれぞれ選択する。位相誤差信号PhErr=+1であれば、現在の位相状態ｓｔａｔｅに対して局所的な受信データエッジ位置はほぼ1位相分遅れているので（図１８の時刻t1のアイパターン（ｃ-１）に相当する）、候補dをそれぞれ選択する。同様に位相誤差信号PhErr=-1であれば候補bを、位相誤差信号PhErr=-2であれば候補ａを選択する。また、位相誤差信号PhErr=＋２,＋３または−３となったときは、別途候補を生成しておきこれを選択するようにしてもよいが、通常このような大きな位相誤差は発生しないので本第２の実施形態では候補dまたはaを選択するようにしておく。このようにして選択したデータを復元データＤ０,Ｄ１,Ｄ２として出力する。
【０１８１】
図１８に示したように、局所的なアイ開口の中心はこの位相誤差と同等だけ変動しているので、位相誤差信号PhErrに従って選択するデータを変更することにより、常に最適なデータ取り込み位相を選択することができ、正確にデータを復元できる。
【０１８２】
また、図示は省略するが位相誤差信号PhErrの算出時間と合わせるため、第１選択部８０の前または後ろに所定クロック分の遅延調整部を適宜設けると良い。また第１選択部８０と第２選択部８１は逆の順序で選択するようにしても良い。
【０１８３】
以上説明したように、本第２の実施形態によれば、多相クロックの相数を増加させなくても、制御帯域以上の高周波成分を持つ入力データのジッタ許容値を拡大させることができる。すなわち位相状態制御部６２は受信データのエッジのジッタ中心にクロックパターンＣＫＰの立下りが一致するように位相状態ｓｔａｔｅを制御し、位相誤差検出部６３は局所的な受信データエッジのジッタ中心からの誤差である位相誤差信号ＰｈＥｒｒを検出し、データ選択部６１は位相状態ｓｔａｔｅと位相誤差信号ＰｈＥｒｒに従ってデータを復元するので、図１８のような位相状態の制御帯域より高周波で、移動平均部６８の帯域より低周波のジッタ成分があっても、その位相誤差に応じて復元データの位相を変更しているので、常にアイ開口のほぼ中心でデータを取り込むようにでき、安定して正確にデータを復元できる。つまり移動平均の帯域以下のジッタ成分まで抑圧できるようになるのでジッタ許容値が拡大される。また、位相誤差信号ＰｈＥｒｒを制御系にフィードバックすることは無いので高帯域化しても制御系が不安定になることも無く発振の心配も無い。
【０１８４】
第１及び第２の実施の形態のデータリカバリ回路又は方法は、コンピュータに代表される情報処理装置内部や画像形成装置（複写機、ＭＦＰ（Ｍｕｌｔｉ Ｆｕｎｃｔｉｏｎ Ｐｒｉｎｔｅｒ）、プリンタ、ファクシミリ等）内部のデータ伝送を高速に行う。例えば、データリカバリ回路はコンピュータ内部の所定のボードに搭載され、他のボードやシリアルインターフェイス等から伝送されたシリアルデータを受信しまた送信する高速な送受信装置として機能する。
【図面の簡単な説明】
【０１８５】
【図１】従来のオーバーデータサンプリング型のＣＤＲ回路の構成図である。
【図２】多相クロックが等間隔でない場合の問題点の一例を示す図である。
【図３】データリカバリ回路が適用されたシリアル転送部の物理層部の全体構成図である。
【図４】データリカバリ回路のブロック図である。
【図５】オーバーサンプリング部の各主要信号の信号波形の一例を示す図である。
【図６】選択信号生成部の構成例を示す図である。
【図７】選択信号生成部の各主要信号の波形例を示す図である。
【図８】クロックパターンＣＫＰの位相遷移状態を模式的に示す図である。
【図９】ｓｔａｔｅ信号をクロックパターンＣＫＰに変換する変換規則の一例を示す図である。
【図１０】データ選択部の構成例を示す図である。
【図１１】本実施形態のデータリカバリ回路におけるビット同期動作の説明図である。
【図１２】位相誤差とジッタ許容値の関係を説明するための図である。
【図１３】デシリアライザの構成例を示す図である。
【図１４】デシリアライザのうちのシフトレジスタの詳細な構成例を示す図である。
【図１５】図１３に示したシンボル同期制御部とシンボル変換部とを説明する信号波形図である。
【図１６】ＰＬＬの構成例を示す図である。
【図１７】複数の物理層部とＰＬＬとの関係を示す図である。
【図１８】高周波ジッタとアイ開口の関係の一例を示す図である。
【図１９】第２の実施形態のデータリカバリ回路のブロック図である。
【図２０】位相誤差検出部の構成例を示す図である。
【図２１】エッジ信号RxEdge(P,N)と位相状態信号ｓｔａｔｅの対応表の一例である。
【図２２】位相差と位相誤差Ｅｒｒの関係における位相比較特性を示す図である。
【図２３】移動平均部の構成例を示す図である。
【図２４】データ選択部の構成例を示す図である。
【図２５】第１選択部が複数の候補から一のビットを選択する対応表の一例である。
【符号の説明】
【０１８６】
１  オーバーサンプリング部
２  多相クロック生成部
３  シンボルデータ復元部
４、４０、７０、２０１  ＦＦ（フリップフロップ）
５  並列化部
６  データ選択部
７  選択信号生成部
８  デシリアライザ
９  コンマ検出部
２０  両エッジ検出部
２１  比較部
２２、６１  カウンタ
２３、６２  状態制御部
２４  ＣＫＰ変換部
２５、６６  エッジ検出部
２６、６３  選択信号変換部
３０、８０  第１選択部
３１、８１  第２選択部
３６  シフトレジスタ
３７  シンボル変換部
３８  シンボル同期制御部
４１  マルチプレクサ
５０、５５、５８  分周器
５１  位相周波比較器ＰＦＤ
５２  ローパスフィルタ
５３  電圧制御発振回路ＶＣＯ
５４  差動バッファ
５６  ２分周器
５７  リセット回路
６１  データ選択部
６２  位相状態制御部
６３  位相誤差検出部
６７  位相比較部
６８  移動平均部
７１  加算器
７２  補正部
７３  乗算器
１００、１２０  物理層部
１０１、１２２  送信部
１０２、１２１  受信部
１０３  エンコーダ部
１０４  シリアライザ部
１０５  送信出力部
１０６、１０７  伝送路
１０８  受信入力部
１０９  データリカバリ部
１１０  デシリアライザ部
１１１  エラスティックバッファ部
１１２  デコーダ部
１１３、１５０  ＰＬＬ  
１５１  第１レーン物理層部
１５２  第２レーン物理層部
【図１】
2006262165.tif 000003
【図２】
2006262165.tif 000004
【図３】
2006262165.tif 000005
【図４】
2006262165.tif 000006
【図５】
2006262165.tif 000007
【図６】
2006262165.tif 000008
【図７】
2006262165.tif 000009
【図８】
2006262165.tif 000010
【図９】
2006262165.tif 000011
【図１０】
2006262165.tif 000012
【図１１】
2006262165.tif 000013
【図１２】
2006262165.tif 000014
【図１３】
2006262165.tif 000015
【図１４】
2006262165.tif 000016
【図１５】
2006262165.tif 000017
【図１６】
2006262165.tif 000018
【図１７】
2006262165.tif 000019
【図１８】
2006262165.tif 000020
【図１９】
2006262165.tif 000021
【図２０】
2006262165.tif 000022
【図２１】
2006262165.tif 000023
【図２２】
2006262165.tif 000024
【図２３】
2006262165.tif 000025
【図２４】
2006262165.tif 000026
【図２５】
2006262165.tif 000027