(57)【要約】【課題】ドメイン境界を越えてデータ伝送を行う効率的な方法及び手段を提供すること。【解決手段】第１のクロック(103A)及び第２のクロック(103B)に基づいてデータを送信する第１のシステム(102)から第３のクロック(103D)に基づいてデータを受信する第２のシステム(106)へデータを受け渡す同期装置(104)であって、第１のクロックに基づいて第１のシステムからデータを受信するフリップフロップの第１の集合(204A〜C)を含む同期装置。同期装置は、第２のクロックに基づいて第１のシステムからデータを受信するフリップフロップの第２の集合(204B, 204D)を含む。同期装置は、第１の集合及び第２の集合中のフリップフロップの出力に接続された第１のマルチプレクサ(206)を含む。同期装置は第３のクロックに基づいて第１のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力することにより、第２のシステムへ供給される出力データを生成する制御装置(212)を含む。【選択図】図２
2006141017.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック(103A)及び第２のクロック(103B)に基づいてデータを送信する第１のシステム(102)から第３のクロック(103D)に基づいてデータを受信する第２のシステム(106)へデータを受け渡すための同期装置(104)であって、
前記第１のクロックに基づいて前記第１のシステムからデータを受信するフリップフロップの第１の集合(204A, 204C)と、
前記第２のクロックに基づいて前記第１のシステムからデータを受信するフリップフロップの第２の集合(204B, 204D)と、
前記第１の集合及び前記第２の集合中のフリップフロップの出力に接続された第１のマルチプレクサ(206)と、
前記第３のクロックに基づいて前記第１のマルチプレクサ(206)を制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させることにより、前記第２のシステムへ供給される出力データ(103E)を生成する制御装置(212)と
からなる同期装置。
【請求項２】
前記同期装置が１クロックサイクル当たりに処理するデータビットの数に相当する整数をＮとしたときに、
前記フリップフロップの第１の集合(204A, 204C)は、前記第１のクロックによってクロック供給を受けるように構成された２Ｎ個のフリップフロップであり、
前記フリップフロップの第２の集合(204B, 204D)は、前記第２のクロックによってクロック供給を受けるように構成された２Ｎ個のフリップフロップである、請求項１に記載の同期装置。
【請求項３】
前記同期装置は、前記第１のシステムからデータを受信するデータ入力を有し、前記同期装置は第１の複数のマルチプレクサ(202A-202D)を更に含み、前記第１の複数のマルチプレクサのそれぞれが、前記データ入力に接続された第１の入力と、前記フリップフロップのうちの１つの入力に接続された出力と、前記フリップフロップのうちの１つの出力に接続された第２の入力とを有する、請求項１に記載の同期装置。
【請求項４】
前記第１の複数のマルチプレクサ(202A-202D)を制御する制御信号の第１の集合を前記第２のクロック信号に基づいて生成する第１の制御信号発生器(214)と、前記制御信号の第１の集合及び前記第３のクロック信号に基づいて制御信号の第２の集合を生成する第２制御信号発生器(216)とを更に含む、請求項３に記載の同期装置。
【請求項５】
前記制御装置は、前記第３のクロック信号及び前記制御信号の第２の集合に基づいて前記第１のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させるように構成される、請求項４に記載の同期装置。
【請求項６】
前記制御装置は、前記第１のシステムから前記第２のシステムへデータを受け渡すときにエラーが発生したか否かを識別するように構成される、請求項１に記載の同期装置。
【請求項７】
前記制御装置は、エラーの発生を識別したときに、前記第２のシステムへ渡すデータにエラーコードを挿入するように構成される、請求項６に記載の同期装置。
【請求項８】
前記第１のクロック及び前記第２のクロックは第１の周波数で動作し、前記第３のクロックは前記第１の周波数の２倍の周波数で動作する、請求項１に記載の同期装置。
【請求項９】
前記第１のクロックと前記第２のクロックの位相が１８０度異なり、前記第３のクロックは前記第１のクロックと前記第２のクロックのうちの少なくとも一方から導出される、請求項８に記載の同期装置。
【請求項１０】
第１のクロック(103A)及び第２のクロック(103B)に基づいてデータを送信する第１のシステム(102)から第３のクロック(103D)に基づいてデータを受信する第２のシステムへデータを受け渡す方法であって、
前記第１のクロックに基づいて前記第１のシステムから第１の複数のフリップフロップ(204A, 204C)にデータを入れるとともに、前記第２のクロックに基づいて前記第１のシステムから第２の複数のフリップフロップ(204B, 204D)にデータを入れるステップと、
前記第１の複数のフリップフロップ及び前記第２の複数のフリップフロップ中のフリップフロップから第１のマルチプレクサ(206)へデータを出力するステップと、
前記第３のクロックに基づいて前記第１のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させることにより、前記第２のシステムへ供給される出力データを生成するステップと
からなる方法。
【発明の詳細な説明】
【背景技術】
【０００１】
多くのデータ通信用途では、ドメイン境界を超えてデジタルデータを伝送する必要がある。ドメイン境界とは、異なるクロック信号で動作する２つのシステム間の境界である。境界を超えるデータ伝送は通常、同期装置を用いて行われる。
【０００２】
一部の既存の同期装置は、フルハンドシェーク動作を行う比較的複雑な装置であり、一般的な同期手段として機能するように設計されている。このような同期装置を実施することは、一般にあまり効率的でない（例えばゲート数の点で）。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
そのため当該技術分野では、最小のエラーでドメイン境界を越えてデータ伝送を行うために、また、デュアルクロックでデータを送信する第１のシステムとシングルクロックでデータを受信する第２のシステムの間でデータを伝送といった特定用途のために、システム及び技術にさらなる改良が必要とされている。
【課題を解決するための手段】
【０００４】
本発明の一実施形態によれば、第１のクロック及び第２のクロックに基づいてデータを送信する第１のシステムから第３のクロックに基づいてデータを受信する第２のシステムへデータを受け渡す同期装置が得られる。同期装置は、第１のクロックに基づいて第１のシステムからデータを受信するフリップフロップの第１の集合を含む。同期装置は、第２のクロックに基づいて第１のシステムからデータを受信するフリップフロップの第２の集合を含む。同期装置は、第１の集合及び第２集合中のフリップフロップの出力に接続された第１のマルチプレクサを含む。同期装置は、第３のクロックに基づいて第１のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させることにより、第２のシステムへ供給される出力データを生成する制御装置を含む。
【発明を実施するための最良の形態】
【０００５】
発明の詳細な説明では、本発明を実施するための特定の実施形態を例として描いた添付の図面を参照する。本発明の範囲から外れることなく、他の実施形態を使用したり、構造的または論理的な変更を施すことも可能である。従って、発明の詳細な説明を限定の意味で解釈してはならない。本発明の範囲は特許請求の範囲に規定される。
【０００６】
図１は、本発明の一実施形態による通信システム１００を示す構成図である。通信システム１００は、システムＡ１０２、同期装置１０４、及びシステムＢ１０６を含む。図示の実施形態では、システムＡ１０２が、データソース、すなわちデータ送信器として機能し、システムＢ１０６が、システムＡ１０２から送信されたデータを受信する受信器、すなわちデータシンクとして機能する。システムＡ１０２は、通信リンク１０３Ａ〜Ｃを介して同期装置１０４に接続される。システムＡ１０２は、通信リンク１０３Ａ及び１０３Ｂを介して２つのクロック信号（クロックＡ、クロックＢ）を同期装置１０４に出力する。システムＡは、通信リンク１０３Ｃを介してデジタルデータ信号（ｄａｔａ＿ｉｎ）を同期装置１０４に出力する。システムＢ１０６は、通信リンク１０３Ｄを介してクロック信号（クロックＣ）を同期装置１０４に出力する。システムＢ１０６は、通信リンク１０３Ｅを介して同期装置１０４からデジタルデータ信号（ｄａｔａ＿ｏｕｔ）を受信する。
【０００７】
一実施形態において、システムＡ１０２は第１のクロックドメインに配置され、システムＢ１０６は第１のクロックドメインとは異なる第２のクロックドメインに配置される。一実施形態において、第１のクロックドメインと第２のクロックドメインはコヒーレントな（同期のとれた）クロックドメインである。図１の実施形態では、２つのクロック（クロックＡとクロックＢ）が第１のクロックドメインに配置され、１つのクロック（クロックＣ）が第２のクロックドメインに配置されている。本明細書に記載する方法は、２つのクロックドメインのそれぞれが１つのクロックを有する場合にも適用可能である。一実施形態において、システムＡ１０２が通信リンク１０３Ａに出力するクロック信号Ａとクロック信号Ｂの周波数は同じで、位相は１８０度異なる。また、システムＢ１０６が通信リンク１０３Ｄに出力するクロック信号Ｃは、クロック信号Ａ及びクロック信号Ｂの周波数の２倍である。一実施形態において、クロック信号Ａ及びクロック信号Ｂはそれぞれ６２．５ＭＨｚのクロック信号であり、クロック信号Ｃは１２５ＭＨｚのクロック信号である。この実施形態では、２つの異なるクロック（クロックＡ及びクロックＢ）を使用して１２５ＭＨｚでデータワードが同期装置１０４に入力される一方、１つのクロック（クロックＣ）を使用して１２５ＭＨｚでデータワードがシステムＢ１０６に入力される。一実施形態において、システムＢ１０６は、クロック信号Ａまたはクロック信号Ｂからクロック信号Ｃを導出する。図４は、クロック信号Ａ、クロック信号Ｂ、及びクロック信号Ｃの実施形態を示している。以下では図４について説明する。
【０００８】
一実施形態において、通信システム１００は「８Ｂ１０Ｂ」エンコードを使用する。８Ｂ１０Ｂエンコードでは、８ビットワードのデータがそれぞれ１０ビットのコードワードに関連付けられる。一実施形態では、１０ビットのコードワードが、１２５ＭＨｚの速度でクロックに従って同期装置１０４に出し入れされる。他の実施形態では、他の通信プロトコル及び他の速度を使用する場合もある。
【０００９】
一実施形態による同期装置１０４は、システムＡ１０２とシステムＢ１０６の間でデータを高い信頼性で受け渡すことが可能な先入れ先出し（ＦＩＦＯ）方式の同期装置である。一実施形態において、同期装置１０４はシステムＡ１０２から或るクロック速度で生成されたデータワードをシステムＢ１０６に伝送し、システムＢ１０６はそれらのデータワードを別のクロック速度で除去する。一実施形態において、同期装置１０４は下記の条件に合致する用途で動作するように構成される。
（１）２つのクロックドメイン間の位相関係だけが不明である（すなわち、クロック間はコヒーレントで、一定の位相差の大きさが不明である）。
（２）クロックジッタが１クロック周期未満である。
（３）送信器（すなわちシステムＡ１０２）から出力されるデータの流れを止めることが出来ない。
【００１０】
図２は、本発明の一実施形態による同期装置１０４を示す概略図である。同期装置１０４は、マルチプレクサ２０２Ａ〜Ｄ（まとめてマルチプレクサ２０２と呼ぶ）、フリップフロップ２０４Ａ〜Ｄ（まとめてフリップフロップ２０４と呼ぶ）、マルチプレクサ２０６、２０８、フリップフロップ２１０、ステートマシンすなわち制御装置２１２、及びフリップフロップ２１４、２１６を含む。本明細書では、フリップフロップ２０４をレジスタ２０４と呼ぶこともある。各マルチプレクサ２０２は、２つの入力（「０」入力、「１」入力）及び１つの出力を有する。フリップフロップ２０４、２１０、２１６はそれぞれ、１つのデータ入力（「ｉｎ」）、１つのデータ出力（「ｏｕｔ」）、及び１つのクロック入力（「ｃｌｋ」）を有する。フリップフロップ２１４は、１つのデータ入力（「ｉｎ」）、２つのデータ出力（「ｏｕｔ１」、「ｏｕｔ２」）、及び１つのクロック入力（「ｃｌｋ」）を有する。
【００１１】
マルチプレクサ２０２Ａ及び２０２Ｂの「０」入力と、マルチプレクサ２０２Ｃ及び２０２Ｄの「１」入力は、通信リンク１０３Ｃ（ｄａｔａ＿ｉｎ）に接続される。マルチプレクサ２０２Ａ及び２０２Ｂの「１」入力は、フリップフロップ２０４Ａ及び２０４Ｂの出力にそれぞれ接続される。マルチプレクサ２０２Ｃ及び２０２Ｄの「０」入力は、フリップフロップ２０４Ｃ及び２０４Ｄの出力にそれぞれ接続される。マルチプレクサ２０２Ａ〜Ｄの出力は、通信リンク２０３Ａ〜Ｄをそれぞれ介してフリップフロップ２０４Ａ〜Ｄの入力にそれぞれ接続される。マルチプレクサ２０２は、フリップフロップ２１４の第１の出力（ｏｕｔ１）に接続された通信リンク２１５Ａから制御信号すなわち選択信号を受信する。選択信号が低（例えば論理０）のとき、各マルチプレクサ２０２は、信号をマルチプレクサ２０２の「０」入力に出力する。選択信号が高（例えば論理１）のとき、各マルチプレクサ２０２は、信号をマルチプレクサ２０２の「１」入力に出力する。
【００１２】
通信リンク１０３Ａ（クロックＡ）は、フリップフロップ２０４Ａ、２０４Ｃのクロック入力に接続される。通信リンク１０３Ｂ（クロックＢ）は、フリップフロップ２０４Ｂ、２０４Ｄ、２１４のクロック入力に接続される。フリップフロップ２０４Ａ〜Ｄの出力は、通信リンク２０５Ａ〜Ｄをそれぞれ介してマルチプレクサ２０６の「００」入力、「０１」入力、「１１」入力、及び「１０」入力にそれぞれ接続される。マルチプレクサ２０６は、通信リンク２１１Ａ、２１１Ｂを介してステートマシン２１２から２ビットの選択信号を受信する。選択信号の２つのビットが両方とも低（すなわち論理０）のとき、マルチプレクサ２０６は、信号をマルチプレクサ２０６の「００」入力に出力する。選択信号の２つのビットが両方とも高（すなわち論理１）のとき、マルチプレクサ２０６は、信号をマルチプレクサ２０６の「１１」入力に出力する。選択信号の第１のビットが低で第２のビットが高のとき、マルチプレクサ２０６は、信号をマルチプレクサ２０６の「０１」入力に出力する。選択信号の第１のビットが高で第２のビットが低のとき、マルチプレクサ２０６は、信号をマルチプレクサ２０６の「１０」入力に出力する。
【００１３】
マルチプレクサ２０６の出力は、通信リンク２０７Ａを介してマルチプレクサ２０８の「０」入力に接続される。マルチプレクサ２０８の「１」入力は、通信リンク２０７Ｂを介して「／Ｖ／」信号に接続される。この「／Ｖ／」信号は８Ｂ１０Ｂプロトコルにおけるエラーコードである。マルチプレクサ２０８は、通信リンク２１１Ｃを介してステートマシン２１２から選択信号を受信する。選択信号が低（例えば論理０）のとき、マルチプレクサ２０８は、信号をマルチプレクサ２０８の「０」入力に出力する。選択信号が高（例えば論理１）のとき、マルチプレクサ２０８は、信号をマルチプレクサ２０８の「１」入力に出力する。
【００１４】
マルチプレクサ２０８の出力は、通信リンク２０９を介してフリップフロップ２１０のデータ入力に接続される。通信リンク１０３Ｄ（クロックＣ）は、フリップフロップ２１０及び２１６のクロック入力に接続され、更にステートマシン２１２にも接続される。フリップフロップ２１０は、通信リンク１０３Ｅを介してデータ（ｄａｔａ＿ｏｕｔ）をシステムＢ１０６（図１）に出力する。
【００１５】
フリップフロップ２１４の第１の出力（ｏｕｔ１）は、通信リンク２１５Ａを介してフリップフロップ２１６の入力に接続される。フリップフロップ２１４の第２の出力（ｏｕｔ２）は反転出力であり、フリップフロップ２１４の入力に接続される。フリップフロップ２１４は、通信リンク２１５Ａを介して同期パルスをフリップフロップ２１６に供給する。フリップフロップ２１６の出力は、通信リンク２１７を介してステートマシン２１２に接続される。フリップフロップ２１６は、通信リンク２１７を介して同期パルスをステートマシン２１２に供給する。フリップフロップ２１６からステートマシン２１２へ信号が供給されると、ステートマシン２１２は種々の状態間を移行（遷移）する。これについては、図３を参照して後で詳しく説明する。
【００１６】
図２に示すように、フリップフロップ２０４Ａ及び２０４Ｃは、通信リンク１０３Ａを介して受信されるクロック信号Ａによってクロック供給を受ける。従って、それらのフリップフロップは、クロックＡのクロックドメインに属している。フリップフロップ２０４Ｂ、２０４Ｄ、及び２１４は、通信リンク１０３Ｂを介して受信されるクロック信号Ｂによってクロック供給を受ける。従って、それらのフリップフロップは、クロックＢのクロックドメインに属している。フリップフロップ２１０、ステートマシン２１２、及びフリップフロップ２１６は、通信リンク１０３Ｄを介して受信されるクロック信号Ｃによってクロック供給を受ける。従って、それらはクロックＣのクロックドメインに属している。次に、同期装置１０４の動作について、図３及び図４を参照して詳しく説明する。
【００１７】
当業者には分かると思われるが、図２に示す論理回路は、同期装置１０４が１クロックサイクル当たりに処理するデータビットの数に応じて、複数回複製される。例えば同期装置１０４が１クロックサイクル当たり１０ビットのデータを処理する実施形態の場合、マルチプレクサ２０２Ａ〜Ｄ、フリップフロップ２０４Ａ〜Ｄ、マルチプレクサ２０６、２０８、フリップフロップ２１０はそれぞれ、１０回複製することが望ましい。一実施形態では、同期装置１０４が１クロックサイクル当たりに処理するデータビットの数に相当する整数を「Ｎ」としたときに、同期装置１０４は、Ｎ個のマルチプレクサ２０２Ａ〜Ｄ（合計４Ｎ個）、Ｎ個のフリップフロップ２０４Ａ〜Ｄ（合計４Ｎ個）、Ｎ個のマルチプレクサ２０６、Ｎ個のマルチプレクサ２０８、及びＮ個のフリップフロップ２１０を備える。
【００１８】
図３は、本発明の一実施形態による図２に示す同期装置のステートマシン２１２の種々の状態を示す状態図である。図３に示すように、ステートマシン２１２は８つの状態３０２〜３１６を有する。８つの状態３０２〜３１６のそれぞれに、３ビットの値が関連付けられている。例えば、状態３０２に関連付けられた３ビットの値は「０００」である。各３ビット状態値の最下位２ビット（右端の２ビット）は、通信リンク２１１Ａ及び２１１Ｂを介してステートマシン２１２がマルチプレクサ２０６に出力する信号に対応する。フリップフロップ２１６は、状態３０２〜３１６間の遷移を決定する遷移変数（「１」または「０」）を通信リンク２１７に出力する。
【００１９】
一実施形態において、ステートマシン２１２は、リセット／エラー状態である状態３０６から開始される。状態３０６に対応する３ビット値は「１００」である。状態３０６においてステートマシン２１２は、通信リンク２１１Ｃを介して「１」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「００」選択信号をマルチプレクサ２０６に出力する。フリップフロップ２１６が通信リンク２１７に出力する信号が低（すなわち論理０）である間、ステートマシン２１２はその状態３０６にとどまる。フリップフロップ２１６がステートマシン２１２に出力する信号が高（すなわち論理１）になると、ステートマシン２１２は状態３０６から状態３１０へ遷移する。
【００２０】
状態３１０に対応する３ビット値は「０１１」である。状態３１０においてステートマシン２１２は、通信リンク２１１Ｃを介して「０」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「１１」選択信号をマルチプレクサ２０６に出力する。状態３１０においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理１である場合、ステートマシン２１２は状態３１０から状態３１２へ遷移する。状態３１０においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理０である場合、ステートマシン２１２は状態３１０から状態３１６へ遷移する。
【００２１】
状態３１２に対応する３ビット値は「０１０」である。状態３１２においてステートマシン２１２は、通信リンク２１１Ｃを介して「０」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「１０」選択信号をマルチプレクサ２０６に出力する。状態３１２においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理１である場合、ステートマシン２１２は状態３１２から状態３１４へ遷移する。状態３１２においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理０である場合、ステートマシン２１２は状態３１２から状態３０２へ遷移する。
【００２２】
状態３１４に対応する３ビット値は「１１１」である。状態３１４はエラー状態である。状態３１４においてステートマシン２１２は、通信リンク２１１Ｃを介して「１」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「１１」選択信号をマルチプレクサ２０６に出力する。フリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力する信号が論理１である間、ステートマシン２１２は状態３１４にとどまる。状態３１４においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力する信号が論理０に変わると、ステートマシン２１２は状態３１４から状態３０２へ遷移する。
【００２３】
状態３１６に対応する３ビット値は「１１０」である。状態３１６においてステートマシン２１２は、通信リンク２１１Ｃを介して「０」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「１０」選択信号をマルチプレクサ２０６に出力する。状態３１６においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理である場合、ステートマシン２１２は状態３１６から状態３１４へ遷移する。状態３１６においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理０である場合、ステートマシン２１２は状態３１６から状態３０２へ遷移する。
【００２４】
状態３０２に対応する３ビット値は「０００」である。状態３０２においてステートマシン２１２は、通信リンク２１１Ｃを介して「０」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「００」選択信号をマルチプレクサ２０６に出力する。状態３０２においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理１である場合、ステートマシン２１２は状態３０２から状態３０８へ遷移する。状態３０２においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理０である場合、ステートマシン２１２は状態３０２から状態３０４へ遷移する。
【００２５】
状態３０４に対応する３ビット値は「００１」である。状態３０４においてステートマシン２１２は、通信リンク２１１Ｃを介して「０」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「０１」選択信号をマルチプレクサ２０６に出力する。状態３０４においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理１である場合、ステートマシン２１２は状態３０４から状態３１０へ遷移する。状態３０４においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理０である場合、ステートマシン２１２は状態３０４から状態３０６に遷移する。
【００２６】
状態３０８に対応する３ビット値は「１０１」である。状態３０８においてステートマシン２１２は、通信リンク２１１Ｃを介して「０」選択信号をマルチプレクサ２０８に出力するとともに、通信リンク２１１Ａ及び２１１Ｂを介して「０１」選択信号をマルチプレクサ２０６に出力する。状態３０８においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理１である場合、ステートマシン２１２は状態３０８から状態３１０へ遷移する。状態３０８においてフリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した信号が論理０である場合、ステートマシン２１２は状態３０８から状態３０６へ遷移する。
【００２７】
図４は、本発明の一実施形態による図２に示す同期装置１０４の種々の信号のタイミングを示す図である。クロック信号Ａ（４０２）は、システムＡ（１０２）（図１）が通信リンク１０３Ａを介して同期装置１０４に出力したクロック信号を表している。クロック信号Ｂ（４０４）は、システムＡ（１０２）が通信リンク１０３Ｂを介して同期装置１０４に出力したクロック信号を表している。Ｄａｔａ＿ｉｎ信号４０６は、システムＡ１０２が通信リンク１０３Ｃを介して同期装置１０４に出力したデータ信号を表している。一実施形態では、クロック信号４０２及び４０４が遷移する度に、新たなデータワードが通信リンク１０３Ｃを介してクロックに従って同期装置１０４に入力される。信号４０６において、個々のデータワードは番号１、２、３、・・・、１５によって識別される。一実施形態において、信号４０６中の各データワードは１０ビット値である。同期信号４０８は、フリップフロップ２１４（図２）が通信リンク２１５Ａに出力した同期信号を表している。図４に示すように、同期信号４０８は複数のパルスを含み、各パルスの幅はクロック信号４０２または４０４の１クロックサイクルの幅に等しく、パルス間の間隔は１クロックサイクルになっている。一実施形態において、フリップフロップ２１４が出力する同期信号４０８は、ステートマシン２１２に指示を与えるためのグレー符号で符号化された索引値であり、フリップフロップ２１６は、不安定状態の信号がステートマシン２１２に入力されることを防止する働きを持つ。
【００２８】
信号４１０は、フリップフロップ２０４Ａ（図２）が通信リンク２０５Ａを介してマルチプレクサ２０６の「００」入力に出力した信号４０６中のデータワードを示している。図４に示すように、フリップフロップ２０４Ａは信号４０６中の番号３、７、１１に対応するデータワードを出力する。信号４１２は、フリップフロップ２０４Ｂ（図２）が通信リンク２０５Ｂ上を介してマルチプレクサ２０６の「０１」入力に出力した信号４０６中のデータワードを示している。図４に示すように、フリップフロップ２０４Ｂは信号４０６中の番号４、８、１２に対応するデータワードを出力する。信号４１４は、フリップフロップ２０４Ｃ（図２）が通信リンク２０５Ｃを介してマルチプレクサ２０６の「１１」入力に出力した信号４０６中のデータワードを示している。図４に示すように、フリップフロップ２０４Ｃは信号４０６中の番号１、５、９、１３に対応するデータワードを出力する。信号４１６は、フリップフロップ２０４Ｄ（図２）が通信リンク２０５Ｄを介してマルチプレクサ２０６の「１０」入力に出力した信号４０６中のデータワードを示している。図４に示すように、フリップフロップ２０４Ｄは信号４０６中の番号２、６、１０、１４に対応するデータワードを出力する。
【００２９】
図４の信号４１０〜４１６に示すように、ｄａｔａ＿ｉｎ信号４０６から各データワードをサンプリングした後、そのデータワードは、クロック信号４０２または４０４の２クロックサイクル分の時間だけ、フリップフロップ２０４Ａ〜Ｄのうちの１つの出力に保持される。従って、各データワードは実質的に２クロックサイクル分の時間枠を占める。ただし、２つのクロックサイクル時間枠はクロック境界で分割されるため、一実施形態において、同期装置１０４は、最大で１クロックサイクル全体分のジッタを処理するように構成される。
【００３０】
同期装置１０４の動作は、システムＢ１０６（図１）が通信リンク１０３Ｄを介して同期装置１０４に出力するクロック信号Ｃの影響を受けるだけでなく、クロック信号Ｃとクロック信号４０２、４０４との間の関係の影響も受ける。信号４１８Ａ〜４２４Ａは、同期装置１０４の動作の第１の例を示している。この例では、クロック信号Ｃがクロック信号４０２及びクロック信号４０４と同期した状態で始まり、右に流れてから、左に流れている。信号４１８Ｂ〜４２４Ｂは、同期装置１０４の動作の第２の例を示している。この例では、クロック信号Ｃがクロック信号４０２及びクロック信号４０４よりも遅れて始まり、左に流れてから、右に流れている。
【００３１】
クロック信号Ｃ（４１８Ａ）は、システムＢ１０６（図１）が通信リンク１０３Ｄを介して同期装置１０４に出力したクロック信号を示している。図４に示すように、クロック信号Ｃ（４１８Ａ）はクロック信号４０２及びクロック信号４０４と同期した状態で始まり、右に流れてから、左に流れている。グレイ同期（Ｇｒａｙ＿ｓｙｎｃ）信号４２０Ａは、フリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力した同期信号を示している。図４に示すように、この同期信号４２０Ａは異なる幅の複数のパルスを含み、パルス間の間隔にも変動がある。パルスの幅や間隔の変動は、クロック信号Ｃ（４１８Ａ）のドリフト（ゆらぎ）が原因である。状態信号４２２Ａは、ステートマシン２１２の状態を時間の経過とともに示している。各状態は、その状態に対応する３ビット値によって識別される。Ｄａｔａ＿ｏｕｔ信号４２４Ａは、同期装置１０４が通信リンク１０３Ｅを介してシステムＢ１０６に出力したデータ信号を示している。図４に示すように、ｄａｔａ＿ｏｕｔ信号４２４Ａはｄａｔａ＿ｉｎ信号４０６と同じデータワードを有する。ｄａｔａ＿ｏｕｔ信号４２４Ａを信号４１０〜４１６と比較することで分かるように、ｄａｔａ＿ｏｕｔ信号４２４Ａの各データワードは、信号４１０〜４１６に示されているそのデータワードに対応する２クロックサイクル分の時間枠に収まっている。
【００３２】
信号４２２Ａに示すように、ステートマシン２１２は状態「１００」から開始される。状態「１００」はリセット状態であり、ステートマシン２１２は数クロックサイクルの間この状態にとどまった後、状態「０１１」へ遷移する。状態「１００」においてステートマシン２１２はマルチプレクサ２０８（図２）に対し、マルチプレクサ２０８の「１」入力から値を出力させる。この値はエラーコードである。マルチプレクサ２０８はそのエラーコードをフリップフロップ２１０に出力し、フリップフロップ２１０は、クロック信号Ｃ（４１８Ａ）が低から高へ次回遷移したときに、そのエラーコードを通信リンク１０３Ｅに出力する。
【００３３】
状態「０１１」においてステートマシン２１２はマルチプレクサ２０８に対し、マルチプレクサ２０８の「０」入力から値を出力させる。マルチプレクサ２０８の「０」入力はマルチプレクサ２０６の出力に接続されている。状態「０１１」の最下位２ビットは「１１」である。従ってステートマシン２１２はマルチプレクサ２０６に対し、マルチプレクサ２０６の「１１」入力から値を出力させる。マルチプレクサ２０６の「１１」入力はフリップフロップ２０４Ｃの出力に接続されている。信号４１４に示すように、状態「０１１」の間にフリップフロップ２０４Ｃの出力に保持されている値は、データワード番号１である。従って、マルチプレクサ２０６は、マルチプレクサ２０８を介してそのデータワード番号１をフリップフロップ２１０の入力に出力する。そして、フリップフロップ２１０は、クロック信号Ｃ（４１８Ａ）が低から高へ次回遷移する時に、そのデータワード番号１を通信リンク１０３Ｅに出力する。
【００３４】
ステートマシン２１２は、状態「０１１」の後、信号４２２Ａに示すように別の状態（「０１０」、「０００」、「００１」、・・・、「０１０」）へと次々に遷移する。３ビットの状態値の最下位２ビットは、フリップフロップ２０４Ａ〜Ｄのうちの１つに対応する。信号４２２Ａに示すように、それらの状態の最下位２ビットは１１、１０、００、０１というパターンを形成し、このパターンが連続的に繰り返される。つまり、ステートマシン２１２は、状態「０１１」においてフリップフロップ２０４Ｃからの出力をマルチプレクサ２０６に選択させた後、フリップフロップ２０４Ｄからの出力、フリップフロップ２０４Ａからの出力、及びフリップフロップ２０４Ｂからの出力を順番にマルチプレクサ２０６に選択させる。その後選択はフリップフロップ２０４Ｃからの出力に戻り、このプロセスが繰り返される。マルチプレクサ２０６がフリップフロップ２０４Ａ〜Ｄのうちの１つを選択するたびに、選択されたフリップフロップ２０４の出力に保持されていたデータワードが、マルチプレクサ２０６及び２０８を介してフリップフロップ２１０の入力に出力される。フリップフロップ２１０は、クロック信号Ｃ（４１８Ａ）が低から高へ次回遷移する時に、そのデータワードを通信リンク１０３Ｅに出力する。
【００３５】
信号４１８Ｂ〜４２４Ｂは、同期装置１０４の動作の第２の例を示している。クロック信号Ｃ（４１８Ｂ）は、システムＢ１０６（図１）が通信リンク１０３Ｄを介して同期装置１０４に出力するクロック信号を示している。図４に示すように、クロック信号Ｃ（４１８Ｂ）はクロック信号４０２及びクロック信号４０４よりも遅れていて、左に流れてから、右に流れている。Ｇｒａｙ＿ｓｙｎｃ（グレイ同期）信号４２０Ｂは、フリップフロップ２１６が通信リンク２１７を介してステートマシン２１２に出力する同期信号を示している。図４に示すように、信号４２０Ｂは異なるの複数のパルスを含み、パルス間の間隔にも変動がある。パルスの幅や間隔の変動は、クロック信号Ｃ（４１８Ｂ）のドリフトが原因である。状態信号４２２Ｂは、ステートマシン２１２の状態を時間の経過とともに示している。各状態は、その状態に対応する３ビット値によって識別される。ｄａｔａ＿ｏｕｔ信号４２４Ｂは、同期装置１０４が通信リンク１０３Ｅを介してシステムＢ１０６に出力したデータ信号を示している。図４に示すように、ｄａｔａ＿ｏｕｔ信号４２４Ｂはｄａｔａ＿ｉｎ信号４０６と同じデータワードを有する。ただし、番号６で識別されるデータワードと番号７で識別されるデータワードとの間には、エラーコードが挿入されている。これはクロック信号Ｃ（４１８Ｂ）のドリフトによるものである。ｄａｔａ＿ｏｕｔ信号４２４Ｂを信号４１０〜４１６と比較することで分かるように、ｄａｔａ＿ｏｕｔ信号４２４Ｂの各データワードは、信号４１０〜４１６に示されているそのデータワードに対応する２クロックサイクル分の時間枠に収まっている。
【００３６】
信号４１８Ｂ〜４２４Ｂに関し、ステートマシン２１２はマルチプレクサ２０６に対し、フリップフロップ２０４Ｃからの出力、フリップフロップ２０４Ｄからの出力、フリップフロップ２０４Ａからの出力、及びフリップフロップ２０４Ｂからの出力を順番に繰り返しパターンで選択させる。この方法は、信号４１８Ａ〜４２４Ａについて上で述べたものと同じである。ただし、信号４２２Ｂに示すように、フリップフロップ２１０がデータワード番号６（フリップフロップ２０４Ｄから得られる）を出力している間は、ステートマシン２１２が状態「１１１」になる。この状態はエラー状態である。状態「１１１」においてステートマシン２１２は、マルチプレクサ２０８に対し、マルチプレクサ２０８の「１」入力に値を出力させる。この値はエラーコードである。このエラーコードはマルチプレクサ２０８からフリップフロップ２１０に出力される。そして、フリップフロップ２１０は、クロック信号Ｃ（４１８Ｂ）が低から高へ次回遷移するときに、そのエラーコードを通信リンク１０３Ｅに出力する。信号４２２Ｂに示すように、状態「１１１」の次の状態は状態「０００」であり、この状態はフリップフロップ２０４Ａに対応する。つまり、フリップフロップ２１０は、エラーコードをデータストリームへ挿入した後、フリップフロップ２０４Ａからのデータワード番号７を通信リンク１０３Ｅに出力する。そしてステートマシン２１２は、この繰り返しパターンによるフリップフロップ２０４Ａ〜Ｄの選択を引き続き行う。
【００３７】
本発明の一実施形態によれば、従来の同期装置に比べて効率が高く（例えばゲート数の点で）、待ち時間を出来る限り短くした同期装置１０４が得られる。一実施形態において、同期装置１０４は最大で１クロック周期までクロック内の高周波数ジッタに耐えることが出来る。本発明の一実施形態において同期装置１０４は、同期装置によって伝送されるデータの信頼性を確保するための誤り検出機能を有する。一実施形態において同期装置１０４は、同期装置１０４が正しく動作する条件（図１に関連して上で述べたもの）に違反したときに発生することがあるＦＩＦＯのオーバフロー状態またはアンダフロー状態からの復帰機能を内蔵する。一実施形態において同期装置１０４は、イーサネット用途、メモリ用途、他の用途で使用されるように構成される場合がある。本発明の一実施形態による同期装置１０４は、入出力（Ｉ／Ｏ）フロントエンド部に多数の応用形態を有する。クロックは通常データソースから供給され（ソース同期）、受信器はソースのクロックから導出されたクロックを有し、且つ大きさ不明の位相シフトを受ける。これには、ＰＣＩｘ２．０（ＤＤＲ  ＰＣＩｘ）、ファイバチャネル、ギガビットイーサネットなどの種々の業界標準がある。
【００３８】
本明細書は特定の実施形態について図示説明しているが、当業者であれば、本発明の範囲から外れることなく、図示説明した特定の実施形態に代えて種々の代替実施形態および／または均等実施形態を採用することも可能である。本願は、本明細書に記載した特定の実施形態の修正及び変形を全て本発明の範囲に含めることを意図している。本発明の範囲は、特許請求の範囲とその均等によってのみ規定される。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態による通信システムを示す構成図である。
【図２】本発明の一実施形態による同期装置を示す概略図である。
【図３】本発明の一実施形態による図２に示す同期装置のステートマシンの種々の状態を示す状態図である。
【図４】本発明の一実施形態による図２に示された同期装置の種々の信号を示すタイミング図である。
【符号の説明】
【００４０】
１００  通信システム
１０２、１０６  システム
１０３、２０７、２１１、２１５、２１７  通信リンク
１０４  同期装置
２０２、２０６、２０８  マルチプレクサ
２０４、２１０、２１４、２１６  フリップフロップ
２１２  ステートマシン
４０２、４０４  クロック信号
４０６  Ｄａｔａ＿ｉｎ信号
４０８  同期信号
【図１】
2006141017.tif 000003
【図２】
2006141017.tif 000004
【図３】
2006141017.tif 000005
【図４】
2006141017.tif 000006