(57)【要約】シリアルデータストリームを搬送するデータを内在するクロック信号によって確立した速度で処理する方法であって、シリアルデータストリーム内の一連の遷移のうちのそれぞれの遷移にタイムスタンプすることによって一連のタイムスタンプを生成する工程と、少なくとも部分的に一連のタイムスタンプに基づいて、シリアルデータストリームからデータを回復する工程とを含む方法。【特許請求の範囲】
【請求項１】
シリアルデータストリーム搬送データを内在するクロック信号によって確立された速度で処理する方法であって、
シリアルデータストリーム内の一連の遷移のうちのそれぞれの遷移にタイムスタンプすることによって一連のタイムスタンプを生成する工程と、
少なくとも部分的に一連のタイムスタンプに基づいて、シリアルデータストリームからデータを回復する工程とを含むことを特徴とする方法。
【請求項２】
さらに、同じ周波数であり、位相が略同量ずつ離れた複数の振動信号を生成する工程を含み、シリアルデータストリーム内の一連の遷移のうちのそれぞれの遷移にタイムスタンプする工程は、その遷移の時の前記複数の振動信号の状態を把握する工程を含むことを特徴とする請求項１に記載の方法。
【請求項３】
さらに、基準クロック信号を供給する工程と、
基準クロック信号内の一連の遷移のうちのそれぞれの遷移にタイムスタンプすることによって、第２の一連のタイムスタンプを生成する工程とを含み、
内在するクロック信号とデータを回復する工程は、第１に述べた一連のタイムスタンプと第２の一連のタイムスタンプに基づくものであることを特徴とする請求項１に記載の方法。
【請求項４】
さらに、周波数が等しく、位相が略同量だけ離れた複数の振動信号を生成する工程を含み、シリアルデータストリーム内の一連の遷移のうち、それぞれの遷移をタイムスタンプする工程は、その遷移の時の前記複数の振動信号の状態を把握する工程を含むことを特徴とする請求項３に記載の方法。
【請求項５】
基準クロック内の一連の遷移のうち、それぞれの遷移をタイムスタンプする工程は、その遷移の時の前記複数の振動信号の状態を把握する工程を含むことを特徴とする請求項４に記載の方法。
【請求項６】
複数の振動信号のうちの特定の一つが、全サイクルを通過した回数のカウントであるラップカウントを生成する工程を含むことを特徴とする請求項４に記載の方法。
【請求項７】
シリアルデータストリーム内の一連の遷移のうち、それぞれの遷移における前記複数の振動信号の状態を把握する工程は、その遷移の時の複数の振動信号のうちそれぞれの値を把握する工程も含むことを特徴とする請求項６に記載の方法。
【請求項８】
シリアルデータストリーム内の一連の遷移のうち、それぞれの遷移における前記複数の振動信号の状態を把握する工程は、その遷移の時のラップカウントを把握する工程を含むことを特徴とする請求項７に記載の方法。
【請求項９】
さらに、シリアルデータストリームから回復したデータを並列化する工程を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
シリアルデータストリームから回復したデータを並列化する工程は、回復したシリアルデータをシフトレジスタ内に記録して、ｎを１より大きい整数としたとき、記録した回復データを並列でｎビットのグループとして出力する工程を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
シリアルデータストリームからのデータを回復する工程が、少なくとも部分的にシリアルデータストリーム内の一連の遷移に対する一連のタイムスタンプに基づいて、内在するクロック信号を合成し、合成したクロック信号を使ってシリアルデータストリームからのデータを回復する工程を含むことを特徴とする請求項１に記載の方法。
【請求項１２】
データを搬送するシリアルデータストリームを、内在するクロック信号によって確立された速度で処理する回路であって、前記シリアルデータストリームは、シリアルデータストリーム内に内在するクロック信号とデータによって判定した時間的位置における一連の遷移を含み、前記回路は、
自励ループ発振器と、
操作中にシリアルデータストリームを受信し、一連の遷移のうちそれぞれの遷移に対し、対応する自励ループ発振器の状態をその遷移のタイムスタンプとして把握するシリアルデータストリーム把握モジュールと、
操作中に、少なくとも部分的に一連の遷移に対する把握状態に基づいて、シリアルデータストリーム内のデータを回復するデータ回復モジュールとを備え、
前記データ回復モジュールは、一連の遷移に対する把握状態を分析するプロセッサコンポーネントを含むことを特徴とする回路。
【請求項１３】
さらに、操作中に一連の基準クロック遷移である、基準クロックを受信するとともに、一連の基準クロック遷移の基準クロック遷移のそれぞれに対し、自励ループ発振器の状態を把握する基準クロック把握モジュールを備え、処理モジュールは、一連の基準クロック遷移に対し把握した状態を、シリアルデータストリーム内の一連の遷移に対して把握した状態とともに利用して、シリアルデータストリーム内のデータを回復することを特徴とする請求項１２に記載の回路。
【請求項１４】
データ回復モジュールが、さらにシリアルデータストリームと出力並列データを受信するように配置したシフトレジスタと、プロセッサコンポーネントから受信した指示に呼応してシフトレジスタ用の合成クロックを生成するクロック生成器を備えたことを特徴とする請求項１３に記載の回路。
【請求項１５】
合成クロックは、一連の合成クロック遷移であり、前記回路は、さらに操作中に合成クロックを受信し、一連の合成クロック遷移のうちのそれぞれの遷移に対して自励ループ発振器の状態を把握する合成クロック把握モジュールを備え、データ回復モジュールは、一連の合成クロック遷移についての把握状態を利用して合成クロックの好ましくない変化を補正することを特徴とする請求項１４に記載の回路。
【請求項１６】
データ回復モジュールが、さらに第２のシリアルデータストリームを受信すると共に対応する並列データを出力するように配置された第２のシフトレジスタと、所定の位相シフトを合成クロック内に導入して位相がシフトした合成クロックを第２のシフトレジスタに供給する遅延要素を含むことを特徴とする請求項１４に記載の回路。
【請求項１７】
自励ループ発振器は、一連に接続されてループを形成する複数の緩衝増幅器を備え、複数の緩衝増幅器のうち、それぞれの緩衝増幅器は、振動しているときに略同量の遅延を、ループを循環する信号に導入し、前記発振器は、さらにそれぞれが異なる緩衝増幅器一つずつに対応するとともにその緩衝器の状態を示す信号を出力する複数のタップを備えたことを特徴とする請求項１２に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルデータストリームからクロックおよびデータ情報を回復するための方法と装置に関する。本出願は、２００３年３月４日提出の米国仮出願Ｎｏ．６０／４５１，７９９の利益を主張するものである。
【背景技術】
【０００２】
電子装置は、データをシリアルで伝送するインターフェースを数多く有する。その例としては、ＵＳＢ、イーサネット（登録商標）、ファイヤーワイヤー、Ｒａｍｂｕｓなどが挙げられる。これらインターフェースは、受信機で確実に捕らえられるべき高伝送速度を有している。ほとんどの受信機は、デコードの前にシリアルデータを収集するための直列伝送速度でクロックを生成する。そのために、これらは、典型的には位相ロックループ（ＰＬＬ）回路を使って受信したシリアルデータの中からクロック信号を探す。そして、これらは、直列ビットレートではあるが、シリアルデータ遷移からは位相がずれた同期化クロックを使って受信したシリアルデータをシフトレジスタに記録することにより、安定した時点でシリアルデータを収集する。所定の閾値より大きい収集したシリアルデータは１であり、閾値以下の収集したシリアルデータはゼロである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この方法は、積み重なったタイミングの誤差が、正確な時間近くにクロックエッジを生成する可能性があるため、１００ＭＨｚ未満のような低伝送周波数において効を奏する。１００ＭＨｚを超えるような周波数では、シリアル収集クロックのタイミングのばらつきにより、その過程、温度または電圧の変化から、不正確なデータの収集となる可能性がある。
【課題を解決するための手段】
【０００４】
一般的に、一局面では、本発明は、シリアルデータストリームを搬送するデータをその内在するクロック信号によって確立した速度で処理する方法であることを特徴とする。この方法は、シリアルデータストリーム内の一連の遷移のうちのそれぞれの遷移をタイムスタンプし、一連のタイムスタンプを生成する工程と、その一連のタイムスタンプの少なくとも一部に基づいてシリアルデータストリームからのデータを回復させる工程とを含む。
【０００５】
他の実施の形態は、次に示す特徴のうちの１つもしくはそれ以上を有する。この方法は、さらに周波数が同じであり、略同量だけ位相が離れた複数の振動信号を生成する工程を含み、シリアルデータストリーム内の一連の遷移のうちのそれぞれの遷移のタイムスタンプには、その遷移の時の前記複数の振動信号の状態を把握する工程を含む。さらに、この方法は、基準クロック信号を供給する工程と、基準クロック信号内の一連の遷移のうちのそれぞれの遷移をタイムスタンプして第２の一連のタイムスタンプを生成する工程を含み、内在するクロック信号とデータの回復は、先に説明した一連のタイムスタンプと、第２の一連のタイムスタンプ両方に基づくものである。さらに、この方法は、周波数が等しく、略同量ずつ位相が離れた複数の振動信号を生成する工程を含み、一連のデータストリーム内の一連の遷移のうちのそれぞれの遷移のタイムスタンプは、その遷移の時の前記複数の振動信号の状態を把握する工程を含む。さらに、基準クロック内の一連の遷移のうちのそれぞれの遷移のタイムスタンプもまた、その遷移の時点における前記複数の振動信号の状態を把握する工程を含む。また、この方法は、さらに、複数の振動信号のうちの特定の信号が全サイクルを終了した回数をカウントするラップカウントを生成する工程を含む。シリアルデータストリーム内の一連の遷移のうちのそれぞれの遷移における複数の振動信号の状態を把握する工程は、複数の振動信号のそれぞれの値とその遷移の時のラップカウントを把握する工程を含む。
【０００６】
他の実施形態における更なる特徴は以下の通りである。この方法は、シリアルデータストリームから回復されたデータを並列化する工程を含む。シリアルデータストリームから回復されたデータを並列化する工程は、回復したシリアルデータをシフトレジスタに記録し、記録した回復したデータをｎビットのグループとして並列させて出力する工程を含む。ここで、ｎは、１より大きい整数である。シリアルデータストリームからデータを回復する工程は、少なくとも部分的にシリアルデータストリーム内の一連の遷移に対する一連のタイムスタンプに基づいて、内在するクロック信号を合成する工程と、合成したクロック信号を使ってシリアルデータストリームからデータを回復する工程を含む。
【０００７】
一般的に、別の局面では、本発明は、内在するクロック信号によって確立した速度でシリアルデータストリーム搬送データを処理するための回路であることを特徴とする。この回路は、自励ループ発振器と、操作中にシリアルデータストリームを受信し、自励ループ発振器の一連の遷移のうちのそれぞれの遷移に対応する状態をその遷移のタイムスタンプとして把握するシリアルデータストリーム把握モジュールと、操作中に、少なくとも部分的に一連の遷移の把握状態に基づいて、シリアルデータストリーム内のデータを回復するデータ回復モジュールとを備え、前記データ回復モジュールは、一連の遷移に対する把握状態を分析するプロセッサコンポーネントを含むものである。
【０００８】
他の実施形態は、以下の特徴の一つもしくはそれ以上を含む。回路は、操作中に一連の基準クロック遷移である基準クロックを受信し、一連の基準クロック遷移のうちの基準クロック遷移のそれぞれに対して自励ループ発振器の状態を把握する基準クロックキャプチャモジュールも備え、処理モジュールが一連の基準クロック遷移に対する把握状態を、シリアルデータストリーム内の一連の遷移に対して把握した状態とともに使用して、シリアルデータストリーム内の一連の遷移に対するデータを回復する。また、データ回復モジュールは、シリアルデータストリームと出力した並列データを受信するように配置されたシフトレジスタと、プロセッサコンポーネントから受信した指示に従ってシフトレジスタに対する合成クロックを生成するクロック生成器とを備える。さらに、回路は、操作中に合成クロックを受信し、一連の合成したクロック遷移のうちのそれぞれの遷移に対して自励ループ発振器の状態を把握する合成クロック把握モジュールを備え、データ回復モジュールが、合成クロックにおける不要な変化を修正するための一連の合成クロック遷移に対する把握状態を利用するものである。データ回復モジュールは、さらに、第２のシリアルデータストリームを受信すると共に対応する並列データを出力するように配置した第２のシフトレジスタと、所定の位相シフトを合成クロックに導入して位相シフトした合成クロックを第２のシフトレジスタに提供する遅延要素を備える。自励ループ発振器は、直列に接続してループを形成した複数の緩衝増幅器を有し、複数の緩衝増幅器のうちのそれぞれの緩衝増幅器は、発振中に、ループを循環する信号に略同量の遅延を加え、さらに、発振器は、それぞれ別の緩衝増幅器に対応する複数のタップも有し、その緩衝状態を示す信号を出力する。
【０００９】
本発明の一つ、もしくはそれ以上の実施の形態の詳しい内容については、添付の図面および下記に示す説明において述べる。本発明の他の特徴、目的、および効果は、説明、図面、および請求項によって明らかとなろう。なお、図中、構成要素が同一もしくは類似している場合は同一の参照番号を使用している。
【発明を実施するための最良の形態】
【００１０】
高速シリアルデータを受信する二つの方法について説明する。これらの方法は、共に、２００２年４月２３日提出の「自励発振器を使った任意波形合成器」と題した、米国特許第６，３７７，０９４号、および１９９８年８月１１日提出の「自励ループインターバルタイマーおよびモジュレータ」と題した、米国特許第５，７９３，７０９号に記載されている自励ループ（ＦＲＬ）技術を採用したものであり、これらは、その参照により本明細書における開示に含まれるものである。第１の方法は、自励ループ技術を使った収集クロックを生成する方法である。第２の方法は、シリアルデータにおけるタイムスタンプの遷移への自励ループ技術であり、データをタイムスタンプからデコードするものである。これらの方法は、共に拡張してＰＣＩエクスプレスで使用されるもののような多重同時式シリアル信号を受信することも可能である。
（クロックおよびデータ回復回路：概要）
【００１１】
図１を参照すると、クロックおよびデータ回復回路１０の第１の実施の形態は、他の信号にタイムスタンプし、所望のクロック波形を生成する出力信号１３のアレイを生成する自励ループ発振器１２を備える。自励ループは、一連の緩衝器であり緩衝器間の出力タップを直列に接続したものである。緩衝器は、未知の、しかし少量の遅延をそれぞれの緩衝器を通る遷移信号に加える遅延要素として機能する。緩衝器は、閉ループに接続されているので、一連の緩衝器を通って伝播する遷移信号（または状態の変化）は、遷移信号をループの周囲で継続的に循環させるループの始めにフィードバックする。また、自励ループは、遷移信号がループの周囲の全回路を何回周ったかを追跡するカウンタを備える。よって、どの時点においても、ループ内の緩衝器の状態は、遷移信号の位置を示すことになる。この位置とラップカウントにより、信号が最後に自励ループの状態を測定してからの信号の移動距離を知ることができる。従って、ラップカウントと、タップの信号を読み取ることによって得られる緩衝器の状態とにより、時間を好都合に測定することができるようになる。タイムスタンプには、例えばクロック信号やデータ信号の遷移のような事象発生時にその情報を把握してその事象がいつ起きたかを記録する工程が含まれる。
【００１２】
クロックおよびデータ回復回路１０は、３つの把握モジュール１４、１６、１８を備え、それぞれが自励ループ１２（例えば、タップのアレイとラップカウンタ上の信号）からの出力信号を受信する。それぞれの把握モジュール１４，１６、１８は、付随の入力線から受信した異なる入力信号に対して応答する。入力信号は、把握モジュールによってタイムスタンプされる信号である。それぞれの入力信号が遷移を受ける毎に、把握モジュールに自励ループの状態をその遷移のタイムスタンプとして把握させる。よって、一連の遷移を受信すると、それに呼応して把握モジュールは、そのシーケンスの遷移に対する一連のタイムスタンプを出力する。
【００１３】
把握モジュール１４，１６，１８は、それぞれ、その生成した一連のタイムスタンプをクロック生成代数モジュール２０へ送る。一般的にクロック生成代数モジュール２０は、プログラム化された処理ベースのモジュール（例えば、状態マシンまたはマイクロプロセッサ）であり、受信した一連のタイムスタンプを多数分析して、シリアルデータストリーム内のクロック信号を識別し、それにより、クロック生成器２２が、シリアルデータストリームと同期したクロック信号２４を生成する。また、受信したタイムスタンプを使って生成したクロック信号２４の安定性を監視し、生成したクロック信号を変更して、供給電圧、温度、および他の環境パラメータの変化によるクロック生成器２２の性能の変化を補償する。
【００１４】
把握モジュール１４は、自励クロックを較正するための情報を提供する。その期間が正確にわかっている安定した基準クロック９を入力すると、受信する。基準クロックに呼応して、把握モジュール１４は、クロック生成代数モジュール２０内のループ平均化モジュール１５（図示せず）によって自励ループのタップ間の時間間隔を正確に算出可能な一連のタイムスタンプを生成する。本質的には、ループ平均化モジュール１５は、基準信号内の二つの連続する正の遷移に対するタイムスタンプをとり、これら二つのタイムスタンプの差を計算し、算出した差を基準クロックの周知の期間に分割する。その結果、あるタップから次のタップへ移動するための遷移にかかる時間においてタップ間の時間間隔の正確な測定値を得ることができる（タップごとの時間）。
【００１５】
あるいは、ユーザが、合成する必要のあるクロックの周波数を知っており、その情報を代数モジュールに提供すれば、タップ間の時間間隔の算出は、省略することができる。よって、合成したクロックの遷移を分けるタップの数は、単に基準クロックの遷移を分けるタップの数に、基準クロックの周波数に対する合成クロックの周波数の比率を掛けることによって指定できる。その比率が正確でないことが判明すれば、代数モジュールにより、操作中に適当に調整することができる。
【００１６】
把握モジュール１６は、クロックおよびデータ回復を行うシリアルデータストリームについての情報を供給する。さらに詳しくは、シリアルデータ信号において検出された遷移をタイムスタンプする。すると、クロック生成代数モジュール２０は、把握モジュール１４からの入力と共にこの情報を利用して、シリアルデータストリーム内のクロック信号と合成され、適当に位相をずらした合成クロック信号を構築することにより、シリアルデータストリーム内のデータを正確に収集するために必要となる遷移のタイミングを算出する。算出したタイミング情報に基づき、代数モジュール２０は、クロック生成器２２に、自励ループ１２によって出力された適当な遷移を選択させてシリアルデータストリームのための合成クロック２４を構築する。
【００１７】
この合成クロック２４は、シリアルデータストリームからのデータをレジスタ内に記録するシフトレジスタ３０に供給する。シフトレジスタ３０は、保存したデータを並列データとして保存し（例えば、ｎビットのグループ。ｎは、２，４，８，１６あるいはそれ以上）、そのデータに対して並列クロック信号を供給する。
【００１８】
合成クロックでは、前もって知ることが不可能な温度や電圧のばらつきがある場合もある。このばらつきは、これらのパラメータ（例えばＰＶＴ）が変化した結果として回路の性能が変わったことによる場合もある。このようなばらつきは、前もって予測できないため、代数モジュール２０は、その補償を前もって算出することができない。従って、こうした変化によるタイミングの誤差を除去するため、把握モジュール１８は、合成クロックをタイムスタンプし、その情報を代数モジュール２０に提供するのである。これらのタイムスタンプを、合成クロックの予測タイミングと比較することにより、代数モジュール２０は、タイミングのばらつきを検出し、それに従ってクロック生成器２２の制御を調整する。すなわち、代数モジュール２０は、遷移がいつ起きるはずであるということを“知って”おり、クロック生成器２２に送られる制御信号において調整を行い、遷移が起きるべき時に確実に起きるようにする。この技術により、回路は、終末処理ではＰＶＴの影響を調整することができる。
【００１９】
また、処理、クロック生成、および代数ブロックのフィルタリングを制御するだけでなく、後述するプログラム可能な遅延装置のプログラム可能な遅延を設定するために設けられたＣＰＵインターフェース３１がある。
【００２０】
上述のモジュールについて、まず自励ループ発振器から詳しく説明する。
（自励ループ発振器）
【００２１】
自励ループ発振器の操作の基本原理は、自励ループ発振器の実行を概略で示す図２を参照することによって理解できよう。自励ループ発振器４０は、外部リセット信号用の入力４２と、一連の遅延モジュールもしくはバッファ４４（０）、４４（１）、．．．４４（１４）、４４（１５）（全体を４４で示す）と、少なくとも一つの反転要素４６を有する。この例では、遅延モジュールは非反転型であり、よって入力における正の遷移により、出力において位置の遷移が起きる。リセット信号は、二つの状態を有する。すなわちリセット状態と作動状態である。リセット信号がリセット状態にある間は、ループは振動しない。リセット信号が作動状態に遷移すると、ループは振動を開始する。状態の遷移または変化が、第1の遅延要素モジュール４４（０）から次の遅延要素モジュール４４（１）の入力まで伝播する。遅延要素モジュールの入力において信号を受信すると、すぐに信号が対応するタップ０から出力される。
【００２２】
遷移は、次の遅延要素モジュール４４（１）へ伝播を続け、次のタップ１へ進む。この動作は、遷移がそれぞれの連続する遅延要素モジュール４４を通過するまで続けられる。どの時点においても、タップのグループの出力を調べることによって、そのシーケンスのどこに遷移が起きているかを知ることができる。
【００２３】
「ルーピング」の効果を得るため、一つの遷移を選択する（例えば、遅延要素モジュール４４（１４）から反転要素４６を通って第1の遅延要素モジュール４４（０）の入力までフィードバックする）。この例では、遅延要素モジュール４４（１４）と４４（０）の間が接続されている状態で説明しているが、他の配置も可能である。目的は、ループ内の振動を持続する正のフィードバックを提供することにある。
【００２４】
ループの振動は、さらにラップカウンタモジュール５０を含む。ラップカウンタモジュールは、第1の遅延要素モジュール４４（０）に電気的に接続して、遅延要素モジュール４４（０）を通って伝播する際に遷移のエッジを受信する。ラップカウンタモジュールは、２つのカウンタ、すなわち、正のエッジカウンタ５２（１）と負のエッジカウンタ５２（２）を有する。正のエッジカウンタ５２（１）は、正のエッジの遷移（例えば、論理低から高への遷移）が遅延要素モジュール４４（０）を通って伝播する毎に１をカウントする。負のエッジカウンタ５２（２）は、負のエッジの遷移（例えば、論理高から低への遷移）が遅延要素モジュール４４（０）を通って伝播する毎に１をカウントする。よって、負のエッジカウンタ５２（２）は、正のエッジカウンタ５２（１）とは１８０度位相がずれていることになる。１つのカウンタが更新されている間に、他のモジュールが、安定し、且つラップ数を正確に判定できる別のカウンタにアクセスできるようにするために２つのカウンタを使用する。
【００２５】
正の遷移の伝播時間は、通常、負の遷移に掛かる伝播時間とは異なることが判明した。よって、ループ周囲において、より一貫した伝播時間を確立するため、以下に示すように、タイプが異なり、両方のタイプのエッジが常に生成されるような設計を利用するのが有効である。この差分設計には、それぞれの遅延要素モジュールに一つの反転要素が含まれるとともに、一方が立上がりエッジとなり、他方が立下がりとなるような異なる出力を提供するものである。また、この方法により、電力供給の負荷がより均一となる。
【００２６】
また、自励ループ発振器が、低周波クロック信号を等間隔の１６の位相で生成しているようにも見える。各位相は、先行する位相から自励ループの二つのタップ間の遅延と同量だけずれている。
（把握モジュール）
【００２７】
上記のように、把握モジュールは、そのために起動されると、自励ループ発振器のタップ上の出力（例えば状態）を把握する。立上がりエッジの検出は、立下がりエッジの検出とは若干異なる結果をもたらすため、本実施の形態の自励ループ発振器の各遅延要素モジュールは、実際には、循環遷移信号に呼応して立上がりエッジ出力信号と立下がりエッジ出力信号を生成するように設計されている。すなわち、それぞれの遅延要素モジュールは、両タイプの信号を出力するために異なる一対の出力線を備えることになる。これにより、把握モジュールは、常に、それぞれの遅延要素モジュールにおいて、異なる対のうち、正しい線を適当に選択して立上がりエッジを把握することができるようになる。
【００２８】
図３Ａを参照すると、異なる出力を有する自励ループ発振器は、ループ状に接続された１６の緩衝増幅器６０を備える。それぞれの緩衝増幅器は、そのステージの異なる出力の対となる２つの出力６２（１）、６２（２）を備える。緩衝増幅器の内部の設計を、回路要素の従来の記号を使用して図３Ｂに示す。ＮＡＮＤゲートの内部構造を図３Ｃに示す。図３Ａ〜Ｃに示す自励ループ発振器を見ると、ループが同じ状態に戻るまでにエッジはループを２回通過しなければならない。
【００２９】
自励ループ発振器は、１６の遅延タップを備え、そのそれぞれが前のタップから同様の量の遅延となるように間隔を空けている。「０」から「１５」までのラベルのついた１６個の出力があり、そのそれぞれが、反転によって、前のタップから分離されている。ライン「０」において立上がりエッジとして最初に発現するループ回路を通る遷移は、次にはライン「１」の立下がりエッジとして発現し、さらには、ライン「２」で立上がりエッジとして再び発現する、という状態を繰り返す。また、「１６」から「３１」までのラベルのついた別の１６個の出力があり、これらは最初の１６本のライン「０」から「１５」上の対応する信号の補足分を出力する。すなわちＮ＝０．．．１５とした場合、出力「N」と「Ｎ＋１６」は、出力「Ｎ」上の信号の補足分である出力「Ｎ＋１６」上の信号とともに異なる対を形成する。よって、適切な設計の把握回路を使用すれば、立上がりエッジ信号を監視することによって、ループの状態を常に検出することが可能となり、それによって、立上がりエッジ信号と立下がりエッジ信号を交互に監視することによって測定結果に誤差が生まれる可能性を回避することができる。
【００３０】
一般的に、それぞれの把握モジュールには、入力信号をそのクロックとして使用するレジスタを備える。入力の遷移（典型的には正のエッジの遷移）が起きると、レジスタは、自励ループ発振器の状態を保存もしくは「把握」する。本実施の形態では、レジスタは、１６ビットのデータワードを保存し、そのうちの１１ビットをラップカウンタの値に使用し、残りの４ビットを１６個のタップを表すために使用する。この４ビットは、タップ状態のために使用し、把握時に遷移が伝播した最後のタップを表す。１ビットは、第１の遅延要素モジュールを通過するときの遷移の状態（例えば、正のエッジか、負のエッジか）を表すために使用する。そのビットは、代数モジュールが選択した遷移エッジが正のエッジか負のエッジか、そして、同期化したクロックを構築するときに切替モジュールによって反転させる必要があるかどうかを表す。
【００３１】
自励ループ発振器の差分出力とともに使用する把握モジュール８０の設計について、さらに詳しい構成図を図４に示す。把握モジュール８０は、自励ループ発振器の差分出力線上の信号を把握するためのDフリップフロップのアレイから構成される把握レジスタ８２を備える。アレイは、１６個のDフリップフロップ８４を有し、そこから非反転信号をその出力として選択し、さらに１６個のDフリップフロップ８６を有し、そこから反転出力信号をその出力として選択する。１６個の非反転Dフリップフロップは、それぞれ、１６個の出力「０」から「１５」のうち、対応する異なる１つから信号を受け取り、反転Dフリップフロップは、それぞれ、１６個の出力「１６」から「３１」のうち、対応する異なる一つから信号を受け取る。把握レジスタに入力する差分対のラインそれぞれに対応して、把握レジスタから出力する対の出力線がある。把握の際に差分対のライン上の信号が定着し安定していれば、その差分対に対応する把握レジスタからの２つの出力は同じ値となる。
【００３２】
２つのアレイのＤフリップフロップの出力上から適した信号を選択するため、１６個のメイクビフォーブレイク継電器ＭＵＸ８８のアレイがあり、それぞれが把握レジスタからの異なる対応する対の出力線から入力を受信する。これらのＭＵＸは、把握レジスタからの２つの出力信号が同じでない場合には、必ず自励ループ発振器の状態を決定するための信号として立上がりエッジ信号を常に選択するように制御される。規則として、ＭＵＸへの２つの入力信号は、実際には同じとなる。自励ループ発振器の内部の、エッジから離れた位置では、発振器からの出力信号は定着し、安定しており、よって、ＭＵＸは、それらを明確に把握することができる。よって、自励ループに沿ったそれらの位置では、ＭＵＸへのいずれの入力信号が、出力信号として選択されても問題はない。しかし、自励ループ発振器内のエッジ近くにおいては、この限りではない。立上がりエッジの検出と立下がりエッジの検出との違いにより、また、遷移中の他の不安定性により、ループのその位置を監視するＭＵＸへの２つの入力信号が異なる場合もある。よって、選択したＭＵＸへのラインは、ループを半周した信号を見越してどちらの入力信号を選択するか判断する。その原理は、ループを半周した制御信号は、安定しており、よってそのＭＵＸへのいずれの信号が立上がりエッジ信号であるかを正確に判定するために利用できるということである。
【００３３】
ＭＵＸ８８の出力は、ＸＮＯＲゲート９０のアレイへ入力される。アレイの各ＸＮＯＲゲートは、２つの隣接するＭＵＸからの出力信号を監視する。本質的には、ＭＵＸのアレイと組み合わさったＸＮＯＲゲートのアレイは、タイムスタンプが把握された時点において自励ループのどの位置にエッジがあるかを検出する。
【００３４】
図５Ａ〜Ｃに示すチャートを参照すると、この回路がどのように作動するかが理解できよう。これらのチャートは、自励ループのタップ０〜６に対する差分出力、およびこれらの出力信号を把握して処理するＤフリップフロップ、ＭＵＸ、およびＸＮＯＲゲートの出力における信号を示す。
【００３５】
図５Ａは、遷移がタップ３を通った後、且つタップ４に到達する前（位置１００を参照）の、自励ループ発振器のタップ０から６への出力信号を示す。“出力”の項目の行の二つの値は、そのタップに対する差分対のライン上の信号を表す。よって、例えば、タップ０の出力「０」の信号は０であり、タップ０の出力「１６」の信号（例えば、第１の遅延要素モジュールの他の差分対の出力）は１である。見て分かるように、出力信号のパターンは、タップに沿って移動してタップ４に到達するまで０−１と１−０を交互に繰り返す。遷移はタップ４に到達していないので、その出力のパターンは、タップ３の出力のパターンと同じである。しかし、その時点から後も、パターンは、再び交互に繰り返される。
【００３６】
図５Ａに示す例では、Ｄフリップフロップは、遷移がループの１００の位置にあるときに記録される。特定のタップに対応するＤフリップフロップの対のそれぞれに対しては、出力信号は同じであり、１１または００となる。そして、一対のＤフリップフロップから次に移るまで、その出力値は、その対のＤフリップフロップの出力がそのすぐ前のタップ３の対と同じであるタップ４に到達するまで００と１１を交互に繰り返す。そして遷移がタップ４に到達していないのでこの状態が続く。
【００３７】
各ＭＵＸへの入力は同じなので、ＭＵＸは、それらの値のうちのいずれか一つを出力する。そして、ＸＮＯＲゲートは、二つの隣接するＭＵＸの出力が同じとなる時を検出する。この例では、対応するＸＮＯＲゲートがａ１を出力するタップ３を検出し、ループの状態ｆが把握されたときに、遷移は、自励ループ発振器のその位置にあったことを示す。
【００３８】
図５Ｂは、遷移がタップ４を通過したがタップ５に到達していない場合（位置１０２）の各種要素について把握した出力の状態を示す。各種信号についての理解は、すべてにおいて時間的にタップの間隔に等しい量だけ進んだということを除いては、図５Ａについて示したものとまったく同じである。
【００３９】
さらに興味深い例を図５Ｃに示す。この場合は、遷移は、タップ４近傍にあり、差分出力の１つに影響を及ぼしているが他方には及ぼしていない。上述したように、これは、立上がりエッジへの回路の応答が立下がりエッジに対する回路の応答が異なる（量は少しかもしれないが）ために起こり得る。その結果、差分対の出力は同じとなる（例えば、０１ではなく、１１となる）。これらの信号を把握するＤフリップフロップの対の出力は異なる。対応するＭＵＸがこれらの信号のうちの１つを、現在のタップの８タップ前の把握レジスタにおける反転Ｄフリップフロップの値に基づいて選択する。これは、立上がりエッジの信号を選択するように構成されており、この場合は、０値である。一般的にタップでこのような状態となると、いつでも、両義性が存在するタップの前のタップから収集した信号により、立上がりエッジの値に対する値を有するＭＵＸがわかる。
【００４０】
ＸＮＯＲゲート９０のアレイの出力は、当業者の間では周知のタイプのデバウンサ論理９２によって処理する。Ｄフリップフロップとパスの間の微細な違いにより、「バウンス」が起き、エッジがループ内の近傍の３箇所（また、極端な場合には５箇所）にあるようになることがある。これは、問題を解決して第１のエッジを「真のエッジ」として取り出すデバウンサ論理によって修正する。
【００４１】
デバウンサ論理９２の出力信号は、要素変換カウント回路９４によってデコードされ、遅延要素の装置にあるタイムスタンプを２進数で表す。
（クロック生成代数モジュール）
【００４２】
クロック生成代数モジュール２０は、１つもしくはそれ以上のプログラム化されたデジタルプロセッサによって実行されるデータ処理モジュールである。代数モジュール２０は、外部参照クロック信号９と、把握モジュール１４，１６，１８からの一連のタイムスタンプを受信する。これらの入力を使って、クロック生成代数モジュール２０は、プログラム化された設定に基づいてストリームを分析し、合成クロックの周波数や位相はどうあるべきかを算出する。さらに、合成したクロックを構築するためには、自励ループ発振器によって生成される遷移のうち、いずれの遷移を（ラップとタップの位置により）選択する必要があるかを算出する。そして、生成モジュールや他の内部構成要素内で起きるドリフトや他の変化を補償するため、遷移エッジの選択にどのような変更を加えなければならないのかを算出する。これらの計算をすべて実行するためには、当業者によって周知の技術を使う。
【００４３】
本実施の形態では、代数モジュール２０は、同期化クロックの次の２つの立上がりエッジと、それに対応する立下がりエッジを計算するための４つのチャンネルを有する。４つのエッジを平行して算出することにより、代数モジュール２０は、より早い周波数で演算可能であり、よって出力信号の周波数を上げることができる。適用方法の計算要求事項に基づいてより多くのチャンネルを設けてもよいことは勿論である。
【００４４】
事実、代数モジュール２０が、把握モジュール１４、１６、および１８から受け取った３つのタイムスタンプシーケンスの分析を実行するために必要な計算の量を考えた場合、高クロック速度におけるスループットが問題となる。高い計算負荷に対応するためには、計算作業を多重のプロセッサに分散し平行して行わせる多重プロセッサアーキテクチャの形式で、処理力を上げることができる。あるいは詳細なデータストリームからのタイムスタンプの全てが必要な計算を行うのに必須というわけではないので、単純にシリアルデータストリームのタイムスタンプの一部を（例えば、ｎ番目ごとに）無視してもよい。
【００４５】
上記の方法は、データ遷移上のノイズやジッタが少ないシリアルデータストリームにおいて功を奏する。しかし、これらの技術が適用される多くのデータストリームにおいて、かなりのノイズやジッタが存在する。その良い例として、読み取り光学データとＲＦ通信アプリケーションから生成したシリアルデータストリームの２つがある。これらのアプリケーションの場合、受信したデータを一部フィルタにかけ、これらの信号の質の問題への悪影響を低減する必要がある。このフィルタリングの一部、例えば、シリアルタイムスタンプと予測タイムスタンプの間の誤差の平均化などは、クロック生成代数モジュール２０によって実行することができる。この段階におけるフィルタリングは、基準クロックに対するループ速度をより正確に把握するのに役立つ。
（クロック生成モジュール）
【００４６】
クロック生成モジュール２２は、自励ループのタップが接続されている内部切替モジュール（図示せず）を含む。これは、上記の米国特許第６，３７７，０９４号に説明するように作動する。一般的に代数モジュール２０は、合成クロックを生成するために使用する必要がある、算出された遷移エッジをクロック生成モジュール２２に送信する。代数モジュール２０から送信された情報は、合成クロックを構築するために自励ループ発振器のタップを正しく選択するように内部切替モジュールの操作を制御する。
（付加回路）
【００４７】
送信者が、全てが受信され、収集されなければならない多重レーンのシリアルデータを送信する場合がある。典型的に、多重レーンのシリアルデータが同じ送信者から送られてきた場合、各レーンにおいて所定の異なる量ずつ位相がずれてもよい場合を除き、それらは、すべて同じクロックを使用する。位相のずれ情報を受信者に通信できれば、または何らかの方法で導出できれば、上記の方法および回路は、適切な数のシフトレジスタ３２とプログラム可能な遅延装置３４を単純に追加することによって容易に拡張でき、多重レーンのシリアルデータを受信することができる。プログラム可能な遅延装置３４は、合成クロックのコピーをクロック生成器２２から受信し、その位相を必要な量だけずらし、それをシフトレジスタ３２に送り、対応するレーンからのシリアルデータを記録する。
【００４８】
一方、他のレーンのクロックが同じでない場合、または、位相のずれがわからない、あるいは容易に判定できない場合、単純に上記の方法を使ってクロックを回復し、チャンネル毎に受信したデータを収集すればよい。すなわち、受信する追加のレーンのシリアルデータそれぞれに対し、把握モジュール１６および１８とクロック生成器２２を複製するのである。
【００４９】
シリアルデータストリームを受信し、収集するための完全システムに組み込まれる他の回路がある。この付加回路は、当業者にとって周知であるため、ここでは、より関係の深い構成要素のみを指摘するのみにとどめ、説明を省く。
【００５０】
例えば、クロックおよびデータ回復回路の前に位置し、クロックおよびデータ回復回路に渡される前に受信した信号を処理する回路がある。典型的には、例えば、ケーブルを介した受信信号は、非常に電圧が低く、把握回路にてフリップフロップを記録するには十分なスイングを持たない。よって、増幅する必要がある。さらに、通常は、例えば差分信号のように、別の形式で送信して、送信する際に利用する媒体に対してより互換性を高めるようにする。それらの形式は、標準２進形式に変更する必要がある。フロントエンド回路は、通常は、この処理の一部を行うアナログインターフェースである。これは、受信した信号を送信した形式から、下流の回路に対して十分な電圧スイングを持つ明確な波形を有する標準２進形式に変換する。これは、また、ＥＳＤ（静電放電）保護回路、自動ゲイン／オフセット制御回路、および予備フィルタ回路も備える。
【００５１】
典型的には、クロックおよびデータ回復回路に続くバックエンド回路も備え、２進ビットストリームにおいて検出された誤差を補正するフィードバック制御を行う。例えば、どの収集信号が１で、どの収集信号が０であるかを判定するフロントエンドのアナログ回路に、その工程に誤差を引き起こしうる好ましくないオフセットが存在する場合がある。多くのシステムにおいて、２進データは、一定の期間の中の１の数と０の数が等しい形式で送信される。バックエンド回路が同じ数でないことを検出すると、フロントエンド回路においてオフセットエラーを示すことができる。このように、バックエンド回路は、この問題を修正するために使用するオフセットを調整できる。また、行うべき他の自動調整を示唆する収集データにおいて、他のパターンを検出することもできる。
（別のクロックおよびデータ回復システム）
【００５２】
図６に示す第２の実施の形態では、すべての作業をデジタルで行う。すなわち、図１に示した回路に関して説明したように、シリアルデータをシフトレジスタに記録するための合成クロックを生成する代わりに、基準クロックおよびシリアルデータストリームの全てのタイムスタンプをパラレルクロック生成器とデータ復号代数９０でデジタル処理し、受信したデータと、他の情報が必要なもの全てを受信した信号から抽出する。クロックは、例えば、タイムスタンプの統計的平均化を使って回復し、データは、シリアルデータストリームと基準クロック信号用のタイムスタンプからのデータを計算する他の周知の技術を使って回復する。
【００５３】
典型的には両極のあらゆる遷移が把握される（例えば、タイムスタンプされる）。データ復号代数は、平行クロック生成代数と協働し、信号遷移タイムスタンプをフィルタリングするとともにデータを受信する。タイムスタンプ平均化やパターン認識など、シリアル入力において予測される遷移パターンによって様々なデジタルフィルタリング技術を使用することができる。データは、生成されたデータクロックとともにパラレルインターフェースを介して出力される。
【００５４】
「ノイジー（騒々しい）」な受信信号遷移のタイムスタンプを見るために利用可能とされる様々なフィルタリング概念がある。例えば、シリアルインターフェースの仕様書から、受信信号の遷移間の通常の時間が分かり、よって、理想的な値から、それぞれのタイムスタンプに対して誤差を判定することができる。時間の誤差をどのように処理して動向を見るかについての例を３つ挙げる。
１．「理想的な信号」が平均して受信した信号より若干速い、又は若干遅い場合、理想的な信号は、伝送速度に適合するように修正することができる。
２．誤差は、例えば、６０ＨｚのＡＣノイズが信号に結合した場合などに、分析して周波数変調することができる。この場合、変調をモデル化し、予測し、受信データを生成する前にタイムスタンプから除去することができる。
３．誤差に、０から１への移行が１から０よりも早いか遅いかの傾向がある場合には、インターフェースにおいて受信した閾値電圧を調整してこの誤差を除去するか、もしくはこの影響をモデル化し、予測し、除去する。
【００５５】
図１に示した方法のように、この回路は、把握ブロック９２と追加のパラレル出力９４を追加することによって拡張して多重シリアルチャネルをサポートすることができる。
【００５６】
図６に示す方法は、高速クロックを生成する必要がないという利点を有する。その代わり、パラレルデータ用のより速度の遅いクロックが必要となる。さらに、デジタル処理を介した機能を行うことにより、信号内の問題を修正し、それを動的に行うことができるようになる可能性が高くなる。よって、この方法は、フリップフロップを収集するための設定とホールド時間が確実に適合したとき、あるいは、多重のインターフェースの水準を１つのインターフェースによって管理しなければならないときにシリアルデータの信号の質が非常に悪く、正しい収集時間が判定できない際に非常に適している。
【００５７】
実際問題として、上記の回路が、集積回路チップ上で実行されたとき把握モジュールを物理的に互いに近接して位置させて同じ電気環境となるように、また、同じ処理パラメータを密に共有できるようにするのが望ましい。すなわち、このように、これらのモジュールが、チップが露出される異なる操作および環境条件の下で密に性能を追跡し合う保証が高くなるように設計を選択することが重要である。
【００５８】
他の実施の形態は、下記に示す請求項の中に示している。例えば、１６個のタップ（１６個の等間隔の位相を持つ信号）を有する自励ループ発振器を示したが、タップの数は、より少なくても（例えば４個）あるいはより多くても（例えば３２個）よい。使用するタップの数は、クロック生成代数モジュールにおいてどの程度の処理を行いたいか、また、ラップカウンタがどれだけ速いかによって異なる。タップの数が少ないと、ラップカウンタはより速くなければならないし、タップの数が多いと、より大きい処理力を必要とする。
【００５９】
さらに、ここで説明した方法と回路は、共に上述した光学ストレージやＲＦ通信からのシリアルデータの処理に関わるアプリケーションを含む、シリアルデータストリームからクロックとデータ回復を必要とする様々な異なる適用方法に対して使用することができる。
【図面の簡単な説明】
【００６０】
【図１】図１は、自励ループ発振器を使用するクロックおよびデータ回復回路のブロック図である。
【図２】図２は、自励ループ発振器の略図である。
【図３Ａ】図３Ａは、図３の把握モジュールへの差分タップ信号を供給する自励ループのさらに詳しい回路図である。
【図３Ｂ】図３Ｂは、図３Ａの回路で使用するバッファステージの回路図である。
【図３Ｃ】図３Ｃは、図３Ｂのバッファステージで使用するＮＡＮＤゲートの回路図である。
【図４】図４は、把握モジュールの回路図である。
【図５】図５Ａ〜Ｃは、図３に示す把握モジュールの操作を示す図である。
【図６】図６は、自励ループ発振器を使用する別のクロックおよびデータ回復回路のブロック図である。
【符号の説明】
【００６１】
１０  クロックおよびデータ回復回路
１２  自励ループ
１４、１６、１８  把握モジュール
１５  ループ平均化モジュール
２０  クロック生成代数モジュール
２２  クロック生成器
２４  クロック信号
３０  シフトレジスタ
３１  ＣＰＵインターフェース
３２  シフトレジスタ
３４  遅延装置
４０  自励ループ発振器
４２  外部リセット信号用の入力
４４  遅延モジュールもしくはバッファ
４６  反転要素
５０  ラップカウンターモジュール
５２（１）  正のエッジカウンタ
５２（２）  負のエッジカウンタ
６０  バッファステージ（緩衝増幅器）
６２（１）、６２（２）  出力
８０  把握モジュール
８４，８６  Dフリップフロップ
８８  メイクビフォーブレイク継電器ＭＵＸ
９０  ＸＮＯＲゲート
９２  デバウンサ論理
９４  要素変換カウント回路
【図１】
2006520169.tif 000002
【図２】
2006520169.tif 000003
【図３Ａ】
2006520169.tif 000004
【図３Ｂ】
2006520169.tif 000005
【図３Ｃ】
2006520169.tif 000006
【図４】
2006520169.tif 000007
【図５】
2006520169.tif 000008
【図６】
2006520169.tif 000009
【国際調査報告】
2006520169.tif 000010