(57)【要約】  クロックデータリカバリに要する時間を短縮する。クロックデータリカバリ回路であって、複数のクロックを有する多相クロックを生成する多相クロック生成回路と、シリアルデータを伝送する受信データ信号を、前記複数のクロックのそれぞれに同期してサンプリングし、複数のデータ信号を生成するサンプリング回路と、前記複数のデータ信号のうち、位相が適切なデータ信号を示す選択信号を生成するデータ復元部と、前記選択信号を格納する記憶部とを有する。前記データ復元部は、前記記憶部から読み出された前記選択信号に従って、前記複数のデータ信号の１つ、及びこのデータ信号に対応するクロックを選択する。
2011004580.tif 000002
【特許請求の範囲】
【請求項１】
複数のクロックを有する多相クロックを生成する多相クロック生成回路と、
シリアルデータを伝送する受信データ信号を、前記複数のクロックのそれぞれに同期してサンプリングし、前記複数のクロックのそれぞれに同期してサンプリングされた値をそれぞれ示す複数のデータ信号を生成するサンプリング回路と、
前記複数のデータ信号のうち、位相が適切なデータ信号を示す選択信号を生成するデータ復元部と、
前記選択信号を格納する記憶部とを備え、
前記データ復元部は、前記記憶部から読み出された前記選択信号に従って、前記複数のデータ信号の１つを選択し、かつ、前記複数のクロックのうち、前記選択されたデータ信号に対応するクロックを選択し、前記選択されたデータ信号及びクロックを出力する
クロックデータリカバリ回路。
【請求項２】
請求項１に記載のクロックデータリカバリ回路において、
前記複数のクロックから前記選択信号に従って選択を行い、選択されたクロックを前記サンプリング回路及び前記データ復元部に供給するクロック選択部を更に備え、
前記サンプリング回路及び前記データ復元部の少なくとも一方は、前記複数のクロックのそれぞれに従って動作する回路を有しており、供給されないクロックに対応する回路を停止する
クロックデータリカバリ回路。
【請求項３】
請求項２に記載のクロックデータリカバリ回路において、
前記記憶部は、前記受信データ信号を受信するためのイニシャライズ期間及びデータ通信期間を判定し、前記イニシャライズ期間の少なくとも一部においては所定の値を、前記データ復元部が前記記憶部から読み出された前記選択信号に従って処理を行う期間においては前記記憶部から読み出された前記選択信号を、制御信号として出力し、
前記クロック選択部は、前記制御信号に従って前記選択を行う
クロックデータリカバリ回路。
【請求項４】
請求項１に記載のクロックデータリカバリ回路において、
前記記憶部は、前記受信データ信号を受信するためのイニシャライズ期間及びデータ通信期間を判定し、前記イニシャライズ期間の少なくとも一部においては所定の値を、前記データ復元部が前記記憶部から読み出された前記選択信号に従って処理を行う期間においては前記記憶部から読み出された前記選択信号を、制御信号として出力し、
前記多相クロック生成回路は、前記多相クロックに含まれる前記複数のクロックの数を前記制御信号に従って変更し、
前記サンプリング回路及び前記データ復元部の少なくとも一方は、前記複数のクロックのそれぞれに従って動作する回路を有しており、前記クロック選択部から供給されないクロックに対応する回路を停止する
クロックデータリカバリ回路。
【請求項５】
請求項４に記載のクロックデータリカバリ回路において、
前記多相クロック生成回路は、複数のインバータがリング状に接続されたインバータチェーンを有し、前記複数のインバータの出力を前記複数のクロックとして出力し、前記複数のインバータの間の接続を前記制御信号に従って変更することによって前記インバータチェーンに含まれるインバータの数を変更する
クロックデータリカバリ回路。
【請求項６】
請求項１に記載のクロックデータリカバリ回路において、
前記データ復元部は、
前記複数のデータ信号のうち、前記選択信号で示されたデータ信号について、位相が適切なデータ信号であるか否かを示す検出信号を生成する位相比較部と、
前記検出信号に従って前記選択信号を生成する選択信号生成回路とを有する
クロックデータリカバリ回路。
【請求項７】
請求項１に記載のクロックデータリカバリ回路において、
前記複数のデータ信号のそれぞれで伝送されるデータを、それぞれ複数のビットずつ並列に伝送する、複数の並列化されたデータ信号を生成して出力する並列化回路を更に備え、
前記多相クロック生成回路は、前記複数のクロックをそれぞれ分周して出力し、
前記データ復元部は、前記並列化されたデータ信号の並列に伝送される複数のビットに基づいて前記選択信号を生成し、前記分周されたクロックのうち、前記選択されたデータ信号に対応するクロックを選択する
クロックデータリカバリ回路。
【請求項８】
請求項１に記載のクロックデータリカバリ回路において、
前記データ復元部は、
前記複数のデータ信号のそれぞれについて、位相が適切なデータ信号であるか否かを示す検出信号を生成する位相比較部と、
前記各検出信号に従って前記選択信号を生成する選択信号生成回路とを有し、
前記選択信号生成回路は、前記各検出信号に従って、前記複数のデータ信号のうち、位相が適切なデータ信号の組と、位相が適切ではないデータ信号の組との間の境界を求める演算回路を有する
クロックデータリカバリ回路。
【請求項９】
請求項１に記載のクロックデータリカバリ回路において、
前記データ復元部は、
前記イニシャライズ期間中に受信されるべき既知データを格納する既知データ格納部と、
前記複数のデータ信号のそれぞれと前記既知データとを比較し、比較結果を示す検出信号を生成する位相比較部と、
前記各検出信号に従って、前記選択信号を生成する選択信号生成回路とを有する
クロックデータリカバリ回路。
【請求項１０】
請求項９に記載のクロックデータリカバリ回路において、
前記選択信号生成回路は、
前記各検出信号に従って、前記複数のデータ信号のうち、位相が適切なデータ信号の組と、位相が適切ではないデータ信号の組との間の境界を求める演算回路を有する
クロックデータリカバリ回路。
【請求項１１】
請求項１に記載のクロックデータリカバリ回路において、
前記データ復元部は、前記受信データ信号が周波数変調されているか否かを前記選択信号に基づいて判定する判定回路を有する
クロックデータリカバリ回路。
【請求項１２】
請求項１１に記載のクロックデータリカバリ回路において、
前記多相クロック生成回路は、ＰＬＬ（Phase Locked Loop）を有し、前記受信データ信号が周波数変調されていない場合には、前記受信データ信号が周波数変調されている場合より前記ＰＬＬのループ帯域幅を狭くする
クロックデータリカバリ回路。
【請求項１３】
請求項１に記載のクロックデータリカバリ回路において、
前記データ復元部は、位相が適切なデータ信号がない場合には、エラー信号を出力する
クロックデータリカバリ回路。
【請求項１４】
請求項１３に記載のクロックデータリカバリ回路において、
前記多相クロック生成回路は、ＰＬＬを有し、前記エラー信号が出力された場合には、前記多相クロックに含まれる前記複数のクロックの数の増加、及び前記ＰＬＬのループ帯域幅の狭小化のうちの少なくとも一方を行う
クロックデータリカバリ回路。
【請求項１５】
請求項１に記載のクロックデータリカバリ回路において、
前記データ復元部は、イニシャライズ期間に、クロックデータリカバリに適切な条件を判定し、
前記記憶部は前記条件を格納し、
前記データ復元部は、前記イニシャライズ期間の後のデータ通信期間に、前記記憶部から読み出された前記条件に従って動作する
クロックデータリカバリ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される技術は、データ信号からデータ及びこれに同期したクロックを抽出するクロックデータリカバリ回路に関する。
【背景技術】
【０００２】
マルチメディアの普及に伴い、大量のデータを高速に伝送したいという要望が増大している。このため、シリアルＡＴＡ（AT Attachment）、ＵＳＢ（Universal Serial Bus）等の高速シリアルデータインタフェースが注目されている。高速シリアルデータインタフェースにおいては、データ伝送の高速化に伴い、クロックやデータのリカバリ動作に要する時間をより短くすることが求められている。【０００３】
特許文献１〜３には、多相クロックを用いてデータリカバリを行う回路の例が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６２１６５号公報
【特許文献２】特開２００７−１８４８４７号公報
【特許文献３】特開２００４−１２８９８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リカバリ動作に要する時間の短縮のみではなく、データ通信時のリカバリ精度の向上も求められている。しかしながら、リカバリ精度を上げるためには、より多くのクロックを含む多相クロックや、より周波数が高いクロックによるオーバーサンプリングが必要になり、消費電力や回路面積が増大する。スキューやジッタを考慮する必要があるのでインプリメンテーションにも困難が伴う。また、多相クロックの相数が多くなると、最適なクロックの判定のためにより長い時間がかかるようになる。すなわち、クロックやデータのリカバリ時間を短くし、かつ、リカバリ精度やその他の特性（例えば、消費電力、回路面積、スキュー、及びジッタが小さいこと）を損なわないようにすることは困難である。【０００６】
本発明は、リカバリ精度の低下や消費電力の増大を抑えながら、クロックデータリカバリに要する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施形態によるクロックデータリカバリ回路は、複数のクロックを有する多相クロックを生成する多相クロック生成回路と、シリアルデータを伝送する受信データ信号を、前記複数のクロックのそれぞれに同期してサンプリングし、前記複数のクロックのそれぞれに同期してサンプリングされた値をそれぞれ示す複数のデータ信号を生成するサンプリング回路と、前記複数のデータ信号のうち、位相が適切なデータ信号を示す選択信号を生成するデータ復元部と、前記選択信号を格納する記憶部とを有する。前記データ復元部は、前記記憶部から読み出された前記選択信号に従って、前記複数のデータ信号の１つを選択し、かつ、前記複数のクロック又は前記複数のクロックをそれぞれ分周して得られたクロックのうち、前記選択されたデータ信号に対応するクロックを選択し、前記選択されたデータ信号及びクロックを出力する。【０００８】
これによると、生成された選択信号を記憶部が格納し、データ復元部は、格納された選択信号に従って、データ信号及びクロックを選択して、データ受信を行う。このため、例えばデータ信号を受信するためのイニシャライズ期間において生成された選択信号を記憶部が格納すれば、データ通信期間におけるクロックデータリカバリに要する時間を短くすることができる。
【発明の効果】
【０００９】
本発明の実施形態によれば、リカバリ精度の低下、消費電力及び回路面積等の増大を抑えながら、クロックデータリカバリに要する時間を短くすることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施形態に係るクロックデータリカバリ回路の構成を示すブロック図である。
【図２】図２は、図１のデータ復元部の構成例を示すブロック図である。
【図３】図３は、図２の位相比較器に入力される各データ信号とクロックＣＬＫＤとの間の関係の例を示す説明図である。
【図４】図４（ａ）は、図３のデータ信号とクロックとの間の関係を簡潔に示す説明図である。図４（ｂ）は、図４（ａ）よりクロックが遅れている場合の例を示す説明図である。図４（ｃ）は、図４（ａ）よりクロックが進んでいる場合の例を示す説明図である。
【図５】図５は、図２の論理回路の動作の例を示す説明図である。
【図６】図６は、図２のシフトレジスタの例を示す説明図である。
【図７】図７は、図２のデータ復元部に入力されるデータ信号Ｄ０〜Ｄ１１とクロックＣＬＫＤとの関係の例を示すタイミングチャートである。
【図８】図８は、シリアルＡＴＡによるデータ通信のシーケンス例を示すタイミングチャートである。
【図９】図９は、電源が一旦切断される場合におけるシリアルＡＴＡによるデータ通信のシーケンス例を示すタイミングチャートである。
【図１０】図１０は、図１のクロックデータリカバリ回路の第１の変形例の構成を示すブロック図である。
【図１１】図１１は、図１のクロックデータリカバリ回路の第２の変形例の構成を示すブロック図である。
【図１２】図１２は、図１のクロックデータリカバリ回路の第３の変形例の構成を示すブロック図である。
【図１３】図１３は、図１２の多相クロック生成回路の構成例を示すブロック図である。
【図１４】図１４は、図１３のＶＣＯの構成例を示すブロック図である。
【図１５】図１５は、図２のデータ復元部の第１変形例の構成を示すブロック図である。
【図１６】図１６は、図１５の演算回路の構成例を示すブロック図である。
【図１７】図１７は、図２のデータ復元部の第２変形例の一部の構成を示すブロック図である。
【図１８】図１８は、図２のデータ復元部の第３変形例の構成を示すブロック図である。
【図１９】図１９（ａ）は、各データ信号Ｄｉの選択回数の例を示す説明図である。図１９（ｂ）は、各データ信号Ｄｉの選択回数の他の例を示す説明図である。
【図２０】図２０は、図２のデータ復元部の第４変形例の構成を示すブロック図である。
【図２１】図２１は、受信データ信号の周波数の変化の例を示すグラフである。
【図２２】図２２（ａ）は、図２０のトラッキング回路によるトラッキング結果の例を示す説明図である。図２２（ｂ）は、図２０のトラッキング回路によるトラッキング結果の他の例を示す説明図である。
【図２３】図２３は、図１３の多相クロック生成回路の変形例の構成を示すブロック図である。
【図２４】図１等のクロックデータリカバリ回路における処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を、図面を参照しながら説明する。図面において下２桁が同じ参照番号で示された構成要素は、互いに対応しており、同一の又は類似の構成要素である。
【００１２】
図１は、本発明の実施形態に係るクロックデータリカバリ回路の構成を示すブロック図である。例として、図１のクロックデータリカバリ回路は、ホストからの差動データ信号を受信するデバイスに含まれているとする。図１のクロックデータリカバリ回路は、多相クロック生成回路１０と、サンプリング回路３２と、並列化回路３４と、記憶部３６と、データ復元部４０とを有している。
【００１３】
多相クロック生成回路１０は、ＰＬＬ（Phase Locked Loop）を有しており、多相クロックＣＫＳを生成してサンプリング回路３２に出力する。また、多相クロック生成回路１０は、多相クロックＣＫＳを２分周し、得られた多相クロックＣＫを並列化回路３４及びデータ復元部４０に出力する。多相クロックＣＫＳ，ＣＫは、いずれも、互いに位相が異なるｎ本（ｎはｎ≧２を満たす整数）のクロックを含んでいる。
【００１４】
サンプリング回路３２は、ホスト等から送信され、シリアルデータを伝送する差動データ信号（ＲＸ＋，ＲＸ−）を受信し、この信号を多相クロックＣＫＳに含まれるｎ本のクロックのそれぞれに同期してサンプリングし、サンプリングされた値を、これらのｎ本のクロックにそれぞれ対応するデータ信号ＤＳ［ｎ−１：０］として並列化回路３４に出力する。
【００１５】
ここで、データ信号ＤＳ［ｎ−１：０］は、ｎ本のデータ信号ＤＳ［０］，ＤＳ［１］，…，ＤＳ［ｎ−１］を示す。他の信号の場合も同様である。サンプリング回路３２に受信された差動データ信号（以下では受信データ信号と称する）は、例えば、シリアルＡＴＡ、ＵＳＢ、IEEE 1394、Gigabit Ethernet(IEEE 802.3-2005)、又はFibre Channelの規格に適合した信号であるとする。
【００１６】
並列化回路３４は、データ信号ＤＳ［０］〜ＤＳ［ｎ−１］のそれぞれを多相クロックＣＫに従って並列化し、並列化されたデータ信号Ｄ０，Ｄ１，…，Ｄｎ−１をデータ復元部４０に出力する。データ信号ＤＳ［０］，ＤＳ［１］，…，ＤＳ［ｎ−１］は、データ信号Ｄ０，Ｄ１，…，Ｄｎ−１にそれぞれ対応する。具体的には、並列化回路３４は、データ信号ＤＳ［ｉ］（ｉは０≦ｉ＜ｎを満たす整数）で伝送されるデータを２ビットずつ並列に伝送する、並列化されたデータ信号Ｄｉを生成し、データ信号Ｄｉを、多相クロックＣＫに含まれる対応するクロックに同期させて出力する。
【００１７】
データ復元部４０は、クロックデータリカバリ動作を行い、データ信号Ｄ０〜Ｄｎ−１のうちで位相が適切なデータ信号、言い換えると、データ検出が安定して行えるデータ信号を判定し、このデータ信号を示す選択信号ＥＮを生成する。記憶部３６は、受信データ信号を受信するためのイニシャライズ期間の少なくとも一部において生成された選択信号ＥＮの値を格納する。
【００１８】
その後、データ復元部４０は、例えばデータ通信を開始する前に、記憶部３６に格納された値を選択信号ＥＮＲとして読み出し、選択信号ＥＮＲを、選択信号ＥＮの初期値として用いる。受信データ信号のデータ通信期間を含む期間において、データ復元部４０は、クロックデータリカバリ動作を再開する。すなわち、データ復元部４０は、この初期値に従って、データ信号Ｄ０〜Ｄｎ−１のうちの１つ、及びそれに対応するクロックＣＫ［０］〜ＣＫ［ｎ−１］のうちの１つを選択し、それぞれをデータ信号ＳＹＭＤＡＴＡ及びクロックＳＹＭＣＫとして出力する。
【００１９】
図２は、図１のデータ復元部４０の構成例を示すブロック図である。データ復元部４０は、位相比較部４２と、選択信号生成回路５２とを有している。位相比較部４２は、ｎ個の位相比較器４４Ａ，４４Ｂ，４４Ｃ，…，４４Ｚと、セレクタ４６，４８とを有している。選択信号生成回路５２は、論理回路５４と、シフトレジスタ５６とを有している。
【００２０】
位相比較器４４Ａには、データ信号Ｄ０Ｘ［１：０］，Ｄ０Ｙ［１：０］，Ｄ０Ｚ［１：０］が入力されている。位相比較器４４Ｂには、データ信号Ｄ１Ｘ［１：０］，Ｄ１Ｙ［１：０］，Ｄ１Ｚ［１：０］が入力されている。以下、他の位相比較器についても同様に異なるデータ信号が入力されている。
【００２１】
ここで、位相比較器４４Ｂに入力されるデータ信号Ｄ１Ｙ［１：０］はデータ信号Ｄ１である。データ信号Ｄ１Ｘ［１：０］は、隣の位相比較器４４Ａに入力されるデータ信号Ｄ０Ｙ［１：０］＝Ｄ０と同じである。データ信号Ｄ１Ｚ［１：０］は、隣の位相比較器４４Ｃに入力されるデータ信号Ｄ２Ｙ［１：０］＝Ｄ２と同じである。他の位相比較器についても同様であり、位相比較器４４Ａは、位相比較器４４Ｚと隣り合っていると見なす。すなわち、
Ｄ１Ｘ［１：０］＝Ｄ０Ｙ［１：０］＝Ｄｎ−１Ｚ［１：０］＝Ｄ０
Ｄ２Ｘ［１：０］＝Ｄ１Ｙ［１：０］＝Ｄ０Ｚ［１：０］＝Ｄ１
Ｄ３Ｘ［１：０］＝Ｄ２Ｙ［１：０］＝Ｄ１Ｚ［１：０］＝Ｄ２
…
Ｄ０Ｘ［１：０］＝Ｄｎ−１Ｙ［１：０］＝Ｄｎ−２Ｚ［１：０］＝Ｄｎ−１
である。
【００２２】
位相比較器４４Ａ〜４４Ｚには、それぞれ、選択信号ＥＮのビットＥＮ［０］，ＥＮ［１］，ＥＮ［２］，…，ＥＮ［ｎ−１］が入力されている。選択信号ＥＮのｎビットのうち、１ビットのみが“１”、他のビットは“０”である。位相比較器４４Ａ〜４４Ｚは、入力されたデータ信号ＤｉＸ，ＤｉＹ，ＤｉＺ（ｉは０≦ｉ＜ｎを満たす整数）をクロックＣＬＫＤに同期してラッチする。クロックＣＬＫＤは、クロックＣＫ［０］〜ＣＫ［ｎ−１］のうちの１つである。
【００２３】
位相比較器４４Ａ〜４４Ｚは、入力された選択信号ＥＮのビットが“１”である場合にのみ、入力されたデータ信号ＤｉＸ，ＤｉＹ，ＤｉＺに対するクロックＣＬＫＤの位相の関係を示す検出信号ＤＥＣ［０］及びＤＥＣ［１］を出力する。言い換えると、検出信号ＤＥＣ［０］及びＤＥＣ［１］は、データ信号Ｄ０〜Ｄｎ−１のうち、選択信号ＥＮで示されたデータ信号について、位相が適切なデータ信号であるか否かを示す。検出信号ＤＥＣ［０］はＤｉＸ［０］，ＤｉＹ［０］及びＤｉＺ［０］に対応し、検出信号ＤＥＣ［１］はＤｉＸ［１］，ＤｉＹ［１］及びＤｉＺ［１］に対応する。
【００２４】
このように、位相比較器４４Ａ〜４４Ｚのそれぞれには、データ信号ＤｉＸとしてデータ信号Ｄｉ−１が、データ信号ＤｉＺとしてデータ信号Ｄｉ＋１が入力されている。これに代えて、位相比較器４４Ａ〜４４Ｚのそれぞれに、データ信号ＤｉＸとしては、より位相が進んだデータ信号Ｄｉ−２等を、データ信号ＤｉＺとしては、より位相が遅れたデータ信号Ｄｉ＋２等を入力してもよい。
【００２５】
図３は、図２の位相比較器４４Ａ等に入力される各データ信号とクロックＣＬＫＤとの間の関係の例を示す説明図である。図３では、データ信号ＤｉＸ［０］等の示す値が変化するタイミングが示されている。データ信号ＤｉＸ［０］，ＤｉＹ［０］，ＤｉＺ［０］が入力される位相比較器において、データ信号ＤｉＸ［０］とクロックＣＬＫＤとの間の関係、データ信号ＤｉＹ［０］とクロックＣＬＫＤとの間の関係、及びデータ信号ＤｉＺ［０］とクロックＣＬＫＤとの間の関係は、図３のようになる。
【００２６】
図４（ａ）は、図３のデータ信号ＤｉＸ［０］，ＤｉＹ［０］，ＤｉＺ［０］とクロックＣＬＫＤとの間の関係を簡潔に示す説明図である。図４（ｂ）は、図４（ａ）よりクロックＣＬＫＤが遅れている場合の例を示す説明図である。図４（ｃ）は、図４（ａ）よりクロックＣＬＫＤが進んでいる場合の例を示す説明図である。ここでは、選択信号ＥＮ［０］＝１であるとして説明する。図４（ａ）〜（ｃ）のいずれの場合においても、位相比較器４４Ａは、データ信号Ｄ０Ｘ［０］，Ｄ０Ｙ［０］，Ｄ０Ｚ［０］を、タイミングＣＸ，ＣＹ，ＣＺでそれぞれサンプリングする。
【００２７】
図４（ａ）の場合には、位相比較器４４Ａでラッチされる値は、データ信号Ｄ０Ｘ［０］，Ｄ０Ｙ［０］，Ｄ０Ｚ［０］のいずれについても、同じ値である。この場合、データ信号とクロックＣＬＫＤとの間の関係は適切であるので、位相比較器４４Ａは、“ホールド”を示す検出信号ＤＥＣ［０］を論理回路５４に出力する。
【００２８】
図４（ｂ）の場合には、位相比較器４４Ａでラッチされる値は、位相が進んでいるデータ信号Ｄ０Ｘ［０］から得られる値だけがデータ信号Ｄ０Ｙ［０］，Ｄ０Ｚ［０］から得られる値とは異なる値になり得る。この場合、クロックＣＬＫＤの位相を相対的に早める必要があるので、位相比較器４４Ａは、“アップ”を示す検出信号ＤＥＣ［０］を論理回路５４に出力する。
【００２９】
図４（ｃ）の場合には、位相比較器４４Ａでラッチされる値は、位相が遅れているデータ信号Ｄ０Ｚ［０］から得られる値だけがデータ信号Ｄ０Ｘ［０］，Ｄ０Ｙ［０］から得られる値とは異なる値になり得る。この場合、クロックＣＬＫＤの位相を相対的に遅くする必要があるので、位相比較器４４Ａは、“ダウン”を示す検出信号ＤＥＣ［０］を論理回路５４に出力する。位相比較器４４Ａは、同様の動作をデータ信号Ｄ０Ｘ［１］，Ｄ０Ｙ［１］，Ｄ０Ｚ［１］に対しても行い、その結果を検出信号ＤＥＣ［１］として論理回路５４に出力する。
【００３０】
図５は、図２の論理回路５４の動作の例を示す説明図である。図２の論理回路５４は、検出信号ＤＥＣ［０］，ＤＥＣ［１］の値の組合せに従って、信号ＰＨ＿ＵＰ，ＰＨ＿ＨＯＬＤ，ＰＨ＿ＤＯＷＮをシフトレジスタ５６に出力する。具体的には、論理回路５４は、アップシフトをすべき場合には信号ＰＨ＿ＵＰのみを、ホールドをすべき場合には信号ＰＨ＿ＨＯＬＤのみを、ダウンシフトをすべき場合には信号ＰＨ＿ＤＯＷＮのみを“１”にする。
【００３１】
図６は、図２のシフトレジスタ５６の例を示す説明図である。例としてｎ＝１２であるとする。シフトレジスタ５６のビットＢ０〜Ｂ１１は、データ信号Ｄ０〜Ｄ１１にそれぞれ対応している。例えば、シフトレジスタ５６はビットＢ５のみに“１”を格納しているとする。シフトレジスタ５６は、信号ＰＨ＿ＵＰが“１”である場合には、値“１”をビットＢ６にシフトし、信号ＰＨ＿ＤＯＷＮが“１”である場合には、値“１”をビットＢ４にシフトする。信号ＰＨ＿ＨＯＬＤが“１”である場合には、シフトレジスタ５６はシフトを行わない。シフトレジスタ５６は、格納している全ビットＢ０〜Ｂ１１を、選択信号ＥＮ［０］〜ＥＮ［ｎ−１］として位相比較部４２及び記憶部３６に出力する。
【００３２】
セレクタ４６は、選択信号ＥＮ［０］，ＥＮ［１］，…，ＥＮ［ｎ−１］にそれぞれ対応するデータ信号Ｄ０，Ｄ１，…，Ｄｎ−１から、対応する選択信号が“１”であるデータ信号を選択して、データ信号ＳＹＭＤＡＴＡとして出力する。セレクタ４８は、選択信号ＥＮ［０］，ＥＮ［１］，…，ＥＮ［ｎ−１］にそれぞれ対応するクロックＣＫ［０］，ＣＫ［１］，…，ＣＫ［ｎ−１］から、対応する選択信号が“１”であるクロックを選択して、クロックＳＹＭＣＫとして出力する。
【００３３】
図７は、図２のデータ復元部４０に入力されるデータ信号Ｄ０〜Ｄ１１とクロックＣＬＫＤとの関係の例を示すタイミングチャートである。以上のようなデータ復元部４０の動作により、例えば選択信号ＥＮ［５］＝１となり、セレクタ４６，４８は、データ信号Ｄ５及びクロックＣＫ［５］を、データ信号ＳＹＭＤＡＴＡ及びクロックＳＹＭＣＫとして出力する。このとき、選択されたデータ信号Ｄ５において、値が変化する時点とクロックＣＬＫＤのタイミングとの間の時間は、クロックＣＬＫＤのタイミングの前後とも十分に確保されている。以上のようにして、クロックデータリカバリ動作が行われる。
【００３４】
図８は、シリアルＡＴＡによるデータ通信のシーケンス例を示すタイミングチャートである。図８には、ホスト（ＨＯＳＴ）から図１のクロックデータリカバリ回路を含むデバイス（ＤＥＶＩＣＥ）への送信信号と、デバイスからホストへの送信信号とが示されている。
【００３５】
シリアルＡＴＡの場合、ＯＯＢ（Out of Band）信号として、COMRESET、COMINIT、COMWAKEが規定されている。各ＯＯＢ信号は、ALIGN Primitiveと呼ばれる４０bitのビットパターンが４回連続した信号（合計１６０bit）と、アイドル間隔（COMRESET／COMINIT：４８０ＵＩ（Unit Interval）、COMWAKE：１６０ＵＩ）とを有している。また、COMWAKE後には、D10.2と呼ばれるビットパターン（１，０が繰り返される）、及びALIGN Primitive（K28.5→D10.2→D10.2→D27.3）が送信される。このような送信信号から、受信データ信号を受信するためのイニシャライズ期間（電源オンからハンドシェイクが終了するまでの期間であり、例えば、電源オンから図８のデータ通信の開始までの期間）とデータ通信期間（例えば図８のデータ通信の期間）とを判定することが可能である。
【００３６】
例えば、記憶部３６は、周期が１ＵＩのクロックのパルスをカウントして時間を計測するタイマー回路、又は、受信したビットパターンと所定の既知のビットパターンと比較するビットパターン比較回路を有し、これらの回路のいずれかを用いて、受信データ信号のイニシャライズ期間とデータ通信期間とを判定する。また、記憶部３６は、イニシャライズ期間の開始及び終了、並びにデータ通信期間の開始を示す各フラグを格納し、出力する。
【００３７】
データ復元部４０は、例えば次のシーケンスでデータ通信を行う。受信データ信号のイニシャライズ期間の一部、例えば図８の期間Ｔ１（COMWAKE）において、データ復元部４０は、図１〜図７を参照して説明したようにクロックデータリカバリ動作を行い、適切なデータ信号及びそれに対応するクロック信号を示す選択信号ＥＮを求める。期間Ｔ２において、記憶部３６は選択信号ＥＮの値を格納する。
【００３８】
受信データ信号のデータ通信期間を含む期間Ｔ３〜Ｔ５において、データ復元部４０は、記憶部３６に格納された選択信号ＥＮの値を選択信号ＥＮＲとして読み出し、シフトレジスタ５６は、選択信号ＥＮＲの値を初期値として用いる。この期間において、データ復元部４０は、記憶部３６から読み出された選択信号ＥＮに従って、クロックデータリカバリ動作を再開し、データ通信を行う。期間Ｔ１で求められた選択信号ＥＮの値をシフトレジスタ５６の初期値とするので、適切なデータ信号やクロックを直ちに選択することができ、クロックデータリカバリに要する時間を短縮することができる。既にクロックデータリカバリ動作によって求められたデータ信号やクロックを用いるので、リカバリ精度を低下させることがなく、周波数が高いクロックや多数のクロックを用いないので、消費電力や回路面積を抑えることもできる。
【００３９】
データ復元部４０は、次のシーケンスでデータ通信を行ってもよい。図８の期間Ｔ１〜Ｔ３において、データ復元部４０は、クロックデータリカバリ動作を行い、選択信号ＥＮを求める。期間Ｔ４において、記憶部３６は選択信号ＥＮの値を格納する。期間Ｔ５において、データ復元部４０は、格納された値を選択信号ＥＮＲとして読み出し、シフトレジスタ５６は、選択信号ＥＮＲの値を初期値として用いる。データ復元部４０は、クロックデータリカバリ動作を再開し、データ通信を行う。
【００４０】
図９は、電源が一旦切断される場合におけるシリアルＡＴＡによるデータ通信のシーケンス例を示すタイミングチャートである。図９の期間Ｔ１１において、データ復元部４０は、クロックデータリカバリ動作を行い、選択信号ＥＮを求める。期間Ｔ１２において、ホストの電源がオフになると、記憶部３６は選択信号ＥＮの値を格納する。その後、ホストの電源がオンになり、期間Ｔ１３において、データ復元部４０は、格納された値を選択信号ＥＮＲとして読み出し、シフトレジスタ５６は、選択信号ＥＮＲの値を初期値として用いる。データ復元部４０は、クロックデータリカバリ動作を再開し、その後、データ通信を行う。
【００４１】
図１０は、図１のクロックデータリカバリ回路の第１の変形例の構成を示すブロック図である。図１０のクロックデータリカバリ回路は、クロック選択部３８を更に有する点が、図１のクロックデータリカバリ回路とは異なっている。クロック選択部３８は、クロック選択回路３８Ａ，３８Ｂ及び３８Ｃを有する。
【００４２】
記憶部３６は、受信データ信号を受信するためのイニシャライズ期間及びデータ通信期間を判定し、イニシャライズ期間の少なくとも一部（例えば図８の期間Ｔ１，Ｔ２）と、データ復元部４０が記憶部３６から読み出された選択信号ＥＮＲに従って処理を行う期間（例えば図８の期間Ｔ３〜Ｔ５）とを示すクロック制御信号ＣＣを生成する。具体的には、記憶部３６は、図８の期間Ｔ１，Ｔ２においては、全てのビットが“１”である値を、クロックデータリカバリ動作が再開されてデータ通信を行う期間を含む期間Ｔ３〜Ｔ５においては、読み出された選択信号ＥＮＲの値（格納された選択信号ＥＮの値）を、クロック制御信号ＣＣとしてクロック選択回路３８Ａ〜３８Ｃに出力する。
【００４３】
クロック選択回路３８Ａは、多相クロックＣＫＳに含まれるクロックＣＫＳ［０］〜ＣＫＳ［ｎ−１］から、そのうちのｍ本のクロック（ｍはｍ＜ｎを満たす自然数）をクロック制御信号ＣＣに従って選択してサンプリング回路３２に供給する。クロック選択回路３８Ｂ，３８Ｃは、多相クロックＣＫに含まれるクロックＣＫ［０］〜ＣＫ［ｎ−１］から、そのうちのｍ本のクロックをクロック制御信号ＣＣに従って選択する。クロック選択回路３８Ａ〜３８Ｃはいずれも、クロック制御信号ＣＣのビットのうち、例えば値が“１”であるビットに対応するクロックを選択する。クロック選択回路３８Ｂ，３８Ｃは、選択されたクロックを並列化回路３４及びデータ復元部４０にそれぞれ供給する。
【００４４】
例えば、選択信号ＥＮ［０］〜ＥＮ［ｎ−１］のうち、選択信号ＥＮ［５］のみが“１”、その他の選択信号は“０”である場合には、クロック選択回路３８Ａ〜３８Ｃは、データ信号Ｄ５に対応するクロックＣＫＳ［５］及びＣＫ［５］のみを出力し、その他のクロックを出力しない。また、この場合、クロック選択回路３８Ａ〜３８Ｃは、クロックＣＫＳ［５＋α：５−α］及びＣＫ［５＋α：５−α］（この場合、αは５以下の自然数）のみを出力してもよい。
【００４５】
サンプリング回路３２は、クロックＣＫＳ［０］〜ＣＫＳ［ｎ−１］のそれぞれに従って動作する回路を有しており、並列化回路３４、及びデータ復元部４０は、いずれも、クロックＣＫ［０］〜ＣＫ［ｎ−１］のそれぞれに従って動作する回路を有している。したがって、サンプリング回路３２、並列化回路３４、及びデータ復元部４０は、多相クロックに含まれるクロックのうちの一部がクロック選択回路３８Ａ〜３８Ｃによって停止されると、供給されないクロックに対応する回路を停止する。これにより、消費電力を低下させることができる。
【００４６】
図１１は、図１のクロックデータリカバリ回路の第２の変形例の構成を示すブロック図である。図１１のクロックデータリカバリ回路は、クロック制御信号ＣＣに代えて選択信号ＥＮがクロック選択回路３８Ａ〜３８Ｃに入力されている点以外は、図１０のクロックデータリカバリ回路と同様に構成されている。図１０の場合と同様に、クロック選択回路３８Ａは、クロックＣＫＳ［０］〜ＣＫＳ［ｎ−１］からｍ本のクロックを選択信号ＥＮに従って選択して出力する。クロック選択回路３８Ｂ及び３８Ｃは、クロックＣＫ［０］〜ＣＫＳ［ｎ−１］からｍ本のクロックを選択信号ＥＮに従って選択して出力する。
【００４７】
図１２は、図１のクロックデータリカバリ回路の第３の変形例の構成を示すブロック図である。図１２のクロックデータリカバリ回路は、多相クロック生成回路１０に代えて多相クロック生成回路２１０を有している点が図１のクロックデータリカバリ回路とは異なっている。記憶部２３６は、受信データ信号のイニシャライズ期間とデータ通信期間とを判定し、イニシャライズ期間の少なくとも一部（例えば、値“Ｌ”）又はデータ通信期間の少なくとも一部を含む期間（例えば、値“Ｈ”）を示すクロック制御信号ＣＣを出力する。多相クロック生成回路２１０は、多相クロックＣＫＳに含まれるクロックの数、及び多相クロックＣＫに含まれるクロックの数を、いずれも、クロック制御信号ＣＣに従ってｎ又はｍに変更する。
【００４８】
図１３は、図１２の多相クロック生成回路２１０の構成例を示すブロック図である。多相クロック生成回路２１０は、発振器２１１と、分周器２１２，２１６と、位相比較器２１３と、ローパスフィルタ２１４と、電圧制御発振器（ＶＣＯ）２１５とを有している。
【００４９】
発振器２１１は、参照信号ＣＫｉｎを生成し、分周器２１２は、参照信号ＣＫｉｎを分周して参照信号ＣＫｒｅｆを生成する。位相比較器２１３は、参照信号ＣＫｒｅｆと分周器２１６の出力信号ＣＫｄｉｖとの位相を比較し、位相結果を出力する。ローパスフィルタ２１４は、位相比較結果を平滑化して発振制御信号Ｖｃｏｎｔを生成する。ＶＣＯ２１５は、発振制御信号Ｖｃｏｎｔに応じた周波数の多相クロックＣＫＳを生成する。分周器２１６は、多相クロックＣＫＳに含まれるクロックの１つを分周して、出力信号ＣＫｄｉｖを生成する。図１３では省略されているが、多相クロック生成回路２１０は、多相クロックＣＫＳを分周して多相クロックＣＫを生成する。
【００５０】
図１４は、図１３のＶＣＯ２１５の構成例を示すブロック図である。ＶＣＯ２１５は、インバータ２１７Ａ，２１７Ｂ，…，２１７Ｇと、セレクタ２１８とを有している。例として、ｍ＝７，ｎ＝５の場合について説明する。例えば、クロック制御信号ＣＣが“Ｌ”のとき、セレクタ２１８は信号Ａを選択する。このとき、インバータ２１７Ａ〜２１７Ｇは７段のインバータチェーンを構成し、インバータ２１７Ａ〜２１７Ｇは、それぞれの出力を、多相クロックＣＫＳに含まれるクロックとして出力する。
【００５１】
例えば、クロック制御信号ＣＣが“Ｈ”のとき、セレクタ２１８は信号Ｂを選択する。このとき、インバータ２１７Ａ，２１７Ｂ，２１７Ｅ〜２１７Ｇは５段のインバータチェーンを構成し、インバータ２１７Ａ，２１７Ｂ，２１７Ｅ〜２１７Ｇは、それぞれの出力を、多相クロックＣＫＳに含まれるクロックとして出力する。
【００５２】
図１２の多相クロック生成回路２１０によると、ＶＣＯ２１５のインバータチェーンの遅延が小さくなるので、多相クロックＣＫＳ等に従って動作するサンプリング回路３２等だけではなく、ＶＣＯ２１５においても、消費電力を低下させることができる。
【００５３】
最適なデータ信号を検出できない場合に、セレクタ２１８が、イニシャライズ期間においては信号Ｂを選択し、データ通信期間においては信号Ａを選択するようにしてもよい。すると、多相クロックＣＫＳ等に含まれるクロックの数を、データ通信期間においてイニシャライズ期間より多くすることができる。ここではクロックの数を５又は７に切り換える場合を例として説明したが、クロックの数をこれ以外の数にするようにしてもよい。
【００５４】
図１５は、図２のデータ復元部４０の第１変形例の構成を示すブロック図である。図１５のデータ復元部及び以下で説明する他のデータ復元部は、図１、図１０〜図１２のいずれのクロックデータリカバリ回路においても用いることができる。図１５のデータ復元部は、位相比較部３４２と、選択信号生成回路３５２とを有している。
【００５５】
位相比較器４４Ａ〜４４Ｚには、選択信号ＥＮではなく、“Ｈ”が入力されている。位相比較器４４Ａ〜４４Ｚは、いずれも、入力されたデータ信号ＤｉＸ，ＤｉＹ，ＤｉＺに対するクロックＣＬＫＤの位相の関係を示す検出信号ＤＥＣｉ［０］，ＤＥＣｉ［１］を出力する。検出信号ＤＥＣｉ［０］，ＤＥＣｉ［１］は、図２の検出信号ＤＥＣ［０］，ＤＥＣ［１］にそれぞれ対応する。言い換えると、検出信号ＤＥＣｉ［０］及びＤＥＣｉ［１］は、データ信号Ｄ０〜Ｄｎ−１のそれぞれについて、位相が適切なデータ信号であるか否かを示す。
【００５６】
選択信号生成回路３５２は、論理回路３５４Ａ，３５４Ｂ，３５４Ｃ，…，３５４Ｚと、演算回路３５８とを有している。論理回路３５４Ａ〜３５４Ｚは、いずれも図２の論理回路５４と同様に動作する。すなわち、論理回路３５４Ａは、検出信号ＤＥＣ０［０］，ＤＥＣ０［１］の値の組合せに従って、アップシフトをすべき場合には信号ＰＨ＿ＵＡのみを、ホールドをすべき場合には信号ＰＨ＿ＨＡのみを、ダウンシフトをすべき場合には信号ＰＨ＿ＤＡのみを“１”にする。同様に、論理回路３５４Ｂは信号ＰＨ＿ＵＢ，ＰＨ＿ＨＢ，ＰＨ＿ＤＢを出力し、論理回路３５４Ｃは信号ＰＨ＿ＵＣ，ＰＨ＿ＨＣ，ＰＨ＿ＤＣを出力し、論理回路３５４Ｚは信号ＰＨ＿ＵＺ，ＰＨ＿ＨＺ，ＰＨ＿ＤＺを出力する。
【００５７】
演算回路３５８は、論理回路３５４Ａ〜３５４Ｚの出力信号に基づいて、最適なデータ信号及びクロックを示す選択信号ＥＮを求めて出力する。演算回路３５８は、例えば、論理回路３５４Ａ〜３５４Ｚのうち、信号ＰＨ＿ＨＡ〜ＰＨ＿ＨＺとして“１”を出力する回路から最適なものを選択し、選択された回路に対応するデータ信号及びクロックを示す選択信号ＥＮを求める。
【００５８】
図１６は、図１５の演算回路３５８の構成例を示すブロック図である。演算回路３５８は、排他的論理和（ＥＸＯＲ）回路３５７Ａ，３５７Ｂ，…，３５７Ｚと、判定回路３５９とを有している。ＥＸＯＲ回路３５７Ａ〜３５７Ｚは、位相が適切なデータ信号の組と、位相が適切ではないデータ信号の組との間の境界を求める。具体的には、ＥＸＯＲ回路３５７Ａ〜３５７Ｚのうちの２つは、“１”及び“０”が入力されて出力が“１”となる。これらの２つの回路は、位相が適切なデータ信号の組と、位相が適切ではないデータ信号の組との間の境界を示している。ＥＸＯＲ回路３５７Ａと３５７Ｚとは、隣接していると考える。判定回路３５９は、ＥＸＯＲ回路３５７Ａ〜３５７Ｚのうち、“１”を出力する境界を示す回路から最も遠く、２入力値がいずれも“１”である回路を判定し、判定された回路に対応するデータ信号及びクロックを示す選択信号ＥＮを求めて出力する。
【００５９】
図１７は、図２のデータ復元部４０の第２変形例の一部の構成を示すブロック図である。図１７のデータ復元部は、位相比較部４４２と、既知データ格納部４４９と、選択信号生成回路４５２とを有している。位相比較部４４２は、ＥＸＯＲ回路４４５Ａ，４４５Ｂ，…，４４５Ｚと、セレクタ４６，４８とを有している。
【００６０】
既知データ格納部４４９は、既知のデータ（例えばシリアルＡＴＡのＯＯＢ信号等）をクロックＣＬＫＤに従って出力する。位相比較部４４２は、データ信号ＤｉＹ［０］，ＤｉＹ［１］と、既知データ格納部４４９の出力データとを比較し、その結果を検出信号ＤＥＣｉ［０］，ＤＥＣｉ［１］として出力する。
【００６１】
具体的には、ＥＸＯＲ回路４４５Ａは、データ信号Ｄ０Ｙ［１：０］の値と、既知データ格納部４４９の出力値とを比較する。既知データ格納部４４９が２ビットずつデータを出力するのに対応して、ＥＸＯＲ回路４４５Ａは、２ビットずつ比較を行い、その結果を検出信号ＤＥＣ０［０］，ＤＥＣ０［１］として選択信号生成回路４５２に出力する。データ信号Ｄ０Ｙ［０］の値と既知データの値とが一致する場合には、ＤＥＣ０［０］＝０、一致しない場合にはＤＥＣ０［０］＝１である。データ信号Ｄ０Ｙ［１］の値と既知データの値とが一致する場合には、ＤＥＣ０［１］＝０、一致しない場合にはＤＥＣ０［１］＝１である。他のＥＸＯＲ回路４４５Ｂ〜４４５Ｚについても同様である。
【００６２】
図１７の選択信号生成回路４５２は演算回路４５８を有し、演算回路４５８は、ＥＸＯＲ回路４５７Ａ，４５７Ｂ，…，４５７Ｚと、判定回路４５９とを有している。ＥＸＯＲ回路４５７Ａは、検出信号ＤＥＣ０［０］と、これに対応し、隣接する検出信号ＤＥＣ１［０］とを比較し、一致する場合には“０”、一致しない場合には“１”を出力する。また、ＥＸＯＲ回路４５７Ａは、検出信号ＤＥＣ０［１］と検出信号ＤＥＣ１［１］とを比較し、一致する場合には“０”、一致しない場合には“１”を出力する。他のＥＸＯＲ回路４５７Ｂ〜４５７Ｚも、同様に、検出信号ＤＥＣ１〜ＤＥＣｎ−１と、それぞれの隣りの検出信号ＤＥＣ２〜ＤＥＣｎ−１，ＤＥＣ０との比較を行い、その結果を出力する。
【００６３】
ＥＸＯＲ回路４５７Ａ〜４５７Ｚのうち、検出信号ＤＥＣｉ［０］が“１”となる回路は、位相が適切なデータ信号の組と、位相が適切ではないデータ信号の組との境界を示している。検出信号ＤＥＣｉ［１］についても同様である。ＥＸＯＲ回路４５７Ａと４５７Ｚとは、隣接していると考える。
【００６４】
判定回路４５９は、検出信号ＤＥＣｉ［０］に関して、ＥＸＯＲ回路４５７Ａ〜４５７Ｚのうち、“１”を出力する境界を示す回路から最も遠く、入力値が“０”（データ信号の値と既知データの値とが一致する）である回路を判定する。言い換えると、判定回路４５９は、クロックＣＬＫＤのタイミングと、データ信号の値の変化タイミングとの間の時間が、クロックＣＬＫＤのタイミングの前及び後のいずれにおいても十分に大きくなるようなデータ信号に対応する回路を判定し、判定された回路に対応するデータ信号及びクロックを示す選択信号ＥＮを求めて出力する。
【００６５】
この際、判定回路４５９は、適切なデータ信号がデータ信号Ｄｐ〜Ｄｑであり、データ信号ＤｐとＤｐ＋１との間、及びデータ信号ＤｑとＤｑ−１との間に境界がある場合には、例えば、データ信号Ｄｒ（ｒは（ｐ＋ｑ）／２に最も近い整数）を示す選択信号ＥＮを求めて出力する。判定回路４５９は、検出信号ＤＥＣｉ［１］に関しても、同様に選択信号ＥＮを求めて出力する。図１７のデータ復元部によっても、タイミングマージンが確保されたデータリカバリをすることが可能となる。
【００６６】
図１７の構成によると、判定回路４５９は、既知データと一致するデータ信号がどれであるのか、言い換えると、入力されたデータ信号のうち、正常値を表すデータ信号がどれであるのかを判定することができる。正常値を表す適切なデータ信号がない場合には、エラーが生じたと判定することができる。イニシャライズ期間中にエラーが生じたと判定された場合には、判定回路４５９は、エラーが生じたことを示すエラー信号ＥＲを生成し、記憶部３６に格納させてもよい。
【００６７】
図１７のデータ復元部を例えば図１０〜図１２のクロックデータリカバリ回路において用い、記憶部３６から読み出したエラー信号ＥＲをクロック制御信号ＣＣに代えて用いることにより、エラーが生じたことをエラー信号ＥＲが示している場合に、多相クロックに含まれるクロックの数をデータ通信期間中において多くしてもよい。また、エラーが生じたことをエラー信号ＥＲが示している場合に、多相クロック生成回路内のＰＬＬのループ帯域幅を小さくなるように変更してもよい（詳細は後述する）。クロックの数の増加、及びＰＬＬのループ帯域幅の狭小化の両方を行ってもよい。このように、エラー信号ＥＲを用いることによってリカバリ精度を向上させることができる。
【００６８】
図１８は、図２のデータ復元部４０の第３変形例の構成を示すブロック図である。図１８のデータ復元部５４０は、選択回数カウンタ５６４と、判定回路５６６とを更に有する点が、データ復元部４０とは異なっている。選択回数カウンタ５６４は、イニシャライズ期間中に各データ信号Ｄｉが選択された回数を、選択信号ＥＮを用いてカウントし、各データ信号Ｄｉについての選択回数を判定回路５６６に出力する。
【００６９】
図１９（ａ）は、各データ信号Ｄｉの選択回数の例を示す説明図である。図１９（ｂ）は、各データ信号Ｄｉの選択回数の他の例を示す説明図である。図１９（ａ）の場合、イニシャライズ期間中に、データ信号Ｄ５〜Ｄ９がそれぞれ３回、４回、５回、４回、３回選択され、その他のデータ信号は選択されていない。
【００７０】
判定回路５６６は、データ信号Ｄ５〜Ｄ９に対応するクロックが必要であり、その他のクロックが不要であると判定し、データ信号Ｄ５〜Ｄ９に対応するクロックが出力されるべきであることを示す選択信号ＥＮ２を記憶部３６に格納させる。データ通信期間において、判定回路５６６は、記憶部３６に格納された選択信号ＥＮ２の値を読み出し、クロック制御信号ＣＣとしてクロック選択回路３８Ａ〜３８Ｃ又は多相クロック生成回路２１０に出力する。
【００７１】
クロックの停止は、例えば図１０〜図１２を参照して説明したように行われる。クロック選択回路３８Ａ〜３８Ｃ又は多相クロック生成回路２１０は、データ信号Ｄ５〜Ｄ９に対応するクロック以外のクロックを停止する。データ信号Ｄ５〜Ｄ９だけではなく、これらに位相が近いデータ信号に対応するクロック、例えば、データ信号Ｄ４及びＤ１０に対応するクロックも出力されるようにしてもよいし、更にデータ信号Ｄ３及びＤ１１に対応するクロックも出力されるようにしてもよい。
【００７２】
図１９（ｂ）の場合、イニシャライズ期間中に、データ信号Ｄ８，Ｄ６，Ｄ４，Ｄ１０がそれぞれ９回、８回、２回、２回選択され、その他のデータ信号は選択されていない。判定回路５６６は、データ信号Ｄ４，Ｄ６，Ｄ８，Ｄ１０に対応するクロックが必要であり、その他のクロックが不要であると判定し、データ信号Ｄ４，Ｄ６，Ｄ８，Ｄ１０に対応するクロックが出力されるべきであることを示す選択信号ＥＮ２を記憶部３６に格納させる。データ通信期間において、判定回路５６６は、記憶部３６に格納された選択信号ＥＮ２の値を読み出し、読み出された値をクロック制御信号ＣＣとしてクロック選択回路３８Ａ〜３８Ｃ又は多相クロック生成回路２１０に出力する。
【００７３】
クロック選択回路３８Ａ〜３８Ｃ又は多相クロック生成回路２１０は、データ信号Ｄ４，Ｄ６，Ｄ８，Ｄ１０に対応するクロック以外のクロックを停止する。停止されない２つのクロックの間の位相のクロックを停止しないようにしてもよい。すなわち、図１９（ｂ）の場合、データ信号Ｄ５，Ｄ７，Ｄ９に対応するクロックは停止しないようにし、クロックＤ４〜Ｄ１０が出力されるようにしてもよい。
【００７４】
図２０は、図２のデータ復元部４０の第４変形例の構成を示すブロック図である。図２０のデータ復元部６４０は、選択回数カウンタ５６４と、トラッキング回路６６５と、判定回路６６６とを更に有する点が、データ復元部４０とは異なっている。
【００７５】
図２１は、受信データ信号の周波数の変化の例を示すグラフである。電磁放射を抑制するため、例えばシリアルＡＴＡでは、ＳＳＣ（Spread Spectrum Clocking）が採用されている。このため、図２１のように、ＳＳＣがオンの時には、受信データ信号（ＲＸ＋，ＲＸ−）の周波数は、一定の幅での変動を一定の周期で繰り返す。ＳＳＣがオフの時には、受信データ信号の周波数はほぼ一定である。
【００７６】
図２２（ａ）は、図２０のトラッキング回路６６５によるトラッキング結果の例を示す説明図である。図２２（ｂ）は、図２０のトラッキング回路６６５によるトラッキング結果の他の例を示す説明図である。図２１の期間ＴＳ１におけるトラッキング結果が図２２（ａ）に示されており、選択信号生成回路５２のシフトレジスタ５６におけるアップシフトが５回、シフト幅は５段である。また、図２１の期間ＴＳ２におけるトラッキング結果が図２２（ｂ）に示されている。
【００７７】
トラッキング回路６６５は、イニシャライズ期間中のクロックの選択結果を、選択信号ＥＮを用いてトラッキングする。具体的には、トラッキング回路６６５は、イニシャライズ期間中の所定の期間において、選択信号ＥＮの値が“１”であるビットが、何ビットの幅の間で移動しているか、アップシフト（図２２（ａ）では左シフト）を何回したか、及びダウンシフト（図２２（ａ）では右シフト）を何回したかを検出し、その結果を判定回路６６６に出力する。
【００７８】
判定回路６６６は、例えば、図２２（ａ）のように５段のアップシフトがされた場合には、トラッキングで検出された範囲（Ｄ５〜Ｄ１０）の中心及びその前後の所定の範囲に対応するデータ信号に対応するクロックが必要であり、その他のクロックは不要であると判定し、必要と判定されたクロックが出力されるべきであることを示す選択信号ＥＮ２を記憶部３６に格納させる。データ通信期間において、判定回路６６６は、記憶部３６に格納された選択信号ＥＮ２の値を読み出し、読み出された値をクロック制御信号ＣＣとしてクロック選択回路３８Ａ〜３８Ｃ又は多相クロック生成回路２１０に出力する。
【００７９】
判定回路６６６は、選択回数カウンタ５６４による各データ信号Ｄｉの選択回数にも基づいて、必要なクロックを判定してもよい。例えば、判定回路６６６は、トラッキング回路６６５によるトラッキング結果に基づいて必要であると判定するクロック、及び選択回数カウンタ５６４による各データ信号Ｄｉについての選択回数に基づいて必要であると判定するクロックのいずれをも、必要であると判定してもよい。
【００８０】
判定回路６６６は、トラッキング結果に基づいて、ＳＳＣがオンであるか否か（すなわち、受信データ信号が周波数変調されているか否か）を判定してもよい。ＳＳＣがオフである時には、受信データ信号の周波数はジッタの影響で変化するのみであるので、選択すべきクロックの数は少なく、かつ、選択すべきクロックを示す選択信号ＥＮのビット（値が“１”のビット）はアップシフト及びダウンシフトを繰り返す。
【００８１】
ＳＳＣがオンである時には、受信データ信号の周波数はインタフェース規格で定められた変化をするので、選択すべきクロックの数は比較的多い。また、選択すべきクロックを示す選択信号ＥＮのビットの動きは、途中で向きが細かく変わるかも知れないが、トラッキング開始から終了まで平均すると一方向への動きとして検出されたり、トラッキング開始からある時点までは平均すると一方向への動きとして、その後は平均すると反対の向きへの動きとして検出される。
【００８２】
判定回路６６６は、ＳＳＣがオフである時の動き及びＳＳＣがオンである時の動きのうち、トラッキング結果がいずれに近いかを判定し、判定結果を選択信号ＥＮ２として記憶部３６に格納させる。データ通信期間において、判定回路６６６は、記憶部３６に格納された選択信号ＥＮ２の値を読み出し、判定信号ＳＣとして出力する。
【００８３】
例えば、シリアルＡＴＡの規格で定められているＳＳＣは、変調周波数が３０〜３３ｋＨｚである（すなわち、変調の周期は３０．３〜３３．３３μｓ）。半周期が約１５μｓであるから、ＣＯＭＷＡＫＥの期間（伝送速度が１．５Ｇｂｐｓの場合、１６０×１ＵＩ（６６６．６６ｐｓ）＋１６０×１ＵＩ（６６６．６６ｐｓ）＝０．２μｓ）はＳＳＣの半周期の約１／７に相当し、ＣＯＭＷＡＫＥの期間のみにおけるトラッキングでもＳＳＣがオンであるか否かを判定することができる。ＳＳＣがオンであるか否かの判定基準は、インタフェース規格に基づいて決めてもよいし、エンジニアリングサンプルに対する評価結果から決めてもよい。
【００８４】
図２３は、図１３の多相クロック生成回路２１０の変形例の構成を示すブロック図である。図２３の多相クロック生成回路は、発振器２１１と、分周器２１２，２１６と、位相比較器６１３と、ローパスフィルタ６１４と、ＶＣＯ６１５と、ループ帯域幅制御回路６１９とを有している。図２３では省略されているが、図２３の多相クロック生成回路は、多相クロックＣＫＳを分周して多相クロックＣＫを生成する。
【００８５】
位相比較器６１３、ローパスフィルタ６１４、ＶＣＯ６１５、及び分周器２１６を有するＰＬＬのループ帯域幅ω、分周器２１６の分周比Ｎ、位相比較器６１３の利得Ｋｐｄ、ローパスフィルタ６１４の伝達関数Ｆ、及びＶＣＯ６１５の利得Ｋｖｃｏの間には、一般に、
ω  ∝  Ｋｐｄ・Ｆ・Ｋｖｃｏ・（１／Ｎ）
という式が成り立つ。
【００８６】
ループ帯域幅制御回路６１９は、ＳＳＣがオンであるか否かを示す判定信号ＳＣに従ってＰＬＬのループ帯域幅の制御を行う。具体的には、ＳＳＣがオフであることを判定信号ＳＣが示している場合には、ループ帯域幅制御回路６１９は、ループ帯域幅が小さくなるように、データ通信開始前に、位相比較器６１３の利得Ｋｐｄ、ローパスフィルタ６１４の伝達関数Ｆ、及びＶＣＯ６１５の利得Ｋｖｃｏのうちの少なくとも１つを、ＳＳＣがオンであることを判定信号ＳＣが示している場合より小さくする。すると、ジッタが抑制され、クロックデータリカバリの精度を向上させることができる。
【００８７】
選択されるべきクロックの選択が大きく変動していることをトラッキング結果が示している場合には、受信データ信号のジッタ特性が悪いこと等が原因とも考えられるが、多相クロックを生成する多相クロック生成回路内のＰＬＬのジッタ特性が悪いことも原因として考えられる。そこで、図２０の判定回路６６６が、トラッキング結果に基づいてジッタを検出し、ジッタが所定の閾値以上であるか否かを示す判定信号ＳＣを生成してもよい。
【００８８】
ジッタが所定の閾値以上であることを判定信号ＳＣが示している場合には、ループ帯域幅制御回路６１９は、ループ帯域幅が小さくなるように、データ通信開始前に、位相比較器６１３の利得Ｋｐｄ、ローパスフィルタ６１４の伝達関数Ｆ、及びＶＣＯ６１５の利得Ｋｖｃｏのうちの少なくとも１つを、その他の場合より小さくする制御を行う。すると、ジッタが抑制され、クロックデータリカバリの精度を向上させることができる。
【００８９】
図２３の多相クロック生成回路のループ帯域幅制御回路６１９は、図１７の判定回路４５９から出力されるエラー信号ＥＲに従って制御を行ってもよい。具体的には、適切なデータ信号がなく、エラーが生じたことをエラー信号ＥＲが示している場合には、ループ帯域幅制御回路６１９は、ループ帯域幅が小さくなるように、データ通信開始前に、位相比較器６１３の利得Ｋｐｄ、ローパスフィルタ６１４の伝達関数Ｆ、及びＶＣＯ６１５の利得Ｋｖｃｏのうちの少なくとも１つを、適切なデータ信号があることをエラー信号ＥＲが示している場合より小さくする制御を行う。すると、ジッタが抑制され、適切なデータ信号が得られるようになる。ＶＣＯ６１５は、エラーが生じたことをエラー信号ＥＲが示している場合には、図１３のＶＣＯ２１５と同様に、生成するクロックの数をデータ通信期間中において多くしてもよい。
【００９０】
図２４は、図１等のクロックデータリカバリ回路における処理の流れの一例を示すフローチャートである。以上の実施形態を総合して、処理の流れについて説明する。
【００９１】
７１２では、サンプリング回路３２は、差動データ信号（ＲＸ＋，ＲＸ−）を受信し、この信号を多相クロックＣＫＳに含まれるｎ本のクロックのそれぞれに同期してサンプリングし、サンプリングされた値を、これらのｎ本のクロックにそれぞれ対応するデータ信号ＤＳ［ｎ−１：０］として並列化回路３４に出力する。
【００９２】
７１４では、データ復元部４０は、クロックリカバリに適切な条件の判定を行う。例えば、データ復元部４０は、クロックデータリカバリ動作を行い、データ信号Ｄ０〜Ｄｎ−１のうちで位相が適切なデータ信号を判定し、これを示す選択信号ＥＮを生成する。７１４では、このような選択信号ＥＮの生成、記憶部３６による選択信号ＥＮに基づくクロック制御信号ＣＣの生成、判定回路４５９によるエラー信号ＥＲの生成、判定回路５６６による選択信号ＥＮ２の生成、及び判定回路６６６による判定信号ＳＣの生成等のうちの少なくとも１つが、クロックデータリカバリに適切な条件の判定として行われる。
【００９３】
７１６では、記憶部３６は、求められた適切な条件を記憶する。７１８では、データ復元部４０は、記憶された条件を記憶部３６から読み出し、これに基づいてクロック及びデータのリカバリ動作を開始する。この際、例えば、図１０〜図１２を参照して説明したようにクロックの供給を停止したり、図１３及び図１４を参照して説明したようにクロックの数を変更したり、図２３を参照して説明したようにＰＬＬのループ帯域幅を変更したりする。
【００９４】
７２０では、データ復元部４０は、読み出された条件に従って、位相が最適なクロックを選択する。７１２，７１４，７１６はイニシャライズ期間において行われ、７１８，７２０はその後のデータ通信期間において行われる。以上により、適切なデータ信号及びクロックを高速に出力することができる。
【００９５】
以上の各クロックデータリカバリ回路において、並列化回路３４を省略してもよい。この場合、データ復元部４０は、多相クロックＣＫＳに従ってデータ信号ＤＳを処理し、分周された多相クロックＣＫは不要となる。また、この場合、クロック選択回路３８Ｂも不要であり、クロック選択回路３８Ｃは、クロックＣＫＳ［０］〜ＣＫＳ［ｎ−１］からｍ本のクロックをクロック制御信号ＣＣ又は選択信号ＥＮに従って選択して出力する。
【００９６】
クロックデータリカバリ回路に受信データ信号として差動信号が入力される場合について説明したが、これに代えてシングルエンド信号が入力されてもよい。
【００９７】
本発明の多くの特徴及び優位性は、記載された説明から明らかであり、よって添付の特許請求の範囲によって、本発明のそのような特徴及び優位性の全てをカバーすることが意図される。更に、多くの変更及び改変が当業者には容易に可能であるので、本発明は、図示され記載されたものと全く同じ構成及び動作に限定されるべきではない。したがって、全ての適切な改変物及び等価物は本発明の範囲に入るものとされる。
【産業上の利用可能性】
【００９８】
以上説明したように、本発明の実施形態によると、クロックデータリカバリに要する時間を短縮することができるので、本発明は、クロックデータリカバリ回路等について有用である。
【符号の説明】
【００９９】
１０，２１０  多相クロック生成回路
３２  サンプリング回路
３４  並列化回路
３６，２３６  記憶部
３８  クロック選択部
３８Ａ〜３８Ｃ  クロック選択回路
４０，５４０，６４０  データ復元部
４２，３４２，４４２  位相比較部
５２，３５２，４５２  選択信号生成回路
２１７Ａ〜２１７Ｇ  インバータ
３５８，４５８  演算回路
４４９  既知データ格納部
５６６，６６６  判定回路
【図１】
2011004580.tif 000003
【図２】
2011004580.tif 000004
【図３】
2011004580.tif 000005
【図４】
2011004580.tif 000006
【図５】
2011004580.tif 000007
【図６】
2011004580.tif 000008
【図７】
2011004580.tif 000009
【図８】
2011004580.tif 000010
【図９】
2011004580.tif 000011
【図１０】
2011004580.tif 000012
【図１１】
2011004580.tif 000013
【図１２】
2011004580.tif 000014
【図１３】
2011004580.tif 000015
【図１４】
2011004580.tif 000016
【図１５】
2011004580.tif 000017
【図１６】
2011004580.tif 000018
【図１７】
2011004580.tif 000019
【図１８】
2011004580.tif 000020
【図１９】
2011004580.tif 000021
【図２０】
2011004580.tif 000022
【図２１】
2011004580.tif 000023
【図２２】
2011004580.tif 000024
【図２３】
2011004580.tif 000025
【図２４】
2011004580.tif 000026
【国際調査報告】
2011004580.tif 000027
2011004580.tif 000028