JP5633636B2 - 伝送遅延差補正方法,通信装置および通信システム - Google Patents
伝送遅延差補正方法,通信装置および通信システム Download PDFInfo
- Publication number
- JP5633636B2 JP5633636B2 JP2013505636A JP2013505636A JP5633636B2 JP 5633636 B2 JP5633636 B2 JP 5633636B2 JP 2013505636 A JP2013505636 A JP 2013505636A JP 2013505636 A JP2013505636 A JP 2013505636A JP 5633636 B2 JP5633636 B2 JP 5633636B2
- Authority
- JP
- Japan
- Prior art keywords
- lane
- transmission delay
- delay difference
- unit
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31725—Timing aspects, e.g. clock distribution, skew, propagation delay
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
- Dc Digital Transmission (AREA)
Description
本件は、伝送遅延差補正方法,通信装置および通信システムに関する。
一般に、サーバ等の装置の内部では、送信モジュールと受信モジュールとの間で複数ビットのパラレルデータの伝送が行なわれる。複数ビットのパラレルデータをビット数分の信号線によりパラレルに伝送する場合、伝送経路長の違い等により信号線間に伝送遅延差(skew)が発生する。このため、伝送遅延差が受信側クロックの1周期内に収まらない場合、複数ビットのパラレルデータが、受信モジュールにおいて同一タイミングで受信されるように、各信号線で伝送されるデータの伝送遅延差を吸収する必要がある。従って、パラレルデータのビット数が増大すると、多数の信号線について、伝送遅延差を吸収する処理を行なわなければならない。
そこで、送信側で複数ビットのパラレルデータを複数の部分データに分割し、分割された複数の部分データを、それぞれ、送信側と受信側との間に並設された複数のレーンによって送信側から受信側へシリアルデータとして伝送することが行なわれている。この場合も、伝送経路長の違い等によりレーン間に伝送遅延差(skew)が発生する。このため、伝送遅延差が受信側クロックの1周期内に収まらない場合、複数のレーンによって伝送されるデータが、受信側において同一タイミングで受信されるように、各レーンで伝送されるデータの伝送遅延差を吸収する必要がある。
しかし、部分データを転送する場合には、パラレルデータのビット数より数が少ないレーン毎に伝送遅延差の吸収処理が行なわれるので、ビット数分の信号線について伝送遅延差の吸収処理が行なわれる場合に比べ、処理量が大幅に削減される。例えば64ビットのパラレルデータを8のレーンにより送信側から受信側へ送信する際、64ビットのパラレルデータが8組の8ビットデータに分割され、各8ビットデータが、パラレル/シリアル変換され、シリアルデータとして各レーンにより伝送される。従って、64ビット分の信号線について伝送遅延差の吸収処理を行なう代わりに8のレーンについて伝送遅延差の吸収処理を行なうだけで、64ビットのパラレルデータが受信側で同一タイミングで受信されるようになる。
より具体的に、図38に示す、データ伝送機能を有するサーバ等の装置100では、送信モジュール110と受信モジュール120との間で複数ビット(例えば64ビット)のパラレルデータの伝送が行なわれる。このとき、送信モジュール110では、複数ビットのパラレルデータが複数の部分データに分割される。分割された複数の部分データは、それぞれ、送信モジュール110と受信モジュール120との間に並設されたn+1(nは自然数)のレーン[0]〜[n]によって、送信モジュール110から受信モジュール120へシリアルデータとして伝送される。そして、受信モジュール120において、複数の部分データから複数ビットのパラレルデータが復元される。
各レーン[i](i=0〜n)は、レーン[i]用送信部110−iと、レーン[i]用受信部120−iと、レーン[i]用伝送路130−iとを含んでいる。また、送信部110−1〜110−nは送信モジュール110に含まれ、受信部120−1〜120−nは受信モジュール120に含まれている。
各送信部110−iは、分割された部分データ(例えば8ビットデータ)をパラレル/シリアル変換しシリアルデータとして伝送路130−iへ送出する。
各伝送路130−iは、PCI (Peripheral Component Interconnect) Expressに代表されるシリアル伝送路で、送信部110−iから送出されたシリアルデータを受信部120−iへ伝送する。
各伝送路130−iは、PCI (Peripheral Component Interconnect) Expressに代表されるシリアル伝送路で、送信部110−iから送出されたシリアルデータを受信部120−iへ伝送する。
各受信部120−iは、図39を参照しながら後述するごとく、伝送路130−iから受信したシリアルデータをシリアル/パラレル変換して部分データを復元する。また、各受信部120−iでは、データの読出位置を予め設定されたレーン間伝送遅延差吸収バッファ124(後述)により、各レーン[i]の伝送遅延差が吸収される。そして、伝送遅延差吸収後の部分データから、複数ビットのパラレルデータが復元される。
図39を参照しながら、図38に示す装置100の受信モジュール120および各レーン[i]用受信部120−iの構成について説明する。なお、図39では、レーン[0]用受信部120−0の詳細構成のみが示されているが、各レーン[i]用受信部120−iもレーン[0]用受信部120−0と同様に構成されている。また、図39では、n=7の場合、つまりレーン数(伝送路数)が8の場合が示されている。
図39に示すように、受信モジュール120は、受信部120−0〜120−7のほかに、レーン間伝送遅延差吸収制御回路(以下、単に「制御回路」という)120aおよび処理モジュール120bを含んでいる。各受信部120−iは、シリアル/パラレル(S/P)変換回路121,ビット境界検出回路122,クロック乗換バッファ123,レーン間伝送遅延差吸収バッファ(以下、単に「バッファ」という)124およびパターン検出回路125を含んでいる。
制御回路120aは、受信部120−0〜120−7(パターン検出回路125)にそれぞれ信号線SL0〜SL7を介して接続され、受信部120−0〜120−7と連携してレーン[0]〜[7]間の伝送遅延差を吸収するための設定処理を制御する。制御回路120aの機能の詳細については後述する。
処理モジュール120bは、受信部120−0〜120−nで得られた部分データから復元されたパラレルデータに対する、プロトコルチェック等の処理を実行する。
S/P変換回路(DeSerializer)121は、伝送路130−iから受信したシリアルデータを8ビットのパラレルデータ(8ビットデータ)に変換する。
S/P変換回路(DeSerializer)121は、伝送路130−iから受信したシリアルデータを8ビットのパラレルデータ(8ビットデータ)に変換する。
ビット境界検出回路122は、S/P変換回路121からの8ビットデータを、送信側と受信側とで予め決められた境界検出用パターンと比較することにより、境界検出用パターンと同じパターンをもつ8ビットデータを、先頭の8ビットデータとして検出する。ビット境界検出回路122により検出される先頭の8ビットデータは、8ビット毎のデータの正しい区切り位置つまりビット境界(バイト境界)である。ビット境界検出回路122は、ビット境界を検出すると、その検出タイミングで、8ビットデータをクロック乗換バッファ123に書き込むためのライトイネーブル信号を生成してクロック乗換バッファ123へ出力する。上述したS/P変換回路121およびビット境界検出回路122によって、伝送路130−iから受信したシリアルデータが、意味のある8ビットデータに変換される。
クロック乗換バッファ123は、前記ライトイネーブル信号を受けると、8ビットデータを順次書き込まれて一時的に保持することにより、送信モジュール110と受信モジュール120とでのクロック周波数差を吸収する。クロック乗換バッファ123に保持された8ビットデータは、受信モジュール120のクロックによって順次読み出される。
バッファ124は、クロック乗換バッファ123からの8ビットデータを一時的に保持することにより、レーン[0]〜[7]間の伝送遅延差を吸収する。バッファ124での8ビットデータの保持時間(読出位置)は、初期化期間に、パターン検出回路125および制御回路120aによって、後述するごとく調整され設定される。なお、バッファ124は、伝送路の設計情報に基づいて予想される最大の伝送遅延差を吸収可能なバッファ段数を有している。
パターン検出回路125は、クロック乗換バッファ123から読み出された8ビットデータを、送信側と受信側とで予め決められた特定パターンと比較することにより、8ビットデータが特定パターンであるか否かを判断する機能を有している。パターン検出回路125は、8ビットデータが特定パターンであることを検出すると、パターン検出信号を信号線SLiにより制御回路120aに通知する機能を有している。
また、パターン検出回路125は、レーン[i]の伝送遅延差を検出するカウンタ機能を有している。このカウンタ機能は、特定パターンの検出タイミングでクロック信号によるインクリメントを開始し、制御回路120aからの停止信号(後述)に応じてインクリメントを停止することにより、レーン[i]の伝送遅延差を、カウント値として検出する。さらに、パターン検出回路125は、カウンタ機能によって検出されたレーン[i]の伝送遅延差に基づき、レーン[i]におけるバッファ124からの8ビットデータの読出位置(読出タイミング)を設定する機能も有している。
制御回路120aは、前述したように、信号線SL0〜SL7を介してそれぞれ受信部120−0〜120−7に接続され、各受信部120−iのパターン検出回路125からのパターン検出信号を、信号線SLiによって受信する。また、制御回路120aは、受信したパターン検出信号の論理積(AND)が“1”となったタイミング、つまり、全ての受信部120−0〜120−7のパターン検出回路125からパターン検出信号を受信したタイミングで、停止信号を、信号線SLiによって各受信部120−iのパターン検出回路125へ送信する。
上述のごとく構成された装置100では、レーン[0]〜[7]間の伝送遅延差を吸収するための設定処理が、以下のように実行される。
送信モジュール110および受信モジュール120には、これらのモジュール110,120の双方を同期動作させる初期化を行なう回路(図示略)が、初期化ステートマシンとして搭載されている。初期化ステートマシンは、装置100起動時の初期化期間に、特定パターンを送信側から送出し受信側で特定パターンの受信を認識することにより、送信モジュール110と受信モジュール120との同期をとる。この初期化期間内に、レーン[0]〜[7]間の伝送遅延差を吸収するための設定処理も実行される。
送信モジュール110および受信モジュール120には、これらのモジュール110,120の双方を同期動作させる初期化を行なう回路(図示略)が、初期化ステートマシンとして搭載されている。初期化ステートマシンは、装置100起動時の初期化期間に、特定パターンを送信側から送出し受信側で特定パターンの受信を認識することにより、送信モジュール110と受信モジュール120との同期をとる。この初期化期間内に、レーン[0]〜[7]間の伝送遅延差を吸収するための設定処理も実行される。
レーン[0]〜[7]間の伝送遅延差を吸収するための設定処理を実行する際、まず、特定パターンを含むデータが、送信モジュール110から全レーン[0]〜[7]に対して送信される。受信モジュール120では、初期化ステートマシンが受信部120−0〜120−7を一斉にイネーブル状態にして、各受信部120−iが、特定パターンを含むデータを受信する。
各受信部120−iのパターン検出回路125は、受信した8ビットデータ(図39の符号s1参照)が特定パターンであることを検出すると、カウンタ機能によるインクリメントを開始する。同時に、パターン検出回路125は、パターン検出信号を信号線SLiにより制御回路120aに送信する。
全レーン[0]〜[7]におけるパターン検出回路125からのパターン検出信号(図39の符号s2参照)は、全レーン[0]〜[7]によって共用される一の制御回路120aに集約される。制御回路120aは、全レーン[0]〜[7]のパターン検出回路125からパターン検出信号を受信したタイミングで、停止信号(図39の符号s3参照)を信号線SLiによって各受信部120−iのパターン検出回路125へ送信する。
各受信部120−iのパターン検出回路125は、制御回路120aから停止信号を受信すると、カウンタ機能によるインクリメントを停止し、停止時のカウント値をレーン[i]の伝送遅延差として取得する。
このとき、全レーン[0]〜[7]間に伝送遅延差がない場合、全レーン[0]〜[7]のカウンタ機能によって計数されたカウント値は同じ値になる。しかし、レーン[0]〜[7]間に伝送遅延差が生じている場合、より早いタイミングで特定パターンを検出したレーンのカウント値は、他のレーンのカウント値よりも大きくなる。一方、より遅いタイミングで特定パターンを検出したレーンのカウント値は、他のレーンのカウント値よりも小さくなる。このようなカウント値が、各レーン[i]のバッファ124からのデータ読出開始位置(リードポインタの初期値)としてパターン検出回路125により設定される(図39の符号s4参照)。
このとき、全レーン[0]〜[7]間に伝送遅延差がない場合、全レーン[0]〜[7]のカウンタ機能によって計数されたカウント値は同じ値になる。しかし、レーン[0]〜[7]間に伝送遅延差が生じている場合、より早いタイミングで特定パターンを検出したレーンのカウント値は、他のレーンのカウント値よりも大きくなる。一方、より遅いタイミングで特定パターンを検出したレーンのカウント値は、他のレーンのカウント値よりも小さくなる。このようなカウント値が、各レーン[i]のバッファ124からのデータ読出開始位置(リードポインタの初期値)としてパターン検出回路125により設定される(図39の符号s4参照)。
これにより、早いタイミングで特定パターンを検出したレーンではバッファ124の深い位置からデータが読み出され、遅いタイミングで特定パターンを検出したレーンではバッファ124の浅い位置からデータが読み出される。従って、全レーン[0]〜[7]間の伝送遅延差が吸収される。
つまり、各レーン[i]のパターン検出回路125は、各レーン[i]の伝送遅延差を相殺すべく、伝送遅延差が最大のレーンにおけるバッファ124のデータ読出タイミングに合わせるようにバッファ124のデータ読み出し段数を調整する。バッファ124のデータ読み出し段数は、各レーン[i]の伝送路長の差に依存するため、初期化期間内に一旦決定されると以後変更する必要がなく固定される。
図39に示すように、全レーン[0]〜[7]に対し共通部として存在する一の制御回路120aには、信号線SL0〜SL7によって、全レーン[0]〜[7]の受信部120−0〜120−7からのパターン検出信号s2が集約される。また、一の制御回路120aからは、信号線SL0〜SL7によって、全レーン[0]〜[7]の受信部120−0〜120−7へ停止信号s3が送り出される。このため、以下のような不具合が生じている。
各レーン[i]からのパターン検出信号の情報量は1ビットで少ない。しかし、制御回路120aでは、少なくともレーン数分の信号線が集約される。このため、レーンの数が増大すると、各レーン[i]と制御回路120aとの間における配線レイアウトやノイズ対策が極めて困難になる。
また、レーン数が多くなると、制御回路120aから物理的に遠く離れた位置に配置されたレーンが出てくる。このように離れた位置に配置されたレーンを含む全レーンの同期を取りながら伝送遅延差を吸収するための設定処理を実行するために、回路の動作周波数を上げることが困難になる。逆に言うと、伝送遅延差を吸収するための設定処理に際し制御回路120aから物理的に遠く離れたレーンが存在する場合、回路が高速化すると、制御回路120aと離れたレーンとの間でパターン検出信号s2や停止信号s3を1クロックでやり取りすることが困難になる。
上述したように、図39に示す装置100では、複数のレーンからの情報を一の制御回路120aに集約していたため、伝送遅延差吸収処理対象のレーン数が増大すると、信号線の配線レイアウトやノイズ対策の観点および回路の動作周波数の観点から、回路作成が困難になっている。
一つの側面で、本件は、処理対象のレーン数が増大しても、配線レイアウト,ノイズ対策,回路の高速化を可能にしながら、伝送遅延差を補正するための設定処理を確実に実行できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
本件の伝送遅延差補正方法は、複数の伝送路それぞれに対応する複数の受信部を有し、隣接された受信部同士が信号線で接続され、前記複数の伝送路を介して送信側装置からのデータを受信する通信装置における伝送路間の伝送遅延差を補正する方法において、同一信号を受信する隣接する2つの受信部間で、前記信号を受信した旨の情報を前記信号線を介して互いに通知し、他方の受信部からの通知と、自身の信号受信との時間差に応じて、伝送遅延差を補正する処理を実行し、前記隣接する受信部のうちの一方の受信部と、前記一方の受信部に隣接する受信部のうち、当該一方の受信部との間で補正処理を行なっていない方の受信部との選択と、選択された受信部間の伝送遅延差補正処理とを順次行ない、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する。
また、本件の通信装置は、複数の伝送路により送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置において、前記伝送路毎に設けられた複数の受信部と、隣接する受信部同士を接続する信号線とを有し、前記複数の受信部の各々は、対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始し、前記制御部は、隣接する受信部の制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する。
さらに、本件の通信システムは、複数の伝送路により前記送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置とをそなえ、前記通信装置は、上述した通信装置と同様に構成される。
開示の技術では、処理対象のレーン数が増大しても、配線レイアウト,ノイズ対策,回路の高速化を可能にしながら、伝送遅延差を補正するための設定処理(補正処理)を確実に実行することができる。
以下、図面を参照して実施の形態を説明する。
〔1〕伝送遅延差吸収装置(通信装置)の構成
〔1−1〕伝送遅延差吸収装置(通信装置)を適用される装置(通信システム)の構成
図1は、一実施形態のデータ伝送機能を有する装置(通信システム)1の構成を示すブロック図である。図1に示すように、本実施形態の装置1においても、図38に示した装置100と同様、送信モジュール(送信側;送信装置)10と受信モジュール(受信側;通信装置)20との間で複数ビット(例えば64ビット)のパラレルデータの伝送が行なわれる。このとき、送信モジュール10では、複数ビットのパラレルデータが複数の部分データに分割される。分割された複数の部分データは、それぞれ、送信モジュール10と受信モジュール20との間に並設されたn+1(nは自然数)のレーン[0]〜[n]によって、送信モジュール10から受信モジュール20へシリアルデータとして伝送される。そして、受信モジュール20において、複数の部分データから複数ビットのパラレルデータが復元される。
〔1〕伝送遅延差吸収装置(通信装置)の構成
〔1−1〕伝送遅延差吸収装置(通信装置)を適用される装置(通信システム)の構成
図1は、一実施形態のデータ伝送機能を有する装置(通信システム)1の構成を示すブロック図である。図1に示すように、本実施形態の装置1においても、図38に示した装置100と同様、送信モジュール(送信側;送信装置)10と受信モジュール(受信側;通信装置)20との間で複数ビット(例えば64ビット)のパラレルデータの伝送が行なわれる。このとき、送信モジュール10では、複数ビットのパラレルデータが複数の部分データに分割される。分割された複数の部分データは、それぞれ、送信モジュール10と受信モジュール20との間に並設されたn+1(nは自然数)のレーン[0]〜[n]によって、送信モジュール10から受信モジュール20へシリアルデータとして伝送される。そして、受信モジュール20において、複数の部分データから複数ビットのパラレルデータが復元される。
各レーン[i](i=0〜n)は、レーン[i]用送信部10−iと、レーン[i]用受信部20−iと、レーン[i]用伝送路30−iとを含んでいる。また、送信部10−1〜10−nは、送信モジュール10に含まれ、受信部20−1〜20−nは、処理モジュール20a,初期化ステートマシン20bおよび終端ロジック20cとともに、受信モジュール20に含まれている。
各送信部10−iは、分割された部分データ(例えば8ビットデータ)をパラレル/シリアル変換しシリアルデータとして伝送路30−iへ送出する。
各伝送路30−iは、PCI_Expressに代表されるシリアル伝送路で、送信部10−iから送出されたシリアルデータを受信部20−iへ伝送する。
各伝送路30−iは、PCI_Expressに代表されるシリアル伝送路で、送信部10−iから送出されたシリアルデータを受信部20−iへ伝送する。
各受信部20−iは、図2を参照しながら後述するごとく、伝送路30−iから受信したシリアルデータをシリアル/パラレル変換して部分データを復元する。また、各受信部20−iでは、データの読出位置を予め設定されたレーン間伝送遅延差吸収バッファ24(後述)により、各レーン[i]の伝送遅延差が補正される。そして、伝送遅延差補正後の部分データから、複数ビットのパラレルデータが復元される。各受信部20−iには、処理モジュール20aが接続されており、処理モジュール20aは、部分データから復元されたパラレルデータに対する、プロトコルチェック等の処理を実行する。
複数のレーン[0]〜[n]における隣接するレーン[i],[i+1](または[i-1],[i])どうしは、信号線SLによって接続され、隣接するレーン間で、伝送遅延差の吸収設定処理(補正処理)に係る情報(後述)をやり取り可能に構成されている。具体的には、図2や図3を参照しながら後述するごとく、受信部20−iのパターン検出回路25およびレーン間伝送遅延差吸収制御回路26と、受信部20−(i+1)のパターン検出回路25およびレーン間伝送遅延差吸収制御回路26とが、信号線SLによって接続されている。
なお、一端のレーン[0]には、初期化ステートマシン20bが信号線SLを介して接続されている。初期化ステートマシン20bは、送信モジュール10および受信モジュール20の双方を同期動作させる初期化を行なうほか、後述するレーンペア選択の開始処理および終端処理をレーン[0]に対して実行する機能を果たす。また、他端のレーン[n]には、終端ロジック20cが信号線SLを介して接続されている。終端ロジック20cは、後述するレーンペア選択の折り返し動作をレーン[n]に実行させる論理回路である。初期化ステートマシン20bおよび終端ロジック20cの具体的な機能や動作については、図2,図3および図11〜図37を参照しながら後述する。
〔1−2〕伝送遅延差吸収装置(通信装置)の概要
各受信部20−iには、図2〜図6を参照しながら後述するレーン間伝送遅延差吸収バッファ24,パターン検出回路25およびレーン間伝送遅延差吸収制御回路26を含む吸収処理部(制御部)がそなえられている。吸収処理部は、複数のレーン[0]〜[n]の中から、隣接する2つのレーンを順次シフト選択する機能を果たす。また、吸収処理部は、2つのレーンを選択する都度、当該2つのレーン間で信号線SLにより伝送遅延差の補正設定処理(補正処理)に係る情報(後述)をやり取りして、当該2つのレーン間の伝送遅延差を補正するための設定処理(補正処理)を実行する。なお、以下、順次シフト選択される、隣接する2つのレーンを「レーンペア」と呼び、一方のレーンを「プライマリレーン」と呼び、他方のレーンを「セカンダリレーン」と呼ぶ。
各受信部20−iには、図2〜図6を参照しながら後述するレーン間伝送遅延差吸収バッファ24,パターン検出回路25およびレーン間伝送遅延差吸収制御回路26を含む吸収処理部(制御部)がそなえられている。吸収処理部は、複数のレーン[0]〜[n]の中から、隣接する2つのレーンを順次シフト選択する機能を果たす。また、吸収処理部は、2つのレーンを選択する都度、当該2つのレーン間で信号線SLにより伝送遅延差の補正設定処理(補正処理)に係る情報(後述)をやり取りして、当該2つのレーン間の伝送遅延差を補正するための設定処理(補正処理)を実行する。なお、以下、順次シフト選択される、隣接する2つのレーンを「レーンペア」と呼び、一方のレーンを「プライマリレーン」と呼び、他方のレーンを「セカンダリレーン」と呼ぶ。
より具体的に、吸収処理部は、隣接レーンにおける受信部20−(i−1)または20−(i+1)にそなえられた吸収処理部(パターン検出回路25およびレーン間伝送遅延差吸収制御回路26)と連携して、前記設定処理(補正処理)を実行する。このとき、吸収処理部は、複数のレーン[0]〜[n]における一端のレーン[0]から他端のレーン[n]に到達するまで2つのレーンを順次シフト選択し、2つのレーンを選択する都度、前記設定処理を実行する。この後、吸収処理部は、前記設定処理を施された複数のレーン[0]〜[n]における他端のレーン[n]から一端のレーン[0]に到達するまで2つのレーンを順次シフト選択し、2つのレーンを選択する都度、前記設定処理を再度実行する。吸収処理部に含まれるレーン間伝送遅延差吸収制御回路26のレーン制御部26b(後述)によるレーンペア選択動作については、図10〜図37を参照しながら後述する。
図39を参照しながら説明した設定処理では、伝送遅延差吸収対象の各レーンでのパターン検出信号が一の制御回路120aに一旦集約されてから、一の制御回路120aから全レーンの受信部へ停止信号が送信されている。
これに対し、本実施形態では、複数のレーン[0]〜[n]の受信部20−0〜20−nが、図1に示すように、信号線SLを介して数珠状に接続されている。これにより、隣接レーンにおけるパターン検出回路25/レーン間伝送遅延差吸収制御回路26どうしが、伝送遅延差の吸収設定処理に係る情報(後述)をやり取りしながら、隣接レーン間の伝送遅延差を補正するための設定処理(補正処理)を実行している。ここで、設定処理(補正処理)とは、装置1の初期化期間中において、レーン間伝送遅延差吸収バッファ24のデータ読出位置を、パターン検出回路25およびレーン間伝送遅延差吸収制御回路26によって設定する処理である。データ読出位置は、例えば図5を参照しながら後述するごとく、リードポインタによって指定される読出バッファ段数である。
これに対し、本実施形態では、複数のレーン[0]〜[n]の受信部20−0〜20−nが、図1に示すように、信号線SLを介して数珠状に接続されている。これにより、隣接レーンにおけるパターン検出回路25/レーン間伝送遅延差吸収制御回路26どうしが、伝送遅延差の吸収設定処理に係る情報(後述)をやり取りしながら、隣接レーン間の伝送遅延差を補正するための設定処理(補正処理)を実行している。ここで、設定処理(補正処理)とは、装置1の初期化期間中において、レーン間伝送遅延差吸収バッファ24のデータ読出位置を、パターン検出回路25およびレーン間伝送遅延差吸収制御回路26によって設定する処理である。データ読出位置は、例えば図5を参照しながら後述するごとく、リードポインタによって指定される読出バッファ段数である。
つまり、本実施形態では、数珠状に接続されたレーンにおけるパターン検出回路25およびレーン間伝送遅延差吸収制御回路26により、レーンペアを順にシフトさせて選択しながら、伝送遅延差の吸収設定処理に係る情報(後述)が収集される。そして、収集された情報に基づき、レーンペアのうち伝送遅延差が小さい方の吸収処理部が、自身のレーン間伝送遅延差吸収バッファ24のデータ読出タイミングを、伝送遅延差が大きい方のレーンにおけるレーン間伝送遅延差吸収バッファ24に合わせる。これにより、図39に示すように共用された一の制御回路120aを用いることなく、レーンペア間の伝送遅延差を補正するための設定処理(補正処理)が、全てのレーン[0]〜[n]に対し順次実行される。
〔1−3〕受信モジュールの構成
次に、図2および図3を参照しながら、本実施形態の伝送遅延差吸収装置を含む受信モジュール(通信装置)20の構成について説明する。ここで、図2は、受信モジュール20および各レーン[i]用受信部20−iの構成を示すブロック図、図3は、受信モジュール20の要部およびレーン[0]〜[n]間の信号線SLの配線状態を示すブロック図である。なお、図2および図3では、レーン[0]〜[2]用の受信部20−0〜20−2の詳細構成が示されているが、レーン[3]〜[n]用の受信部20−3〜20−nも同様に構成されている。
次に、図2および図3を参照しながら、本実施形態の伝送遅延差吸収装置を含む受信モジュール(通信装置)20の構成について説明する。ここで、図2は、受信モジュール20および各レーン[i]用受信部20−iの構成を示すブロック図、図3は、受信モジュール20の要部およびレーン[0]〜[n]間の信号線SLの配線状態を示すブロック図である。なお、図2および図3では、レーン[0]〜[2]用の受信部20−0〜20−2の詳細構成が示されているが、レーン[3]〜[n]用の受信部20−3〜20−nも同様に構成されている。
図2および図3に示すように、受信モジュール20における各受信部20−iは、S/P変換回路21,ビット境界検出回路22,クロック乗換バッファ23,レーン間伝送遅延差吸収バッファ(以下、単に「バッファ」という)24,パターン検出回路25およびレーン間伝送遅延差吸収制御回路(以下、単に「制御回路」という)26を含んでいる。なお、S/P変換回路21,ビット境界検出回路22およびクロック乗換バッファ23は、それぞれ、図39を参照しながら前述したS/P変換回路121,ビット境界検出回路122およびクロック乗換バッファ123と同等の機能を有しているので、その詳細な説明は省略する。
バッファ24は、図39に示したバッファ124と同等のもので、クロック乗換バッファ23からの部分データを一時的に保持することにより、レーン[0]〜[n]間の伝送遅延差を吸収する。バッファ24での部分データの保持時間(データ読出位置)は、初期化期間に、パターン検出回路25および制御回路26によって設定される。なお、バッファ24は、伝送路の設計情報に基づいて予想される最大の伝送遅延差を吸収可能なバッファ段数を有している。また、バッファ24の具体的な構成については、図5を参照しながら後述する。
パターン検出回路(検出部)25は、図4を参照しながら後述するパターン検出部25aおよび伝送遅延差検出部25bとしての機能を有している。
制御回路26は、図4〜図6を参照しながら後述する伝送遅延差吸収設定部26a,レーン制御部26bおよびORゲート26cとしての機能を有している。
制御回路26は、図4〜図6を参照しながら後述する伝送遅延差吸収設定部26a,レーン制御部26bおよびORゲート26cとしての機能を有している。
そして、本実施形態では、図39に示す一の制御回路120aに代え、図2および図3に示すように、各レーン[i]が、隣接レーンとの間の伝送遅延差を補正するためのバッファ段数の初期設定を可能にする制御回路26をそなえている。各レーン[i]の制御回路26は、同一レーン[i]内のパターン検出回路25に接続されるとともに、信号線SLを介して隣接レーン[i-1],[i+1]の制御回路26にも接続されている。また、各レーン[i]のパターン検出回路25は、隣接レーン[i-1],[i+1]から伝送遅延差の吸収設定処理に係る情報(パターン検出信号)を収集すべく、信号線SLを介して隣接レーン[i-1],[i+1]のパターン検出回路25に接続されている。
〔1−4〕レーン間の信号および信号接続関係
ここで、図3を参照しながら、各レーン[i]において、信号線SLによってパターン検出回路25および制御回路26に入力される信号と、信号線SLによってパターン検出回路25および制御回路26から出力される信号とについて説明する。また、各レーン[i]と隣接レーン[i-1],[i+1]との間の信号接続関係について説明する。
ここで、図3を参照しながら、各レーン[i]において、信号線SLによってパターン検出回路25および制御回路26に入力される信号と、信号線SLによってパターン検出回路25および制御回路26から出力される信号とについて説明する。また、各レーン[i]と隣接レーン[i-1],[i+1]との間の信号接続関係について説明する。
各レーン[i]のパターン検出回路25には、隣接レーン[i-1]のパターン検出信号と隣接レーン[i+1]のパターン検出信号とが、伝送遅延差の吸収設定処理に係る情報として入力される。各レーン[i]のパターン検出回路25は、自レーン[i]のパターン検出信号を、伝送遅延差の吸収設定処理に係る情報として、隣接レーン[i-1],[i+1]のパターン検出回路25へ出力する。なお、図中や以下の説明では、隣接レーン[i-1]を「隣接レーンA」と表記し、隣接レーン[i+1]は「隣接レーンB」と表記する場合がある。
なお、一端のレーン[0]は、端部に配置され、隣接レーン[i-1]に相当するレーンに接続されていない。このため、レーン[0]のパターン検出回路25には、隣接レーン[i-1]に相当するレーンのパターン検出信号として“0”が常時入力される。また、自レーン[0]のパターン検出信号を隣接レーン[i-1]に相当するレーンへ出力するラインは開放されている。同様に、他端のレーン[n]は、端部に配置され、隣接レーン[i+1]に相当するレーンに接続されていない。このため、レーン[n]のパターン検出回路25には、隣接レーン[i+1]に相当するレーンのパターン検出信号として“0”が常時入力される。また、自レーン[n]のパターン検出信号を隣接レーン[i+1]に相当するレーンへ出力するラインは開放されている。
各レーン[i]の制御回路26には、隣接レーン[i-1]の2ビット信号LE (Lane Enable) 2[1:0]が2ビット信号LE1[1:0]として入力され、隣接レーン[i-1]の1ビット信号CL (Clear) 4が1ビット信号CL3として入力される。また、各レーン[i]の制御回路26は、2ビット信号LE4[1:0]を隣接レーン[i-1]の2ビット信号LE3[1:0]として出力し、1ビット信号CL2を、隣接レーン[i-1]の1ビット信号CL1として出力する。
同様に、各レーン[i]の制御回路26には、隣接レーン[i+1]の2ビット信号LE4[1:0]が2ビット信号LE3[1:0]として入力され、隣接レーン[i+1]の1ビット信号CL2が1ビット信号CL1として入力される。また、各レーン[i]の制御回路26は、2ビット信号LE2[1:0]を隣接レーン[i+1]の2ビット信号LE1[1:0]として出力し、1ビット信号CL4を、隣接レーン[i+1]の1ビット信号CL3として出力する。
なお、一端のレーン[0]は、端部に配置され、隣接レーン[i-1]に相当するレーンに接続されていない。このため、レーン[0]の制御回路26には、隣接レーン[i-1]に相当するレーンの制御回路26として初期化ステートマシン20bが接続され、レーン[0]の制御回路26と初期化ステートマシン20bとの間で信号LE1-LE4, CL1-CL4がやり取りされる。同様に、他端のレーン[n]は、端部に配置され、隣接レーン[i+1]に相当するレーンに接続されていない。このため、レーン[n]の制御回路26には、隣接レーン[i+1]に相当するレーンの制御回路26として終端ロジック20cが接続され、レーン[n]の制御回路26と終端ロジック20cとの間で信号LE1-LE4, CL1-CL4がやり取りされる。
また、図4,図6,図20および図21を参照しながら説明するごとく、レーンペア選択の折り返し時に、レーン[n]の制御回路26には、後述するレーン制御部26bのフラグ“complete1”を設定するためのセット信号SC1が、隣接レーン伝送遅延情報として、終端ロジック20cから入力される。同様に、図4,図6,図34および図35を参照しながら説明するごとく、前記設定処理の完了時に、レーン[0]の制御回路26には、後述するレーン制御部26bのフラグ“complete2”を設定するためのセット信号SC2が、隣接レーン伝送遅延情報として、初期化ステートマシン20bから入力される。
また、各レーン[i]のパターン検出回路25と制御回路26との間でやり取りされる信号(情報)は以下の通りである。後述する遅延検出カウンタ255によるカウント値が伝送遅延差吸収情報としてパターン検出回路25から制御回路26へ送信され、後述するANDゲート258による論理積結果が隣接レーン伝送遅延差情報としてパターン検出回路25から制御回路26へ送信される。後述するORゲート2623による論理和結果が2ビット信号LS (Lane Select)[1:0]として制御回路26からパターン検出回路25へ送信される。
さらに、各レーン[i]のパターン検出回路25には、図4を参照しながら後述するごとく、隣接レーン[i-1],[i+1]からの信号LE1,LE3が入力される。また、各レーン[i]のバッファ24には、図4および図5を参照しながら後述するごとく、制御回路26の伝送遅延差吸収設定部26aによる自レーン[i]の遅延設定情報が入力される。
上述のように隣接レーン間で信号線SLを介して各種信号をやり取り可能に構成することにより、レーン[0]からレーン[n]までレーンペアを順次シフト選択しながら、レーンペア毎にバッファ24の遅延設定が行なわれる。さらに、終端ロジック20cでレーンペア選択のシフト方向が折り返されると、レーン[n]からレーン[0]までレーンペアを順次シフト選択しながら、レーンペア毎にバッファ24の遅延設定が行なわれる。このようにレーンペア選択のシフトを往復させてバッファ24の遅延設定を行なうことで、全レーン[0]〜[n]間の伝送遅延差を補正するための設定処理(補正処理)が行なわれる。なお、以下では、レーンペアがレーン[0]からレーン[n]までシフトする期間を「往路」と呼び、レーンペアがレーン[n]からレーン[0]までシフトする期間を「復路」と呼ぶ場合がある。
〔1−5〕吸収処理部の構成
以下では、全レーン[0]〜[n]間の伝送遅延差を補正するための設定処理(補正処理)を実行する吸収処理部の詳細な構成や機能、つまり各レーン[i]におけるバッファ24,パターン検出回路25および制御回路26の構成や機能について、図4〜図8を参照しながら説明する。
〔1−5−1〕パターン検出回路25の構成
図4は、パターン検出回路25の構成およびレーン間伝送遅延差吸収制御回路26の構成を示すブロック図である。
図4に示すように、パターン検出回路25は、パターン検出部25aおよび隣接レーン間伝送遅延差検出部25bを含んでいる。
以下では、全レーン[0]〜[n]間の伝送遅延差を補正するための設定処理(補正処理)を実行する吸収処理部の詳細な構成や機能、つまり各レーン[i]におけるバッファ24,パターン検出回路25および制御回路26の構成や機能について、図4〜図8を参照しながら説明する。
〔1−5−1〕パターン検出回路25の構成
図4は、パターン検出回路25の構成およびレーン間伝送遅延差吸収制御回路26の構成を示すブロック図である。
図4に示すように、パターン検出回路25は、パターン検出部25aおよび隣接レーン間伝送遅延差検出部25bを含んでいる。
パターン検出部25aは、クロック乗換バッファ23から読み出された部分データ(例えば8ビットデータ)を、送信側と受信側とで予め決められた特定パターンと比較することにより、部分データが特定パターンであるか否かを判断する機能を果たす。当該機能を実現すべく、パターン検出部25aは、伝送遅延検出パターン記憶部251,比較器252,判定回路253およびANDゲート254を含んでいる。
伝送遅延検出パターン記憶部251は、送信側と受信側とで予め決められた特定パターンを記憶する。特定パターンは、例えば8ビットのパラレルデータである。
比較器252は、クロック乗換バッファ23から読み出された8ビットデータと伝送遅延検出パターン記憶部251の特定パターンとを比較し、8ビットデータと特定パターンとが一致した場合に“1”を出力し、それ以外の場合に“0”を出力する。
比較器252は、クロック乗換バッファ23から読み出された8ビットデータと伝送遅延検出パターン記憶部251の特定パターンとを比較し、8ビットデータと特定パターンとが一致した場合に“1”を出力し、それ以外の場合に“0”を出力する。
判定回路253は、隣接レーン[i-1]または[i+1]からのレーンイネーブル信号LE1[1:0]またはLE3[1:0]が“01”または“10”になった場合に“1”を出力し、それ以外の場合に“0”を出力するもので、論理回路によって構成される。なお、レーンイネーブル信号LE1[1:0]またはLE3[1:0]が“01”または“10”になるのは、自レーン[i]がレーンペアとして選択されている時である。
ANDゲート254は、比較器252の出力と判定回路253の出力との論理積を出力する。つまり、ANDゲート254は、信号LE1[1:0]またはLE3[1:0]が“01”または“10”になり且つクロック乗換バッファ23から読み出された8ビットデータが特定パターンになった場合に“1”を出力し、それ以外の場合に“0”を出力する。より具体的に、ANDゲート254は、自レーン[i]がレーンペアとして選択され且つ特定パターンが検出された場合に“1”を出力する。
隣接レーン間伝送遅延差検出部(伝送遅延差検出部)25bは、自レーン[i]の特定パターンの検出タイミングと隣接レーン[i-1]または[i+1]での特定パターンの検出タイミングとに基づき、自レーン[i]と隣接レーン[i-1]または[i+1]との間の伝送遅延差を検出する機能を果たす。当該機能を実現すべく、隣接レーン間伝送遅延差検出部は、遅延検出カウンタ255,ORゲート256,セレクタ257およびANDゲート258を含んでいる。
遅延検出カウンタ255は、ANDゲート254の出力が“1”になった時、つまり自レーン[i]がレーンペアとして選択され且つ特定パターンが検出されたタイミングでインクリメント(計数)を開始する。遅延検出カウンタ255は、後述するANDゲート258の出力の立ち上がりによって計数動作を停止する。なお、遅延検出カウンタ255のカウント値の初期値は“0”に設定されている。また、図4に示す遅延検出カウンタ255は、カウント値を例えば4ビットデータとして出力する。
ORゲート256は、遅延検出カウンタ255の出力(カウント値)である4つのビットデータの論理和を自レーン[i]のパターン検出信号として出力する。より具体的に、ORゲート256は、遅延検出カウンタ255が計数を開始していない状態つまり初期値“0000”を出力している状態で“0”を出力する。また、ORゲート256は、遅延検出カウンタ255が計数を開始した状態つまり4つのビットデータのうちの少なくとも一つが“1”である状態で“1”を出力する。これにより、ORゲート256は、遅延検出カウンタ255が計数を開始しカウント値が1になったタイミングで、自レーン[i]で特定パターンが検出されたことを示すパターン検出信号を、隣接レーン[i-1]および[i+1]に対して通知する。
セレクタ257は、制御回路26(後述するレーン制御部26b)からのレーンセレクト信号LS[1:0]が“01”の時、隣接レーン[i+1](図4では隣接レーンB)のパターン検出信号を選択して出力する。レーンセレクト信号LS[1:0]が“01”になるのは、後述するごとく、自レーン[i]が、往路上のレーンペアのプライマリの時、または、復路上のレーンペアのセカンダリの時である。一方、セレクタ257は、制御回路26(後述するレーン制御部26b)からのレーンセレクト信号LS[1:0]が“10”の時、隣接レーン[i-1](図4では隣接レーンA)のパターン検出信号を選択して出力する。レーンセレクト信号LS[1:0]が“10”になるのは、後述するごとく、自レーン[i]が、往路上のレーンペアのセカンダリの時、または、復路上のレーンペアのプライマリの時である。
ANDゲート258は、ORゲート256の出力とセレクタ257の出力との論理積を隣接レーン伝送遅延差情報として出力する。つまり、ANDゲート258は、自レーン[i]のパターン検出信号が“1”になり、且つ、自レーン[i]とレーンペアを成す隣接レーン[i-1]または[i+1]のパターン検出信号が“1”になった場合に“1”を出力し、それ以外の場合に“0”を出力する。
ANDゲート258の出力である隣接レーン伝送遅延差情報は、計数停止信号として遅延検出カウンタ255に入力されるとともに、制御回路26(後述するORゲート26c)に入力される。
また、遅延検出カウンタ255は、ANDゲート258の出力が“1”になると計数動作を停止し、停止時点でのカウント値つまり自レーン[i]の伝送遅延差を、自レーン[i]の伝送遅延差吸収情報(4ビットデータ)として制御回路26(後述する伝送遅延差吸収設定部26a)へ出力する。ただし、本実施形態では、上述したように、各レーンのパターン検出信号は、遅延カウンタ255が1回インクリメントを行なって遅延検出カウンタ255の出力が“0”から“1”になった時点で出力される。このため、各レーンの遅延検出カウンタ255によって得られる伝送遅延差は、1だけ多く計数されている。したがって、後段の伝送遅延差吸収設定部26aで遅延検出カウンタ255のカウント値を用いる前には、後述する減算器261より、同カウント値から1だけ減じる処理が実行される。
また、遅延検出カウンタ255は、ANDゲート258の出力が“1”になると計数動作を停止し、停止時点でのカウント値つまり自レーン[i]の伝送遅延差を、自レーン[i]の伝送遅延差吸収情報(4ビットデータ)として制御回路26(後述する伝送遅延差吸収設定部26a)へ出力する。ただし、本実施形態では、上述したように、各レーンのパターン検出信号は、遅延カウンタ255が1回インクリメントを行なって遅延検出カウンタ255の出力が“0”から“1”になった時点で出力される。このため、各レーンの遅延検出カウンタ255によって得られる伝送遅延差は、1だけ多く計数されている。したがって、後段の伝送遅延差吸収設定部26aで遅延検出カウンタ255のカウント値を用いる前には、後述する減算器261より、同カウント値から1だけ減じる処理が実行される。
上述した遅延検出カウンタ255によって計数されるカウント値は、自レーン[i]と隣接レーン[i-1]または[i+1]との間の伝送遅延差が0である場合には“1”になる。また、自レーン[i]のデータ伝送が隣接レーン[i-1]または[i+1]よりも遅い場合、カウンタ255が計数を開始した直後に計数停止信号を受けることになり、遅延検出カウンタ255によって計数されるカウント値は“1”になる。一方、自レーン[i]のデータ伝送が隣接レーン[i-1]または[i+1]よりも速い場合、カウンタ255は、計数を開始した後、隣接レーン[i-1]または[i+1]からパターン検出信号を受信するまで計数を行なうことになる。これにより、遅延検出カウンタ255によって計数されるカウント値は、自レーン[i]と隣接レーン[i-1]または[i+1]との間の伝送遅延差に応じたカウント値に、1を加算した値になる。
〔1−5−2〕レーン間伝送遅延差吸収制御回路26の構成
レーン間伝送遅延差吸収制御回路26は、図4に示すように、伝送遅延差吸収設定部26a,レーン制御部26bおよびORゲート26cを含んでいる。
ORゲート26cは、伝送遅延差検出部25bのANDゲート258からの隣接レーン伝送遅延情報と後述する信号SCとの論理和を出力する。ここで、レーン[1]〜[n-1]のORゲート26cに入力される信号SCは“0”に固定される。一端のレーン[0]のORゲート26cに入力される信号SCとしては、前記設定処理の完了時にレーン制御部26bのフラグ“complete2”を設定するためのセット信号SC2が、初期化ステートマシン20bから入力される(図34および図35参照)。また、他端のレーン[n]のORゲート26cに入力される信号SCとしては、レーンペア選択の折り返し時にレーン制御部26bのフラグ“complete1”を設定するためのセット信号SC1が、終端ロジック20cから入力される(図20および図21参照)。そして、ORゲート26cの出力は、後述するごとく、隣接レーン伝送遅延差情報として、レーン制御部26bの判定回路2602,2604に入力される。
レーン間伝送遅延差吸収制御回路26は、図4に示すように、伝送遅延差吸収設定部26a,レーン制御部26bおよびORゲート26cを含んでいる。
ORゲート26cは、伝送遅延差検出部25bのANDゲート258からの隣接レーン伝送遅延情報と後述する信号SCとの論理和を出力する。ここで、レーン[1]〜[n-1]のORゲート26cに入力される信号SCは“0”に固定される。一端のレーン[0]のORゲート26cに入力される信号SCとしては、前記設定処理の完了時にレーン制御部26bのフラグ“complete2”を設定するためのセット信号SC2が、初期化ステートマシン20bから入力される(図34および図35参照)。また、他端のレーン[n]のORゲート26cに入力される信号SCとしては、レーンペア選択の折り返し時にレーン制御部26bのフラグ“complete1”を設定するためのセット信号SC1が、終端ロジック20cから入力される(図20および図21参照)。そして、ORゲート26cの出力は、後述するごとく、隣接レーン伝送遅延差情報として、レーン制御部26bの判定回路2602,2604に入力される。
伝送遅延差吸収設定部(バッファ制御部)26aは、レーンペアの選択がレーン[0]からレーン[n]に到達するまでの間に伝送遅延差検出部25bによって検出された伝送遅延差を、伝送遅延差吸収情報として一時的に記憶する機能を有する。また、伝送遅延差吸収設定部26aは、記憶した伝送遅延差と、レーンペアの選択がレーン[n]からレーン[0]に到達するまでの間に伝送遅延差検出部25bによって検出された伝送遅延差とを加算する機能を有する。さらに、伝送遅延差吸収設定部26aは、加算して得られた値(伝送遅延差)をバッファ24で吸収するように、バッファ24からの部分データの読出位置を設定する機能を有する。以上のような機能を果たす伝送遅延差吸収設定部26aの詳細な構成については、図5を参照しながら後述する。
レーン制御部26bは、隣接レーンのレーン制御部26bと信号線SLを介して信号のやり取りを行なうことにより隣接レーンのレーン制御部26bと連携し、以下のような機能を果たす。つまり、レーン制御部26bは、レーン[0]からレーン[n]に到達するまでの往路上で、レーンペアを順次選択する。そして、レーン制御部26bは、レーンペアを選択する都度、パターン検出部25a,伝送遅延差検出部25bおよびバッファ制御部26aに、選択されたレーンペアの伝送遅延差を補正するための設定処理を実行させる。この後、レーン制御部26bは、当該設定処理を施されたレーン[0]〜[n]におけるレーン[n]からレーン[0]に到達するまでの復路上で、レーンペアを順次選択する。そして、レーン制御部26bは、レーンペアを選択する都度、パターン検出部25a,伝送遅延差検出部25bおよびバッファ制御部26aに、選択されたレーンペアの伝送遅延差を補正するための設定処理を再度実行させる。
なお、レーン[i]のレーン制御部26bは、レーンイネーブル信号LE1[1:0]およびクリア信号CL1を隣接レーンから入力される一方で、レーンイネーブル信号LE2[1:0]およびクリア信号CL2を隣接レーンへ出力する。このとき、レーンイネーブル信号LE1[1:0]は、隣接レーン[i-1]のレーンイネーブル信号LE2[1:0]であり、クリア信号CL1は、隣接レーン[i+1]のクリア信号CL2である。また、レーンイネーブル信号LE2[1:0]は、隣接レーン[i+1]のレーンイネーブル信号LE1[1:0]として出力され、クリア信号CL2は、隣接レーン[i-1]のクリア信号CL1として出力される。これらの信号LE1[1:0],LE2[1:0],CL1,CL2は、レーンペアがレーン[0]からレーン[n]へシフトする往路で用いられ、レーンペアがレーン[n]からレーン[0]へシフトする復路では“0”に固定される。
同様に、レーン[i]のレーン制御部26bは、レーンイネーブル信号LE3[1:0]およびクリア信号CL3を隣接レーンから入力される一方で、レーンイネーブル信号LE4[1:0]およびクリア信号CL4を隣接レーンへ出力する。このとき、レーンイネーブル信号LE3[1:0]は、隣接レーン[i+1]のレーンイネーブル信号LE4[1:0]であり、クリア信号CL3は、隣接レーン[i-1]のクリア信号CL4である。また、レーンイネーブル信号LE4[1:0]は、隣接レーン[i-1]のレーンイネーブル信号LE3[1:0]として出力され、クリア信号CL4は、隣接レーン[i+1]のクリア信号CL3として出力される。これらの信号LE3[1:0],LE4[1:0],CL3,CL4は、レーンペアがレーン[n]からレーン[0]へシフトする復路で用いられ、レーンペアがレーン[0]からレーン[n]へシフトする往路では“0”に固定される。
さらに、レーン制御部26bは、レーンセレクト信号LS[1:0]をパターン検出回路25のセレクタ257へ出力するとともに、自レーン[i]の遅延設定情報を伝送遅延差吸収設定部26aへ出力する。
このような機能を果たすレーン制御部26bの詳細な構成については、図6〜図8を参照しながら後述する。
このような機能を果たすレーン制御部26bの詳細な構成については、図6〜図8を参照しながら後述する。
また、上述のような機能を果たすレーン間伝送遅延差吸収制御回路26を用いることにより、レーンペアが、レーン[0]とレーン[n]との間でシフトさせながら1往復するように選択される。そして、レーンペアが選択される都度、選択されたレーンペアの伝送遅延差を補正するための設定処理が実行される。例えば、レーン[0],[1]を選択して設定処理が実行された後は、レーン[1],[2]を選択して設定処理が実行される。これを繰り返し、レーン[n-1],[n]を選択して設定処理が実行された後は、終端ロジック20cによりレーンペア選択の折り返し動作が実行される。この後、レーン[n],[n-1]を選択して設定処理が実行された後は、レーン[n-1],[n-2]を選択して設定処理が実行される。これを繰り返し、レーン[1],[0]を選択して設定処理が実行された後は、初期化ステートマシン20bによりレーンペア選択の終端処理が実行される。以上の処理によって、全レーン[0]〜[n]の伝送遅延差を補正するための設定処理が実行されることになる。
〔1−5−3〕レーン間伝送遅延差吸収バッファ24の構成
図5は、制御回路26におけるレーン間伝送遅延差吸収バッファ24の構成および伝送遅延差吸収設定部26aの構成を示すブロック図である。
図5に示すように、レーン間伝送遅延差吸収バッファ24は、4段のバッファ(D)241〜244およびセレクタ245を含んでいる。このバッファ24は、伝送路の伝送遅延差を吸収しうる段数を有している。この段数は、伝送路の設計要素の1つとして予め取り決めがなされる。
図5は、制御回路26におけるレーン間伝送遅延差吸収バッファ24の構成および伝送遅延差吸収設定部26aの構成を示すブロック図である。
図5に示すように、レーン間伝送遅延差吸収バッファ24は、4段のバッファ(D)241〜244およびセレクタ245を含んでいる。このバッファ24は、伝送路の伝送遅延差を吸収しうる段数を有している。この段数は、伝送路の設計要素の1つとして予め取り決めがなされる。
4段のバッファ241〜244は、クロック乗換バッファ23の出力ラインに直列接続され、クロック乗換バッファ23からの8ビットデータを入力される。
セレクタ245には、クロック乗換バッファ23の出力ラインから4段のバッファ241〜244を迂回するラインL0が接続されるとともに、4段のバッファ241〜244の出力ラインL1〜L4がそれぞれ接続されている。
セレクタ245には、クロック乗換バッファ23の出力ラインから4段のバッファ241〜244を迂回するラインL0が接続されるとともに、4段のバッファ241〜244の出力ラインL1〜L4がそれぞれ接続されている。
セレクタ245は、伝送遅延差吸収設定部26aの保持FF(flip-flop)263(後述)に保持された値に応じて、5つのラインL0〜L4のうちの一つからのデータを選択的に切り換えて出力する。保持FF263に保持される値は、自レーン[i]と隣接レーンとの間の伝送遅延差を示す、例えば3ビットのデータで、バッファ24のリードポインタとして用いられる。保持FF263の値が“000”の時、セレクタ245は、ラインL0を選択し、クロック乗換バッファ23からの8ビットデータを遅延させることなくそのまま出力する。保持FF263の値が“001”の時、セレクタ245は、ラインL1つまり1段目のバッファ241をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241により1クロック分遅延させて出力する。保持FF263の値が“010”の時、セレクタ245は、ラインL2つまり2段目のバッファ242をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241,242により2クロック分遅延させて出力する。保持FF263の値が“011”の時、セレクタ245は、ラインL3つまり3段目のバッファ243をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241〜243により3クロック分遅延させて出力する。保持FF263の値が“100”の時、セレクタ245は、ラインL4つまり4段目のバッファ244をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241〜244により4クロック分遅延させて出力する。
〔1−5−4〕伝送遅延差吸収設定部26aの構成
図5に示すように、伝送遅延差吸収設定部26aは、減算器261,セレクタ262,保持FF263および加算器264を含む。
減算器261は、パターン検出回路25の伝送遅延差吸収情報、つまり遅延検出カウンタ255によるカウント値から1を減じる。減算器261によりカウント値から1を減じる処理を行なうのは、図4を参照しながら前述した通り、遅延検出カウンタ255によって得られる伝送遅延差は1だけ多く計数され、2つのレーン間に伝送遅延差が無い場合でも伝送遅延差が“1”となるからである。したがって、遅延検出カウンタ255において上述のようなレイテンシが生じなければ、減算器261をそなえなくても、本装置は実現可能である。なお、本実施形態では、遅延検出カウンタ255によるカウント値が4ビットデータで、減算器261から出力されるデータは、1を減じることにより、3ビットデータとなっている。
図5に示すように、伝送遅延差吸収設定部26aは、減算器261,セレクタ262,保持FF263および加算器264を含む。
減算器261は、パターン検出回路25の伝送遅延差吸収情報、つまり遅延検出カウンタ255によるカウント値から1を減じる。減算器261によりカウント値から1を減じる処理を行なうのは、図4を参照しながら前述した通り、遅延検出カウンタ255によって得られる伝送遅延差は1だけ多く計数され、2つのレーン間に伝送遅延差が無い場合でも伝送遅延差が“1”となるからである。したがって、遅延検出カウンタ255において上述のようなレイテンシが生じなければ、減算器261をそなえなくても、本装置は実現可能である。なお、本実施形態では、遅延検出カウンタ255によるカウント値が4ビットデータで、減算器261から出力されるデータは、1を減じることにより、3ビットデータとなっている。
セレクタ262には、減算器261からのラインL10と、後述する加算器264からのラインL11と、後述する保持FF263からのラインL12とが接続されている。
セレクタ262は、レーン制御部26bの遅延差吸収状態制御デコーダ(第3デコーダ;後述)2621の出力値(切換信号)に応じて、3つのラインL10〜L12のうちの一つからのデータを選択的に切り換えて保持FF263に出力する。デコーダ2621の出力値は、例えば図6および図8を参照しながら後述するような2ビットデータである。デコーダ2621の出力値が“00”の時、セレクタ262は、ラインL10を選択し、減算器261からの値を出力して保持FF263に保持させる。デコーダ2621の出力値が“01”の時、セレクタ262は、ラインL11を選択し、加算器264からの値を出力して保持FF263に保持させる。デコーダ2621の出力値が“10”または“11”の時、セレクタ262は、ラインL12を選択し、保持FF263の値を出力して保持FF263に再度保持させる。つまり、デコーダ2621の出力値が“10”または“11”の時、保持FF263は、同じ値を保持し続けることになる。
セレクタ262は、レーン制御部26bの遅延差吸収状態制御デコーダ(第3デコーダ;後述)2621の出力値(切換信号)に応じて、3つのラインL10〜L12のうちの一つからのデータを選択的に切り換えて保持FF263に出力する。デコーダ2621の出力値は、例えば図6および図8を参照しながら後述するような2ビットデータである。デコーダ2621の出力値が“00”の時、セレクタ262は、ラインL10を選択し、減算器261からの値を出力して保持FF263に保持させる。デコーダ2621の出力値が“01”の時、セレクタ262は、ラインL11を選択し、加算器264からの値を出力して保持FF263に保持させる。デコーダ2621の出力値が“10”または“11”の時、セレクタ262は、ラインL12を選択し、保持FF263の値を出力して保持FF263に再度保持させる。つまり、デコーダ2621の出力値が“10”または“11”の時、保持FF263は、同じ値を保持し続けることになる。
保持FF263は、セレクタ262から出力された値を自レーン[i]の伝送遅延差(伝送遅延差吸収情報)として保持し、その値を、自レーン[i]の遅延設定情報としてバッファ24のセレクタ245に出力する。保持FF263に保持される値は、前述のごとくバッファ24のリードポインタとして用いられる。
加算器264は、減算器261からの値と保持FF263からの値とを加算して得られた値を、ラインL11を通じてセレクタ262へ出力する。
加算器264は、減算器261からの値と保持FF263からの値とを加算して得られた値を、ラインL11を通じてセレクタ262へ出力する。
ここで、レーン制御部26bの遅延差吸収状態制御デコーダ2621の出力値に応じた、伝送遅延差吸収設定部26aの動作について説明する。
各レーン[i]での伝送遅延差吸収処理(補正処理)は、漏れの無いように、以下のタイミングで計4回実行される。つまり、レーン[i]が往路でセカンダリレーンとして選択された時と、レーン[i]が往路でプライマリレーンとして選択された時と、レーン[i]が復路でセカンダリレーンとして選択された時と、レーン[i]が復路でプライマリレーンとして選択された時との計4回である。
各レーン[i]での伝送遅延差吸収処理(補正処理)は、漏れの無いように、以下のタイミングで計4回実行される。つまり、レーン[i]が往路でセカンダリレーンとして選択された時と、レーン[i]が往路でプライマリレーンとして選択された時と、レーン[i]が復路でセカンダリレーンとして選択された時と、レーン[i]が復路でプライマリレーンとして選択された時との計4回である。
1回目(往路セカンダリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“00”となり(図8参照)、セレクタ245により、ラインL10つまり減算器261からの伝送遅延値が選択され、1回目の伝送遅延差吸収情報として保持FF263に記憶される。
2回目(往路プライマリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL11つまり加算器264からの伝送遅延値が選択され、2回目の伝送遅延差吸収情報として保持FF263に記憶される。つまり、減算器261により新たに得られた伝送遅延値と、保持FF263に保持されている1回目の伝送遅延値とが、加算器264によって加算され、その加算値が、2回目の伝送遅延差吸収情報として保持FF263に記憶される。
2回目(往路プライマリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL11つまり加算器264からの伝送遅延値が選択され、2回目の伝送遅延差吸収情報として保持FF263に記憶される。つまり、減算器261により新たに得られた伝送遅延値と、保持FF263に保持されている1回目の伝送遅延値とが、加算器264によって加算され、その加算値が、2回目の伝送遅延差吸収情報として保持FF263に記憶される。
3回目(復路セカンダリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL11つまり加算器264からの伝送遅延値が選択され、3回目の伝送遅延差吸収情報として保持FF263に記憶される。つまり、減算器261により新たに得られた伝送遅延値と、保持FF263に保持されている2回目の伝送遅延値とが、加算器264によって加算され、その加算値が、3回目の伝送遅延差吸収情報として保持FF263に記憶される。
4回目(復路プライマリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL11つまり加算器264からの伝送遅延値が選択され、4回目の伝送遅延差吸収情報として保持FF263に記憶される。つまり、減算器261により新たに得られた伝送遅延値と、保持FF263に保持されている3回目の伝送遅延値とが、加算器264によって加算され、その加算値が、4回目の伝送遅延差吸収情報として保持FF263に記憶される。
上述した4回のタイミング以外では、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL12つまり保持FF263からの伝送遅延値が選択され、伝送遅延差吸収情報として保持FF263に再度記憶される。つまり、保持FF263は、同じ値を保持し続ける。なお、遅延差吸収状態制御デコーダ2621の出力値として誤って“11”がセレクタ262に入力された場合も、セレクタ245により、ラインL12が選択され、保持FF263は、同じ値を保持し続ける。
ここで、上述のごとく構成されたパターン検出回路25,バッファ24および伝送遅延差吸収設定部26aによる具体的な動作について、簡単に説明する。
例えばレーン[0]のデータがレーン[1]のデータよりも1クロック分早く到着する場合、レーン[0]のカウンタ255によるカウント値は“2”となり、レーン[0]の伝送遅延差吸収設定部26aの保持FF263には“001”が保持される。保持FF263における値がバッファ24のリードポインタとなるため、レーン[0]ではセレクタ245により1段目のバッファ241が選択され、このバッファ241からデータが読み出されることになる。一方、レーン[1]のカウンタ255は、“1”を計数したときにANDゲート258から隣接レーン伝送遅延差情報(レーン[0]のパターン検出信号)を受け取り、計数動作を停止し、レーン[1]の伝送遅延差吸収設定部26aの保持FF263には“000”が保持される。その結果、レーン[1]ではセレクタ245によりバイパスラインL0が選択され、データは、バッファ241〜244をバイパスして読み出されることになる。
例えばレーン[0]のデータがレーン[1]のデータよりも1クロック分早く到着する場合、レーン[0]のカウンタ255によるカウント値は“2”となり、レーン[0]の伝送遅延差吸収設定部26aの保持FF263には“001”が保持される。保持FF263における値がバッファ24のリードポインタとなるため、レーン[0]ではセレクタ245により1段目のバッファ241が選択され、このバッファ241からデータが読み出されることになる。一方、レーン[1]のカウンタ255は、“1”を計数したときにANDゲート258から隣接レーン伝送遅延差情報(レーン[0]のパターン検出信号)を受け取り、計数動作を停止し、レーン[1]の伝送遅延差吸収設定部26aの保持FF263には“000”が保持される。その結果、レーン[1]ではセレクタ245によりバイパスラインL0が選択され、データは、バッファ241〜244をバイパスして読み出されることになる。
〔1−5−5〕レーン制御部26bの構成
図6は、レーン間伝送遅延差吸収制御回路26におけるレーン制御部26bの構成を示すブロック図である。
図6に示すように、レーン制御部26bは、判定回路2601〜2612,フラグ保持レジスタ2613〜2618,第1デコーダ2619,第2デコーダ2620,第3デコーダ2621,インバータ2622およびORゲート2623を含んでいる。
図6は、レーン間伝送遅延差吸収制御回路26におけるレーン制御部26bの構成を示すブロック図である。
図6に示すように、レーン制御部26bは、判定回路2601〜2612,フラグ保持レジスタ2613〜2618,第1デコーダ2619,第2デコーダ2620,第3デコーダ2621,インバータ2622およびORゲート2623を含んでいる。
判定回路2601,2602,フラグ保持レジスタ2613,2614および第1デコーダ2619は往路で用いられ、判定回路2603,2604,フラグ保持レジスタ2615,2616および第2デコーダ2620は復路で用いられる。また、判定回路2605〜2612,フラグ保持レジスタ2617,2618,第3デコーダ2621,インバータ2622およびORゲート2623は、往路および復路の両方で用いられる。
まず、往路で用いられる構成について説明する。
判定回路2601は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2613にフラグ“current1”をセットする。なお、レーンイネーブル信号LE1[1:0]は、前述した通り、隣接レーン[i-1]のレーンイネーブル信号LE2[1:0]である。
判定回路2601は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2613にフラグ“current1”をセットする。なお、レーンイネーブル信号LE1[1:0]は、前述した通り、隣接レーン[i-1]のレーンイネーブル信号LE2[1:0]である。
フラグ保持レジスタ2613は、判定回路2601によりフラグ“current1”をセットされると、信号sigA1として“1”を出力する。フラグ保持レジスタ2613にはクリア信号CL1が入力されており、このクリア信号CL1が“1”になると、フラグ保持レジスタ2613は、フラグ“current1”をクリアし、信号sigA1として“0”を出力する。なお、クリア信号CL1は、前述した通り、隣接レーン[i+1]のクリア信号CL2である。フラグ“current1”は、自レーン[i]が往路でレーンペアとして選択されていることを示す。
判定回路2602は、フラグ保持レジスタ2613の出力sigA1とORゲート26cからの隣接レーン伝送遅延差情報とを入力され、出力sigA1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったか否かを判定する。判定回路2602は、出力sigA1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったと判定すると、フラグ保持レジスタ2614にフラグ“complete1”をセットする。
フラグ保持レジスタ2614は、判定回路2602によりフラグ“complete1”をセットされると、信号sigA2として“1”を出力する。フラグ“complete1”は、自レーン[i]が往路での伝送遅延差吸収処理を完了したことを示す。
フラグ保持レジスタ2614は、判定回路2602によりフラグ“complete1”をセットされると、信号sigA2として“1”を出力する。フラグ“complete1”は、自レーン[i]が往路での伝送遅延差吸収処理を完了したことを示す。
第1デコーダ(Lane EN decoder1)2619は、レジスタ2613からの信号sigA1(current1)とレジスタ2614からの信号sigA2(complete1)とを入力され、これらの信号sigA1, sigA2をデコードし、レーンイネーブル信号LE2[1:0]とクリア信号CL2とを生成して出力する。第1デコーダ2619によるデコード内容、つまり信号sigA1, sigA2と出力信号LE2[1:0], CL2との関係は、図7に示す論理(真理値表)の通りである。なお、前述した通り、レーンイネーブル信号LE2[1:0]は、隣接レーン[i+1]のレーンイネーブル信号LE1[1:0]として出力され、クリア信号CL2は、隣接レーン[i-1]のクリア信号CL1として出力される。
ついで、復路で用いられる構成について説明する。
復路で用いられる判定回路2603,2604,フラグ保持レジスタ2615,2616および第2デコーダ2620は、それぞれ、往路で用いられる判定回路2601,2602,フラグ保持レジスタ2613,2614および第1デコーダ2619に対応している。レーンイネーブル信号LE3[1:0], LE4[1:0]は、それぞれレーンイネーブル信号LE1[1:0], LE2[1:0]に対応し、クリア信号CL3, CL4は、それぞれクリア信号CL1, CL2に対応している。また、フラグ“current2”,“complete2”はそれぞれフラグ“current1”,“complete1”に対応し、信号sigB1, sigB2はそれぞれ信号sigA1, sigA2に対応している。
復路で用いられる判定回路2603,2604,フラグ保持レジスタ2615,2616および第2デコーダ2620は、それぞれ、往路で用いられる判定回路2601,2602,フラグ保持レジスタ2613,2614および第1デコーダ2619に対応している。レーンイネーブル信号LE3[1:0], LE4[1:0]は、それぞれレーンイネーブル信号LE1[1:0], LE2[1:0]に対応し、クリア信号CL3, CL4は、それぞれクリア信号CL1, CL2に対応している。また、フラグ“current2”,“complete2”はそれぞれフラグ“current1”,“complete1”に対応し、信号sigB1, sigB2はそれぞれ信号sigA1, sigA2に対応している。
つまり、判定回路2603は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“01”であるか否かを判定し、信号LE3[1:0]が“01”になったと判定すると、フラグ保持レジスタ2615にフラグ“current2”をセットする。なお、レーンイネーブル信号LE3[1:0]は、前述した通り、隣接レーン[i+1]のレーンイネーブル信号LE4[1:0]である。
フラグ保持レジスタ2615は、判定回路2603によりフラグ“current2”をセットされると、信号sigB1として“1”を出力する。フラグ保持レジスタ2615にはクリア信号CL3が入力されており、このクリア信号CL3が“1”になると、フラグ保持レジスタ2615は、フラグ“current2”をクリアし、信号sigB1として“0”を出力する。なお、クリア信号CL3は、前述した通り、隣接レーン[i-1]のクリア信号CL4である。フラグ“current2”は、自レーン[i]が復路でレーンペアとして選択されていることを示す。
判定回路2604は、フラグ保持レジスタ2615の出力sigB1とORゲート26cからの隣接レーン伝送遅延差情報とを入力され、出力sigB1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったか否かを判定する。判定回路2604は、出力sigB1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったと判定すると、フラグ保持レジスタ2616にフラグ“complete2”をセットする。
フラグ保持レジスタ2616は、判定回路2604によりフラグ“complete2”をセットされると、信号sigB2として“1”を出力する。フラグ“complete2”は、自レーン[i]が復路での伝送遅延差吸収処理を完了したことを示す。
フラグ保持レジスタ2616は、判定回路2604によりフラグ“complete2”をセットされると、信号sigB2として“1”を出力する。フラグ“complete2”は、自レーン[i]が復路での伝送遅延差吸収処理を完了したことを示す。
第2デコーダ(Lane EN decoder2)2620は、レジスタ2615からの信号sigB1(current2)とレジスタ2616からの信号sigB2(complete2)とを入力され、これらの信号sigB1, sigB2をデコードし、レーンイネーブル信号LE4[1:0]とクリア信号CL4とを生成して出力する。第2デコーダ2620によるデコード内容、つまり信号sigB1, sigB2と出力信号LE4[1:0], CL4との関係は、図7に示す論理(真理値表)の通りである。ただし、第2デコーダ2620で図7に示す真理値表を用いる場合、信号sigA1, sigA2がそれぞれ信号sigB1, sigB2に置き換えられ、且つ、レーンイネーブル信号LE2[1:0]およびクリア信号CL2がそれぞれレーンイネーブル信号LE4[1:0]およびクリア信号CL4に置き換えられる。なお、前述した通り、レーンイネーブル信号LE4[1:0]は、隣接レーン[i-1]のレーンイネーブル信号LE3[1:0]として出力され、クリア信号CL4は、隣接レーン[i+1]のクリア信号CL3として出力される。
ついで、往路および復路の両方で用いられる構成について説明する。
判定回路2605は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2617にフラグ“Primary”をセットする。
判定回路2606は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“00”であるか否かを判定し、信号LE1[1:0]が“00”になったと判定すると、フラグ保持レジスタ2617のフラグ“Primary”をクリアする。
判定回路2605は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2617にフラグ“Primary”をセットする。
判定回路2606は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“00”であるか否かを判定し、信号LE1[1:0]が“00”になったと判定すると、フラグ保持レジスタ2617のフラグ“Primary”をクリアする。
判定回路2607は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“01”であるか否かを判定し、信号LE3[1:0]が“01”になったと判定すると、フラグ保持レジスタ2617にフラグ“Primary”をセットする。
判定回路2608は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“00”であるか否かを判定し、信号LE3[1:0]が“00”になったと判定すると、フラグ保持レジスタ2617のフラグ“Primary”をクリアする。
判定回路2608は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“00”であるか否かを判定し、信号LE3[1:0]が“00”になったと判定すると、フラグ保持レジスタ2617のフラグ“Primary”をクリアする。
フラグ保持レジスタ(以下「プライマリレジスタ」という)2617は、レーンイネーブル信号LE1[1:0]またはLE3[1:0]が“01”の時にセット可能になるようにセット優先FFによって構成される。プライマリレジスタ2617は、往路で判定回路2605によりフラグ“Primary”をセットされた場合または復路で判定回路2607によりフラグ“Primary”をセットされた場合、“1”を出力する。また、プライマリレジスタ2617は、往路で判定回路2606によりフラグ“Primary”をクリアされた場合または復路で判定回路2608によりフラグ“Primary”をクリアされた場合、“0”を出力する。フラグ“Primary”は、自レーン[i]が往路または復路でレーンペアのプライマリレーンとして選択され伝送遅延差を調整中であることを示す。
判定回路2609は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“10”であるか否かを判定し、信号LE1[1:0]が“10”になったと判定すると、フラグ保持レジスタ2618にフラグ“Secondary”をセットする。
判定回路2610は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2618のフラグ“Secondary”をクリアする。
判定回路2610は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2618のフラグ“Secondary”をクリアする。
判定回路2611は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“10”であるか否かを判定し、信号LE3[1:0]が“10”になったと判定すると、フラグ保持レジスタ2618にフラグ“Secondary”をセットする。
判定回路2612は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“01”であるか否かを判定し、信号LE3[1:0]が“01”になったと判定すると、フラグ保持レジスタ2618のフラグ“Secondary”をクリアする。
判定回路2612は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“01”であるか否かを判定し、信号LE3[1:0]が“01”になったと判定すると、フラグ保持レジスタ2618のフラグ“Secondary”をクリアする。
フラグ保持レジスタ(以下「セカンダリレジスタ」という)2618は、クリア優先FFによって構成され、確実にクリアが行なわれるように構成される。セカンダリレジスタ2618は、往路で判定回路2609によりフラグ“Secondary”をセットされた場合または復路で判定回路2611によりフラグ“Secondary”をセットされた場合、“1”を出力する。また、セカンダリレジスタ2618は、往路で判定回路2610によりフラグ“Secondary”をクリアされた場合または復路で判定回路2612によりフラグ“Secondary”をクリアされた場合、“0”を出力する。フラグ“Secondary”は、自レーン[i]が往路または復路でレーンペアのセカンダリレーンとして選択され伝送遅延差を調整中であることを示す。
第3デコーダ(Decoder3)2621は、図5に示す遅延差吸収状態制御デコーダとして機能するものである。つまり、第3デコーダ2621は、自レーン[i]の伝送遅延差吸収量を示す伝送遅延差吸収情報(図4に示す遅延検出カウンタ255からの出力)を、図5に示す保持FF263に正しく保持させるように、セレクタ262を切り換える切換信号を生成する。
具体的に、第3デコーダ2621は、1回目(自レーン[i]が往路のセカンダリレーンである時)“00”を出力し、減算器261の出力つまり伝送遅延値を選択して保持FF263に記憶させる。第3デコーダ2621は、2回目(自レーン[i]が往路のプライマリレーンである時)“01”を出力し、加算器264の出力つまり減算器261の出力と保持FF263の値との和を選択して保持FF263に記憶させる。第3デコーダ2621は、3回目(自レーン[i]が復路のセカンダリレーンである時)“01”を出力し、加算器264の出力つまり減算器261の出力と保持FF263の値との和を選択して保持FF263に記憶させる。第3デコーダ2621は、4回目(自レーン[i]が復路のプライマリレーンである時)“01”を出力し、加算器264の出力つまり減算器261の出力と保持FF263の値との和を選択して保持FF263に記憶させる。自レーン[i]がレーンペアとして選択されていない場合、第3デコーダ2621は、“10”を出力し、ラインL12を選択して保持FF263に、現在保持している値と同じ値を保持させる。
第3デコーダ2621は、上述のようにセレクタ262を切り換える切換信号を出力すべく、フラグ保持レジスタ2613〜2615,2617,2618からのフラグ“current1”,“complete1”,“current2”,“Primary”,“Secondary”を入力される。そして、第3デコーダ2621は、これらのフラグをデコードして切換信号を生成しセレクタ262へ出力する。第3デコーダ2621によるデコード内容、つまりフラグ“current1”,“complete1”,“current2”,“Primary”,“Secondary”と切換信号との関係は、図8に示す論理(真理値表)の通りである。
インバータ2622は、レーンイネーブル信号LE3[1:0]の各ビットの値を反転させて出力する。
ORゲート2623は、レーンイネーブル信号LE1[1:0]と、インバータ2622からのレーンイネーブル信号LE3[1:0]の反転信号との論理和を生成し、レーンセレクト信号LS[1:0]として出力する。レーンセレクト信号LS[1:0]は、図4を参照しながら前述した通り、セレクタ257を切り換え、隣接レーン[i+1]または[i-1]のパターン検出信号を選択するための信号として用いられる。
ORゲート2623は、レーンイネーブル信号LE1[1:0]と、インバータ2622からのレーンイネーブル信号LE3[1:0]の反転信号との論理和を生成し、レーンセレクト信号LS[1:0]として出力する。レーンセレクト信号LS[1:0]は、図4を参照しながら前述した通り、セレクタ257を切り換え、隣接レーン[i+1]または[i-1]のパターン検出信号を選択するための信号として用いられる。
レーンセレクト信号LS[1:0]は、自レーン[i]が往路のプライマリレーンである時(信号LE1[1:0]=“01”の時)または復路のセカンダリレーンである時(信号LE3[1:0]=“10”の時)に“01”となる。また、レーンセレクト信号LS[1:0]は、自レーン[i]が往路のセカンダリレーンである時(信号LE1[1:0]=“10”の時)または復路のプライマリレーンである時(信号LE3[1:0]=“01”の時)に“10”となる。
〔2〕伝送遅延差吸収装置(通信装置)の動作
次に、上述のごとく構成された伝送遅延差吸収装置(通信装置)による処理について、図9〜図37を参照しながらより具体的に説明する。
〔2−1〕レーンペアの選択手法
図3および図6を参照しながら、往路でのレーンペアの選択手法について説明する。上述したように、隣接する2つのレーンをレーンペアとして選択する際、便宜上、2つのレーンの一方がプライマリレーンとして取り扱われ、他方がセカンダリレーンとして取り扱われる。プライマリレーンとセカンダリレーンとでは、レーン間伝送遅延差の吸収処理を行なう動作に差異は無いが、レーン制御部26bから隣接レーンに対して出力されるレーンイネーブル信号の内容に差異がある。
次に、上述のごとく構成された伝送遅延差吸収装置(通信装置)による処理について、図9〜図37を参照しながらより具体的に説明する。
〔2−1〕レーンペアの選択手法
図3および図6を参照しながら、往路でのレーンペアの選択手法について説明する。上述したように、隣接する2つのレーンをレーンペアとして選択する際、便宜上、2つのレーンの一方がプライマリレーンとして取り扱われ、他方がセカンダリレーンとして取り扱われる。プライマリレーンとセカンダリレーンとでは、レーン間伝送遅延差の吸収処理を行なう動作に差異は無いが、レーン制御部26bから隣接レーンに対して出力されるレーンイネーブル信号の内容に差異がある。
レーンイネーブル信号LE1[1:0]=“01”を入力されたレーンは、プライマリレジスタ2617にフラグ“Primary”を設定され、プライマリレーンになる。
レーンイネーブル信号LE1[1:0]=“10”を入力されたレーンは、セカンダリレジスタ2618にフラグ“Secondary”を設定され、セカンダリレーンになる。
プライマリレーンは、レーンイネーブル信号LE2[1:0]=“10”を出力する。つまり、プライマリレーンがレーン[i]である場合、レーン[i]のレーンイネーブル信号LE2[1:0]=“10”は、レーンイネーブル信号LE1[1:0]=“10”としてレーン[i+1]に入力され、レーン[i+1]はセカンダリレーンになる。
レーンイネーブル信号LE1[1:0]=“10”を入力されたレーンは、セカンダリレジスタ2618にフラグ“Secondary”を設定され、セカンダリレーンになる。
プライマリレーンは、レーンイネーブル信号LE2[1:0]=“10”を出力する。つまり、プライマリレーンがレーン[i]である場合、レーン[i]のレーンイネーブル信号LE2[1:0]=“10”は、レーンイネーブル信号LE1[1:0]=“10”としてレーン[i+1]に入力され、レーン[i+1]はセカンダリレーンになる。
セカンダリレーンは、レーンイネーブル信号LE2[1:0]=“00”を出力する。つまり、セカンダリレーンがレーン[i+1]である場合、レーン[i+1]のレーンイネーブル信号LE2[1:0]=“00”は、レーンイネーブル信号LE1[1:0]=“00”としてレーン[i+2]に入力される。レーンイネーブル信号LE1[1:0]=“00”を入力されたレーンは、非活性化され、レーンペアに含まれず、レーン間伝送遅延差の吸収処理の対象外である。
例えば、レーン[0]の制御回路26の2ビットのレーンイネーブル信号LE2[1:0]とレーン[1]の制御回路26の2ビットのレーンイネーブル信号LE1[1:0]とが接続される。レーンイネーブル信号LE2[1:0],LE1[1:0]において、ビット[0]はプライマリレーンを指示するビットであり、ビット[1]がセカンダリレーンを指示するビットである。
〔2−2〕レーン間伝送遅延差の吸収設定処理手順
図9に示すフローチャート(ステップS11〜S20)を参照しながら、本実施形態の伝送遅延差吸収装置(通信装置)によるレーン間伝送遅延差の吸収設定処理手順について説明する。
レーン間伝送遅延差の吸収設定処理を開始する場合、まず、初期化ステートマシン20bからレーン[0]のレーン制御部26bに対しレーンイネーブル信号LE1[1:0]=“01”が入力される(ステップS11)。これにより、レーン[0]はプライマリレーンに設定される。
図9に示すフローチャート(ステップS11〜S20)を参照しながら、本実施形態の伝送遅延差吸収装置(通信装置)によるレーン間伝送遅延差の吸収設定処理手順について説明する。
レーン間伝送遅延差の吸収設定処理を開始する場合、まず、初期化ステートマシン20bからレーン[0]のレーン制御部26bに対しレーンイネーブル信号LE1[1:0]=“01”が入力される(ステップS11)。これにより、レーン[0]はプライマリレーンに設定される。
プライマリレーンに設定されたレーン[0]のレーン制御部26bは、レーン[1]に対し、レーンイネーブル信号LE2[1:0]=“10”を出力する。レーン[0]のレーンイネーブル信号LE2[1:0]はレーン[1]のレーンイネーブル信号LE1[1:0]に接続されているので、レーン[1]のレーンイネーブル信号LE1[1:0]=“10”となり、レーン[1]はセカンダリレーンに設定される。これにより、レーン[0],[1]が、レーンペア1として選択される(ステップS12)。セカンダリレーンに設定されたレーン[1]のレーン制御部26bは、レーン[2]へレーンイネーブル信号LE2[1:0]=“00”を出力し、レーン[2]を非活性化する。
レーン[0],[1]がレーンペア1として選択されると、レーン[0]においてレーン制御部26bからレーンセレクト信号LS[1:0]=“01”がパターン検出回路25のセレクタ257に出力される。また、レーン[1]においてレーン制御部26bからレーンセレクト信号LS[1:0]=“10”がパターン検出回路25のセレクタ257に出力される。さらに、レーン[0],[1]において、判定回路253の出力が“1”になるため、比較器252の比較結果がANDゲート254を通過可能になり、比較器252が有効化される(ステップS13)。
比較器252を有効化した状態で、特定パターンを含むデータが、送信モジュール10から受信モジュール20に対して送信される。このとき、比較器252が有効化されているレーン[0],[1]においてのみ遅延検出カウンタ255が起動され、レーン[0],[1]のそれぞれにおいて、隣接レーン伝送遅延差情報が取得され、伝送遅延差が計測されて保持FF263に記憶される(ステップS14)。そして、保持FF263に記憶された伝送遅延差が、自レーン[i]の遅延設定情報としてバッファ24のセレクタ245に出力され、バッファ24のリードポインタとして用いられる(ステップS15)。
この後、レーン[1],[2]をレーンペアとして選択するように、レーン[0],[1]のレーンイネーブル信号LE2[1:0]が設定される(ステップS16)。つまり、レーン[0],[1]間の伝送遅延差の吸収設定が終わると、レーン[0]のレーン制御部26bは、初期化ステートマシン20bにクリア信号CL2を送信する(図12参照)。これに伴い、初期化ステートマシン20bからのレーンイネーブル信号LE1[1:0]は“01”から“00”に、レーン[0]のレーンイネーブル信号LE2[1:0]は“10”から“01”に、レーン[1]のレーンイネーブル信号LE2[1:0]は“00”から“10”になる(図13参照)。これにより、レーン[1]がプライマリレーンに、レーン[2]がセカンダリレーンに設定される。
以下、図11〜図18を参照しながら後述するように、各レーン[i]のレーン制御部26bが、レーンイネーブル信号LE1[1:0],LE2[1:0]およびクリア信号CL1, CL2を隣接レーンとやり取りする。これにより、往路で、レーン[n-1],[n]がレーンペアとして選択されるまで、レーンペアのシフト選択が実行され、レーンペアが選択される都度、伝送遅延差の吸収処理(補正処理)が実行される(ステップS17,S18)。この後、図19〜図25を参照しながら後述するように、終端ロジック20cによりレーンペア選択の折り返し動作が行なわれる(ステップS19)。さらに、図26〜図37を参照しながら後述するように、各レーン[i]のレーン制御部26bが、レーンイネーブル信号LE3[1:0],LE4[1:0]およびクリア信号CL3, CL4を隣接レーンとやり取りする。これにより、復路で、レーンペアがレーン[n],[n-1]からレーン[1],[0]まで順次シフト選択され、レーンペアが選択される都度、伝送遅延差の吸収処理が実行される(ステップS20)。なお、折り返し後、最初のレーンペア[n],[n-1]に対する吸収処理は、往路最後のレーンペア[n-1],[n]に対する吸収処理と重複することになるので省略し、レーン[n-1],[n-2]から開始してもよい。
〔2−3〕レーン間伝送遅延差の吸収設定処理の具体例
レーンペアとして選択されたプライマリレーンおよびセカンダリレーンは、それぞれ、両方のパターン検出信号を受信し、隣接レーン伝送遅延差情報(図4のANDゲート258の出力参照)に基づき、自レーンの遅延設定情報(図4,図5の設定部26aの出力参照)を決定する。ここで、隣接レーンの伝送遅延差情報やレーン間伝送遅延差の吸収設定処理の具体例について、図10(A)〜図10(F)を参照しながら説明する。なお、図10(A)〜図10(F)は、4つのシリアルレーン[0]〜[3]で構成された伝送装置で伝送されている伝送データを模式的に示している。
レーンペアとして選択されたプライマリレーンおよびセカンダリレーンは、それぞれ、両方のパターン検出信号を受信し、隣接レーン伝送遅延差情報(図4のANDゲート258の出力参照)に基づき、自レーンの遅延設定情報(図4,図5の設定部26aの出力参照)を決定する。ここで、隣接レーンの伝送遅延差情報やレーン間伝送遅延差の吸収設定処理の具体例について、図10(A)〜図10(F)を参照しながら説明する。なお、図10(A)〜図10(F)は、4つのシリアルレーン[0]〜[3]で構成された伝送装置で伝送されている伝送データを模式的に示している。
各レーンにおいて受信側に届くデータには、伝送路の線長差や、送信器と受信器との間のデバイスの製造バラツキにより、時間的差異が生じる。データを受信側のクロックでサンプリングする際、隣接するレーンにおいて同じクロックエッジでデータがサンプリングされた場合、時間的差異は無いと認識される。一方、隣接するレーンにおいて異なるクロックエッジでデータサンプリングされた場合、時間的差異があると認識される。
図10(A)〜図10(F)は、受信側のクロックでサンプリングした後の受信データの様子を示している。なお、図中のアルファベットA〜Hは、レーン間で同期すべき、つまり同じタイミング(クロックエッジ)で受信されるべき1ビット分のデータとする。
図10(A)は、伝送遅延差吸収設定処理を実行する前の状態を示す。図10(A)に示すレーン構成において、最も短い線路長を持つレーンはレーン[1]およびレーン[3]で、最も長い線路長を持つレーンはレーン[2]である。また、レーン[0]のデータとレーン[1]のデータとの間には1ビット分つまり1クロック分の差異があり、レーン[0]のデータがレーン[1]のデータよりも1クロック分遅れて到着する。レーン[1]のデータとレーン[2]のデータとの間には2ビット分つまり2クロック分の差異があり、レーン[1]のデータがレーン[2]のデータよりも2クロック分先に到着する。レーン[2]のデータとレーン[3]のデータとの間にも2ビット分つまり2クロック分の差異があり、レーン[2]のデータがレーン[3]のデータよりも2クロック分遅れて到着する。このようなクロックの差異が伝送遅延差吸収情報となる。
図10(A)は、伝送遅延差吸収設定処理を実行する前の状態を示す。図10(A)に示すレーン構成において、最も短い線路長を持つレーンはレーン[1]およびレーン[3]で、最も長い線路長を持つレーンはレーン[2]である。また、レーン[0]のデータとレーン[1]のデータとの間には1ビット分つまり1クロック分の差異があり、レーン[0]のデータがレーン[1]のデータよりも1クロック分遅れて到着する。レーン[1]のデータとレーン[2]のデータとの間には2ビット分つまり2クロック分の差異があり、レーン[1]のデータがレーン[2]のデータよりも2クロック分先に到着する。レーン[2]のデータとレーン[3]のデータとの間にも2ビット分つまり2クロック分の差異があり、レーン[2]のデータがレーン[3]のデータよりも2クロック分遅れて到着する。このようなクロックの差異が伝送遅延差吸収情報となる。
図10(A)に示すレーン構成に対し、本実施形態のレーン間伝送遅延差の吸収処理を行なった場合、以下のようにして、最大線路長を持つレーン[2]の受信タイミングと、他のレーン[0],[1],[3]の受信タイミングとが合うように、各レーン[0],[1],[3]のバッファ24からの読出タイミング(リードポインタ)が調整設定される。
図10(A)に示すレーン構成に対し伝送遅延差を補正するための設定処理を行なう場合、まず、図10(B)に示すように、プライマリレーン[0]とセカンダリレーン[1]とがレーンペアとして選択され、これらのレーン[0],[1]に対する設定処理が行なわれる。このとき、レーン[1]の方がレーン[0]よりも線路長が短く、レーン[1]のデータがレーン[0]のデータよりも先に受信側に到達するので、レーン[1]でのパターン検出がレーン[0]でのパターン検出よりも先に行なわれる。レーン[1]は、レーン[1]のカウンタ255により“2”を計数した時にレーン[0]からのパターン検出信号を受信し、ANDゲート258により隣接レーン伝送遅延差情報を生成する。レーン[0]は、先にレーン[1]側のパターン検出信号を隣接レーンBのパターン検出信号として受信しており、1クロック後に自レーン[0]のパターン検出信号を受け、ANDゲート258により隣接レーン伝送遅延差情報を生成する。この時点で、レーン[0]のカウンタ255によるカウント値は“1”となり、レーン[2]のカウンタ255によるカウント値は“2”となる。
図10(A)に示すレーン構成に対し伝送遅延差を補正するための設定処理を行なう場合、まず、図10(B)に示すように、プライマリレーン[0]とセカンダリレーン[1]とがレーンペアとして選択され、これらのレーン[0],[1]に対する設定処理が行なわれる。このとき、レーン[1]の方がレーン[0]よりも線路長が短く、レーン[1]のデータがレーン[0]のデータよりも先に受信側に到達するので、レーン[1]でのパターン検出がレーン[0]でのパターン検出よりも先に行なわれる。レーン[1]は、レーン[1]のカウンタ255により“2”を計数した時にレーン[0]からのパターン検出信号を受信し、ANDゲート258により隣接レーン伝送遅延差情報を生成する。レーン[0]は、先にレーン[1]側のパターン検出信号を隣接レーンBのパターン検出信号として受信しており、1クロック後に自レーン[0]のパターン検出信号を受け、ANDゲート258により隣接レーン伝送遅延差情報を生成する。この時点で、レーン[0]のカウンタ255によるカウント値は“1”となり、レーン[2]のカウンタ255によるカウント値は“2”となる。
このとき、図10(A)に示すように、レーン[0]のデータがレーン[1]のデータよりも1クロック分遅れて到着している。この遅れは、レーン[0],[1]のパターン検出部25aでも1クロック分遅れて検出される。ANDゲート258によって生成されるレーン[0]および[1]のパターン検出信号の論理積である隣接レーン伝送遅延差情報は、図4に示すように、自レーンの遅延検出カウンタ255を停止させる信号となる。つまり、伝送遅延差検出パターンの検出を契機に開始されたカウンタ255による計数動作は、隣接レーン伝送遅延差情報によって停止される。これにより、レーンペアのうちの早い方のレーンにおけるカウント値に基づいて、早い方のレーンのデータをどれだけ遅延させれば、両レーンのデータの受信タイミングを一致させることができるかを決定することができる。本実施形態では、カウンタ255による計数値が、図4に示す伝送遅延差吸収情報となる。この情報は、各レーンで決定される。例えば、レーン[0]のデータがレーン[1]のデータよりも1クロック分早く到着する場合、レーン[0]のカウント値がレーン[1]のカウント値よりも1つ多くなる。逆に、レーン[1]のデータがレーン[0]のデータよりも1クロック分早く到着する場合、レーン[1]のカウント値がレーン[0]のカウント値よりも1つ多くなる。また、レーン[0]のデータとレーン[1]のデータとが同時に到着する場合、両レーンのカウント値は同じ値となる。このようなカウント値に基づく遅延設定情報を、レーン間伝送遅延差吸収バッファ24のリードポインタとしてセットすることで、レーン間伝送遅延差を補正するための設定が行なわれる。
さて、レーンペアの各レーンにおけるカウント値は、伝送遅延差吸収情報として、各レーンの制御回路26内の自レーンの伝送遅延差吸収設定部26aに送られる。伝送遅延差吸収設定部26aでは、カウンタ255によるカウント値から“1”を減算した値が、保持FF263に保持される。例えば図10(B)に示すレーンペア[0],[1]に対し伝送遅延差を補正するための設定処理を行なった場合、レーン[0]の保持FF263には“000”が保持され、レーン[1]の保持FF263には“001”が保持される。レーン[0]および[1]それぞれの保持FF263に保持された遅延設定情報は、各レーンのバッファ24のリードポインタとして用いられ、セレクタ245は、リードポインタに応じたラインL0〜L4のうちの一つからのデータを選択して出力することになる。これにより、レーン[0]のバッファ24ではラインL0が選択され、セレクタ245は、データを遅延させることなくそのまま出力する〔図10(B)のレーン[0]のデータA〜H参照〕。また、レーン[1]のバッファ24では、ラインL1つまり1段目のバッファ241が選択され、セレクタ245は、データを、レーン[0]のデータに対し1クロック分遅延させて出力する〔図10(B)のレーン[1]のデータA′〜H′参照〕。
次に、図10(C)に示すように、プライマリレーン[1]とセカンダリレーン[2]とがレーンペアとして選択され、これらのレーン[1],[2]に対し上述と同様の設定処理が行なわれる。ただし、この場合、プライマリレーン[1]では、レーン制御部26bの第3デコーダ2621の出力値が“01”となり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[1]では、今回の処理で減算器261により得られた遅延値“001”と既に保持FF263に保持された値“001”とが加算器264により加算され、その加算値“010”がレーン[1]の保持FF263に保持される。一方、セカンダリレーン[2]では、レーン制御部26bの第3デコーダ2621の出力値が“00”となり(図8参照)、セレクタ262は減算器261の出力を選択している。このため、レーン[2]の保持FF263には“000”が保持される。これにより、レーン[1]のバッファ24では、ラインL2つまり2段目のバッファ242が選択され、セレクタ245は、データを、レーン[2]のデータに対し1クロック分遅延させて出力する〔図10(C)のレーン[1]のデータA′〜H′参照〕。また、レーン[2]のバッファ24ではラインL0が選択され、セレクタ245は、データを遅延させることなくそのまま出力する〔図10(C)のレーン[2]のデータA〜H参照〕。
次に、図10(D)に示すように、プライマリレーン[2]とセカンダリレーン[3]とがレーンペアとして選択され、これらのレーン[2],[3]に対し上述と同様の設定処理が行なわれる。この場合、プライマリレーン[2]では、レーン制御部26bの第3デコーダ2621の出力値が“01”となり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[2]では、今回の処理で減算器261により得られた遅延値“000”と既に保持FF263に保持された値“000”とが加算器264により加算され、その加算値“000”がレーン[2]の保持FF263に保持される。一方、セカンダリレーン[3]では、レーン制御部26bの第3デコーダ2621の出力値が“00”となり(図8参照)、セレクタ262は減算器261の出力を選択している。このため、レーン[3]では、カウンタ255からのカウント値“011”が減算器261により“1”だけ減算され、その減算された値“010”が保持FF263に保持される。これにより、レーン[2]のバッファ24ではラインL0が選択され、セレクタ245は、データを遅延させることなくそのまま出力する〔図10(D)のレーン[2]のデータA〜H参照〕。また、レーン[3]のバッファ24では、ラインL2つまり2段目のバッファ242が選択され、セレクタ245は、データを、レーン[2]のデータに対し2クロック分遅延させて出力する〔図10(D)のレーン[3]のデータA′〜H′参照〕。
ここまでの設定処理により、全てのレーン[0]〜[3]について伝送遅延差を補正するための設定処理が行なわれている。しかし、実際には、図10(D)〜図10(F)に示すように、レーン[0]が、他のレーン[1]〜[3]よりもデータを1クロック分早く受信する状態で残ってしまっている。このような状態で設定処理を終わらせないために、上述と同様の設定処理が、レーンペアをレーン[0]からレーン[3]までシフトさせる往路のみならず、後述のごとくレーンペアをレーン[3]からレーン[0]までシフトさせる復路でも実行される。設定処理を1往復させることで、全てのレーン[0]〜[3]の伝送遅延差が補正されるようにリードポインタの設定処理が行なわれる。なお、復路の設定処理対象となる各レーン[0]〜[3]のレーン制御部26bには、往路の設定処理を完了していることを示すフラグ“complete1”がセットされている。
次に、図10(D)に示すように、プライマリレーン[3]とセカンダリレーン[2]とがレーンペアとして選択され、2回目(復路)の設定処理が行なわれる。このとき、レーン[3]および[2]は、既に相互に伝送遅延差の無い状態に設定されているので、両レーン[3],[2]においてカウンタ255の伝送遅延差吸収情報は“001”となる。この伝送遅延差吸収情報“001”から減算器261により“1”を減算して得られた値は“000”となる。ここで、両レーン[3],[2]においてレーン制御部26bの第3デコーダ2621の出力値は“01”であり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[3]では、保持FF263に“010”が保持され続けるとともに、レーン[2]では、保持FF263に“000”が保持され続ける。
ついで、図10(E)に示すように、プライマリレーン[2]とセカンダリレーン[1]とがレーンペアとして選択され、2回目(復路)の設定処理が行なわれる。このとき、レーン[2]および[1]も、既に相互に伝送遅延差の無い状態に設定されているので、両レーン[2],[1]においてカウンタ255の伝送遅延差吸収情報は“001”となる。この伝送遅延差吸収情報“001”から減算器261により“1”を減算して得られた値は“000”となる。ここで、両レーン[2],[1]においてレーン制御部26bの第3デコーダ2621の出力値は“01”であり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[2]では、保持FF263に“000”が保持され続けるとともに、レーン[1]では、保持FF263に“010”が保持され続ける。
最後に、図10(F)に示すように、プライマリレーン[1]とセカンダリレーン[0]とがレーンペアとして選択され、2回目(復路)の設定処理が行なわれる。このとき、レーン[0]のデータがレーン[1]のデータよりも1クロック分早く受信されているので、レーン[1]のカウンタ255によるカウント値は“001”となり、レーン[0]のカウンタ255によるカウント値は“010”となる。ここで、両レーン[1],[0]においてレーン制御部26bの第3デコーダ2621の出力値は“01”であり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[1]では、カウント値“001”から減算器261により“1”を減算して得られた値“000”と既に保持FF264に保持された値“010”とが加算器264により加算され、その加算値“010”が保持FF263に保持される。また、レーン[0]では、カウント値“010”から“1”を減算して得られた値“001”と保持FF264に保持された値“000”とが加算器264により加算され、その加算値“001”が保持FF263に保持される。これにより、レーン[1]のバッファ24では、ラインL2つまり2段目のバッファ242が選択され、セレクタ245は、データを、レーン[2]のデータに対し2クロック分遅延させて出力する〔図10(F)のレーン[1]のデータA〜H参照〕。また、レーン[0]のバッファ24では、ラインL1つまり1段目のバッファ241が選択され、セレクタ245は、データを、レーン[2]のデータに対し1クロック分遅延させて出力する〔図10(F)のレーン[0]のデータA′〜H′参照〕。
以上のような設定処理を行なうことにより、図10(A)に示すレーン構成に対し、レーン[0]の保持FF263には“001”が保持され、レーン[1]の保持FF263には“010”が設定され、レーン[2]の保持FF263には“000”が設定され、レーン[3]の保持FF263には“010”が保持される。そして、各保持FF263に保持された値に応じて、バッファ24におけるバッファ段数が選択される。これにより、最大線路長を持つレーン[2]の受信タイミングと、他のレーン[0],[1],[3]の受信タイミングとが合うように、各レーン[0],[1],[3]のバッファ24からの読出タイミング(リードポインタ)が調整設定される。
〔2−4〕レーンペア選択動作の具体例
図11〜図37を参照しながら、本実施形態の伝送遅延差吸収装置(通信装置)におけるレーンペア選択動作(1)〜(27)を具体的に説明する。
図11〜図37においては、初期化ステートマシン(I)20bと、終端ロジック(TL)20cと、4つのレーン[0]〜[3]とをそなえた伝送装置に、本実施形態の伝送遅延差吸収装置(通信装置)を適用した場合の、レーンペア選択動作(1)〜(27)が具体的に示されている。
図11〜図37を参照しながら、本実施形態の伝送遅延差吸収装置(通信装置)におけるレーンペア選択動作(1)〜(27)を具体的に説明する。
図11〜図37においては、初期化ステートマシン(I)20bと、終端ロジック(TL)20cと、4つのレーン[0]〜[3]とをそなえた伝送装置に、本実施形態の伝送遅延差吸収装置(通信装置)を適用した場合の、レーンペア選択動作(1)〜(27)が具体的に示されている。
特に、図11〜図18においては、レーン[0]〜[3]間の伝送遅延差を補正するための設定処理が開始されてから、往路でレーンペアとしてレーン[0],[1]、レーン[1],[2]、レーン[2],[3]が順次シフト選択されるまでの動作(1)〜(8)が示されている。また、図19〜図25においては、レーンペア選択の折り返し動作(9)〜(15)が示されている。図26〜図37においては、折り返し後に、復路でレーンペアとしてレーン[3],[2]、レーン[2],[1]、レーン[1],[0]が順次シフト選択され、設定処理が完了されるまでの動作(16)〜(27)が示されている。
なお、各図のレーン[0]〜[3]には、各動作段階(1)〜(27)での各レーン(レーン制御部26bのフラグ保持レジスタ2613〜2618)におけるフラグ“Primary”,“Secondary”,“current1”,“complete1”,“current2”,“complete2”の設定状態が示されている。具体的に、図11〜図37では、各レーンにおけるフラグ“Primary”,“Secondary”,“current1”,“complete1”,“current2”,“complete2”の状態が、それぞれブロックP, S, cu1, co1, cu2, co2によって示されている。そして、フラグがセットされている場合、対応ブロック内に斜線網掛けが付され、フラグがセットされていない場合(クリアされた場合)、対応ブロック内は空白となっている。また、図11〜図22では、各レーンにおけるフラグ“current2”,“complete2”の図示は省略されているが、これらのフラグは全て未設定状態である。図25〜図37では、各レーンにおけるフラグ“current1”,“complete1”の図示は省略されているが、図24に示すように、フラグ“current1”は全てクリアされ、フラグ“complete1”は全てセットされている。
また、図11〜図37に示す伝送装置において、4つのレーン[0]〜[3]は、図1〜図3に示す装置と同様、初期化ステートマシン20bと終端ロジック20cとの間において、信号線SLによって直列(数珠状)に接続されている。そして、図11〜図37においては、初期化ステートマシン20b,レーン[0]〜[3]および終端ロジック20cを接続する信号線SLの下に、各動作段階(1)〜(27)で初期化ステートマシン20b,レーン[0]〜[3]および終端ロジック20cのそれぞれに入出力されるレーンイネーブル信号LE1[1:0],LE2[1:0]の状態(2ビットデータ)が示されている。
さらに、図11〜図37において各レーン[0]〜[3]を示すブロック内には、各動作段階(1)〜(27)での各レーンの状態を示す符号“P”,“S”,“n”のいずれか一つが記入されている。ここで、“P”が記入されている場合、“P”を記入されたレーンが、レーンペアのプライマリレーンとして選択されていることを示す。“S”が記入されている場合、“S”を記入されたレーンが、レーンペアのセカンダリレーンとして選択されていることを示す。“n”が記入されている場合、“n”を記入されたレーンが、レーンペアとして選択されていないこと、つまり非活性化されていることを示す。
まず、図11〜図18を参照しながら、往路でのレーンペアの選択動作(1)〜(8)について説明する。
図11に示す動作(1)では、レーン間伝送遅延差の吸収設定処理を開始する際、まず、初期化ステートマシン20bからレーン[0]に対しレーンイネーブル信号LE1[1:0]=“01”が入力される。これに伴い、レーン[0]のフラグP, cu1が設定され、レーン[0]はプライマリレーンに設定される。プライマリレーンに設定されたレーン[0]は、レーン[1]に対しレーンイネーブル信号LE2[1:0]=“10”を出力し、同信号がレーン[1]のレーンイネーブル信号LE1[1:0]=“10”として入力される。これにより、レーン[1]のフラグSが設定され、レーン[1]はセカンダリレーンに設定され、レーン[0],[1]が、レーンペアとして選択される。セカンダリレーンに設定されたレーン[1]は、レーン[2]へレーンイネーブル信号LE2[1:0]=“00”を出力することで、以降のレーン[2],[3]を非活性化する。
図11に示す動作(1)では、レーン間伝送遅延差の吸収設定処理を開始する際、まず、初期化ステートマシン20bからレーン[0]に対しレーンイネーブル信号LE1[1:0]=“01”が入力される。これに伴い、レーン[0]のフラグP, cu1が設定され、レーン[0]はプライマリレーンに設定される。プライマリレーンに設定されたレーン[0]は、レーン[1]に対しレーンイネーブル信号LE2[1:0]=“10”を出力し、同信号がレーン[1]のレーンイネーブル信号LE1[1:0]=“10”として入力される。これにより、レーン[1]のフラグSが設定され、レーン[1]はセカンダリレーンに設定され、レーン[0],[1]が、レーンペアとして選択される。セカンダリレーンに設定されたレーン[1]は、レーン[2]へレーンイネーブル信号LE2[1:0]=“00”を出力することで、以降のレーン[2],[3]を非活性化する。
図12に示す動作(2)では、上記動作(1)後にレーン[0],[1]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[0]が往路での設定処理を完了すると、レーン[0]においてフラグco1が設定され、レーン[0]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[0]は、初期化ステートマシン20bにクリア信号CL2を送信する。
図13および図14に示す動作(3),(4)では、初期化ステートマシン20bがレーン[0]からクリア信号CL2を受信すると、初期化ステートマシン20bからレーン[0]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[0]のフラグPがクリアされる。また、上記動作(2)でレーン[0]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[0]からレーン[1]に対して入力されるレーンイネーブル信号LE1[1:0]は、“10”から“01”に切り換わる。レーン[1]にレーンイネーブル信号LE1[1:0]=“01”が入力されると、レーン[1]のフラグP, cu1が設定され、フラグSがクリアされ、さらに、レーン[1]からレーン[2]に対して入力されるレーンイネーブル信号LE1[1:0]は、“00”から“10”に切り換わる。レーン[2]にレーンイネーブル信号LE1[1:0]=“10”が入力されると、レーン[2]のフラグSが設定される。これにより、図14に示すように、レーン[0]は非活性化され、レーン[1]をプライマリレーンとしレーン[2]をセカンダリレーンとするレーンペアが選択される。なお、この後、初期化ステートマシン20bは、レーン[0]からのレーンイネーブル信号LE4[1:0]が“00”から“10”に切り換わるのを待機する。
図15に示す動作(5)では、上記動作(4)後にレーン[1],[2]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[1]が往路での設定処理を完了すると、レーン[1]においてフラグco1が設定され、レーン[1]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[1]は、レーン[0]に対してクリア信号CL2を出力し、同クリア信号CL2がレーン[0]のクリア信号CL1として入力される。
図16および図17に示す動作(6),(7)では、レーン[0]がレーン[1]からクリア信号CL1を入力されると、レーン[0]のフラグcu1がクリアされる。これに応じ、レーン[0]からレーン[1]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[1]のフラグPがクリアされる。また、上記動作(5)でレーン[1]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[1]からレーン[2]に対して入力されるレーンイネーブル信号LE1[1:0]は、“10”から“01”に切り換わる。レーン[2]にレーンイネーブル信号LE1[1:0]=“01”が入力されると、レーン[2]のフラグP, cu1が設定され、フラグSがクリアされ、さらに、レーン[2]からレーン[3]に対して入力されるレーンイネーブル信号LE1[1:0]は、“00”から“10”に切り換わる。レーン[3]にレーンイネーブル信号LE1[1:0]=“10”が入力されると、レーン[3]のフラグSが設定される。これにより、図17に示すように、レーン[1]は非活性化され、レーン[2]をプライマリレーンとしレーン[3]をセカンダリレーンとするレーンペアが選択される。
図18に示す動作(8)では、上記動作(7)後にレーン[2],[3]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[2]が往路での設定処理を完了すると、レーン[2]においてフラグco1が設定され、レーン[2]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[2]は、レーン[1]に対してクリア信号CL2を出力し、同クリア信号CL2がレーン[1]のクリア信号CL1として入力される。
ついで、図19〜図25を参照しながら、レーンペア選択の折り返し動作、つまりレーンペア選択を往路から復路に切り換える動作(9)〜(15)について説明する。
図19および図20に示す動作(9),(10)では、レーン[1]がレーン[2]からクリア信号CL1を入力されると、レーン[1]のフラグcu1がクリアされる。これに応じ、レーン[1]からレーン[2]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[2]のフラグPがクリアされる。また、上記動作(8)でレーン[2]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[2]からレーン[3]に対して入力されるレーンイネーブル信号LE1[1:0]は、“10”から“01”に切り換わる。レーン[3]にレーンイネーブル信号LE1[1:0]=“01”が入力されると、レーン[3]のフラグP, cu1が設定され、フラグSがクリアされる。これにより、図20に示すように、レーン[2]は非活性化され、レーン[3]はプライマリレーンに設定された状態になる。
図19および図20に示す動作(9),(10)では、レーン[1]がレーン[2]からクリア信号CL1を入力されると、レーン[1]のフラグcu1がクリアされる。これに応じ、レーン[1]からレーン[2]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[2]のフラグPがクリアされる。また、上記動作(8)でレーン[2]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[2]からレーン[3]に対して入力されるレーンイネーブル信号LE1[1:0]は、“10”から“01”に切り換わる。レーン[3]にレーンイネーブル信号LE1[1:0]=“01”が入力されると、レーン[3]のフラグP, cu1が設定され、フラグSがクリアされる。これにより、図20に示すように、レーン[2]は非活性化され、レーン[3]はプライマリレーンに設定された状態になる。
そして、図20に示す動作(10)では、終端ロジック20cにレーンイネーブル信号LE1[1:0]=“10”が入力されると、終端ロジック20cは、レーン[3]のフラグco1を設定するためのセット信号SC1を、レーン[3]に対し隣接レーン伝送遅延情報として入力する。
図21に示す動作(11)では、レーン[3]が終端ロジック20cからセット信号SC1を受けると、レーン[3]においてフラグco1が設定され、レーン[3]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[3]は、レーン[2]に対してクリア信号CL2を出力し、同クリア信号CL2がレーン[2]のクリア信号CL1として入力される。
図21に示す動作(11)では、レーン[3]が終端ロジック20cからセット信号SC1を受けると、レーン[3]においてフラグco1が設定され、レーン[3]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[3]は、レーン[2]に対してクリア信号CL2を出力し、同クリア信号CL2がレーン[2]のクリア信号CL1として入力される。
図22に示す動作(12)では、レーン[2]がレーン[3]からクリア信号CL1を入力されると、レーン[2]のフラグcu1がクリアされる。これに応じ、レーン[2]からレーン[3]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[3]のフラグPがクリアされる。また、上記動作(11)でレーン[3]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[3]から終端ロジック20cに対し入力されるレーンイネーブル信号LE2[1:0]は、“10”から“01”に切り換わる。
図23に示す動作(13)では、終端ロジック20cにレーンイネーブル信号LE1[1:0]=“01”が入力されると、終端ロジック20cは、レーン[3]に対してクリア信号CL1を入力するとともに、レーン[3]に入力されるレーンイネーブル信号LE3[1:0]を“00”から“10”に切り換える。これに伴い、レーン[3]のフラグcu1がクリアされるとともに、レーン[3]のフラグSが設定される。
図24および図25に示す動作(14),(15)では、レーン[3]のフラグcu1がクリアされると、レーン[3]から終端ロジック20cに対し入力されるレーンイネーブル信号LE2[1:0]は、“01”から“00”に切り換わる。これに伴い、終端ロジック20cは、レーン[3]に入力されるレーンイネーブル信号LE3[1:0]を“10”から“01”に切り換える。レーン[3]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[3]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[3]からレーン[2]に対して入力されるレーンイネーブル信号LE3[1:0]は、“00”から“10”に切り換わる。レーン[2]にレーンイネーブル信号LE3[1:0]=“10”が入力されると、レーン[2]のフラグSが設定される。これにより、図25に示すように、レーン[3]をプライマリレーンとしレーン[2]をセカンダリレーンとするレーンペアが選択される。以上により、レーンペア選択の折り返しが完了する。
ついで、図26〜図37を参照しながら、復路でのレーンペアの選択動作(16)〜(27)について説明する。
図26に示す動作(16)では、上記動作(15)後にレーン[3],[2]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[3]が復路での設定処理を完了すると、レーン[3]においてフラグco2が設定され、レーン[3]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[3]は、終端ロジック20cに対してクリア信号CL4を出力し、同クリア信号CL4が終端ロジック20cに入力される。
図26に示す動作(16)では、上記動作(15)後にレーン[3],[2]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[3]が復路での設定処理を完了すると、レーン[3]においてフラグco2が設定され、レーン[3]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[3]は、終端ロジック20cに対してクリア信号CL4を出力し、同クリア信号CL4が終端ロジック20cに入力される。
図27および図28に示す動作(17),(18)では、終端ロジック20cがレーン[3]からクリア信号CL4を入力されると、終端ロジック20cからレーン[3]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[3]のフラグPがクリアされる。また、上記動作(16)でレーン[3]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[3]からレーン[2]に対して入力されるレーンイネーブル信号LE3[1:0]は、“10”から“01”に切り換わる。レーン[2]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[2]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[2]からレーン[1]に対して入力されるレーンイネーブル信号LE3[1:0]は、“00”から“10”に切り換わる。レーン[1]にレーンイネーブル信号LE3[1:0]=“10”が入力されると、レーン[1]のフラグSが設定される。これにより、図28に示すように、レーン[3]は非活性化され、レーン[2]をプライマリレーンとしレーン[1]をセカンダリレーンとするレーンペアが選択される。
図29に示す動作(19)では、上記動作(18)後にレーン[2],[1]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[2]が復路での設定処理を完了すると、レーン[2]においてフラグco2が設定され、レーン[2]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[2]は、レーン[3]に対してクリア信号CL4を出力し、同クリア信号CL4がレーン[3]のクリア信号CL2として入力される。
図30および図31に示す動作(20),(21)では、レーン[3]がレーン[2]からクリア信号CL3を入力されると、レーン[3]のフラグcu2がクリアされる。これに応じ、レーン[3]からレーン[2]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[2]のフラグPがクリアされる。また、上記動作(19)でレーン[2]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[2]からレーン[1]に対して入力されるレーンイネーブル信号LE3[1:0]は、“10”から“01”に切り換わる。レーン[1]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[1]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[1]からレーン[0]に対して入力されるレーンイネーブル信号LE3[1:0]は、“00”から“10”に切り換わる。レーン[0]にレーンイネーブル信号LE3[1:0]=“10”が入力されると、レーン[0]のフラグSが設定される。これにより、図31に示すように、レーン[2]は非活性化され、レーン[1]をプライマリレーンとしレーン[0]をセカンダリレーンとするレーンペアが選択される。
図32に示す動作(22)では、上記動作(21)後にレーン[1],[0]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[1]が復路での設定処理を完了すると、レーン[1]においてフラグco2が設定され、レーン[1]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[1]は、レーン[2]に対してクリア信号CL4を出力し、同クリア信号CL4がレーン[2]のクリア信号CL3として入力される。
図33および図34に示す動作(23),(24)では、レーン[2]がレーン[1]からクリア信号CL3を入力されると、レーン[2]のフラグcu2がクリアされる。これに応じ、レーン[2]からレーン[1]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[1]のフラグPがクリアされる。また、上記動作(22)でレーン[1]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[1]からレーン[0]に対して入力されるレーンイネーブル信号LE3[1:0]は、“10”から“01”に切り換わる。レーン[0]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[0]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[0]から初期化ステートマシン20bに対して入力されるレーンイネーブル信号LE4[1:0]は、“00”から“10”に切り換わる。
そして、図34に示す動作(24)では、初期化ステートマシン20bにレーンイネーブル信号LE4[1:0]=“10”が入力されると、初期化ステートマシン20bは、レーン[0]のフラグco2を設定するためのセット信号SC2を、レーン[0]に対し隣接レーン伝送遅延情報として入力する。
図35に示す動作(25)では、レーン[0]が初期化ステートマシン20bからセット信号SC2を受けると、レーン[0]においてフラグco2が設定され、レーン[0]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[0]は、レーン[1]に対してクリア信号CL4を出力し、同クリア信号CL4がレーン[1]のクリア信号CL3として入力される。
図35に示す動作(25)では、レーン[0]が初期化ステートマシン20bからセット信号SC2を受けると、レーン[0]においてフラグco2が設定され、レーン[0]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[0]は、レーン[1]に対してクリア信号CL4を出力し、同クリア信号CL4がレーン[1]のクリア信号CL3として入力される。
図36に示す動作(26)では、レーン[1]がレーン[0]からクリア信号CL3を入力されると、レーン[1]のフラグcu2がクリアされる。これに応じ、レーン[1]からレーン[0]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[0]のフラグPがクリアされる。また、上記動作(25)でレーン[0]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[0]から初期化ステートマシン20bに対し入力されるレーンイネーブル信号LE4[1:0]は、“10”から“01”に切り換わる。初期化ステートマシン20bは、レーン[0]からレーンイネーブル信号LE4[1:0]=“01”を入力されると、レーン[0]に対してクリア信号CL3を入力する。
図37に示す動作(27)では、レーン[0]が初期化ステートマシン20bからクリア信号CL3を入力されると、レーン[0]のフラグcu2がクリアされる。これに応じ、レーン[0]から初期化ステートマシン20bに対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わり、復路でのレーンペアの選択動作が完了する。
以上のようにして、一連のレーンペア選択動作、つまりはレーン間伝送遅延差の吸収設定処理が完了する。
以上のようにして、一連のレーンペア選択動作、つまりはレーン間伝送遅延差の吸収設定処理が完了する。
上述した伝送遅延差吸収装置(通信装置)によれば、数珠状に接続されたレーンにおけるパターン検出回路25および制御回路26(レーン制御部26b)により、レーンペアを順にシフトさせて選択しながら伝送遅延差の吸収設定処理に係る情報(伝送遅延差)が収集される。そして、収集された情報に基づき、レーンペアのうち伝送遅延差が小さい方の制御回路26が、自身のレーン間伝送遅延差吸収バッファ24のデータ読出タイミングを、伝送遅延差が大きい方のレーンにおけるバッファ24に合わせるように、設定処理が行なわれる。
このとき、設定処理が、レーンペアをレーン[0]からレーン[n]までシフトさせる往路のみならず、レーンペアをレーン[n]からレーン[0]までシフトさせる復路でも実行される。このように設定処理を1往復させることで、例えば図10(D)〜図10(F)に示すように、レーン[0]が、他のレーン[1]〜[3]よりもデータを1クロック分早く受信する状態で設定処理が終わってしまうことを確実に抑止することができる。
これにより、本実施形態によれば、従来のごとく一箇所の制御回路に情報を集約させることなく、全てのレーン[0]〜[n]の伝送遅延差が吸収されるようにリードポインタの設定処理が確実に行なわれる。したがって、処理対象のレーン数が増大しても、レーンを数珠状(直列)に接続するだけで全てのレーンに対する設定処理が可能であり、レーン間の伝送遅延差を補正するための設定処理を確実に実行しながら、配線レイアウト,ノイズ対策,回路の高速化を実現することも可能になる。
〔3〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、図10〜図37を参照しながら上述した実施形態の具体例では、レーン数が4である場合について説明したが、本件は、これに限定されるものではない。
〔4〕付記
以上の本実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の伝送路それぞれに対応する受信部を有し、隣接された受信部同士が信号線で接続され、前記複数の伝送路を介して送信側装置からのデータを受信する通信装置における伝送路間の伝送遅延差を補正する方法において、
同一信号を受信する隣接する2つの受信部間で、前記信号を受信した旨の情報を前記信号線を介して互いに通知し、
他方の受信部からの通知と、自身の信号受信との時間差に応じて、伝送遅延差を補正する処理を実行し、
前記隣接する受信部のうちの一方の受信部と、前記一方の受信部に隣接する受信部のうち、当該一方の受信部との間で補正処理を行なっていない方の受信部との選択と、選択された受信部間の伝送遅延差補正処理とを順次行なうことを特徴とする、伝送遅延差補正方法。
(付記2)
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、付記1記載の伝送遅延差補正方法。
(付記3)
複数の伝送路により送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置において、
前記伝送路毎に設けられた複数の受信部と、
隣接する受信部同士を接続する信号線とを有し、
前記複数の受信部の各々は、
対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始することを特徴とする、通信装置。
(付記4)
前記制御部は、
隣接する受信部の制御部と連携し、
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、付記3記載の通信装置。
(付記5)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファと、
前記補正処理の実行時に、前記送信装置からの特定パターンを有するデータを検出するパターン検出部と、
前記補正処理の実行時に、前記パターン検出部による前記特定パターンの検出タイミングと、前記信号線によって送信される隣接する受信部での前記特定パターンの検出タイミングとに基づき、自身と隣接する受信部との間の伝送遅延差を検出する伝送遅延差検出部と、
前記伝送遅延差検出部によって検出された前記伝送遅延差を吸収補正するように前記バッファからの前記データの読出位置を設定するバッファ制御部と、を有する、付記4記載の通信装置。
(付記6)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファを有し、
自身の信号受信が前記隣接する受信部による信号受信よりも遅い場合に、前記バッファからの前記データの読み出し位置を変更することを特徴とする、付記4記載の通信装置。
(付記7)
前記バッファ制御部は、
2つの受信部の選択が前記複数の受信部における一端の受信部から他端の受信部に到達するまでの間に前記前記伝送遅延差検出部によって検出された伝送遅延差と、2つの受信部の選択が前記他端の受信部から前記一端の受信部に到達するまでの間に前記伝送遅延差検出部によって検出された伝送遅延差とを加算した値を吸収補正するように前記バッファからの前記データの読出位置を設定する、付記5記載の通信装置。
(付記8)
前記制御部は、
隣接する受信部にそなえられた前記制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記設定処理を実行させる一方、前記設定処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を再度実行させるレーン制御部を有する、付記5または付記7に記載の通信装置。
(付記9)
送信装置と、
複数の伝送路により前記送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置とをそなえ、
前記通信装置は、
前記伝送路毎に設けられた複数の受信部と、
隣接する受信部同士を接続する信号線とを有し、
前記複数の受信部の各々は、
対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始することを特徴とする、通信システム。
(付記10)
前記制御部は、
隣接する受信部の制御部と連携し、
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、付記9記載の通信システム。
(付記11)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファと、
前記補正処理の実行時に、前記送信装置からの特定パターンを有するデータを検出するパターン検出部と、
前記補正処理の実行時に、前記パターン検出部による前記特定パターンの検出タイミングと、前記信号線によって送信される隣接する受信部での前記特定パターンの検出タイミングとに基づき、自身と隣接する受信部との間の伝送遅延差を検出する伝送遅延差検出部と、
前記伝送遅延差検出部によって検出された前記伝送遅延差を吸収補正するように前記バッファからの前記データの読出位置を設定するバッファ制御部と、を有する、付記10記載の通信システム。
(付記12)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファを有し、
自身の信号受信が前記隣接する受信部による信号受信よりも遅い場合に、前記バッファからの前記データの読み出し位置を変更することを特徴とする、付記10記載の通信システム。
(付記13)
前記バッファ制御部は、
2つの受信部の選択が前記複数の受信部における一端の受信部から他端の受信部に到達するまでの間に前記前記伝送遅延差検出部によって検出された伝送遅延差と、2つの受信部の選択が前記他端の受信部から前記一端の受信部に到達するまでの間に前記伝送遅延差検出部によって検出された伝送遅延差とを加算した値を吸収補正するように前記バッファからの前記データの読出位置を設定する、付記11記載の通信システム。
(付記14)
前記制御部は、
隣接する受信部にそなえられた前記制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記設定処理を実行させる一方、前記設定処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を再度実行させるレーン制御部を有する、付記11または付記13に記載の通信システム。
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、図10〜図37を参照しながら上述した実施形態の具体例では、レーン数が4である場合について説明したが、本件は、これに限定されるものではない。
〔4〕付記
以上の本実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の伝送路それぞれに対応する受信部を有し、隣接された受信部同士が信号線で接続され、前記複数の伝送路を介して送信側装置からのデータを受信する通信装置における伝送路間の伝送遅延差を補正する方法において、
同一信号を受信する隣接する2つの受信部間で、前記信号を受信した旨の情報を前記信号線を介して互いに通知し、
他方の受信部からの通知と、自身の信号受信との時間差に応じて、伝送遅延差を補正する処理を実行し、
前記隣接する受信部のうちの一方の受信部と、前記一方の受信部に隣接する受信部のうち、当該一方の受信部との間で補正処理を行なっていない方の受信部との選択と、選択された受信部間の伝送遅延差補正処理とを順次行なうことを特徴とする、伝送遅延差補正方法。
(付記2)
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、付記1記載の伝送遅延差補正方法。
(付記3)
複数の伝送路により送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置において、
前記伝送路毎に設けられた複数の受信部と、
隣接する受信部同士を接続する信号線とを有し、
前記複数の受信部の各々は、
対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始することを特徴とする、通信装置。
(付記4)
前記制御部は、
隣接する受信部の制御部と連携し、
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、付記3記載の通信装置。
(付記5)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファと、
前記補正処理の実行時に、前記送信装置からの特定パターンを有するデータを検出するパターン検出部と、
前記補正処理の実行時に、前記パターン検出部による前記特定パターンの検出タイミングと、前記信号線によって送信される隣接する受信部での前記特定パターンの検出タイミングとに基づき、自身と隣接する受信部との間の伝送遅延差を検出する伝送遅延差検出部と、
前記伝送遅延差検出部によって検出された前記伝送遅延差を吸収補正するように前記バッファからの前記データの読出位置を設定するバッファ制御部と、を有する、付記4記載の通信装置。
(付記6)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファを有し、
自身の信号受信が前記隣接する受信部による信号受信よりも遅い場合に、前記バッファからの前記データの読み出し位置を変更することを特徴とする、付記4記載の通信装置。
(付記7)
前記バッファ制御部は、
2つの受信部の選択が前記複数の受信部における一端の受信部から他端の受信部に到達するまでの間に前記前記伝送遅延差検出部によって検出された伝送遅延差と、2つの受信部の選択が前記他端の受信部から前記一端の受信部に到達するまでの間に前記伝送遅延差検出部によって検出された伝送遅延差とを加算した値を吸収補正するように前記バッファからの前記データの読出位置を設定する、付記5記載の通信装置。
(付記8)
前記制御部は、
隣接する受信部にそなえられた前記制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記設定処理を実行させる一方、前記設定処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を再度実行させるレーン制御部を有する、付記5または付記7に記載の通信装置。
(付記9)
送信装置と、
複数の伝送路により前記送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置とをそなえ、
前記通信装置は、
前記伝送路毎に設けられた複数の受信部と、
隣接する受信部同士を接続する信号線とを有し、
前記複数の受信部の各々は、
対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始することを特徴とする、通信システム。
(付記10)
前記制御部は、
隣接する受信部の制御部と連携し、
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、付記9記載の通信システム。
(付記11)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファと、
前記補正処理の実行時に、前記送信装置からの特定パターンを有するデータを検出するパターン検出部と、
前記補正処理の実行時に、前記パターン検出部による前記特定パターンの検出タイミングと、前記信号線によって送信される隣接する受信部での前記特定パターンの検出タイミングとに基づき、自身と隣接する受信部との間の伝送遅延差を検出する伝送遅延差検出部と、
前記伝送遅延差検出部によって検出された前記伝送遅延差を吸収補正するように前記バッファからの前記データの読出位置を設定するバッファ制御部と、を有する、付記10記載の通信システム。
(付記12)
前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファを有し、
自身の信号受信が前記隣接する受信部による信号受信よりも遅い場合に、前記バッファからの前記データの読み出し位置を変更することを特徴とする、付記10記載の通信システム。
(付記13)
前記バッファ制御部は、
2つの受信部の選択が前記複数の受信部における一端の受信部から他端の受信部に到達するまでの間に前記前記伝送遅延差検出部によって検出された伝送遅延差と、2つの受信部の選択が前記他端の受信部から前記一端の受信部に到達するまでの間に前記伝送遅延差検出部によって検出された伝送遅延差とを加算した値を吸収補正するように前記バッファからの前記データの読出位置を設定する、付記11記載の通信システム。
(付記14)
前記制御部は、
隣接する受信部にそなえられた前記制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記設定処理を実行させる一方、前記設定処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を再度実行させるレーン制御部を有する、付記11または付記13に記載の通信システム。
1 データ伝送機能を有する装置(通信システム)
10 送信モジュール
10−0〜10−n レーン[0]〜[n]用送信部
20 受信モジュール(通信装置)
20−0〜20−n レーン[0]〜[n]用受信部
20a 処理モジュール
20b 初期化ステートマシン
20c 終端ロジック
21 シリアル/パラレル(S/P)変換回路
22 ビット境界検出回路
23 クロック乗換バッファ
24 レーン間伝送遅延差吸収バッファ(バッファ;吸収処理部;制御部)
241〜244 バッファ
245 セレクタ
25 パターン検出回路(吸収処理部;制御部)
25a パターン検出部
25b 隣接レーン間伝送遅延差検出部(伝送遅延差検出部;検出部)
251 伝送遅延検出パターン記憶部
252 比較器
253 判定回路
254 ANDゲート
255 遅延検出カウンタ
256 ORゲート
257 セレクタ
258 ANDゲート
26 レーン間伝送遅延差吸収制御回路(吸収処理部;制御部)
26a 伝送遅延差吸収設定部(バッファ制御部)
26b レーン制御部
26c ORゲート
261 減算器
262 セレクタ
263 保持FF(フリップフロップ)
264 加算器
2601〜2612 判定回路
2613〜2618 フラグ保持レジスタ
2619 第1デコーダ
2620 第2デコーダ
2621 第3デコーダ
2622 インバータ
2623 ORゲート
100 データ伝送機能を有する装置
110 送信モジュール
110−0〜110−n レーン[0]〜[n]用送信部
120 受信モジュール
120−0〜120−n レーン[0]〜[n]用受信部
120a レーン間伝送遅延差吸収制御回路
120b 処理モジュール
121 シリアル/パラレル(S/P)変換回路
122 ビット境界検出回路
123 クロック乗換バッファ
124 レーン間伝送遅延差吸収バッファ
125 パターン検出回路
SL,SL0〜SL7 信号線
10 送信モジュール
10−0〜10−n レーン[0]〜[n]用送信部
20 受信モジュール(通信装置)
20−0〜20−n レーン[0]〜[n]用受信部
20a 処理モジュール
20b 初期化ステートマシン
20c 終端ロジック
21 シリアル/パラレル(S/P)変換回路
22 ビット境界検出回路
23 クロック乗換バッファ
24 レーン間伝送遅延差吸収バッファ(バッファ;吸収処理部;制御部)
241〜244 バッファ
245 セレクタ
25 パターン検出回路(吸収処理部;制御部)
25a パターン検出部
25b 隣接レーン間伝送遅延差検出部(伝送遅延差検出部;検出部)
251 伝送遅延検出パターン記憶部
252 比較器
253 判定回路
254 ANDゲート
255 遅延検出カウンタ
256 ORゲート
257 セレクタ
258 ANDゲート
26 レーン間伝送遅延差吸収制御回路(吸収処理部;制御部)
26a 伝送遅延差吸収設定部(バッファ制御部)
26b レーン制御部
26c ORゲート
261 減算器
262 セレクタ
263 保持FF(フリップフロップ)
264 加算器
2601〜2612 判定回路
2613〜2618 フラグ保持レジスタ
2619 第1デコーダ
2620 第2デコーダ
2621 第3デコーダ
2622 インバータ
2623 ORゲート
100 データ伝送機能を有する装置
110 送信モジュール
110−0〜110−n レーン[0]〜[n]用送信部
120 受信モジュール
120−0〜120−n レーン[0]〜[n]用受信部
120a レーン間伝送遅延差吸収制御回路
120b 処理モジュール
121 シリアル/パラレル(S/P)変換回路
122 ビット境界検出回路
123 クロック乗換バッファ
124 レーン間伝送遅延差吸収バッファ
125 パターン検出回路
SL,SL0〜SL7 信号線
Claims (7)
- 複数の伝送路それぞれに対応する複数の受信部を有し、隣接された受信部同士が信号線で接続され、前記複数の伝送路を介して送信側装置からのデータを受信する通信装置における伝送路間の伝送遅延差を補正する方法において、
同一信号を受信する隣接する2つの受信部間で、前記信号を受信した旨の情報を前記信号線を介して互いに通知し、
他方の受信部からの通知と、自身の信号受信との時間差に応じて、伝送遅延差を補正する処理を実行し、
前記隣接する受信部のうちの一方の受信部と、前記一方の受信部に隣接する受信部のうち、当該一方の受信部との間で補正処理を行なっていない方の受信部との選択と、選択された受信部間の伝送遅延差補正処理とを順次行ない、
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行することを特徴とする、伝送遅延差補正方法。 - 複数の伝送路により送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置において、
前記伝送路毎に設けられた複数の受信部と、
隣接する受信部同士を接続する信号線とを有し、
前記複数の受信部の各々は、
対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始し、
前記制御部は、
隣接する受信部の制御部と連携し、
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行することを特徴とする、通信装置。 - 前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファと、
前記補正処理の実行時に、前記送信装置からの特定パターンを有するデータを検出するパターン検出部と、
前記補正処理の実行時に、前記パターン検出部による前記特定パターンの検出タイミングと、前記信号線によって送信される隣接する受信部での前記特定パターンの検出タイミングとに基づき、自身と隣接する受信部との間の伝送遅延差を検出する伝送遅延差検出部と、
前記伝送遅延差検出部によって検出された前記伝送遅延差を吸収補正するように前記バッファからの前記データの読出位置を設定するバッファ制御部と、を有する、請求項2記載の通信装置。 - 前記制御部は、
前記送信装置からの複数のデータを一時的に保持するバッファを有し、
自身の信号受信が前記隣接する受信部による信号受信よりも遅い場合に、前記バッファからの前記データの読み出し位置を変更することを特徴とする、請求項2記載の通信装置。 - 前記バッファ制御部は、
2つの受信部の選択が前記複数の受信部における一端の受信部から他端の受信部に到達するまでの間に前記前記伝送遅延差検出部によって検出された伝送遅延差と、2つの受信部の選択が前記他端の受信部から前記一端の受信部に到達するまでの間に前記伝送遅延差検出部によって検出された伝送遅延差とを加算した値を吸収補正するように前記バッファからの前記データの読出位置を設定する、請求項3記載の通信装置。 - 前記制御部は、
隣接する受信部にそなえられた前記制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を実行させる一方、前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を再度実行させるレーン制御部を有する、請求項3または請求項5に記載の通信装置。 - 送信装置と、
複数の伝送路により前記送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置とをそなえ、
前記通信装置は、
前記伝送路毎に設けられた複数の受信部と、
隣接する受信部同士を接続する信号線とを有し、
前記複数の受信部の各々は、
対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始し、
前記制御部は、
隣接する受信部の制御部と連携し、
前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行することを特徴とする、通信システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/056601 WO2012127575A1 (ja) | 2011-03-18 | 2011-03-18 | 伝送遅延差補正方法,通信装置および通信システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012127575A1 JPWO2012127575A1 (ja) | 2014-07-24 |
JP5633636B2 true JP5633636B2 (ja) | 2014-12-03 |
Family
ID=46878772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013505636A Expired - Fee Related JP5633636B2 (ja) | 2011-03-18 | 2011-03-18 | 伝送遅延差補正方法,通信装置および通信システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140013179A1 (ja) |
JP (1) | JP5633636B2 (ja) |
WO (1) | WO2012127575A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9497050B2 (en) * | 2012-09-24 | 2016-11-15 | Xilinx, Inc. | Clock domain boundary crossing using an asynchronous buffer |
US20160284595A1 (en) * | 2015-03-26 | 2016-09-29 | Qualcomm Incorporated | Selective analog and radio frequency performance modification |
US9882653B2 (en) * | 2015-04-10 | 2018-01-30 | Arista Networks, Inc. | System and method of de-skewing electrical signals |
JP2017050730A (ja) * | 2015-09-02 | 2017-03-09 | 富士通株式会社 | 無線装置および基地局システム |
JP7094952B2 (ja) * | 2017-06-09 | 2022-07-04 | ソニーセミコンダクタソリューションズ株式会社 | 受信装置、制御方法、プログラム、および送受信システム |
JP7037035B2 (ja) * | 2017-09-01 | 2022-03-16 | 富士通株式会社 | データ伝送装置、演算処理装置及びデータ伝送装置の制御方法 |
US10445265B2 (en) * | 2017-10-20 | 2019-10-15 | Cisco Technology, Inc. | Method and apparatus for deskewing decentralized data streams |
CN111083309B (zh) * | 2018-10-18 | 2022-04-01 | 北京魔门塔科技有限公司 | 一种多传感器数据的时间对齐方法及数据采集设备 |
US11178055B2 (en) * | 2019-06-14 | 2021-11-16 | Intel Corporation | Methods and apparatus for providing deterministic latency for communications interfaces |
CN115932351B (zh) * | 2023-03-09 | 2023-07-04 | 深圳市鼎阳科技股份有限公司 | 一种示波器级联的延时校正方法、示波器、终端及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999046687A1 (fr) * | 1998-03-12 | 1999-09-16 | Hitachi, Ltd. | Emetteur de donnees |
JP2003204318A (ja) * | 2002-01-07 | 2003-07-18 | Fujitsu Ltd | 伝送システム |
JP2004289567A (ja) * | 2003-03-24 | 2004-10-14 | Nippon Telegr & Teleph Corp <Ntt> | フレーム信号符号化通信方法及び符号化装置並びに符号化送信装置及び符号化受信装置 |
JP2005244479A (ja) * | 2004-02-25 | 2005-09-08 | Fujitsu Ltd | 伝送装置 |
JP2006270133A (ja) * | 2005-03-22 | 2006-10-05 | Nec Corp | 時間差調整回路及び方法 |
JP2009219097A (ja) * | 2008-02-12 | 2009-09-24 | Mitsubishi Electric Corp | デスキュー方式 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735397B2 (en) * | 2001-03-14 | 2004-05-11 | Blaze Network Products, Inc. | Skew discovery and compensation for WDM fiber communications systems using 8b10b encoding |
US7500131B2 (en) * | 2004-09-07 | 2009-03-03 | Intel Corporation | Training pattern based de-skew mechanism and frame alignment |
-
2011
- 2011-03-18 JP JP2013505636A patent/JP5633636B2/ja not_active Expired - Fee Related
- 2011-03-18 WO PCT/JP2011/056601 patent/WO2012127575A1/ja active Application Filing
-
2013
- 2013-09-13 US US14/026,619 patent/US20140013179A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999046687A1 (fr) * | 1998-03-12 | 1999-09-16 | Hitachi, Ltd. | Emetteur de donnees |
JP2003204318A (ja) * | 2002-01-07 | 2003-07-18 | Fujitsu Ltd | 伝送システム |
JP2004289567A (ja) * | 2003-03-24 | 2004-10-14 | Nippon Telegr & Teleph Corp <Ntt> | フレーム信号符号化通信方法及び符号化装置並びに符号化送信装置及び符号化受信装置 |
JP2005244479A (ja) * | 2004-02-25 | 2005-09-08 | Fujitsu Ltd | 伝送装置 |
JP2006270133A (ja) * | 2005-03-22 | 2006-10-05 | Nec Corp | 時間差調整回路及び方法 |
JP2009219097A (ja) * | 2008-02-12 | 2009-09-24 | Mitsubishi Electric Corp | デスキュー方式 |
Also Published As
Publication number | Publication date |
---|---|
WO2012127575A1 (ja) | 2012-09-27 |
US20140013179A1 (en) | 2014-01-09 |
JPWO2012127575A1 (ja) | 2014-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5633636B2 (ja) | 伝送遅延差補正方法,通信装置および通信システム | |
US7412618B2 (en) | Combined alignment scrambler function for elastic interface | |
US8862925B2 (en) | Pseudo synchronous serial interface synchronization method | |
US7461287B2 (en) | Elastic interface de-skew mechanism | |
US8356240B2 (en) | Data transfering apparatus | |
US8401138B2 (en) | Serial data receiver circuit apparatus and serial data receiving method | |
US8045667B2 (en) | Deserializer and data recovery method | |
US20140331110A1 (en) | Circuits, integrated circuits, and methods for interleaved parity computation | |
US20140101356A1 (en) | Transmission device, transmission system, and control method for transmission device | |
CN102546084B (zh) | 异步串行通信数据接收时的抗干扰纠错采样***和方法 | |
US20110016374A1 (en) | Serial interface devices, systems and methods | |
WO2005015864A1 (en) | Auto realignment of multiple serial byte-lanes | |
JP2017011470A (ja) | シリアル通信装置及びシリアル通信方法 | |
US9058266B2 (en) | Deskew apparatus and method for peripheral component interconnect express | |
US8161349B2 (en) | Data parallelizing receiver | |
JP4917901B2 (ja) | 受信装置 | |
JP4336860B2 (ja) | シリアルインタフェース回路、及びシリアル受信器 | |
CN108170616B (zh) | 利用锁存器实现跨时钟域信号传输的*** | |
US7443940B2 (en) | Alignment mode selection mechanism for elastic interface | |
US6915462B1 (en) | Method and apparatus for a programmable deskew circuit | |
US20080168338A1 (en) | Parity error detecting circuit and method | |
JPS6362427A (ja) | デ−タ通信における誤り検出方式 | |
RU2516586C1 (ru) | Способ автосинхронизации приема и обработки потока данных по стартовому символу и устройство для его осуществления | |
WO2018036189A1 (zh) | 数据处理方法、装置、通信设备及存储介质 | |
JP2000261416A (ja) | 二重化データ転送回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140825 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140916 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140929 |
|
LAPS | Cancellation because of no payment of annual fees |