(57)【要約】【課題】シンボルの個数が各々のレーン毎に異なる場合であっても、簡単な処理によって、各々のレーンに対応する分割データ列の間のスキュー調整を行うことができる受信装置を提供する。【解決手段】受信装置は、複数のレーンのそれぞれに対応して、受信した分割データ列のシンボルの個数を１個以上に調整する処理を行って処理済み分割データ列を生成する弾性バッファと、処理済み分割データ列の間のスキュー調整を行うスキュー調整回路とを備え、スキュー調整回路は、複数のレーンのそれぞれに対応して設けられて処理済み分割データ列内の第１のシンボルを判別する判別回路を有し、判別回路の判別結果に基づいて、それぞれの処理済み分割データ列におけるシンボルの終了を検出し、終了を検出したタイミングに基づいて処理済み分割データ列の間のスキュー調整を行う。【選択図】図２
2008172657.tif 000002
【特許請求の範囲】
【請求項１】
第１の期間において、送信すべきデータ列を分割して生成した複数の分割データ列であって、第１のシンボルを共通のタイミングで所定の個数だけ連続して挿入した後に、それぞれに対応するレーンを通じて送信された複数の分割データ列を受信する受信装置において、
前記複数のレーンのそれぞれに対応して、前記受信した分割データ列の前記第１のシンボルの個数を１個もしくはそれ以上に調整する処理を行って処理済み分割データ列を生成する弾性バッファを備えるとともに、前記処理済み分割データ列の間のスキュー調整を行うスキュー調整回路を備え、
前記スキュー調整回路は、前記複数のレーンのそれぞれに対応して設けられて前記処理済み分割データ列内の前記第１のシンボルを判別する判別回路を有し、該判別回路の判別結果に基づいて、それぞれの前記処理済み分割データ列における前記第１のシンボルの終了を検出し、該終了を検出したタイミングに基づいて前記処理済み分割データ列の間のスキュー調整を行うことを特徴とする受信装置。
【請求項２】
前記第１の期間において、前記第１のシンボルは、第２のシンボルに続いて挿入され、
前記第１の期間と異なる第２の期間において、前記分割データ列は、前記第２のシンボルのみが共通のタイミングで挿入されて送信され、
前記判別回路は、前記処理済み分割データ列内の前記第１のシンボルに加えて前記第２のシンボルを、前記第１のシンボルとを区別することなく判別し、前記スキュー調整回路は、前記第１の期間および第２の期間の両方において、前記判別回路の判別結果に基づいて、前記それぞれの処理済み分割データ列における前記第１もしくは第２のシンボルの終了を検出し、該終了を検出したタイミングに基づいて前記処理済み分割データ列の間のスキュー調整を行うことを特徴とする請求項１記載の受信装置。
【請求項３】
前記複数のレーンのそれぞれに対応して設けられ、クロック信号に同期して対応する前記処理済み分割データ列のデータを一時的に記憶するバッファをさらに備え、
前記スキュー調整回路は、前記バッファに一時的に記憶したデータの読み出しのタイミングを調整することによって前記スキュー調整を行うことを特徴とする請求項１記載の受信装置。
【請求項４】
前記スキュー調整回路は、さらに、
前記複数のレーンのそれぞれに対応して設けられ、同一のレーンの前記処理済み分割データ列における前記第１のシンボルの終了を検出した時点から、前記クロック信号に同期してカウントするカウンタを有し、全ての前記処理済み分割データ列における前記第１のシンボルの終了を検出した時点での前記それぞれのカウンタのカウント値に応じて、前記バッファに一時的に記憶したデータの読み出しのタイミングを調整するか、もしくは、
前記処理済み分割データ列のいずれかにおいて最初に前記第１のシンボルの終了を検出した時点から、前記クロック信号に同期してカウントするカウンタを有し、前記処理済み分割データ列のそれぞれにおいて前記第１のシンボルの終了を検出した時点での前記カウンタのカウント値に応じて、前記バッファに一時的に記憶したデータの読み出しのタイミングを調整することを特徴とする請求項３記載の受信装置。
【請求項５】
前記分割データ列をシリアルデータ列として受信し、パラレルデータ列に変換してから前記弾性バッファによる処理を行うことを特徴とする請求項１ないし４のいずれかに記載の受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置から、複数のレーン（伝送線路）を使用して送信されてくる、送信すべきデータ列を分割して生成した複数の分割データ列（シリアルデータ列）を受信する受信装置に関するものである。
【背景技術】
【０００２】
従来のパラレル通信インタフェイス（Ｉ／Ｆ）であるＰＣＩ（Peripheral Component Interconnect）に代わる高速シリアル通信Ｉ／Ｆとして、ＰＣＩ  Ｅｘｐｒｅｓｓが知られている。
【０００３】
ＰＣＩ  Ｅｘｐｒｅｓｓの特徴の１つは、１組の送信専用線と受信専用線とを含むシリアル通信Ｉ／Ｆを採用するレーンを複数束ねられることである。すなわち、各々のレーンではデータ列のシリアル通信が行われるが、複数のレーンを使用することによって、送受信すべきデータ列を複数のレーンに対応して分割し、レーン数分の分割データ列をパラレルに送受信できる。そのため、レーン数に応じて通信帯域を数倍に容易に向上させることができる。
【０００４】
ＰＣＩ  Ｅｘｐｒｅｓｓを採用する送信装置と受信装置との間で複数のレーンを使用してシリアル通信を行う場合、上記のように、送信装置は、送信すべきデータ列を複数に分割し、複数の分割データ列を各々対応するレーンを通じて受信装置に送信する。一方、受信装置は、送信装置から送信されてくる、各々のレーンに対応する分割データ列を受信し、シリアル・パラレル変換する。そして、複数のレーンのパラレルデータ列を結合して、元のデータ列を復元する。
【０００５】
ＰＣＩ  Ｅｘｐｒｅｓｓを採用する送信装置と受信装置との間で複数のレーンを使用してシリアル通信を行う場合、各々のレーンにおける伝送遅延時間が異なるなどの理由から、受信装置において受信される分割データ列の間でレーン毎にスキューが発生することがある。そのため、受信装置では、元のデータ列を復元するために、各々のレーンを通じて受信される分割データ列の間のスキューを調整し、データの位置（タイミング）を揃える必要がある。
【０００６】
ＰＣＩ  Ｅｘｐｒｅｓｓの場合、複数のレーンに対応する分割データ列の間の到達時間の違い（レーン間スキュー）の調整のために、ＣＯＭシンボルを用いて、分割データ列の間のスキューを調整する機能（レーン間デスキュー）が規格化されている。
【０００７】
レーン間デスキューとは、送信装置から、有効データ（ＣＯＭシンボルなどの制御データを除く、送信装置から受信装置に送信すべきデータ）を、複数のレーンに対応する分割データ列に分割して送信する場合、それぞれの分割データ列に、所定パターンのＣＯＭシンボルを共通のタイミングで挿入してから、各々のレーンを通じて送信し、受信装置において、各々のレーンに対応するＣＯＭシンボルの位置を検出し、その位置を合わせることによって、各々のレーンを通じて送信される分割データ列の間のスキューを調整する機能である。このようなＣＯＭシンボルを用いたデスキューは、送信装置および受信装置のコンフィグレーションを行うトレーニングシーケンス時に行われるとともに、コンフィグレーションを完了した後の通常転送時にも、定期的に行われる。
【０００８】
ところで、ＰＣＩ  Ｅｘｐｒｅｓｓを採用する送信装置では、送信装置から分割データ列を送信する時に、クロック信号が同時に送信されるわけではなく、クロック信号は、送信される分割データ列に重畳されている。従って、受信装置では、受信した分割データ列から、クロック信号をリカバリーし、リカバリーしたクロック信号（リカバリークロック）を使用して分割データ列をラッチし、シリアル・パラレル変換を行って元のデータ列を復元する。
【０００９】
しかし、前述の通り、分割データ列の間でレーン毎にスキューが発生することがある。また、送信装置と受信装置は、それぞれ別々のクロック信号（ローカルクロック）に同期して動作している。そのため、両者のローカルクロックの間には位相差（クロックスキュー）がある場合がある。従って、ＰＣＩ  Ｅｘｐｒｅｓｓを採用する受信装置では、両者の間のクロックスキューの調整のために、次に述べるスキップ処理（ＳＫＩＰ処理）が行われる。
【００１０】
ＳＫＩＰ処理では、ＳＫＩＰオーダードセットとして、１個のＣＯＭシンボルに続いて３個のＳＫＰシンボルが送信され、その後、必要に応じて有効データが送信される。受信装置は、各々のレーン毎に、所定数の分割データ列を一時的に保持する弾性バッファを備えており、ＳＫＰシンボルの個数を±２個の範囲で加減することで、送信装置と受信装置との間のクロックスキューによる弾性バッファのオーバーフローやアンダーフローの発生を回避する。
【００１１】
すなわち、ＳＫＩＰ処理によって、ＳＫＰシンボルの個数は、１〜５個の範囲で各々のレーン毎に変化する可能性がある。
【００１２】
しかし、全てのレーンに対して同数のＳＫＰシンボルを加減できれば問題はないが、各々のレーン毎に、ＳＫＰシンボルの加減数が異なる可能性は十分にある。その場合、レーン間デスキューでＣＯＭシンボルの位置を合わせたとしても、ＣＯＭシンボルに続くＳＫＰシンボルの個数がレーン毎に異なるため、その後に続く有効データの位置もずれる。従って、元のデータ列を復元するためには有効データの位置を合わせる必要がある。
【００１３】
ここで、本発明の先行技術文献として、例えば特許文献１などがある。
【００１４】
特許文献１には、トレーニングシーケンス（ＴＳ）の場合には、ＣＯＭシンボルを用いてスキュー調整を行い、通常転送時のＳＫＩＰ処理では、各々のレーンに対し、ＳＫＰシンボルの付加、削除情報に基づいてスキュー調整の処理を行うことが開示されている。
【００１５】
従って、特許文献１では、トレーニングシーケンスの場合と通常転送時の場合の処理を分離する必要がある。また、特許文献１では、弾性バッファにおいてＳＫＰシンボルが、いくつ追加されたのか、もしくは、削除されたのかを判別してスキュー調整を行う必要がある。
【００１６】
【特許文献１】特開２００６−２０２２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、前記従来技術に基づく問題点を解消し、シンボルの個数が各々のレーン毎に異なる場合であっても、簡単な処理によって、各々のレーンに対応する分割データ列の間のスキュー調整を行うことができる受信装置を提供することにある。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明は、第１の期間において、送信すべきデータ列を分割して生成した複数の分割データ列であって、第１のシンボルを共通のタイミングで所定の個数だけ連続して挿入した後に、それぞれに対応するレーンを通じて送信された複数の分割データ列を受信する受信装置において、
前記複数のレーンのそれぞれに対応して、前記受信した分割データ列の前記第１のシンボルの個数を１個もしくはそれ以上に調整する処理を行って処理済み分割データ列を生成する弾性バッファを備えるとともに、前記処理済み分割データ列の間のスキュー調整を行うスキュー調整回路を備え、
前記スキュー調整回路は、前記複数のレーンのそれぞれに対応して設けられて前記処理済み分割データ列内の前記第１のシンボルを判別する判別回路を有し、該判別回路の判別結果に基づいて、それぞれの前記処理済み分割データ列における前記第１のシンボルの終了を検出し、該終了を検出したタイミングに基づいて前記処理済み分割データ列の間のスキュー調整を行うことを特徴とする受信装置を提供するものである。
【００１９】
ここで、前記第１の期間において、前記第１のシンボルは、第２のシンボルに続いて挿入され、
前記第１の期間と異なる第２の期間において、前記分割データ列は、前記第２のシンボルのみが共通のタイミングで挿入されて送信され、
前記判別回路は、前記処理済み分割データ列内の前記第１のシンボルに加えて前記第２のシンボルを、前記第１のシンボルとを区別することなく判別し、前記スキュー調整回路は、前記第１の期間および第２の期間の両方において、前記判別回路の判別結果に基づいて、前記それぞれの処理済み分割データ列における前記第１もしくは第２のシンボルの終了を検出し、該終了を検出したタイミングに基づいて前記処理済み分割データ列の間のスキュー調整を行うことが好ましい。
【００２０】
また、前記複数のレーンのそれぞれに対応して設けられ、クロック信号に同期して対応する前記処理済み分割データ列のデータを一時的に記憶するバッファをさらに備え、
前記スキュー調整回路は、前記バッファに一時的に記憶したデータの読み出しのタイミングを調整することによって前記スキュー調整を行うことが好ましい。
【００２１】
また、前記スキュー調整回路は、さらに、
前記複数のレーンのそれぞれに対応して設けられ、同一のレーンの前記処理済み分割データ列における前記第１のシンボルの終了を検出した時点から、前記クロック信号に同期してカウントするカウンタを有し、全ての前記処理済み分割データ列における前記第１のシンボルの終了を検出した時点での前記それぞれのカウンタのカウント値に応じて、前記バッファに一時的に記憶したデータの読み出しのタイミングを調整するか、もしくは、
前記処理済み分割データ列のいずれかにおいて最初に前記第１のシンボルの終了を検出した時点から、前記クロック信号に同期してカウントするカウンタを有し、前記処理済み分割データ列のそれぞれにおいて前記第１のシンボルの終了を検出した時点での前記カウンタのカウント値に応じて、前記バッファに一時的に記憶したデータの読み出しのタイミングを調整することが好ましい。
【００２２】
また、前記分割データ列をシリアルデータ列として受信し、パラレルデータ列に変換してから前記弾性バッファによる処理を行うことが好ましい。
【発明の効果】
【００２３】
本発明の受信装置によれば、シンボルの個数が各々のレーンに対応する処理済み分割データ列毎に異なる場合であっても、特許文献１のように、シンボルの加減の情報を使用することなく、簡単な回路構成で、かつ、簡単な処理によって、処理済み分割データ列における第１のシンボルの終了を検出し、その検出タイミングに基づいて処理済み分割データ列の間のスキューを調整することができる。
【発明を実施するための最良の形態】
【００２４】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の受信装置を詳細に説明する。
【００２５】
図１は、本発明の受信装置の構成を表す一実施形態のブロック図である。同図に示す受信装置１０は、ＰＣＩ  Ｅｘｐｒｅｓｓの規格に従い、複数のレーンを使用して、図示していない送信装置との間でシリアル通信を行い、送信装置から、複数のレーンを通じて送信されてくる分割データ列を受信する。受信装置１０は、０〜ｎ個（ｎは１以上の整数）のレーンに対応するパイプレーン１２（０〜ｎ）と、レーンデスキュー処理回路１４とによって構成されている。
【００２６】
パイプレーン０は、シリアライザ・デシリアライザ１６と、弾性バッファ１８とによって構成されている。
【００２７】
レーン０に対応する分割データ列が、シリアルＩ／Ｆを介してシリアライザ・デシリアライザ１６に入力される。シリアライザ・デシリアライザ１６の出力信号は弾性バッファ１８に入力され、弾性バッファ１８の出力信号は、レーン０に対応するＳＫＩＰ処理済み分割データ列として、レーンデスキュー処理回路１４に入力される。そして、レーンデスキュー処理回路１４の出力信号が、スキュー調整済み分割データ列として、受信装置１０の内部バスに出力される。
【００２８】
シリアライザ・デシリアライザ１６は、シリアルＩ／Ｆを介して受信した、レーン０に対応する分割データ列（シリアルデータ列）をパラレルデータ列に変換する、シリアル・パラレル変換器である。
【００２９】
弾性バッファ１８は、シリアライザ・デシリアライザ１６から入力される分割データ列（パラレルデータ列）内のＳＫＰシンボルの個数を１個もしくはそれ以上に調整する処理を行って、ＳＫＩＰ処理済み分割データ列を生成するＳＫＩＰ処理を行う。ＰＣＩ  Ｅｘｐｒｅｓｓの場合、通常転送時には、定期的に、ＳＫＩＰオーダードセットとして、１個のＣＯＭシンボルに続いて３個のＳＫＰシンボルが挿入されて送信される。弾性バッファ１８は、このＳＫＰシンボルの個数を±２個の範囲で加減する。
【００３０】
また、パイプレーン１〜ｎも、レーン０がレーン１〜ｎのいずれかに置き換えられる点を除いてパイプレーン０と同様のものである。各々のパイプレーン０〜ｎにおいて、送信装置から送信されてくる、レーン０〜ｎに対応する分割データ列が受信される。
【００３１】
以下、４つのレーン（図１において、ｎ＝３の場合）を使用する場合を例に挙げてレーンデスキュー処理回路１４について説明する。
【００３２】
図２は、図１に示すレーンデスキュー処理回路の構成を表すブロック図である。同図に示すレーンデスキュー処理回路１４は、スキュー調整回路２０と、４つのＦＩＦＯ２２（ＦＩＦＯｉ）（ｉは０，１，２，３）（以下同じ）とによって構成されている。
【００３３】
スキュー調整回路２０は、図２に示すように、各々のＦＩＦＯｉに入力されるＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮの間のスキュー調整を行うもので、アドレス信号Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲを出力する。アドレス信号Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲは、各々対応するＦＩＦＯｉに入力される。
【００３４】
図３は、図２に示すスキュー調整回路２０の構成を表すブロック図である。同図に示すスキュー調整回路２０は、各々のレーンｉに対応して設けられた、ＣＯＭ，ＳＫＰ判別回路２４（ＣＯＭ，ＳＫＰ判別ｉ）およびスキュー調整カウンタ２６（スキュー調整カウンタｉ）と、全レーンＣＯＭ，ＳＫＰ判定回路２８とによって構成されている。
【００３５】
ＣＯＭ，ＳＫＰ判別回路２４は、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮ内のＣＯＭシンボルないしＳＫＰシンボルを判別（ＣＯＭシンボルとＳＫＰシンボルとを区別なく判別）し、その判別結果として個別判別信号ＳＭＢＬｉを出力する。これと共に、ＣＯＭシンボルおよびＳＫＰシンボルの終了を検出して、個別終了信号ＥＮＤ１ｉを出力する。これらの信号は、対応するレーンのスキュー調整カウンタ２６に入力される。個別終了信号ＥＮＤ１ｉは、全レーンＣＯＭ，ＳＫＰ判定回路２８にも入力される。
【００３６】
スキュー調整カウンタ２６は、ＣＯＭ，ＳＫＰ判別回路２４の判別結果である個別終了信号ＥＮＤ１ｉに基づいて、それぞれのＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮにおけるＳＫＰシンボルの終了を検出したタイミングを把握する。そして、スキュー調整カウンタ２６は、ＳＫＰシンボルの終了を検出したタイミングに基づいて、アドレス信号Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲをＦＩＦＯ２２に供給する。これによって、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮの間のスキュー調整を行う。
【００３７】
ここで、ＣＯＭ，ＳＫＰ判別回路２４について具体例を挙げて説明する。
【００３８】
ＣＯＭ，ＳＫＰ判別回路２４は、図４に示すように、ＣＯＭシンボルないしＳＫＰシンボルの比較回路（ＣＯＭないしＳＫＰの比較回路）３０と、フリップフロップ（ＦＦ）３２と、ＡＮＤ回路３４とによって構成されている。
【００３９】
ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮが、ＣＯＭシンボルないしＳＫＰシンボルの比較回路３０に入力され、その出力信号ＳＭＢＬｉが、ＡＮＤ回路３４の一方の入力端子（反転入力端子）と、ＦＦ３２のデータ入力端子に入力される。ＦＦ３２のデータ出力信号が、ＡＮＤ回路３４の他方の入力端子に入力され、ＡＮＤ回路３４から、個別終了信号ＥＮＤ１ｉが出力される。図示していないが、ＦＦ３２は、受信装置１０のクロック信号（ローカルクロック）に同期して動作する。
【００４０】
ＣＯＭシンボルおよびＳＫＰシンボルは、あらかじめ定められた、それぞれのシンボルであることを表すビットパターンを有しており、有効データとの区別が可能である。そのため、ＣＯＭ，ＳＫＰ判別回路２４は、ＣＯＭシンボルないしＳＫＰシンボルの比較回路３０が、ＣＯＭシンボルおよびＳＫＰシンボルのビットパターンと、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮに含まれるデータのビットパターンとを比較することによって、ＣＯＭシンボルないしＳＫＰシンボルであるかないかを判別する。
【００４１】
この結果、図６のタイミングチャートに示すように、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮがＣＯＭシンボルないしＳＫＰシンボルである期間、ＣＯＭシンボルないしＳＫＰシンボルの比較回路３０の比較結果ＳＭＢＬｉとしてＨ（ハイレベル）が出力される。
【００４２】
ＣＯＭシンボルないしＳＫＰシンボルの比較回路３０の比較結果ＳＭＢＬｉは、ＦＦ３２に入力され、ローカルクロックの立ち上がりでＦＦ３２に保持される。そして、ＡＮＤ回路３４によって、比較結果ＳＭＢＬｉの反転信号とＦＦ３２の出力信号とのＡＮＤ論理がとられ、比較結果ＳＭＢＬｉの立ち下がりが検出される。言い換えると、最後のＣＯＭシンボルないしＳＫＰシンボルの終了のタイミングが検出され、ＡＮＤ回路３４から、ローカルクロックの１周期の期間、個別終了信号ＥＮＤ１ｉが出力される。
【００４３】
続いて、全レーンＣＯＭ，ＳＫＰ判定回路２８は、４つのＣＯＭ，ＳＫＰ判別回路ｉから入力される個別終了信号ＥＮＤ１ｉに応じて、全てのレーン０〜３に対応するＣＯＭ，ＳＫＰ判別回路０〜３でＣＯＭシンボルないしＳＫＰシンボルの終了が検出されたと判定すると、その時点で全体終了信号ＥＮＤ２としてＨを出力する。全体終了信号ＥＮＤ２は、各々のスキュー調整カウンタｉに入力される。
【００４４】
スキュー調整カウンタｉは、対応するＣＯＭ，ＳＫＰ判別回路ｉから個別終了信号ＥＮＤ１ｉとしてＨが入力される、すなわち、対応するレーンｉのＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮにおけるＳＫＰシンボルの終了を検出した時点から、ローカルクロックに同期してカウントを開始する。そして、全レーンＣＯＭ，ＳＫＰ判定回路２８から全体終了信号ＥＮＤ２としてＨが入力されるとカウントを停止する。
【００４５】
スキュー調整カウンタｉは、カウント停止時点でのカウント値Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲを保持する。各々のスキュー調整カウンタｉから出力されるカウント値Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲは、各々対応するＦＩＦＯｉに入力される。
【００４６】
次に、ＦＩＦＯ２２について説明する。
【００４７】
ＦＩＦＯｉは、それぞれのレーンｉに対応して設けられ、ローカルクロックに同期して、対応するＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮを一時的に記憶する。ＳＫＰシンボルの個数は、送信時には３であり、弾性バッファ１８において±２の範囲で調整される。従って、各々の弾性バッファ１８から出力されるスキュー調整済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮは、１〜５個の範囲のＳＫＰシンボルを含む。
【００４８】
この場合、ＦＩＦＯｉは、図５に示すように、５つのフリップフロップ（ＦＦ）３６ａ、３６ｂ、３６ｃ、３６ｄ、３６ｅと、マルチプレクサ３８とによって構成することができる。
【００４９】
５つのＦＦ３６ａ〜ｅは直列に接続され、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮが、１段目のＦＦ３６ａに入力される。各々のＦＦ３６ａ〜ｅの出力信号が、マルチプレクサ３８のデータ入力端子に入力され、アドレス信号Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲが、各々対応するスキュー調整回路ｉからマルチプレクサ３８の選択入力端子に入力される。マルチプレクサ３８からは、スキュー調整済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＯＵＴが出力される。
【００５０】
各々のＦＦ３６ａ〜ｅは、ローカルクロックに同期して動作する。ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮは、ローカルクロックの１クロック毎に、直列に接続された５つのＦＦ３６ａ〜ｅからなるシフトレジスタ内で順次後段のＦＦにシフトされる。そして、アドレス信号Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲの状態に応じて、５つのＦＦ３６ａ〜ｅの出力信号のうちの１つが、スキュー調整済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＯＵＴとして、マルチプレクサ３８から出力される。
【００５１】
スキュー調整回路２０は、全てのＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮにおけるＳＫＰシンボルの終了を検出した時点での、それぞれのスキュー調整カウンタｉのカウント値Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲに応じて、ＦＩＦＯｉに一時的に記憶したデータの読み出しのタイミングを調整する。
【００５２】
次に、受信装置１０全体の動作について、図６に示すタイミングチャートを参照して説明する。
【００５３】
図６のタイミングチャートにおいて、ＰＣＬＫは、受信装置のクロック信号（ローカルクロック）である。なお、同図では、説明を簡単にする目的から、Ｌ２＿ＤＡＴＡ＿ＩＮおよびその他のレーン２に対応する波形の表示を省略している。
【００５４】
送信装置から、各々のレーンｉを通じて送信されてくる分割データ列には、１個のＣＯＭシンボル、３個のＳＫＰシンボル、有効データが、この順で連続して含まれているとする。各々のレーンｉに対応する分割データ列は、対応するシリアライザ・デシリアライザ１６によって、シリアルデータ列からパラレルデータ列に変換され、続く弾性バッファ１８によって、ＳＫＩＰ処理が行われる。
【００５５】
ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮでは、図６のタイミングチャートに示すように、送信装置においては共通のタイミングで挿入したＣＯＭシンボルが、レーン間で転送時間が異なる場合には、レーン毎に異なった位置にある。さらに、弾性バッファ１８でのＳＫＰシンボルの追加もしくは削除により、レーン毎にＳＫＰシンボルの個数が異なっている（同じ場合も含む）。このため、ＣＯＭシンボルおよびＳＫＰシンボルに続く先頭の有効データｄａｔｉ０の位置が、レーン毎に異なっている。ＳＫＩＰ処理後の分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮは、ＦＩＦＯｉに一時的に順次格納されると同時に、スキュー調整回路２０にも入力される。
【００５６】
スキュー調整回路２０では、まず、各々のＣＯＭ，ＳＫＰ判別回路ｉによって、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮが、ＣＯＭシンボルないしＳＫＰシンボルであるかないかの判別が行われる。
【００５７】
ＣＯＭ，ＳＫＰ判別回路ｉによって、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮがＣＯＭシンボルないしＳＫＰシンボルであると判別されると、各々対応するスキュー調整カウンタｉがクリアされる（０になる）。一方、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮが、ＣＯＭシンボルまたはＳＫＰシンボルではないと判別されると、各々対応するスキュー調整カウンタｉはクリアが解除され、ローカルクロックに同期してカウントアップを開始する。
【００５８】
例えば、レーン０では、図６に示すタイミングチャートにおいて２クロック目で、ＳＫＩＰ処理済み分割データ列Ｌ０＿ＤＡＴＡ＿ＩＮがＣＯＭシンボルであると判別され、続く３〜５クロック目でＳＫＰシンボルであると判別される。従って、レーン０のＣＯＭシンボルないしＳＫＰシンボルの比較回路３０の比較結果ＳＭＢＬ０は２〜５クロックの期間でＨとなる。その後、６クロック目で、ＳＫＰシンボルの終了が検出され、ＣＯＭ，ＳＫＰ判別回路２４の出力信号ＥＮＤ１０はＨとなる。そして、次の７クロック目から、スキュー調整カウンタ２６のカウント値Ｌ０＿ＦＩＦＯ＿ＡＤＤＲはカウントアップする。
【００５９】
レーン１〜３についても、レーン０の場合と同様である。
【００６０】
そして、全てのレーンに対応するＣＯＭ，ＳＫＰ判別回路２４において、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮがＣＯＭシンボルないしＳＫＰシンボルであると判別された後、ＣＯＭシンボルないしＳＫＰシンボルの終了が検出されると、ＥＮＤ２（図６中、省略）がＨとなる。この時点で全てのスキュー調整カウンタ２６のカウントアップが停止され（図６中、点線で示す９クロック目）、その時点におけるカウント値Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲが保持される。
【００６１】
各々のスキュー調整カウンタｉに保持されたカウント値Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲは、対応するＦＩＦＯｉに入力される。各々のＦＩＦＯｉでは、ＳＫＩＰ処理済み分割データ列Ｌｉ＿ＤＡＴＡ＿ＩＮが、ローカルクロックに同期して順次後段のＦＦにシフトされる。そして、対応するスキュー調整カウンタｉから入力されたカウント値Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲに応じて、ＦＩＦＯｉを構成する５個のＦＦ３６ａ〜ｅの出力信号のうち、どのＦＦの出力信号が、ＦＩＦＯｉの出力信号Ｌｉ＿ＤＡＴＡ＿ＯＵＴとして出力されるかが決定される。
【００６２】
その結果、図６のタイミングチャートに点線で示すように、９クロック目以降のＦＩＦＯｉの出力信号Ｌｉ＿ＤＡＴＡ＿ＯＵＴは、各々のレーン間でスキューが揃うように調整される。すなわち、全てのレーン０〜３に対応する出力信号Ｌ０＿ＤＡＴＡ＿ＯＵＴ〜Ｌ３＿ＤＡＴＡ＿ＯＵＴの有効データの位置が一致している。図示しないレーン２のＳＫＩＰ処理済み分割データ列Ｌ２＿ＤＡＴＡ＿ＩＮについては、最も早くＣＯＭシンボルとなるレーン０のＳＫＩＰ処理済み分割データ列Ｌ０＿ＤＡＴＡ＿ＩＮがＣＯＭシンボルになると同時、もしくは、それよりも後にＣＯＭシンボルとなり、最も遅くＳＫＰシンボルが終了するレーン３のＳＫＩＰ処理済み分割データ列Ｌ３＿ＤＡＴＡ＿ＩＮのＳＫＰシンボルが終了すると同時、もしくは、それより前に、ＳＫＰシンボルが終了するものとする。この場合には、全てのレーン０〜３の出力信号Ｌ０＿ＤＡＴＡ＿ＯＵＴ〜Ｌ３＿ＤＡＴＡ＿ＯＵＴの有効データの位置が一致する。
【００６３】
以上のように、受信装置１０では、ＳＫＩＰ処理によって、ＳＫＰシンボルの個数が各々のレーンに対応するＳＫＩＰ処理済み分割データ列毎に異なる場合であっても、ＳＫＩＰ処理におけるＳＫＰシンボルの加減の情報を使用することなく、簡単な回路構成で、かつ、簡単な処理によって、ＳＫＩＰ処理済み分割データ列におけるＳＫＰシンボルの終了を検出し、その検出タイミングに基づいてＳＫＩＰ処理済み分割データ列の間のスキューを調整することができる。
【００６４】
なお、上記実施形態において、ＣＯＭシンボルないしＳＫＩＰシンボルの比較回路、および、ＦＩＦＯの具体例を挙げて説明したが、これらの回路は、同様の機能を果たすことができる各種構成の回路が利用可能である。例えば、上記実施形態においては、各々のレーンにスキュー調整カウンタ２６を設け、対応するレーンでのＣＯＭシンボルもしくはＳＫＰシンボルの終了を検出した時点からローカルクロックに同期してカウントを行い、全レーンにおいてＣＯＭシンボルもしくはＳＫＰシンボルの終了を検出した時点のカウント値Ｌｉ＿ＦＩＦＯ＿ＡＤＤＲを保持するようにした。これに対して、全レーンに対して共通のカウンタを設け、いずれかのレーンにおいて最初にＣＯＭシンボルもしくはＳＫＰシンボルの終了を検出した時点からローカルクロックに同期してカウントを行うことも可能である。この場合、各々のレーンに対応させて、各々のレーンにおけるＣＯＭシンボルもしくはＳＫＰシンボルの終了を検出した時点での共通のカウンタのカウント値を保持するレジスタを設ける。そして、各々のレジスタに保持されたカウント値を利用して、各々のレーンのＦＩＦＯｉの出力信号の選択を行うことが可能である。
【００６５】
また、全レーンＣＯＭ，ＳＫＰ判定回路、およびスキュー調整カウンタの具体的な回路構成は例示していないが、これらの回路も同様の機能を果たすことができる各種構成の回路が利用可能である。全レーンＣＯＭ，ＳＫＰ判定回路については、例えば、各々のレーンに対応させて、各々のレーンのＥＮＤ１ｉ信号がＨレベルになった時にその値を保持するラッチと、これらのラッチに保持された値の論理積を演算するＡＮＤゲートとで構成することが可能である。スキュー調整カウンタについては、それぞれのレーンに対応するＳＭＢＬｉ信号でクリアされ、ローカルクロックに同期してカウントアップするカウンタが利用できる。
【００６６】
また、４レーンの場合を例示して説明したが、本発明は、２レーン以上を使用する場合に適用可能である。レーン数に上限はない。また、ＦＩＦＯをＦＦで構成する場合、そのＦＦの段数は、弾性バッファによって、シンボルの個数が変化する範囲に応じて決定すれば良い。上記実施形態では、ＳＫＰシンボルの個数が１〜５個の範囲で変化する可能性があるため、ＦＦの段数を５段としている。ＦＦの段数は必要数以上の段数が設けられていれば良い。
【００６７】
また、分割データ列は、送信装置から受信装置に送信すべきデータ列を分割して生成されるものである。例えば、４つのレーンを使用して３２ビットのデータ列を送信する場合、これを４つの８ビットの分割データ列に分割して、各々のレーンを通じて送信する。
【００６８】
各々のレーンに対応する分割データ列は、第１の期間（データを転送している期間）において、第１のシンボルを共通のタイミングで所定の個数（１以上）だけ連続して挿入した後に、それぞれに対応するレーンを通じて送信される。ＰＣＩ  Ｅｘｐｒｅｓｓの場合には、ＣＯＭシンボルを共通のタイミングで挿入し、続いて、第１のシンボルとしてＳＫＰシンボルを共通のタイミングで所定の個数だけ連続して挿入して、送信する。
【００６９】
ここで、特許文献１の図１には、１つのパケットを構成するデータが分割されてレーン毎の分割データ列が生成された様子が示されている。図示された例では、パケットに含まれるデータは、その全てが有効データである。しかし、実際には、パケットを構成するデータの送信が終了すると、その後に、無効データを送信することができる期間が存在する。ＰＣＩ  Ｅｘｐｒｅｓｓでは、この期間に、ＣＯＭシンボルと所定個数のＳＫＰシンボルの連続とからなる、ＳＫＩＰオーダードセットが挿入される。
【００７０】
ＰＣＩ  Ｅｘｐｒｅｓｓの場合、上記のように、第１の期間においては、定期的にＳＫＩＰオーダードセットが挿入される。これに対して、トレーニングシーケンス（データ転送を行う前に、転送系のコンフィグレーションを行うシーケンス）においては、ＣＯＭシンボルのみが挿入されて、ＴＳオーダードセット（ＣＯＭシンボル＋トレーニングシーケンス用のデータ）が送信される。
【００７１】
第１の期間において、ＳＫＰシンボルがＣＯＭシンボルに続いて挿入され、第１の期間と異なる第２の期間（トレーニングシーケンス中の、ＴＳオーダードセットが送信される期間）において、分割データ列は、ＣＯＭシンボルのみが共通のタイミングで挿入されて送信される。なお、トレーニングシーケンスにおいても、弾性バッファのオーバーフローやアンダーフローの発生を防止する目的から、データ転送時と同様に、ＳＫＩＰオーダードセットが定期的に挿入される。
【００７２】
上記実施形態において、ＣＯＭ，ＳＫＰ判別回路２４は、ＣＯＭシンボルとＳＫＰシンボルとを区別することなく判別する。このため、分割データ列にＣＯＭシンボル（第２のシンボル）が単独で挿入されて送信される場合（例えば、上記ＴＳオーダードセットが送信される場合）であっても、ＳＫＰシンボル（第１のシンボル）が単独で挿入されて送信される場合であっても、もしくは、両者が任意の順番で組み合わされて挿入されて送信された場合（例えば、上記ＳＫＩＰオーダードセットが挿入されて送信される場合）であっても、ＣＯＭシンボルもしくはＳＫＰシンボルの終了を検出することができる。従って、このＣＯＭ，ＳＫＰ判別回路２４を備えたスキュー調整回路２０は、上記いずれの場合であっても、同一の処理で、分割データ列間のスキュー調整を行うことができる。
【００７３】
また、シリアルデータ列として受信した分割データ列をパラレルデータ列に変換することなく、シリアルデータ列のままの状態で弾性バッファ以降の処理を行うことも可能である。
【００７４】
また、実施形態では、ＰＣＩ  Ｅｘｐｒｅｓｓを採用する受信装置１０を例示して説明した。しかし、本発明は、ＰＣＩ  Ｅｘｐｒｅｓｓに限らず、送信すべきデータ列を複数に分割した分割データ列のそれぞれに、ＳＫＰシンボルに相当する１以上のシンボルを挿入してから、対応するレーンを通じて送信されるシリアルデータ列を受信する受信装置であって、受信した分割データ列のそれぞれへのシンボルの加減が行われる場合に好適に適用可能である。
【００７５】
また、ＰＣＩ  Ｅｘｐｒｅｓｓの場合、ＳＫＩＰオーダードセットとして、１個のＣＯＭシンボルに続き３個のＳＫＰシンボルが挿入されて送信される。しかし、本発明は、少なくともＳＫＰシンボルに相当する複数のシンボルが連続して挿入されて送信される場合に適用可能である。
【００７６】
本発明は、基本的に以上のようなものである。
以上、本発明の受信装置について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【図面の簡単な説明】
【００７７】
【図１】本発明の受信装置の構成を表す一実施形態のブロック図である。
【図２】図１に示すレーンデスキュー処理回路の構成を表すブロック図である。
【図３】図２に示すスキュー調整回路の構成を表すブロック図である。
【図４】図３に示すＣＯＭ，ＳＫＰ判別回路の構成を表す概略図である。
【図５】図２に示すＦＩＦＯの構成を表す回路図である。
【図６】図２に示す受信装置の動作を表すタイミングチャートである。
【符号の説明】
【００７８】
１０  受信装置
１２  パイプレーン
１４  レーンデスキュー処理回路
１６  シリアライザ・デシリアライザ
１８  弾性バッファ
２０  スキュー調整回路
２２  ＦＩＦＯ
２４  ＣＯＭ，ＳＫＰ判別回路
２６  スキュー調整カウンタ
２８  全レーンＣＯＭ，ＳＫＰ判定回路
３０  ＣＯＭシンボルないしＳＫＰシンボルの比較回路
３２、３６ａ、３６ｂ、３６ｃ、３６ｄ、３６ｅ  フリップフロップ
３４  ＡＮＤ回路
３８  マルチプレクサ
【図１】
2008172657.tif 000003
【図２】
2008172657.tif 000004
【図３】
2008172657.tif 000005
【図４】
2008172657.tif 000006
【図５】
2008172657.tif 000007
【図６】
2008172657.tif 000008