(57)【要約】【課題】受信開始時の複数のレーンの中の先頭レーンのＡＭ直後の有効データビットも復元される効率のよいパラレルデータ通信用の受信回路の実現。【解決手段】複数のレーンLane0-3で受信したパラレルデータのアライメントマーカAMに基づいて、レーン間のスキューを除去するデスキュー部41と、シリアルデータに変換するパラレル・シリアル変換部42と、パラシリ変換データを復元するデスクランブル処理を行うデスクランブル部43と、複数のレーンのデータを保持すると共に、アライメントマーカに基づいて、複数レーンの順序を検出し、先頭レーンのアライメントマーカ直後のデータを識別し、最終レーンのアライメントマーカ直前のデータを、デスクランブル部へ出力する制御部60と、を有し、デスクランブル部は、パラレル・シリアル変換部からのデータの一部と直前のデータを入れ替えてデスクランブル処理を行うパラレルデータ受信回路。【選択図】図７
2015091094.tif 000002
【特許請求の範囲】
【請求項１】
複数のレーンで受信したパラレルデータのアライメントマーカに基づいて、前記複数のレーンの各レーン間のタイミングのずれを示すスキューを除去するデスキュー部と、
前記デスキュー部からのデータをシリアルデータに変換するパラレル・シリアル変換部と、
前記パラレル・シリアル変換部からのデータを復元するデスクランブル処理を行うデスクランブル部と、
前記パラレルデータの受信開始時において、前記複数のレーンの受信データを保持すると共に、前記アライメントマーカに基づいて、前記複数のレーンの順序を検出し、検出した前記複数のレーンの順序に基づいて前記複数のレーンの中の先頭レーンの前記アライメントマーカ直後のデータを識別し、識別した前記先頭レーンの前記アライメントマーカ直後のデータの直前のデータである前記複数のレーンの中の最終レーンの前記アライメントマーカ直前のデータを、前記デスクランブル部へ出力する制御部と、を有し、
前記デスクランブル部は、前記パラレルデータの受信開始時において、前記パラレル・シリアル変換部からのデータの一部と前記制御部から出力された前記直前のデータを入れ替えたデータの前記デスクランブル処理を行うことを特徴とするパラレルデータ受信回路。
【請求項２】
前記制御部は、
前記各レーンの前記アライメントマーカを検出するアライメントマーカ検出部と、
前記各レーンの前記アライメントマーカに含まれる前記複数のレーンの順序を示す情報を識別し、前記複数のレーンの順序と前記各レーンのデータの順序を対応づけたレーン情報を出力するレーン識別部と、
前記アライメントマーカからの時間を示すカウント値を出力するアライメントマーカ周期カウンタと、
前記アライメントマーカ検出部の検出した前記複数のレーン間のスキューの差を示すスキュー値オフセットを算出するスキュー値オフセット算出部と、
前記レーン情報、前記カウント値、および前記スキュー値オフセット、および前記アライメントマーカに応じて設定される先頭位置情報に基づいて、前記直前のデータを識別して出力すると共に、前記デスクランブル処理の開始を指示する信号を生成する位置計算部と、を有することを特徴とする請求項１に記載のパラレルデータ受信回路。
【請求項３】
前記デスキュー部は、前記アライメントマーカに基づいて前記スキューの調整を完了した場合にデスキュー完了通知信号を出力し、
前記制御部は、前記デスキュー完了通知信号を受信した場合に、動作を停止することを特徴とする請求項１または２に記載のパラレルデータ受信回路。
【請求項４】
前記デスクランブル部は、前記デスキュー完了通知信号に基づいて前記パラレルデータが連続受信されると判定された場合には、前記パラレル・シリアル変換部からのデータを維持してデスクランブル処理を行うことを特徴とする請求項３に記載のパラレルデータ受信回路。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、パラレルデータ受信回路に関する。
【背景技術】
【０００２】
近年、データ通信の高速化が進められており、シリアルデータ通信では４０Ｇｂｉｔ／ｓの送受信技術が実用化されている。現在、さらなるデータ通信の高速化が求められているが、現状ではシリアルデータ通信による一層の高速化は難しくなっている。そのため、現在実用化されているシリアルデータ通信よりも高速なデータ通信を、安価な装置で行えることが望まれている。
【０００３】
シリアルデータ通信よりも安価な装置で高速通信を実現する技術にパラレルデータ通信がある。パラレルデータ通信は、複数のレーンでデータを並列（パラレル）に伝送する技術であり、１レーンのデータ伝送速度がシリアルデータ通信と同じであれば、データ伝送速度はレーン数倍になる。
【０００４】
パラレルデータ通信では、高速通信用の規格(100GE and 40GE PCS(MLD) Proposal)が提案されている。この規格によれば、パラレルデータ通信における送信側では、送信する元データのビット値の列に対して、所定ビット数分シフトしたデータ列のビット値を加えるスクランブル処理（暗号化処理）を行う。その後、スクランブル処理したデータ列に対してシリアル・パラレル変換を行い、複数のレーンに対応した複数のデータ列を生成する。そして、各データ列において、所定ビット数ごとに、後述する送信時のレーン間のスキュー除去に利用するアライメントマーカ（ＡＭ、スキュー調整用のレーンの識別情報）を挿入した後、出力部から複数の伝送線路（レーン）にデータ信号を出力する。
【０００５】
データ信号は、複数のレーンを介して受信側に伝送される。受信側では、複数のレーンで伝送されたデータ信号を取り込み、複数のデータ列を生成する。複数のレーンの伝送速度に差（スキュー）があるため、複数のデータ列は、スキューを有する。そこで、各データ列のアライメントマーカ（ＡＭ）を抽出し、複数のデータ列のＡＭの位置を一致させることで、複数のレーン間のスキューの除去を行うデスキュー処理を行う。デスキュー処理後、位相の一致した複数のデータ列から、不要になったＡＭの削除を行う。ＡＭを削除した複数のデータ列は、パラレル・シリアル変換され、１列のデータ列が生成される。そして、１列のデータ列に対して、上記のスクランブル処理と逆のデスクランブル処理（復号処理あるいは復元処理）を行うことにより、元データと同じデータ列が復元される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−０５５２８１号公報
【特許文献２】特開平０５−２１９４８８号公報
【特許文献３】特開２０１２−０１９２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のように、受信側では、ＡＭを削除した複数のデータ列をパラレル・シリアル変換した１列のデータ列に対してデスクランブル処理を行う。スクランブル処理は、仕様上自己同期型であり、有効データビットを復元するためには、有効データビットの１つ前のデータビットが必要である。つまり、複数のレーンの中の先頭レーンのＡＭ直後のデータビットを復元するためには、複数のレーンの中の最終レーンのＡＭ直前のデータビットが必要となる。しかし、受信開始時は、複数のレーン間のスキューが不明のため、受信開始時のデスキュー処理では、複数のレーン間のスキューを検出しながらスキュー調整するために、ＡＭより前の各レーン間のデータのタイミングは変動してしまう。そのため、デスキュー処理中のＡＭより前のデータには信頼性がなく、ＡＭより前のデータは削除しており、デスクランブル処理が行われるデータ列には、受信開始時のＡＭ直後の有効データビットの１つ前のデータビットが含まれておらず、最初のデータビットを復元できなかった。
【０００８】
そのため、例えば、受信開始時の複数のレーンの中の先頭レーンのＡＭ直後の有効データビットは使用しないようにするなどの対策を行っており、データ効率が低いという問題があった。
【０００９】
開示の実施形態は、受信開始時の複数のレーンの中の先頭レーンのＡＭ直後の有効データビットも復元される効率のよいパラレルデータ通信用の受信回路を開示する。
【課題を解決するための手段】
【００１０】
第１の態様のパラレルデータ受信回路は、デスキュー部と、パラレル・シリアル変換部と、デスクランブル部と、制御部と、を有する。デスキュー部は、複数のレーンで受信したパラレルデータのアライメントマーカに基づいて、レーン間のスキューを除去する。パラレル・シリアル変換部は、デスキュー部からのデータをシリアルデータに変換する。デスクランブル部は、パラレル・シリアル変換部からのデータを復元するデスクランブル処理を行う。制御部は、パラレルデータの受信開始時において、複数のレーンの受信データを保持すると共に、アライメントマーカに基づいて、複数のレーンの順序を検出し、検出した複数のレーンの順序に基づいて複数のレーンの中の先頭レーンのアライメントマーカ直後のデータを識別する。制御部は、識別した先頭レーンのアライメントマーカ直後のデータの直前のデータである複数のレーンの中の最終レーンのアライメントマーカ直前のデータを、デスクランブル部へ出力する。デスクランブル部は、パラレル・シリアル変換部からのデータに直前のデータを合わせて、デスクランブル処理を行う。
【発明の効果】
【００１１】
第１の態様によれば、受信開始時の複数のレーンの中の先頭レーンのＡＭ直後のデータ列のすべてのビットを有効に利用できるようになり、データ利用効率が向上する。
【図面の簡単な説明】
【００１２】
【図１】図１は、パラレルデータ通信システムの全体構成を示す図である。
【図２】図２は、パラレルデータ通信システムの各部におけるデータの変化例を示すタイムチャートであり、（Ａ）が送信装置の出力データを、（Ｂ）が受信装置において受信部に取り込まれた受信データを、（Ｃ）がデスキュー処理後のデータを示す。
【図３】図３は、受信装置の構成とデータ列の変化を示す図である。
【図４】図４は、デスクランブル部の行う演算処理を示す図である。
【図５】図５は、図３に示した受信装置のデスキュー部の構成をより詳細に示す図である。
【図６】図６は、受信装置における動作を示すフローチャートである。
【図７】図７は、実施形態１の受信装置の構成を示す図である。
【図８】図８は、実施形態１の受信装置における動作を示すフローチャートである。
【図９】図９は、データ位置検出部の構成を示す図である。
【図１０】図１０は、データ位置検出部に設けられ、上記の仮想レーンの識別を行うレーン識別部の構成を示す図である。
【図１１】図１１は、データ位置検出部の具体的な動作例を示すタイムチャートであり、（Ａ）から（Ｃ）の３つの例を示している。
【図１２】図１２は、実施形態２の受信装置の構成を示す図である。
【図１３】図１３は、実施形態２の受信装置における動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
実施形態を説明する前に、前述の高速通信用の規格(100GE and 40GE PCS(MLD) Proposal)に基づく、基本的な仕様を説明する。
【００１４】
図１は、パラレルデータ通信システムの全体構成を示す図である。
パラレルデータ通信システムは、送信装置１１と、伝送線路１２と、受信装置１３と、を有する。伝送線路１２は、複数のレーンＬ０−Ｌｎ−１と、クロック伝送用のレーンＬｘと、を有する。以下に説明する例では、送信装置１１から受信装置１３に、３本のレーンＬ０−Ｌ３で３つのデータ列が並列（パラレル）に伝送され、レーンＬｘでクロックＣＬＫが伝送される場合を説明する。なお、クロックＣＬＫは、クロック源から、送信装置１１および受信装置１３に、それぞれ供給するようにしてもよい。
【００１５】
図２は、パラレルデータ通信システムの各部におけるデータの変化例を示すタイムチャートであり、（Ａ）が送信装置１１の出力データを、（Ｂ）が受信装置１３において受信部に取り込まれた受信データを、（Ｃ）がデスキュー処理後のデータを示す。
【００１６】
図２は、マルチレーンディストリビューション(Multi-Lane Distribution: MLD)によるデスキュー法が適用される場合の例を示す。図２の（Ａ）に示すように、送信側では、ひと塊のバルクデータを６４ビットごとのブロックに分割し、各ブロックに６４Ｂ／６６Ｂ符号化（スクランブル）が行われる。ここで、スキュー調整用のレーンの識別情報ＡＭ（例えば、特別に符号化された６６ビットのスキュー調整用データや８ビットのスキュー調整用データなど）が、各レーンのブロックの間隙（ここでは４ブロックごと）に挿入され、その後送信される。ここでは、４レーン(Lane)で、それぞれ４ブロックごとにＡＭを挿入しており、１６ブロックＤ０−Ｄ１５がまとめて送信される。
【００１７】
図２の（Ｂ）に示すように、受信側で受信した４つのレーンのデータは、スキューが発生しており、ＡＭの位相（クロック周期）が異なっている。なお、各レーンごとにクロック位相追従機構が設けられ、各レーンのデータはクロックに同期して生成されるものとして示している。
【００１８】
図２の（Ｃ）に示すように、受信側では、各レーンのＡＭを検出してデスキュー処理が行われ、４つのレーンのＡＭが同じ位相になるように調整される。この後、パラレル・シリアル変換およびデスクランブル処理が行われる。
【００１９】
図３は、受信装置の構成とデータ列の変化を示す図である。
受信装置は、デスキュー部２１と、パラレル・シリアル（パラシリ）変換部２２と、デスクランブル部２３と、を有する。なお、図３では、伝送線路からデータ信号を取り込む受信部は省略している。デスキュー部２１は、送信側で挿入されたＡＭを検出し、検出したＡＭを基準として上記のデスキュー処理を行い、レーン間のスキューを除去する。パラシリ変換部２２は、位相の一致した複数のデータ列から、ＡＭを削除し、パラレル・シリアル変換を行い、１つのデータ列に変換する。デスクランブル部２３は、送信側でスクランブルされたデータの復元を行う。
【００２０】
図４は、デスクランブル部２３の行う演算処理を示す図である。図４に示した処理は、前述の規格に規定されているスクランブル処理の逆の処理であり、送信側でスクランブル処理された元のデータブロックを、復元する処理である。この処理については上記の規格に規定されており、広く知られているので、説明は省略する。ここで、このデスクランブル処理では、あるブロックのデータを復元するには、そのブロックの直前のブロックのデータを使用する。
【００２１】
図３に戻って、デスキュー部２１には、４つのレーンからＡＭで区切られた４つのブロックが連続して入力する。図３では、レーン(Lane)０からデータブロックＤ０，Ｄ４，Ｄ８，Ｄ１２が、レーン(Lane)１からデータブロックＤ１，Ｄ５，Ｄ９，Ｄ１３が、それぞれ入力される。また、レーン(Lane)２からデータブロックＤ２，Ｄ６，Ｄ１０，Ｄ１４が、レーン(Lane)３からデータブロックＤ３，Ｄ７，Ｄ１１，Ｄ１５が、それぞれ入力される。図３に示すように、レーン０−３のＡＭの位置はずれている（スキューがある）。ここで、データブロックＤ０−Ｄ１５の直前のデータブロックＤ−１は、レーン(Lane)３のＡＭの前に位置している。
【００２２】
図３に示すように、デスキュー部２１によりデスキュー処理された４つのレーンのデータ列は、ＡＭの位置が一致し、スキューの無い状態になる。パラシリ変換部２２は、位相の一致した複数のデータ列から、ＡＭを削除し、パラレル・シリアル変換を行い、１つのデータ列に変換する。図３では、レーン０のデータＤ０、レーン１のデータＤ１、レーン２のデータＤ２およびレーン３のデータＤ３が、１列のデータに変換されている。図示していないが、この１つのデータ列では、さらにＤ５−Ｄ１５が続いている。
【００２３】
デスクランブル部２３は、データ列Ｄ０−Ｄ１５のデータに対して図４に示したデスクランブル処理を行う。しかし、データ列Ｄ０−Ｄ１５の前のデータブロックＤ−１は、受信開始時においては、複数のレーン間のスキューが不明のため、デスキュー部での複数のレーン間のスキュー検出とスキュー調整のために、削除されており、パラレル・シリアル変換されたデータ列Ｄ０−Ｄ１５には含まれていない。前述のように、データブロックＤ０の復元には、データブロックＤ−１が必要であり、データブロックＤ０が復元できないことになる。なお、Ｄ１以降のデータブロックＤ１−Ｄ１５については復元可能である。
【００２４】
図５は、図３に示した受信装置のデスキュー部２１の構成をより詳細に示す図である。
デスキュー部２１は、４つのレーンに対応した４つのＦＩＦＯ(First-In-First-OUT)３１Ａ−３１Ｄと、リード／ライト制御部３２と、を有する。４つのＦＩＦＯは、リード／ライト制御部３２の出力するライト信号に応じて４つのレーンのデータ列を順に記憶し、リード／ライト制御部３２の出力するリード信号に応じて、記憶した順に出力する。
【００２５】
リード／ライト制御部３２は、４つのレーンのデータ列を監視しており、各レーンでＡＭ検出を２回行ったタイミングで、対応するＦＩＦＯへデータ書き込みを指示するライト信号を出力する。さらに、全レーンのＡＭを検出したタイミングで、前ＦＩＦＯからのデータ読み出しを指示するリード信号を出力する。
【００２６】
図６は、受信装置における動作を示すフローチャートである。
ステップＳ１１では、各レーン毎にＡＭの１回目を検出したかを判定し、検出した場合にはステップＳ１２に進み、検出しなければ最初に戻る。連続してデータブロックを受信する場合には、前の伝送単位のブロックの２回目のＡＭ検出が、１回目のＡＭ検出に相当する。換言すると、ステップＳ１２が進んだ後にデータブロックを受信し、次に連続して、３回目のＡＭ検出が行われる場合には、３回目のＡＭ検出と２回目のＡＭ検出とは同じ処理を行うことになる。
【００２７】
ステップＳ１２では、各レーン毎にＡＭの２回目を検出したかを判定し、検出した場合には、さらに１回目に検出したＡＭと一致するかを判定し、一致すればデスキュー処理が完了したと判断して、ステップＳ１３に進み、それ以外であれば最初に戻る。
【００２８】
ステップＳ１３では、リード／ライト制御部３２が、各レーンで２回目のＡＭ検出を行ったタイミングで、対応するＦＩＦＯへデータ書き込みを指示するライト信号を出力する。これに応じて、対応するＦＩＦＯで、データの書き込みが開始される。
【００２９】
ステップＳ１４では、全レーンで２回目のＡＭ検出を行ったかを判定し、全レーンで２回目のＡＭ検出を行うまで待機し、全レーンで２回目のＡＭ検出を行ったタイミングでステップＳ１５に進む。この時、４つのＦＩＦＯの少なくとも一部はデータを書き込んでいる途中である。
【００３０】
ステップＳ１５では、リード／ライト制御部３２が、全レーンに対してデータの読み出しを指示するリード信号を出力する。これに応じて、全ＦＩＦＯから同期してパラレルにデータが出力される。
【００３１】
ステップＳ１６では、ＡＭは不要なので、削除される。
ステップＳ１７では、４つのデータ列に対してパラレル・シリアル変換が行われ、１つのデータ列が生成される。
ステップＳ１８では、デスクランブル処理を行う。
【００３２】
図６に示した処理は、通常は、ハードウエア回路により高速に行われる。
以上、一般の受信装置１３の構成および処理を説明したが、一連の処理は、受信開始後から２回目に検出したＡＭと、そのＡＭの次に検出されるＡＭに挟まれた一連のデータブロックに対して行われ、データを継続して受信する場合には、以降は、データ受信が完了するまで、ステップＳ１２の処理から行われる。リード／ライト制御部３２は、各レーンで２回目のＡＭ検出を行ったタイミングから、対応するＦＩＦＯへデータ書き込みを指示するので、対応するＦＩＦＯには、２回目に検出したＡＭより前のデータブロックは書き込まれない。そのため、パラシリ変換部２２には、２回目に検出したＡＭより前のデータブロックは供給されず、デスクランブル２３には、一連のデータブロックＤ０−Ｄ１５のみが供給され、Ｄ−１は供給されない。
【００３３】
前述のように、デスクランブル処理でデータブロックＤ０を復元するにはデータブロックＤ−１を必要とするため、上記の構成ではＤ０が復元できないことになる。
【００３４】
図７は、実施形態１の受信装置の構成を示す図である。実施形態の受信装置は、図１に示したパラレルデータ通信システムに使用され、送信装置は一般的なものが使用される。図７では、デスクランブル先頭データ位置をＤ０とした場合の例を示している。
【００３５】
実施形態の受信装置は、デスキュー部４１と、パラレル・シリアル（パラシリ）変換部４２と、デスクランブル部４３と、制御部６０と、を有する。図３と同様に、図７では、伝送線路からデータ信号を取り込む受信部は省略している。デスキュー部４１は、送信側で挿入されたＡＭを検出し、検出したＡＭを基準として上記のデスキュー処理を行い、レーン間のスキューを除去する。なお、デスキュー部４１におけるＡＭの検出およびスキューの差の検出は、制御部６０で行うようにしてもよい。デスキュー部４１は、ＦＩＦＯ５１Ａ−５１Ｄを有する。ＦＩＦＯ５１Ａ−５１Ｂは、図５に示したＦＩＦＯ３１Ａ−３１Ｄと同様に動作する。
【００３６】
パラシリ変換部４２は、位相の一致した複数のデータ列から、ＡＭを削除し、パラレル・シリアル変換を行い、１つのデータ列に変換する。デスクランブル部４３は、パラシリ変換部４２のデータ列に、制御部６０から出力される複数のレーンの中の最終レーンのＡＭ直前のデータブロックを入れ替えて、送信側でスクランブルされたデータの復元を行う。
【００３７】
制御部６０は、データ位置検出部６１と、リード／ライト制御部６２と、を有する。データ位置検出部６１は、４つのレーンの入力データからＡＭを検出し、検出したＡＭから仮想レーン識別を行い、予め設定したＡＭにおける値によりデスクランブル部に必要なデータ位置を決定する。上記のように、デスクランブル先頭データ位置（先頭レーンのＡＭ直後のデータ位置）がＤ０であり、デスクランブル部に必要なデータＤ−１の位置（最終レーンのＡＭ直前のデータ位置）は、前のデータ列のデータＤ１５の位置に相当する。データ位置検出部６１は、決定したデータ位置におけるデータブロックを保持し、デスクランブル部４３に先頭データを復元するための初期値としてセットする。データ位置検出部６１は、ＦＩＦＯ３１Ａ−３１Ｄからのデータの読み出しを指示するＦＩＦＯ読み出しイネーブル信号をリード／ライト制御部６２に出力する。さらに、データ位置検出部６１は、デスクランブル部４３の動作開始タイミングの制御を行うデスクランブル開始イネーブル信号を出力する。リード／ライト制御部６２は、ＦＩＦＯ読み出しイネーブル信号を受けて動作すること以外は、図５のリード／ライト制御部３２と同じ動作を行う。なお、図５のリード／ライト制御部３２が行ったＡＭの検出およびスキューの差の検出を行う部分を、類似の処理を行うデータ位置検出部６１と一体で行うようにしてもよい。
【００３８】
図８は、実施形態１の受信装置における動作を示すフローチャートである。
実施形態１の受信装置では、ステップＳ２１（図６のＳ１１に対応）で、各レーン毎にＡＭの１回目を検出した場合に、ステップＳ２１で以下に説明するデータ位置検出処理を行うこと、及び、ステップＳ２９でデータ位置検出処理を行った制御部からの初期値のデータブロックをパラシリ変換部からのシリアルデータに入れ替えることが図６のフローチャートと異なり、他は同じである。
【００３９】
図９は、データ位置検出部６１の構成を示す図である。
データ位置検出部６１は、ＡＭ検出部７１と、レーン(Lane)識別部７２と、ＡＭ周期カウンタ７３と、スキュー値オフセット算出部７４と、座標位置計算部７５と、を有する。
【００４０】
ＡＭ検出部７１は、各レーンのデータのビット列に、ＡＭパターンとして規定されているビットパターンが含まれているかを検出し、含まれる場合にＡＭとして検出する。
【００４１】
レーン識別部７２は、検出したＡＭ中の固定値(Marker Filed)を参照することにより仮想レーン(Lane)の識別を行い、仮想レーン番号を決定する。レーン識別部７２の詳細については後述する。
【００４２】
ＡＭ周期カウンタ７３は、ＡＭを検出してから次のＡＭを検出するまでの時間をカウントし、ＡＭ間の周期を測定する。
スキュー値オフセット算出部７４は、複数（ここでは４つ）の物理レーン(Lane)間のＡＭ検出タイミングにより、物理レーン間スキューのオフセット値を算出する。
【００４３】
座標位置計算部７５は、デスクランブル処理に必要なデータの配列位置を、ＡＭ周期、物理レーン間のオフセット値、仮想レーン番号、任意の先頭位置情報から計算する。具体的には、必要なデータを初期値としてセットするタイミングを、初期値ＡＭ配列（Ｘ）とし、必要なデータが格納されている物理レーンを初期値ＡＭ配列（Ｙ）とする。さらに、復元するデータをＦＩＦＯから読み出しするタイミングを読み出しタイミングとする。
【００４４】
座標位置計算部７５は、ＡＭ配列（Ｘ）のタイミングで、デスクランブル部４３のレジスタにＡＭ配列（Ｙ）を初期値としてセットする。さらに、座標位置計算部７５は、ＦＩＦＯの読み出しタイミングで、ＦＩＦＯ読み出しイネーブルを出力すると共に、デスクランブル部４３におけるデスクランブル開始動作を制御するデスクランブル開始イネーブル信号を出力する。デスクランブル開始イネーブル信号は、デスキュー部４１からデスクランブル部４３へのレイテンシに応じて決定されるため、実装方法によって異なる。例えば、デスキュー部４１からデスクランブル部４３のレイテンシが４サイクルならば、座標位置計算部７５は、ＦＩＦＯの読み出しタイミング＋４サイクルの時点で、デスクランブル開始イネーブル信号をアサートする。
【００４５】
次に、レーン識別部７２について説明する。
図２、図３、図５および図７に示した例では、レーン０−３は、伝送するデータ列が固定されているように示した。例えば、レーン０はＤ０，Ｄ４，Ｄ８，Ｄ１２のデータブロックを伝送し、レーン１はＤ１，Ｄ５，Ｄ９，Ｄ１３のデータブロックを伝送する等であり、この関係は固定されていた。しかし、受信側で復元した物理レーン(Lane)は、ビット多重化や対向モジュールとの接続状況によって、送信側で定義されたものと異なる場合がある。実施形態１では、物理レーンと伝送されるデータ列は固定されておらず、レーン識別部７２で、各レーンで伝送されたデータを識別して対応づけを行う。具体的には、Ｄ０，Ｄ４，Ｄ８，Ｄ１２をデータ列０、Ｄ１，Ｄ５，Ｄ９，Ｄ１３をデータ列１、Ｄ２，Ｄ６，Ｄ１０，Ｄ１４をデータ列２、Ｄ３，Ｄ７，Ｄ１１，Ｄ１５をデータ列３、とする。そして、データ列毎に、ＡＭの一部に異なる固定値(Marker Filed)を使用するように設定されている。送信側は、各データ列に、対応する固定値を有するＡＭを付加し、送信する。レーン識別部７２は、検出したＡＭにおける値が、いずれのデータ列の固定値であるかを判定し、データ列を特定する。ここでは、特定したデータ列を伝送するレーンを仮想レーン(Lane)と称する。物理レーンで伝送されたデータ列を、特定した仮想レーンにしたがって並び替えることにより、送信時のデータ列の順番を再現できる。
【００４６】
図１０は、データ位置検出部６１に設けられ、上記の仮想レーンの識別を行うレーン識別部７２の構成を示す図である。
【００４７】
レーン識別部７２は、検出したＡＭの所定部分のビット値が固定値(Marker Filed)に一致するか参照する固定値(Marker Filed)参照部８１を有する。図１０の右側に示すように、ＡＭは、６６ビット構成で、最初の２ビット（ＬＳＢ側）以外の６４ビットは、８ビットずつに分割され、ＬＳＢ側から順に、Ｍ０，Ｍ１，Ｍ２，ＢＩＰ３，Ｍ４．Ｍ５，Ｍ６，ＢＩＰ７となっている。最初の２ビットは‘０１’であり、ＢＩＰ３およびＢＩＰ７は、ＡＭであることを示す所定の値になっている。仮想レーン０−３に対応して、Ｍ０−Ｍ６の値があらかじめ決められている。固定値(Marker Filed)参照部８１は、この仮想レーン（データ列）ごとにＭ０−Ｍ６の値を記憶しており、検出したＡＭにおけるＭ０−Ｍ６の値が記憶している値に一致するかを判定し、仮想レーン（データ列）を特定する。図１０では、物理レーン０、１、２、３は、仮想レーン１、０、３、２に対応する。したがって、物理レーン１、０、３、２のデータを、仮想レーン０−３として並び変えれば、データ列０−３が得られる。
【００４８】
図１０では、２回目のＡＭの後のデータについて、デスキュー処理、パラレル・シリアル変換処理およびデスクランブル処理を行い、データを復元する。図１０では、仮想レーン３は物理レーン２に相当し、物理レーン２の２回目のＡＭの直前のデータブロックＤ１５が、データ復元で使用する前のデータブロックＤ−１に対応する。ここで、ＡＭが挿入される位置は１６３８４周期毎と決まっているため、ＡＭ直前のＤ−１の位置は推定可能である。そこで、仮想レーン３（物理レーン２）の２回目のＡＭの直前のデータブロックＤ１５を、デスクランブル４３の初期値としてセットする。
【００４９】
図７に戻り、リード／ライト制御部６２は、各物理レーンの２回目のＡＭ検出のタイミングで対応するＦＩＦＯへデータ書き込みを行う。その後、全レーンの１番目のデータブロックのＦＩＦＯへの書込みが終了すると、仮想レーンにしたがって、ＦＩＦＯから読み出したデータを並び替えて出力する。この動作を５クロック分行うと、ＡＭと復元するデータＤ０−Ｄ１５のパラシリ変換部４２の出力が完了する。
【００５０】
パラシリ変換部４２は、前述の通り、ＡＭを削除し、４つのデータ列を、Ｄ０からＤ１５を含む１つのデータ列のパラレル・シリアル変換し、デスクランブル部４３に出力する。
【００５１】
デスクランブル部４３は、最後のデータブロックＤ１５が入力された時に、データや位置検出部６１からのデスクランブル開始イネーブル信号を受けて、デスクランブル処理を開始する。
【００５２】
次に、データ位置検出部６１の具体的な動作例を説明する。
図１１は、データ位置検出部６１の具体的な動作例を示すタイムチャートであり、（Ａ）から（Ｃ）の３つの例を示している。
【００５３】
図１１の動作例は以下の条件で設定したものとする。
・レーン数は４本とする。規格の１００ＧＥでは２０本であるが、ここでは図示を簡単にするために、４本に省略している。
【００５４】
・ＡＭ周期は16384周期とする。したがって、ＡＭ周期カウンタ７３は０ｘ００００〜０ｘ３ＦＦＦをカウントする。
・ＡＭ直後の仮想レーン０の最初のデータ（Ｄ０）を基準とし、先頭位置情報は０ｘ０とする。
【００５５】
・デスクランブル開始位置が基準より前のデータを復元するのならば先頭位置情報の値はプラス、基準より後のデータを復元するのならば先頭位置情報の値をマイナスとする。例えば、Ｄ−２を先頭位置情報とするならば値は０ｘ２、Ｄ５を先頭情報とするならば−０ｘ５とする。
【００５６】
使用する算出式は、以下の通りであり、変数を以下の通り定義する。
Ｍ：先頭位置情報
Ｎ：レーン数
ＡＭＣｙｃｌｅ：ＡＭ周期カウンタ最大値
ｏｆｆｓｅｔ：最初にＡＭ検出したレーンと必要なデータが格納されているレーンのスキュー差
ｏｆｆｓｅｔｍａｘ：最初にＡＭ検出したレーンと最後にＡＭ検出したレーンのスキュー差
【００５７】
初期値ＡＭ配列（Ｘ，Ｙ）
初期値ＡＭ配列（Ｙ）
・復元するデータが格納されている仮想レーン＝（Ｎ−（Ｍ  ｍｏｄ  Ｎ）  ｍｏｄ  Ｎ）…（１）
・必要なデータが格納されている仮想レーン＝（式（１）＋（Ｎ−１））  ｍｏｄ  Ｎ…（２）
・初期値ＡＭ配列（Ｙ）＝識別結果に対応した式（２）の物理レーン…（３）
【００５８】
初期値ＡＭ配列（Ｘ）
ここで、Ｍ／ＮはＭ≧０の時は小数点切り捨て、Ｍ＜０の時は繰り上げとする。
・ｏｆｆｓｅｔ−（Ｍ／Ｎ）≦０の時、ＡＭ配列（Ｘ）＝ＡＭＣｙｃｌｅ＋ｏｆｆｓｅｔ−（Ｍ／Ｎ）…（４）
・ｏｆｆｓｅｔ−（Ｍ／Ｎ）＞０の時かつ
Ｍ＜０の時、ＡＭ配列（Ｘ）＝ｏｆｆｓｅｔ−Ｍ／Ｎ…（５）
Ｍ≧０の時、ＡＭ配列（Ｘ）＝ｏｆｆｓｅｔ−Ｍ／Ｎ−１…（６）
【００５９】
読み出しタイミング
・ｏｆｆｓｅｔ−（Ｍ／Ｎ）≦０の時かつ
Ｍ  ｍｏｄ  Ｎ≠０の時、読み出しタイミング＝ＡＭＣｙｃｌｅ＋ｏｆｆｓｅｔ−（Ｍ／Ｎ）…（７）
Ｍ  ｍｏｄ  Ｎ＝０の時、読み出しタイミング＝ＡＭＣｙｃｌｅ＋ｏｆｆｓｅｔ−（Ｍ／Ｎ）＋１…（８）
・ｏｆｆｓｅｔ−（Ｍ／Ｎ）＞０の時かつ
Ｍ≦０の時かつ
Ｍ  ｍｏｄ  Ｎ≠０の時、読み出しタイミング＝ｏｆｆｓｅｔｍａｘ−Ｍ／Ｎ…（９）
Ｍ  ｍｏｄ  Ｎ＝０の時、読み出しタイミング＝ｏｆｆｓｅｔｍａｘ−Ｍ／Ｎ＋１…（１０）
Ｍ＞０の時かつ
Ｍ  ｍｏｄ  Ｎ≠０の時、読み出しタイミング＝ｏｆｆｓｅｔｍａｘ−Ｍ／Ｎ−１…（１１）
Ｍ  ｍｏｄ  Ｎ＝０の時、読み出しタイミング＝ｏｆｆｓｅｔｍａｘ−Ｍ／Ｎ…（１２）
【００６０】
図１１の（Ａ）のタイムチャートは、データ位置検出部６１へのデータが、図示するデータの並びで入力し、デスクランブル開始位置をＤ０（先頭位置情報＝０ｘ０）とした場合の動作例を示す。
【００６１】
この例では、ＡＭ検出部７１は、物理レーン０、物理レーン１、物理レーン２、物理レーン３の順番でＡＭを検出する。
レーン識別部７２は、送信側で定義された仮想レーンの識別を行い、ここでは、物理レーン０＝仮想レーン１、物理レーン１＝仮想レーン０、物理レーン２＝仮想レーン３、物理レーン３＝仮想レーン２と、識別する。
【００６２】
ＡＭ周期カウンタ７３は、物理レーン０でＡＭを検出したときにカウントを開始する。
スキュー値オフセット算出部７４は、最初にＡＭ検出したレーンからのスキューオフセット値を算出する。この場合は、物理レーン０＝０ｘ０、物理レーン１＝０ｘ１、物理レーン２＝０ｘ２、物理レーン３＝０ｘ３となる。
【００６３】
座標位置計算部７５は、式（１）より（４−（０  ｍｏｄ  ４））  ｍｏｄ  ４＝０を算出し、復元するデータの先頭は仮想レーン０に格納されていることが判明する。さらに、座標位置計算部７５は、式（２）より（０＋（４−１））  ｍｏｄ  ４＝３を算出し、必要なデータは仮想レーン３に格納されていることが判明する。仮想レーン３＝物理レーン２であるから、初期値ＡＭ配列（Ｙ）＝物理レーン２となる。物理レーン２のスキュー差は０ｘ２であり、最大スキュー差は０ｘ３であることにより、ｏｆｆｓｅｔ＝０ｘ２、ｏｆｆｓｅｔｍａｘ＝０ｘ３となる。
【００６４】
さらに、座標位置計算部７５は、ｏｆｆｓｅｔ−（Ｍ／Ｎ）＞０かつＭ≧０のため、式（６）より、ＡＭ配列（Ｘ）＝２−０−１＝１とし、ＡＭ周期カウンタ７３のカウント値が０ｘ１の時、物理レーン２で必要なデータ（Ｄ−１）を受信し、初期値としてセットする。
【００６５】
さらに、座標位置計算部７５は、ｏｆｆｓｅｔ−（Ｍ／Ｎ）＞０かつＭ≦０かつＭ  ｍｏｄ  Ｎ＝０のため、式（１１）より、読み出しタイミング＝３＋０＋１＝４とし、ＡＭ周期カウンタ７３が０ｘ４の時に、リードイネーブル信号をアサートする。
【００６６】
図１１の（Ｂ）は、データ位置検出部６１へのデータが、図示するデータの並びで入力し、デスクランブル開始位置をＤ−５（先頭位置情報＝０ｘ５）とした場合の動作例を示す。
この例では、ＡＭ検出部７１は、物理レーン３、物理レーン１、物理レーン０、物理レーン２の順番でＡＭを検出する。
【００６７】
レーン識別部７２は、送信側で定義された仮想レーンの識別を行い、ここでは、物理レーン０＝仮想レーン３、物理レーン１＝仮想レーン２、物理レーン２＝仮想レーン１、物理レーン３＝仮想レーン０と、識別する。
【００６８】
ＡＭ周期カウンタ７３は、物理レーン３０でＡＭを検出したときにカウントを開始する。
スキュー値オフセット算出部７４は、最初にＡＭ検出したレーンからのスキューオフセット値を算出する。この場合は、物理レーン０＝０ｘ２、物理レーン１＝０ｘ１、物理レーン２＝０ｘ２、物理レーン３＝０ｘ０となる。
【００６９】
座標位置計算部７５は、式（１）より（４−（５  ｍｏｄ  ４）  ｍｏｄ  ４＝３を算出し、復元するデータの先頭は仮想レーン３に格納されていることが判明する。さらに、座標位置計算部７５は、式（２）より（３＋（４−１））  ｍｏｄ  ４＝２を算出し、必要なデータは仮想レーン２に格納されていることが判明する。仮想レーン２＝物理レーン１であるから、初期値ＡＭ配列（Ｙ）＝物理レーン１となる。物理レーン１のスキュー差は０ｘ１であり、最大スキュー差は０ｘ２であることにより、ｏｆｆｓｅｔ＝０ｘ１、ｏｆｆｓｅｔｍａｘ＝０ｘ２となる。
【００７０】
さらに、座標位置計算部７５は、ｏｆｆｓｅｔ−（Ｍ／Ｎ）＜０のため、式（４）より、ＡＭ配列（Ｘ）＝３ＦＦＦ−０＝３ＦＦＦとし、ＡＭ周期カウンタ７３のカウント値が０ｘ３ＦＦＦの時、物理レーン１で必要なデータ（Ｄ−６）を受信し、初期値としてセットする。
【００７１】
さらに、座標位置計算部７５は、ｏｆｆｓｅｔ−（Ｍ／Ｎ）＞０かつＭ＞０かつＭ  ｍｏｄ  Ｎ≠０のため、式（１１）より、読み出しタイミング＝２−１−１＝０とし、ＡＭ周期カウンタ７３が０ｘ０の時に、リードイネーブル信号をアサートする。
【００７２】
図１１の（Ｃ）は、データ位置検出部６１へのデータが、図示するデータの並びで入力し、デスクランブル開始位置をＤ１１（先頭位置情報＝−０ｘＢ）とした場合の動作例を示す。
【００７３】
この例では、ＡＭ検出部７１は、物理レーン０、物理レーン１、物理レーン２、物理レーン３の順番でＡＭを検出する。
レーン識別部７２は、送信側で定義された仮想レーンの識別を行い、ここでは、物理レーン０＝仮想レーン０、物理レーン１＝仮想レーン１、物理レーン２＝仮想レーン２、物理レーン３＝仮想レーン３と、識別する。
【００７４】
ＡＭ周期カウンタ７３は、物理レーン０でＡＭを検出したときにカウントを開始する。
スキュー値オフセット算出部７４は、最初にＡＭ検出したレーンからのスキューオフセット値を算出する。この場合は、物理レーン０＝０ｘ０、物理レーン１＝０ｘ１、物理レーン２＝０ｘ２、物理レーン３＝０ｘ３となる。
【００７５】
座標位置計算部７５は、式（１）より（４−（−１１  ｍｏｄ  ４）  ｍｏｄ  ４＝３を算出し、復元するデータの先頭は仮想レーン３に格納されていることが判明する。さらに、座標位置計算部７５は、式（２）より（３＋（４−１）  ｍｏｄ  ４＝２を算出し、必要なデータは仮想レーン２に格納されていることが判明する。仮想レーン２＝物理レーン２であるから、初期値ＡＭ配列（Ｙ）＝物理レーン２となる。物理レーン２のスキュー差は０ｘ２であり、最大スキュー差は０ｘ３であることにより、ｏｆｆｓｅｔ０ｘ２、ｏｆｆｓｅｔｍａｘ＝０ｘ３となる。
【００７６】
さらに、座標位置計算部７５は、ｏｆｆｓｅｔ−（Ｍ／Ｎ）＞０かつＭ＜０のため、式（５）より、ＡＭ配列（Ｘ）＝２−（−３）＝５とし、ＡＭ周期カウンタ７３のカウント値が０ｘ５の時、物理レーン２で必要なデータ（Ｄ１０）を受信し、初期値としてセットする。
【００７７】
さらに、座標位置計算部７５は、ｏｆｆｓｅｔ−（Ｍ／Ｎ）＞０かつＭ≦０かつＭ  ｍｏｄ  Ｎ≠０のため、式（９）より、読み出しタイミング＝３−（−３）＝６とし、ＡＭ周期カウンタ７３が０ｘ６の時に、リードイネーブル信号をアサートする。
【００７８】
以上説明した実施形態１の受信装置では、受信開始時の複数のレーンの中の先頭レーンのＡＭ直後のデータがデスクランブル部で復元可能であり、データの転送効率が向上する。
【００７９】
図１２は、実施形態２の受信装置の構成を示す図である。実施形態２の受信装置は、デスキュー部４１Ａとデスクランブル部４３Ａと制御部６０Ａが図７の実施形態１の受信装置の構成と異なり、他は同じである。
【００８０】
デスキュー部４１Ａは、実施形態１と同様のデスキュー処理が完了した時に、デスキュー完了通知信号を出力し、デスクランブル部４３Ａと制御部６０Ａへ通知する。制御部６０Ａは、受信部から受信開始通知信号が入力される。制御部６０Ａは、受信開始通知信号を受信した場合に、上述した制御部６０と同様の処理を行う。また、制御部６０Ａは、デスキュー処理完了通知信号を受信した場合に、制御部６０と同様の処理を行った後のデータ位置検出部６１の座標位置計算部７５から出力されるＦＩＦＯ読み出しイネーブル信号、初期値及びデスクランブル開始イネーブル信号を出力したまま、維持し、制御を停止する。
【００８１】
デスクランブル部４３Ａは、デスキュー完了通知信号とデスクランブル開始イネーブル信号を受信した場合に、受信開始時を判断し、座標位置計算部７５から初期値をパラシリ変換部から出力されるデータ列に、複数のレーンの中の最終レーンのＡＭ直前のデータブロックを入れ替えて、送信側でスクランブルされたデータの復元を行う。デスキュー完了通知信号によりデスキュー処理が完了したままの状態で維持され続けた場合には、データ入れ替えは行わず、パラシリ変換部から出力されるデータ列の復元を行う。
【００８２】
図１３は、実施形態２の受信装置における動作を示すフローチャートである。
実施形態２の受信装置では、ステップＳ３９で、受信開始時かデータの連続受信かを判定して、受信開始時と判定した場合には、ステップＳ４０のデータ入れ替えを行った後、ステップＳ４１のデスクランブル処理を開始し、データの連続受信と判断した場合には、ステップＳ３８のパラレルシリアル変換後のデータをそのままステップＳ４１のデスクランブル処理を行うことが図８のフローチャートと異なり、他は同じである。
【００８３】
以上説明した実施形態２の受信装置では、実施形態１の受信装置と同様に、受信開始時の複数のレーンの中の先頭レーンのＡＭ直後のデータのがデスクランブル部で復元可能であり、データの転送効率が向上する。さらに、実施形態１の受信装置と比べて、データの連続受信を行う場合には、制御部の動作を停止するので、消費電力の低減にも効果がある。
【００８４】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００８５】
１１    送信装置
１２    伝送線路（複数レーン）
１３    受信装置
４１    デスキュー部
４２    パラレル・シリアル（パラシリ）変換部
４３    デスクランブル部
５１Ａ−５１Ｄ    ＦＩＦＯ
６０    制御部
６１    データ位置検出部
６２    リード／ライト制御部
７１    ＡＭ(Alignment Markers)検出部
７２    レーン(Lane)識別部
７３    ＡＭ周期カウンタ
７４    スキュー値オフセット算出部
７５    座標位置計算部
【図１】
2015091094.tif 000003
【図２】
2015091094.tif 000004
【図３】
2015091094.tif 000005
【図４】
2015091094.tif 000006
【図５】
2015091094.tif 000007
【図６】
2015091094.tif 000008
【図７】
2015091094.tif 000009
【図８】
2015091094.tif 000010
【図９】
2015091094.tif 000011
【図１０】
2015091094.tif 000012
【図１１】
2015091094.tif 000013
【図１２】
2015091094.tif 000014
【図１３】
2015091094.tif 000015