JPWO2013001631A1 - 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法 - Google Patents

伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法 Download PDF

Info

Publication number
JPWO2013001631A1
JPWO2013001631A1 JP2013522411A JP2013522411A JPWO2013001631A1 JP WO2013001631 A1 JPWO2013001631 A1 JP WO2013001631A1 JP 2013522411 A JP2013522411 A JP 2013522411A JP 2013522411 A JP2013522411 A JP 2013522411A JP WO2013001631 A1 JPWO2013001631 A1 JP WO2013001631A1
Authority
JP
Japan
Prior art keywords
data
transmission
operation clock
symbol
unit
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.)
Withdrawn
Application number
JP2013522411A
Other languages
English (en)
Inventor
和雅 園田
和雅 園田
秀行 工藤
秀行 工藤
貴大 山本
貴大 山本
浩夫 内山
浩夫 内山
梢 深港
梢 深港
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013522411A priority Critical patent/JPWO2013001631A1/ja
Publication of JPWO2013001631A1 publication Critical patent/JPWO2013001631A1/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

伝送装置(10)は、複数の経路を介してデータを送信する。また、伝送装置(10)は、対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する。また、伝送装置(10)は、伝送装置(10b)の動作クロックが速いと判別した場合には、所定のデータ長よりも短い第2の誤差吸収データを各経路を介して送信するデータに格納する。また、伝送装置(10)は、自身の動作クロックが速いと判別した場合には、所定のデータ長よりも長い第3の誤差吸収データを各経路を介して送信するデータに挿入する。

Description

本発明は、伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法に関する。
従来、複数の経路を介してデータの送受信を行う伝送装置の技術が知られている。このような伝送装置の一例として、対向する伝送装置との間を複数の経路で接続し、複数の経路をリンクさせてデータを送受信するPCIe(Peripheral Component Interconnect express)の技術が知られている。
このようなPCIeの技術が適用された伝送装置においては、データの送受信を行うポートごとにそれぞれ異なるクロックで動作するため、送信側のポートが動作するクロック周波数と、受信側のポートが動作するクロック周波数との間に誤差が存在する。このような誤差が存在する場合には、送受信するデータの欠損や重複読出しが発生するので、送信側の伝送装置は、以下の処理を実行する。
すなわち、送信側の伝送装置は、SKP(Skip) Orderd Set(以下、スキップオーダードセットと記載する)と呼ばれる固定長のデータを定期的に生成し、各経路を介して送信するデータに対して同時に挿入する。具体的には、送信側の伝送装置は、1つの「C(COM)」シンボルと3つの「S(SKIP)」シンボルとを有する4シンボル長のスキップオーダードセットを挿入する。そして、送信側の伝送装置は、スキップオーダードセットを挿入したデータを対向する伝送装置へ送信する。
一方、受信側の伝送装置は、受信したデータを格納する複数のエラスティックバッファを伝送経路ごとに有し、送信側の伝送装置から受信したデータを各エラスティックバッファに格納する。また、受信側の伝送装置は、各エラスティックバッファに格納されたデータの読出しを行う場合には、クロック周波数の誤差による各エラスティックバッファのオーバーフローやアンダーフローを防止するため、以下の処理を各エラスティックバッファごとに独立して実行する。
すなわち、受信側の伝送装置は、エラスティックバッファに格納されているデータ量が所定の閾値よりも多い場合には、データに挿入されたスキップオーダードセットが有する「S」シンボルの一部を削除する。また、受信側の伝送装置は、エラスティックバッファに格納されているデータ量が所定の閾値よりも少ない場合には、データに挿入されたスキップオーダードセットが有する「S」シンボルの一部を2度読み出すことにより、スキップオーダードセットの一部を追加する。
特開2006−202281号公報 特開2006−060507号公報
しかしながら、上述した固定長のスキップシンボルを全レーンに対して定期的に挿入する技術では、エラスティックバッファごとに独立して「S」シンボルの削除や追加を行う。このため、各エラスティックバッファから読み出したデータの先頭を合わせるデスキュー処理の論理が複雑になる。
すなわち、受信側の伝送装置は、各エラスティックバッファごとに独立して「S」シンボルの追加又は削除を行うので、検出されたスキップオーダードセットの「C」シンボルの位置をそろえるだけでは、各データのデスキュー処理を行うことができない。そこで、受信側の伝送装置は、各データに挿入されたスキップオーダードセットを検出し、検出されたスキップオーダードセットの「C」シンボルの位置をそろえる。そして、受信側の伝送装置は、各データに挿入されたスキップオーダードセットのシンボル長を比較し、スキップオーダードセットの一部を削除、または追加することで、各スキップオーダードセットのシンボル長をそろえる合わせ込み処理を行う。
以下、図面を用いて、このような伝送装置が実行処理の一例を説明する。図22は、従来の伝送装置の一例を説明するための図である。図22に示す例では、送信側の伝送装置50と受信側の伝送装置51とは、それぞれ8つのポート#1〜#8を有し、8本のシリアル伝送路#1〜#8をリンクさせて、データの送受信を行うものとする。
また、各シリアル伝送路#1〜#8を介して送信されるデータをデータ#1〜#8とする。また、伝送装置51は、各シリアル伝送路#1〜#8を介して受信したデータ#1〜#8を格納するエラスティックバッファ(以下、ESと記載する)#1〜#8を有するものとする。
図22中(A)に示すように、伝送装置50は、スキップオーダードセットを挿入したデータ#1〜#8を、SerDes(SERializer/DESerializer)からそれぞれ異なるシリアル伝送路#1〜#8を介して、伝送装置51へ送信する。ここで、伝送装置50は、図23中(e)に示すように、所定の時間間隔でスキップオーダードセットの挿入指示であるSKP Ins指示を生成する。そして、伝送装置50は、図23中(f)、(g)に示すように、SKP Ins直後のデータの区切りに対して、全データ#1〜#8同時にスキップオーダードセットを挿入する。なお、図23は、従来のスキップオーダードセットの挿入処理を説明するための図である。
すると、図22中(B)に示すように、伝送装置51は、スキップオーダードセットが挿入されたデータ#1〜#8をそれぞれ異なるタイミングで受信し、受信した各データ#1〜#8をそれぞれ異なるES#1〜#8に格納する。そして、伝送装置51は、各ES#1〜#8からデータ#1〜#8を読み出す場合には、以下の処理を実行する。
すなわち、伝送装置51は、図22中(C)に示すように、各ES#1〜#8に格納されたデータの量に応じて、各データ#1〜#8に挿入されたスキップオーダードセットの一部を削除、又は追加する。その後、伝送装置51は、読み出されたデータ#2〜#8に挿入されたスキップオーダードセットの先頭位置をデータ#1のスキップオーダードセットの位置に合わせるとともに、各データ#2〜#8に挿入されたスキップオーダードセットの長さをデータ#1のスキップオーダードセットの長さとそろえる。
具体的には、図22中(D)に示す例では、伝送装置51は、データ#2、#8に挿入されたスキップオーダードセットを検出し、検出したスキップオーダードセットのシンボル長とデータ#1に挿入されたスキップオーダードセットのシンボル長とを比較する。そして、伝送装置51は、データ#2に挿入されたスキップオーダードセットがデータ#1に挿入されたスキップオーダードセットよりも短いと判別し、データ#8に挿入されたスキップオーダードセットがデータ#1に挿入されたスキップオーダードセットよりも長いと判別する。そして、伝送装置51は、データ#2に挿入されたスキップオーダードセットの一部を2回読み出すことで複製し、データ#8に挿入されたスキップオーダードセットの一部を削除することで、各データ#1、#2、#8に挿入されたスキップオーダードセットと同じ長さにする。
ここで、図24は、従来のデスキュー処理の一例を説明するための図(1)である。例えば、図24中(h)に示すように、伝送装置51は、データ#8のスキップシンボルを削除する。すると、図24中(i)に示すように、スキップオーダードセットの「COM」シンボルを合わせた際に、データの先頭がずれるので、伝送装置51は、図24中(j)に示すように、デスキュー処理を行う際にスキップシンボルを追加する。
また、図25は、従来のデスキュー処理の一例を説明するための図(2)である。例えば、図25中(k)に示すように、伝送装置51は、データ#8のスキップシンボルを追加する。すると、図24中(l)に示すように、スキップオーダードセットの「COM」シンボルを合わせた際に、データの先頭がずれるので、伝送装置51は、図24中(m)に示すように、デスキュー処理を行う際にスキップシンボルを削除する。
このように、受信側の伝送装置は、複雑なデスキュー処理を行うため、処理遅延を大きくしてしまう。また、受信側の遅延装置は、スキップシンボルの追加や削除を行うためのデータバッファを各レーンに設置するので、回路規模が大きくなってしまう。
本願に開示の技術は、上述した問題に鑑みてなされたものであって、デスキュー処理の論理を単純化する。
1つの側面では、受信したデータをバッファに格納し、当該バッファに格納したデータを読み出す対向装置に対してデータを送信する伝送装置である。このような伝送装置は、対向装置に対してそれぞれ異なる経路でデータを送信する。また、伝送装置は、対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する。また、伝送装置は、対向装置の動作クロックと自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第1の誤差吸収データを送信するデータに挿入する。また、伝送装置は、対向装置の動作クロックが速いと判別した場合には、所定のデータ長よりも短い第2の誤差吸収データを送信するデータに挿入する。また、伝送装置は、自身の動作クロックが速いと判別した場合には、所定のデータ長よりも長い第3の誤差吸収データを送信するデータに挿入する。
1つの側面では、受信側の伝送装置によるデスキュー処理の論理を容易にする。
図1は、実施例1に係る情報処理システムの一例を説明するための図である。 図2は、実施例1に係る伝送装置の一例を説明するための図である。 図3は、実施例1に係るスキップ挿入部を説明するための図である。 図4は、動作クロックに違いが無い場合に挿入するスキップオーダードセットを説明するための図である。 図5は、送信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。 図6は、受信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。 図7は、実施例1に係るスリップ検出部が実行する処理の流れを説明するための図である。 図8は、実施例1に係るスリップ検出部が計数する値を説明するための図である。 図9は、実施例1に係るスリップ検出部が実行する判別処理の一例を説明するための図である。 図10は、実施例1に係るエラスティックバッファの一例を説明するための図である。 図11aは、動作クロックに差がない場合に送信されたスキップオーダードセットの処理の流れを説明するための図である。 図11bは、送信側の動作クロックが受信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。 図11cは、受信側の動作クロックが送信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。 図12は、実施例1に係る伝送装置がスキップオーダードセットを挿入する処理を説明するための図である。 図13は、実施例1に係る受信側の伝送装置によるスキップオーダードセットの処理を説明するための図である。 図14は、実施例2に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。 図15は、実施例2に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。 図16aは、実施例2に係る送信側の伝送装置の動作クロックが受信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。 図16bは、実施例2に係る受信側の伝送装置の動作クロックが送信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。 図17は、実施例3に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。 図18は、実施例3に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。 図19aは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(1)である。 図19bは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(2)である。 図19cは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(3)である。 図20は、実施例3に係る受信側の伝送装置が実行する処理の流れを説明する図である。 図21は、実施例3に係る送信側の伝送装置が実行する処理の流れを説明するための図である。 図22は、従来の伝送装置の一例を説明するための図である。 図23は、従来のスキップオーダードセットの挿入処理を説明するための図である。 図24は、従来のデスキュー処理の一例を説明するための図(1)である。 図25は、従来のデスキュー処理の一例を説明するための図(2)である。
以下に添付図面を参照して本願に係る伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法について説明する。
以下の実施例1では、図1を用いて、伝送装置を有する情報処理システムの一例を説明する。図1は、実施例1に係る情報処理システムの一例を説明するための図である。
図1に示すように、情報処理システム1は、CPU(Central Processing Unit)2、データ伝送装置3、メモリ4、スイッチ5、入出力デバイス6〜6bを有する。ここで、データ伝送装置3とは、PCI Express(PCIe)規格に準拠したRoot Complex等のデータ伝送装置である。入出力デバイス6〜6bとは、いわゆる終端ポイント(End Point)である。
また、データ伝送装置3は、伝送装置10、10aを有し、スイッチ5は、伝送装置10b〜10dを有し、入出力デバイス6〜6bは、それぞれ伝送装置10e〜10gを有する。また、データ伝送装置3は、伝送装置10、10bを介してスイッチ5と接続され、伝送装置10aおよび10eを介して入出力デバイス6と接続される。また、スイッチ5は、伝送装置10c、10fを介して入出力デバイス6bと接続され、伝送装置10d、10gを介して入出力デバイス6aと接続される。
各伝送装置10〜10gは、8本のシリアルリンクで接続され、PCIe規格に準拠したプロトコルでデータの送受信を行う。また、各伝送装置10〜10gは、8本のシリアルリンクをリンクさせてデータの送受信を行う。なお、伝送装置10a〜10gは、伝送装置10と同様の機能を発揮するものとして、以下の説明を省略する。
以下、図面を用いて、伝送装置10の一例について説明する。なお、以下の説明においては、伝送装置10と伝送装置10bとがデータの送受信を行う例について説明するものとする。また、伝送装置10が伝送装置10bへ送信する複数のデータを送信データ#1〜#8とし、伝送装置10が伝送装置10bから受信した複数のデータを受信データ#1〜#8とする。
図2は、実施例1に係る伝送装置の一例を説明するための図である。図2に示す例では、伝送装置10は、データの送受信を要求する上位層11、MAC(Media Access Control)層の処理を行うMAC部20を有する。また、伝送装置10は、データの符号化を行うPCS(Physical Coding Sublayer)部30、データの送受信を行うSerDes(SERializer/DESerializer)40を有する。
MAC部20は、スキップ挿入部21、スクランブラ23、スリップ検出部22、デスキュー24、デスクランブラ25、制御部26を有する。またPCS部30は、8つのPCSレイヤ30a〜30hを有する。PCSレイヤ30aは、エンコーダ31、ループバック部32、転極部33、アライン34、エラスティックバッファ35、デコーダ36、受信ステータス判定部37を有する。なお、各PCSレイヤ30a〜30hは、同様の処理を実行するものとし、PCSレイヤ30a以外のPCSレイヤ30b〜30hについては、以下の説明を省略する。
スキップ挿入部21は、上位層11から、伝送装置10bに対して送信する送信データ#1〜#8を受信する。また、スキップ挿入部21は、受信したデータに伝送装置10と伝送装置10bとの誤差を吸収するためのスキップシンボルを挿入する。そして、スキップ挿入部21は、スキップシンボルを挿入したデータをスクランブラ23に送信する。
ここで、スキップ挿入部21がデータにスキップシンボルを挿入する処理について具体的に説明する。図3は、実施例1に係るスキップ挿入部を説明するための図である。図3に示す例では、スキップ挿入部21は、複数のバッファ21a〜21h、生成部21i、制御部21k、スキップ挿入セレクタ21jを有する。
各バッファ21a〜21hは、いわゆるFIFO(First In, First Out)であり、上位層21から、それぞれ送信データ#1〜#8を受信する。そして、各バッファ21a〜21hは、受信した送信データ#1〜#8をスキップ挿入セレクタ21jに送信する。生成部21iは、伝送装置10の動作クロックの周波数と伝送装置10bの動作クロックの周波数とに基づいて、各送信データ#1〜#8に格納するスキップシンボルを生成する。
具体的には、生成部21iは、スリップ検出部22から、伝送装置10の動作クロックが速い旨の通知、または、伝送装置10bの動作クロックが速い旨の通知、又は、動作クロックに違いが無い旨の通知を受信する。そして、生成部21iは、スリップ検出部22から各通知を受信した場合には、以下の処理を実行する。以下、図4〜図6を用いて説明する。
図4は、動作クロックに違いが無い場合に挿入するスキップオーダードセットを説明するための図である。生成部21iは、動作クロックに違いが無い旨の通知をスリップ検出部22から受信した場合には、以下の処理を実行する。すなわち、生成部21iは、図4に示すように、1つの「COM」シンボルと3つの「SKP(Skip)」シンボルとを有するスキップオーダードセットを生成し、生成したスキップオーダードセットをスキップ挿入セレクタ21jに送信する。
図5は、送信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。生成部21iは、スリップ検出部22から、伝送装置10の動作クロックが速い旨の通知を受信した場合には、図5に示すように、1つの「COM」シンボルと4つの「SKP」シンボルとを有するスキップオーダードセットを生成する。つまり、生成部21iは、伝送装置10の動作クロックが伝送装置10bの動作クロックよりも速い場合には、図4に示すスキップオーダードセットよりも長いスキップオーダードセットを生成する。そして、生成部21iは、生成したスキップオーダードセットをスキップ挿入セレクタ21jへ送信する。
図6は、受信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。生成部21iは、スリップ検出部22から、伝送装置10bの動作クロックが速い旨の通知を受信した場合には、図6に示すように、1つの「COM」シンボルと2つの「SKP」シンボルとを有するスキップオーダードセットを生成する。つまり、生成部21iは、伝送装置10bの動作クロックが伝送装置10の動作クロックよりも速い場合には、図4に示すスキップオーダードセットよりも短いスキップオーダードセットを生成する。そして、生成部21iは、生成したスキップオーダードセットをスキップ挿入セレクタ21jへ送信する。
図3に戻って、スキップ挿入セレクタ21jは、各バッファ21a〜21hから送信データ#1〜#8を受信する。そして、スキップ挿入セレクタ21jは、受信した送信データ#1〜#8をそれぞれ異なる経路を介してスクランブラ23に送信する。また、スキップ挿入セレクタ21jは、制御部21kから経路を切替える旨の通知を受付けた場合には、生成部21iが生成したスキップオーダードセットを受信し、受信したスキップオーダードセットを各経路を介してスクランブラ23に送信する。
その後、スキップ挿入セレクタ21jは、制御部21kから再度経路を切替える旨の通知を受付けた場合には、再度バッファ21a〜21hから受信した送信データをスクランブラ23に送信する。つまり、スキップ挿入セレクタ21jは、各バッファ21a〜21hとの経路と、生成部21iとの経路を切替えることによって、各送信データ#1〜#8と、生成部21iが生成したスキップオーダードセットを挿入する。
制御部21kは、スキップ挿入セレクタ21jの制御を行う。具体的には、制御部21kは、一定期間ごとに、スキップオーダードセットを挿入するタイミングを示すSKP Ins指示を生成し、生成したSKP Ins指示をスリップ検出部22に送信する。また、制御部21kは、スリップ検出部22から伝送装置10の動作クロックが速い旨の通知、または、伝送装置10bの動作クロックが速い旨の通知、又は、動作クロックに違いが無い旨の通知を受信する。
そして、制御部21kは、動作クロックに違いが無い旨の通知を受信した場合には、SKP Ins指示を生成したタイミングで、以下の処理を実行する。すなわち、制御部21kは、経路を切替える旨の通知をスキップ挿入セレクタ21jに送信し、生成部21iが4つのシンボル長を有するスキップオーダードセットを送信する時間が経過した後に、再度経路を切替える旨の通知をスキップ挿入セレクタ21jに送信する。
また、制御部21kは、伝送装置10の動作クロックが速い旨の通知を受信した場合には、SKP Ins指示を生成したタイミングで、以下の処理を実行する。すなわち、制御部21kは、経路を切替える旨の通知をスキップ挿入セレクタ21jに送信し、生成部21iが5つのシンボル長を有するスキップオーダードセットを送信する時間が経過した後に、再度経路を切替える旨の通知をスキップ挿入セレクタ21jに送信する。
また、制御部21kは、伝送装置10bの動作クロックが速い旨の通知を受信した場合には、SKP Ins指示を生成したタイミングで、以下の処理を実行する。すなわち、制御部21kは、経路を切替える旨の通知をスキップ挿入セレクタ21jに送信し、生成部21iが3つのシンボル長を有するスキップオーダードセットを送信する時間が経過した後に、再度経路を切替える旨の通知をスキップ挿入セレクタ21jに送信する。
図2に戻って、スリップ検出部22は、伝送装置10の動作クロックと伝送装置10bの動作クロックとを比較し、どちらの動作クロックが速いかを判別する。つまり、スリップ検出部22は、送信側の伝送装置10と受信側の伝送装置10bとの動作クロックに生じた誤差であるスリップの検出を行う。具体的には、スリップ検出部22は、後述するSerDes40から伝送装置10bの動作クロックであるリカバリクロックを取得する。そして、スリップ検出部22は、リカバリクロックと伝送装置10の動作クロックとを比較する。
以下、スリップ検出部22がリカバリクロックと伝送装置10の動作クロックとを比較する処理の一例について説明する。図7は、実施例1に係るスリップ検出部が実行する処理の流れを説明するための図である。図7に示す例では、スリップ検出部22は、グレーコードカウンタ22a、22b、D型フリップフロップ22c、シフトレジスタ22d、比較部22eを有する。
グレーコードカウンタ22aは、SerDes40からリカバリクロックを受信する。そして、グレーコードカウンタ22aは、受信したリカバリクロックのアップエッジを周期的にカウントする。例えば、グレーコードカウンタ22aは、リカバリクロックのアップエッジが入力されるたびに「00(0)」、「01(1)」、「11(2)」、「10(3)」、「00(0)」というように「0」〜「3」までの値を周期的にカウントする。そして、グレーコードカウンタ22aは、カウントした値をフリップフロップ22cのD端子に入力する。
グレーコードカウンタ22bは、伝送装置10の動作クロックであるシステムクロックを受信する。そして、グレーコードカウンタ22bは、受信したシステムクロックのアップエッジを周期的に計数する。例えば、グレーコードカウンタ22bは、システムクロックのアップエッジが入力されるたびに「00(0)」、「01(1)」、「11(2)」、「10(3)」、「00(0)」というように「0」〜「3」までの値を周期的にカウントする。そして、グレーコードカウンタ22bは、カウントした値が「0」の時に、チェックタイミングを示す信号をフリップフロップ22cのC端子に入力する。
フリップフロップ22cは、システムクロックのアップエッジに合わせて以下のように動作する。すなわち、フリップフロップ22cは、C端子に入力された値が「0」から「1」に遷移するタイミングで、D端子に入力された値を保持し、保持した値をシフトレジスタ22dに出力する。
ここで、図8を用いて、フリップフロップ22cが出力する値について説明する。図8は、実施例1に係るスリップ検出部が計数する値を説明するための図である。図8に示す例では、伝送装置10のシステムクロックの波形、グレーコードカウンタ22bが計数した値(システムクロックカウンタ:SCNT)、グレーコードカウンタ22bが出力するチェックタイミングを示す信号を示す。また、図8には、リカバリクロックの波形、グレーコードカウンタ22aが計数した値(リカバリクロックカウンタ:RCNT)、フリップフロップ22cが出力するRCNTの値を示す。
図8に示すように、グレーコードカウンタ22bは、SCNTが「0」の時に「High」となる信号をフリップフロップ22cに入力する。また、グレーコードカウンタ22aは、リカバリクロックに合わせて、RCNTを計数し、フリップフロップ22cに入力する。
そして、フリップフロップ22cは、チェックタイミングが「High」から「Low」へと遷移するダウンエッジのタイミングで、グレーコードカウンタ22aの出力、すなわちRCNTを保持する。なお、図8に示す例では、フリップフロップ22cが保持するRCNT値は、「1」、「1」、「1」、「1」、「2」、「2」、「2」、「2」と遷移する。すなわち、図8に示す例は、伝送装置10bの動作クロックが伝送装置10の動作クロックよりも速いため、定期的に測定するRCNTの値が時間と共に増加方向にずれている例である。
図7に戻って、シフトレジスタ22dは、フリップフロップ22cの出力を2回分保持するレジスタである。具体的には、シフトレジスタ22dは、制御部21kからSKP Ins指示を受信した場合には、以下の処理を実行する。すなわち、シフトレジスタ22dは、システムクロックのアップエッジに合わせて、フリップフロップ22cの出力を記憶する。また、シフトレジスタ22dは、前々回に記憶したフリップフロップ22cの出力を消去する。そして、シフトレジスタ22dは、記憶したフリップフロップ22cの出力、すなわち、フリップフロップ22cが今回出力した値とフリップフロップ22cが前回出力した値とを比較部22eに出力する。
比較部22eは、シフトレジスタ22dから、フリップフロップ22cが前回出力した値と今回出力した値とを受信する。そして、比較部22eは、フリップフロップ22cが今回出力した値と前回出力した値とを比較し、今回出力した値が前回出力した値よりも大きいか否かを判別する。そして、比較部22eは、フリップフロップ22cが今回出力した値が大きいと判別した場合には、伝送装置10bの動作クロックが速い旨の通知をスキップ挿入部21へ送信する。
また、比較部22eは、フリップフロップ22cが前回出力した値が大きいと判別した場合には、伝送装置10の動作クロックが速い旨の通知をスキップ挿入部21へ送信する。また、比較部22eは、フリップフロップ22cが今回出力した値と前回出力した値とが同じ場合には、動作クロックに違いがない旨の通知をスキップ挿入部21へ送信する。
ここで、図9を用いて、シフトレジスタ22dが記憶する値および比較部22eが実行する判別処理の一例を説明する。図9は、実施例1に係るスリップ検出部が実行する判別処理の一例を説明するための図である。図9に示す例では、SKP Ins指示のタイミングと、シフトレジスタ22dの出力、すなわち、前回のRCNTの値と今回のRCNTの値と、比較部22eによる判別結果とを示す。
図9に示す例では、SKP Ins指示に合わせて、シフトレジスタ22dが今回のRCNT値と前回のRCNT値とを出力する。なお、図9に示す例では、シフトレジスタ22dが出力する値を「今回のRCNT値、前回のRCNT値」というように記載すると、以下のようになる。すなわち、シフトレジスタ22dが出力する値は、「1、null」、「2、1」、「2、2」、「3、2」、「3、3」、「0、3」、「1、0」、「1、1」、「2、1」と遷移する。なお、「null」は、空欄を表す。
このため、比較部22eは、前回のRCNT値に対する今回のRCNT値の増減を「null」、「+1」、「±0」、「+1」、「±0」、「+1」、「+1」、「±0」、「+1」と判別する。そして、比較部22eは、前回のRCNT値に対する今回のRCNT値の増減が正の値である際、つまり図9に示す例では「+1」である際に、伝送装置10bの動作クロックが速い旨の通知を出力する。
また、比較部22eは、前回のRCNT値と今回のRCNT値が同じ、つまり図9に示す例では「±0」である際に、動作クロックが変わらない旨の通知を出力する。また、図9には記載されていないが、前回のRCNT値に対して今回のRCNT値の増減が負の値(例えば「−1」)である際には、伝送装置10の動作クロックが速い旨の通知を出力する。
PCIeの規格では、動作クロックの誤差が「±300ppm」以内に収まるよう定められている。このため、送信側のクロック誤差が「−300ppm」であり、受信側のクロック誤差が「300ppm」であった場合には、双方で「600ppm」の誤差が存在することとなる。「600ppm」の誤差が存在する場合には、動作クロックが約1666周期するたびに1回のスリップが発生することとなる。スリップの発生によって、送信側の伝送装置の動作クロックが速い場合には、受信側の伝送装置においてデータの欠落が発生し、受信側の伝送装置の動作クロックが速い場合には、受信側の伝送装置においてデータの重複が発生する。
このようなスリップが発生した際のデータ欠落および重複を回避するため、伝送装置10は、スキップオーダードセットによる誤差吸収処理を行う。ここで、伝送装置10は、スキップオーダードセットによる誤差吸収処理を行う場合には、送信側と受信側のどちらの動作クロックが速いかというスリップの方向とスリップの発生度合いを識別する必要がある。このため、伝送装置10は、スリップ検出部22を用いて、スリップの方向とスリップの発生度合いを検出する。
図2に戻って、スクランブラ23は、スクランブル処理を実行する。具体的には、スクランブラ23は、スキップ挿入部21によってスキップオーダードセットが挿入された各送信データ#1〜#8に対して、スクランブル処理を実行する。そして、スクランブラ23は、スクランブル処理を施した各送信データ#1〜#8をエンコーダ31に送信する。具体的には、スクランブラ23は、各送信データ#1〜#8を、それぞれ異なるPCSレイヤ30a〜30hのエンコーダに送信する。
デスキュー部24は、PCS部30から受信したデータのデスキュー処理を行う。具体的には、デスキュー部24は、PCS部30から複数の受信データ#1〜#8を受信する。そしてデスキュー部24は、伝送遅延誤差による伝送経路間のスキューや、後述するエラスティックバッファ35での処理タイミングの差による遅延誤差を吸収するデスキュー処理を実行する。
具体的には、デスキュー部24は、受信した受信データ#1〜#8に挿入されたスキップオーダードセットを検出する。そして、デスキュー部24は、各受信データ#1〜#8に挿入されたスキップオーダードセットのうち、「COM」シンボルの位置をそろえる。例えば、デスキュー部24は、各受信データ#1〜#8の「COM」シンボルを検出する。
そして、デスキュー部24は、受信データ#8の「COM」シンボルの位置が他の受信データ#1〜#7の「COM」シンボルの位置よりも1シンボル分遅い場合には、各受信データ#1〜#7の出力を1シンボル分遅延させる。そして、デスキュー部24は、デスキュー処理を行った各受信データ#1〜#8をデスクランブラ25へ送信する。
デスクランブラ25は、デスキュー部24から受信データ#1〜#8を受信した場合には、受信した各受信データ#1〜#8のデスクランブル処理を行う。そして、デスクランブラ25は、デスクランブル済みの受信データ#1〜#8を上位層11へ送信する。
制御部26は、PCS部30が有する受信ステータス判定部37から受信データ#1に関する受信ステータスを取得する。そして、制御部26は、取得した受信ステータスに基づいて、正しく受信データ#1が受信できているかを判別し、受信できていないと判別した場合には、転極部33に、極性反転指示を送信する。なお、制御部26は、PCS部30が有する各PCSレイヤ30a〜30hが有する各受信ステータス判定部から、各受信データ#1〜#8の受信ステータスを受信しており、各PCSレイヤ30a〜30hが有する転極部ごとに独立して極性反転指示を送信する。
続いて、PCS部30が有する各部およびSerDes40が実行する処理について説明する。エンコーダ31は、スクランブラ23から受信したデータを8bitのデータから10bitのデータにエンコードする。これは、SerDes40がクロック・データ・リカバリ(Clock Data Recovery、CDR)等の技術を用いて、伝送装置10bの動作クロックを取得するために行われる。その後、エンコーダ31は、10bitにエンコードしたデータをループバック部32へ送信する。
ループバック部32は、伝送装置10bに対して送信するデータを選択する選択部である。すなわち、ループバック部32には、送信データ#1の他に、伝送装置10bから受信したデータが入力される。そして、ループバック部32は、ループバックを行わない場合には、エンコーダ31によって10bitのデータにエンコードされた送信データ#1をSerDes40に送信する。
また、ループバック部32は、ループバックを行う指示を受けた場合には、後述するエラスティックバッファ35から読み出されたデータ、つまり、伝送装置10bからシリアルリンクを介して受信したデータをSerDes40へ送信する。なお、ループバック部32がループバック処理を実行するか否かは、任意の方法で設定することができる。また、以下の説明においては、伝送装置10bからシリアルリンクを介して受信したデータを受信データ#1〜#8とする。
なお、上述した説明においては、PCSレイヤ30aが有するエンコーダ31およびループバック部32が実行する処理について説明したが、他のPCSレイヤ30b〜30hが有するエンコーダおよびループバック部も、同様の処理を実行するものとする。
SerDes40は、PCS部30が有する各PCSレイヤ30a〜30hから送信データ#1〜#8、または、伝送装置10bへループバックする受信データ#1〜#8を受信する。そして、SerDes40は、受信した送信データ#1〜#8または、受信データ#1〜#8を、それぞれシリアルデータに変換し、変換後のシリアルデータをそれぞれ異なる経路を介して、伝送装置10bへ送信する。
また、SerDes40は、伝送装置10bから受信データ#1〜#8を受信する。そして、SerDes40は、受信データ#1〜#8を、各PCSレイヤ30a〜30hの転極部に送信する。また、SerDes40は、伝送装置10bから受信データ#1〜#8を受信する際に、クロック・データ・リカバリ(Clock Data Recovery、CDR)等の技術を用いて伝送装置10bの動作クロックを取得する。
そして、SerDes40は、取得した動作クロックをリカバリクロックとして、各PCSレイヤ30a〜30hが有する転極部、アライン、エラスティックバッファ、およびMAC部20が有するスリップ検出部22へ送信する。例えば、SerDes40は、リカバリクロックを、PCSレイヤ30aが有する転極部33、アライン34、エラスティックバッファ35、スリップ検出部22へ送信する。
転極部33は、リカバリクロックに合わせて動作する極性反転装置であり、制御部26から極性反転指示を受信した場合には、SerDes40から受信した受信データ#1の極性を反転させる。そして、転極部33は、受信データ#1をアライン34に送信する。
アライン34は、リカバリクロックに合わせて、シンボル同期を確立させる処理を行う。すなわち、アライン34は、転極部33から受信した受信データ#1をエラスティックバッファ35に格納するため、エラスティックバッファ35に格納するデータのデータ幅に受信データ#1のデータ幅をそろえる。そして、アライン34は、データ幅をそろえた受信データ#1をエラスティックバッファ35に送信する。
エラスティックバッファ35は、伝送装置10bと伝送装置10とのクロック乗せ換え用のバッファである。すなわち、エラスティックバッファ35は、伝送装置10と伝送装置10bとの動作クロックの誤差を吸収するために用いられるバッファである。具体的には、伝送装置10は、伝送装置10bの動作クロックに合わせて受信データ#1〜#8を受信するので、一度受信データ#1〜#8をエラスティックバッファ35に格納する。そして、伝送装置10は、エラスティックバッファ35に格納した受信データ#1〜#8を自身の動作クロックで読み出すことで、クロックの乗せ換えを行う。
また、エラスティックバッファ35は、受信データ#1を記憶する際、および、記憶した受信データ#1を読み出す際に、各受信データ#1に挿入されたスキップオーダードセットを検出する。そして、エラスティックバッファ35は、シンボル長が4つ以上のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットのシンボル長を4つに修正し、スキップオーダードセットを修正した受信データ#1を記憶する。
また、エラスティックバッファ35は、記憶した受信データ#1を読み出す際に、シンボル長が4つ以下のスキップオーダードセットを検出する。そして、エラスティックバッファ35は、検出したスキップオーダードセットのシンボル長を4つに修正し、スキップオーダードセットを修正した受信データ#1をデコーダ36へ送信する。
具体的には、エラスティックバッファ35は、受信データ#1を記憶する際に、1つの「COM」シンボルと4つの「SKIP」シンボルとを有するスキップオーダードセットを検出した場合には、「SKIP」シンボルを1つ削除する。そして、エラスティックバッファ35は、1つの「COM」シンボルと3つの「SKIP」シンボルとを有するスキップオーダードセットが挿入された受信データ#1を記憶する。
また、エラスティックバッファ35は、受信データ#1の読出しの際に、1つの「COM」シンボルと2つの「SKIP」シンボルとを有するスキップオーダードセットを検出した場合には、「SKIP」シンボルを2度読みすることで複製する。そして、エラスティックバッファ35は、1つの「COM」シンボルと3つの「SKIP」シンボルとを有するスキップオーダードセットが挿入された受信データ#1をデコーダ36に送信する。
このように、エラスティックバッファ35は、受信データ#1を記憶する際にシンボル長が4以上のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットをシンボル長4のスキップオーダードセットに修正し、その後、受信データ#1を記憶する。また、エラスティックバッファ35は、受信データ#1の読出しを行う際に、シンボル長が4以下のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットの「SKIP」シンボルを2度読みすることにより、シンボル長4のスキップオーダードセットに修正する。また、エラスティックバッファ35は、エラーの有無や、受信データ#1の書き込みおよび読み出し処理の内容を、受信ステータス判定部37に送信する。
デコーダ36は、エラスティックバッファ35から読み出された受信データ#1を10bitデータから8bitデータへのデコードを行う。そして、デコーダ36はデコード済みの受信データ#1をMAC部20のデスキュー部24へ送信する。また、デコーダ36は、デコード処理におけるエラーの有無を受信ステータス判定部37に送信する。
受信ステータス判定部37は、エラスティックバッファ35およびデコーダ36から受信したエラーの有無や受信データ#1の書き込みおよび読み出し処理の内容に応じて、受信データ#1を正常に受信できたか否かを判定する。そして、受信ステータス判定部37は、判定結果を受信ステータスとして、MAC部20の制御部26へ送信する。
次に、図10を用いて、エラスティックバッファ35が実行する処理の一例について説明する。図10は、実施例1に係るエラスティックバッファの一例を説明するための図である。なお、図10に示す例では、PCSレイヤ30aが有するエラスティックバッファ35、デコーダ36、およびMAC部20が有するデスキュー部24の一例について説明する。
図10に示す例では、エラスティックバッファ35は、クロック乗せ換え用データレジスタ35a、書き込み制御部35b、読み出し制御部35cを有する。クロック乗せ換え用データレジスタ35aは、アライン34から受信した受信データ#1を記憶するレジスタである。書き込み制御部35bは、SerDes40から受信したリカバリクロックに合わせて、クロック乗せ換え用データレジスタ35aへの受信データ#1の書き込みを制御する制御部である。
ここで、書き込み制御部35bは、アライン34からクロック乗せ換え用データレジスタ35aに送信される受信データ#1を監視し、シンボル長が4つ以上のスキップオーダードセットを検出する。そして、書き込み制御部35bは、シンボル長が4つ以上のスキップオーダードセットを検出した場合には、最後のシンボル、つまり「SKIP」シンボルをクロック乗せ換え用データレジスタ35aに格納せずに破棄する。
また、読み出し制御部35cは、伝送装置10のシステムクロックに合わせて、クロック乗せ換え用データレジスタ35aから受信データ#1の読み出しを制御する制御部である。具体的には、読み出し制御部35cは、クロック乗せ換え用データレジスタ35aから読み出される受信データ#1から、シンボル長が3つ以下のスキップオーダードセットを検出する。
そして、読み出し制御部35cは、シンボル長が3つ以下のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットの最後の「SKIP」シンボルを2度読みさせることによって、スキップオーダードセットのシンボル長を4つに修正する。次に、デコーダ36は、読み出し制御部35cによって読み出された受信データ#1を8bitにデコードし、デコード済みのデータをデスキュー部24に送信する。
デスキュー部24は、遅延吸収用データレジスタ24aとデスキュー制御部24bとを有する。まず、遅延吸収用データレジスタ24aは、PSC部30から受信データ#1〜#8を受信し、一時的に記憶する。次に、デスキュー制御部24bは、遅延吸収用データレジスタ24aに記憶された各受信データ#1〜#8から「COM」シンボルを検出する。そして、デスキュー制御部24bは、検出した「COM」シンボルの位置をそろえて各受信データ#1〜#8を出力する。
例えば、デスキュー制御部24bは、各受信データ#1〜#8の「COM」シンボルの位置を検出し、受信データ#2のスキップオーダードセットの「COM」シンボルが最も遅い位置に存在すると判別する。このような場合には、デスキュー制御部24bは、他の受信データ#1、#3〜#8の出力タイミングを遅延させる。そして、デスキュー制御部24bは、受信データ#2のスキップオーダードセットの「COM」シンボルが出力されると同時に、他の受信データ#1、#3〜#8の「COM」シンボルを出力させるように、遅延吸収用データレジスタ24aを制御する。
例えば、スキップ挿入部21、スリップ検出部22、スクランブラ23、デスキュー部24、デスクランブラ25、制御部26、エンコーダ31、ループバック部32、転極部33、アライン34、デコーダ36、受信ステータス判定部37とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA (Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、エラスティックバッファ35とは、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子と電子回路等との組み合わせによって実現される。
次に、図11a〜図11cを用いて、伝送装置10が挿入したスキップオーダードセットが伝送装置10bによってどのように処理されるかを説明する。なお、以下の説明においては、伝送装置10bは、伝送装置10と同様の処理を実行するものとする。
まず、図11aを用いて、動作クロックに差が無い場合に送信されるシンボル長が4つのスキップオーダードセットがどのように処理されるかを説明する。図11aは、動作クロックに差がない場合に送信されたスキップオーダードセットの処理の流れを説明するための図である。なお、図11aには、挿入されるスキップオーダードセット、伝送装置10bが受信した際のスキップオーダードセット、伝送装置10bがエラスティックバッファに格納する際のスキップオーダードセット、伝送装置10bがエラスティックバッファから読み出す際のスキップオーダードセットを示す。
図11aに示す例では、伝送装置10は、1つの「COM」シンボルと3つの「SKIP」シンボルとを有するスキップオーダードセットを送信データ#1〜#8に挿入する。このような場合には、伝送装置10bは、各送信データ#1〜#8に挿入されたスキップオーダードセットの修正を行わず、エラスティックバッファへの書き込み、および、読み出しを行う。
次に、図11bを用いて、伝送装置10の動作クロックが伝送装置10bの動作クロックよりも速い場合に挿入されるシンボル長が5つのスキップオーダードセットがどのように処理されるかを説明する。図11bは、送信側の動作クロックが受信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。図11bに示す例では、伝送装置10は、1つの「COM」シンボルと4つの「SKIP」シンボルとを有するスキップオーダードセットを各送信データ#1〜#8に挿入する。
このような場合には、伝送装置10bは、各送信データ#1〜#8をエラスティックバッファに格納する際に、最後の「SKIP」シンボルを破棄することで、挿入されたスキップオーダードセットのシンボル長を4つに修正する。
次に、図11cを用いて、伝送装置10bの動作クロックが伝送装置10の動作クロックよりも速い場合に挿入されるシンボル長が3つのスキップオーダードセットがどのように処理されるかを説明する。図11cは、受信側の動作クロックが送信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。図11cに示す例では、伝送装置10は、1つの「COM」シンボルと2つの「SKIP」シンボルとを有するスキップオーダードセットを各送信データ#1〜#8に挿入する。
このような場合には、伝送装置10bは、各送信データ#1〜#8をエラスティックバッファから読み出す際に、最後の「SKIP」シンボルを2度読みすることで複製し、挿入されたスキップオーダードセットのシンボル長を4つに修正する。
このように、伝送装置10は、伝送装置10の動作クロックと伝送装置10bの動作クロックとが等しい場合には、通常のスキップオーダードセットとして、4シンボル長のスキップオーダードセットを送信データ#1〜#8に挿入する。また、伝送装置10は、伝送装置10の動作クロックが伝送装置10bの動作クロックよりも速い場合には、通常のスキップオーダードセットよりも長い5シンボル長のスキップオーダードセットを送信データ#1〜#8に挿入する。
また、伝送装置10は、伝送装置10bの動作クロックが伝送装置10の動作クロックよりも速い場合には、通常のスキップオーダードセットよりも短い3シンボル長のスキップオーダードセットを送信データ#1〜#8に挿入する。このため伝送装置10は、伝送装置10と伝送装置10bとの間のクロック誤差を吸収することができる。
また、伝送装置10bは、スキップオーダードセットのシンボル長を、各送信データ#1〜#8ごとに検出および比較して修正するのではなく、スキップオーダードセットのシンボル長を、通常のスキップオーダードセットと同じシンボル長に修正する。このため、伝送装置10は、容易にスキップオーダードセットのシンボル長を修正することができる結果、デスキュー処理を行う際の論理を容易にすることができる。
また、伝送装置10は、伝送装置10bがデスキュー処理を行う際にスキップオーダードセットのシンボル長を修正する処理を不要とする結果、シンボル長を修正するためのデータレジスタを不要とする。この結果、伝送装置10は、デスキュー処理を行うための回路規模を減少させることができる。
次に、図12を用いて、伝送装置10がスキップオーダードセットを挿入する処理の流れについて説明する。図12は、実施例1に係る伝送装置がスキップオーダードセットを挿入する処理を説明するための図である。なお、図12に示す例では、上位層11からMAC部20に送信される各送信データ#1〜#8の内容であるデータA_1〜G_8、スリップ検出部22が検出したスリップ、挿入するスキップオーダードセット、SKP Ins指示のタイミングを示す。また、図12に示す例では、スキップオーダードセットが挿入された各送信データ#1〜#8を示す。
図12に示す例では、上位層11から送信データ#1〜#8が入力される。また、図12中(A)に示すように、スキップ挿入部21は、約1500シンボルごとに、SKP Ins指示を生成する。このため、伝送装置10は、図12中(B)に示すように、通常の4シンボル長を有するスキップシンボルをデータA_1〜A_8とデータB_1〜B_8との間に同時に挿入する。
ここで、図12中(C)に示すように、正のスリップが検出された場合、すなわち、伝送装置10の動作クロックが伝送装置10bの動作クロックよりも速いと判別された場合には、伝送装置10は、以下の処理を実行する。すなわち、伝送装置10は、図12中(D)に示すように、通常よりも長い5シンボル長のスキップオーダードセットを生成する。そして、伝送装置10は、図12中(E)に示すように、SKP Ins指示が生成された後に、データの区切りであるデータB_1〜_8とデータC_1〜C_8との間に生成したスキップオーダードセットを挿入する。また、図12中(F)に示すように、5シンボル長のスキップオーダードセットを挿入した場合には、通常の4シンボル長のスキップオーダードセットを生成する。
次に、伝送装置10は、図12中(G)に示すように、SKP Ins指示が生成された際に、通常の4シンボル長のスキップオーダードセットが生成されているため、データD_1〜D_8とデータE_1〜E_8との間に通常の4シンボル長のスキップオーダードセットを挿入する。次に、伝送装置10は、図12中(H)に示すように、負のスリップが検出された場合、すなわち、伝送装置10bの動作クロックが伝送装置10の動作クロックよりも速いと判別された場合には、伝送装置10は、以下の処理を実行する。
すなわち、伝送装置10は、図12中(I)に示すように、通常よりも短い3シンボル長のスキップオーダードセットを生成する。そして、伝送装置10は、図12中(J)に示すように、SKP Ins指示が生成された後に、図12中(K)に示すように、データの区切りであるデータF_1〜F_8とデータG_1〜G_8との間に同時に挿入する。その後、図12中(L)に示すように、伝送装置10は、通常よりも短い3シンボル長のスキップオーダードセットを挿入したので、通常の4シンボル長を有するスキップオーダードセットを生成する。
次に、図13を用いて、伝送装置10bに送信されたスキップオーダードセットがどのように処理されるかを説明する。図13は、実施例1に係る受信側の伝送装置によるスキップオーダードセットの処理を説明するための図である。なお、図13には、伝送装置10bが受信した送信データ#1〜#8、伝送装置10bがエラスティックバッファに格納する送信データ#1〜#8、エラスティックバッファから読み出す送信データ#1〜#8を示した。また、図13には、伝送装置10bによるデスキュー処理の内容を示した。また、図13中では、「COM」シンボルを「C」で、通常の「SKIP」シンボルを「S」で、追加された「SKIP」シンボルを「X」で、2度読みされることで複製される「SKIP」シンボルを「Y」で示す。
例えば、図13中(M)に示すように、データB_1〜B_8とデータC_1〜C_8との間には、5シンボル長のスキップオーダードセットが挿入されている。また、図13中(N)に示すように、データF_1〜F_8とデータG_1〜G_8との間には、3シンボル長のスキップオーダードセットが挿入されている。
このため、伝送装置10bは、図13中(O)に示すように、各送信データ#1〜#8をエラスティックバッファに格納する際に、スキップオーダードセットの最後のシンボル「X」を削除し、4シンボル長のスキップオーダードセットに修正する。また、伝送装置10bは、図13中(P)に示すように、各送信データ#1〜#8をエラスティックバッファから読み出す際に、スキップオーダードセットの最後のシンボル「Y」を2度読みし、複製することによって、4シンボル長のスキップオーダードセットに修正する。
また、伝送装置10bは、図13中(Q)に示すように、送信データ#8を遅延させることで、各送信データ#1〜#8に挿入されたスキップオーダードセットの「COM」の位置をそろえるデスキュー処理を行う。つまり、伝送装置10bは、各送信データ#1〜#8に挿入されたスキップオーダードセットの数を検出および比較することなく、デスキュー処理を行う事ができる。
[実施例1の効果]
上述したように、伝送装置10は、複数の送信データ#1〜#8をそれぞれ異なる経路を介して、伝送装置10bに送信する。この際、伝送装置10は、伝送装置10の動作クロックと伝送装置10bとの動作クロックとを比較する。
そして、伝送装置10は、自身の動作クロックが伝送装置10bの動作クロックよりも速いと判別した場合には、通常よりも長い5シンボル長のスキップオーダードセットを各送信データ#1〜#8に挿入する。また、伝送装置10は、伝送装置10bの動作クロックが自身の動作クロックよりも速いと判別した場合には、通常よりも短い3シンボル長のスキップオーダードセットを各送信データ#1〜#8に挿入する。このため、伝送装置10は、自身の動作クロックと、伝送装置10bの動作クロックとの誤差を吸収させることができる。
また、伝送装置10bは、各送信データ#1〜#8に挿入されたスキップオーダードセットのシンボル長を、通常のシンボル長である4シンボル長に修正するだけで、各送信データ#1〜#8に挿入されたスキップオーダードセットのシンボル長をそろえることができる。この結果、伝送装置10は、伝送装置10bにおけるデスキュー処理において、スキップオーダードセットのシンボル長の検出や比較を不要とするため、デスキュー処理の論理を容易にすることができる。また、伝送装置10は、デスキュー処理の論理を容易にすることにより、回路規模の縮小や、回路の検証や設計を容易にすることができる。
また、伝送装置10は、自身の動作クロックに合わせて周期的に動作するグレーコードカウンタ22bと、伝送装置10bの動作クロックに合わせて周期的に動作するグレーコードカウンタ22aとを有する。そして、伝送装置10は、グレーコードカウンタ22bの値が「0」となった際に、グレーコードカウンタ22aの値を取得し、取得した値が前回取得した値よりも大きいか否かを判別することで、自身の動作クロックと伝送装置10bの動作クロックとを比較する。このため、伝送装置10は、伝送装置10の動作クロックと伝送装置10bの動作クロックとの誤差が小さい場合にも、蓄積した誤差に基づいて、各送信データ#1〜#8に挿入するスキップオーダードセットを適切に変更することができる。
また、伝送装置10は、受信したデータからスキップオーダードセットを検出し、検出したスキップオーダードセットの長さが所定の長さよりも短い場合には、スキップオーダードセットの一部を複製する。また、伝送装置10は、検出したスキップオーダードセットの長さが所定の長さよりも長い場合には、スキップオーダードセットの一部を削除する。このため、伝送装置は、自身の動作クロックと伝送装置10bの動作クロックとの誤差を容易に吸収することができる。
上述した実施例1では、自身の動作クロックと伝送装置10bの動作クロックとの誤差に基づいて、シンボル長の異なるスキップオーダードセットを各送信データ#1〜#8に挿入する伝送装置10を説明した。しかし、実施例は、これに限定されるものではない。例えば、伝送装置10は、異なる形式のスキップオーダードセットを挿入することとしてもよい。以下、送信データ#1〜#8の送信元の伝送装置を伝送装置10h、送信先の伝送装置を伝送装置10iとして説明する。
例えば、実施例2に係る伝送装置10hは、自身の動作クロックと伝送装置10iの動作クロックとに差がない場合には、1つの「COM」シンボルと3つの「SKP」シンボルとを有する4シンボル長のスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。また、自身の動作クロックが送信データ#1〜#8の送信先となる伝送装置10iの動作クロックよりも速い場合には以下の処理を実行する。
すなわち、伝送装置10hは、図14に示すように、1つの「COM」シンボルと3つの「SKP」シンボルとに、伝送装置10iがエラスティックバッファに格納する際に削除するシンボル「RMV」を追加した5シンボル長のスキップオーダードセットを生成する。そして、伝送装置10hは、生成したスキップオーダードセットを各送信データ#1〜#8に対して同時に挿入する。図14は、実施例2に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
また伝送装置10hは、伝送装置10iの動作クロックが自身の動作クロックよりも速い場合には、以下の処理を実行する。すなわち、伝送装置10hは、図15に示すように、1つの「COM」と1つの「SKP」とに加えて、伝送装置10hがバッファから読み出す際に複製するシンボル「ADD」を有するスキップオーダードセットを生成する。そして、伝送装置10hは、生成したスキップオーダードセットを各送信データ#1〜#8に対して同時に挿入する。図15は、実施例2に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
このような場合には、伝送装置10iは、容易にスキップオーダードセットの修正を行う事が可能となる。すなわち、伝送装置10iは、スキップオーダードセットの数を計数せずとも、各送信データ#1〜#8をエラスティックバッファに格納する場合には、各送信データ#1〜#8に挿入されたシンボル「RMV」のみを検出し、検出した「RMV」を削除すればよい。また、伝送装置10iは、各送信データ#1〜#8をエラスティックバッファから読み出す場合には、シンボル「ADD」のみを検出し、検出した「ADD」を2つの「SKP」に変換すればよい。
このように、伝送装置10iは、伝送装置10hが図14、図15に示すスキップオーダードセットを各送信データ#1〜#8に同時に挿入した場合には、スキップオーダードセットのシンボル長を検出せずとも、2種類のシンボルを検出するだけでよい。このため、伝送装置10hは、動作クロックの誤差を吸収するための処理をより容易にすることができる。
次に、図16a、16bを用いて、伝送装置10hが各送信データ#1〜#8に対して同時に挿入したスキップシンボルを伝送装置10iがどのように処理するかを説明する。図16aは、実施例2に係る送信側の伝送装置の動作クロックが受信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。
図16aに示す例では、伝送装置10hは、1つの「COM」シンボルと、3つの「SKP」シンボルと、1つの「RMV」シンボルとを有するスキップオーダードセットを、送信データ#1〜#8に対して同時に挿入する。このような場合には、伝送装置10iは、各送信データ#1〜#8をエラスティックバッファに格納する際に、「RMV」を検出し、検出した「RMV」を削除する。
一方、図16bは、実施例2に係る受信側の伝送装置の動作クロックが送信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。図16bに示す例では、伝送装置10hは、1つの「COM」シンボルと、1つの「SKP」シンボルと、1つの「ADD」シンボルとを有するスキップオーダードセットを各送信データ#1〜#8に対して同時に挿入する。
このような場合には、伝送装置10iは、各送信データ#1〜#8をエラスティックバッファに格納し、その後、各送信データ#1〜#8を読み出す際に「ADD」シンボルのみを検出する。そして、伝送装置10iは、検出した「ADD」シンボルを2つの「SKP」シンボルに変換する。
なお、このようなスキップオーダードセットを定義するためには、伝送装置10iおよび伝送装置10hのディスパリティーがニュートラルなコードとして定義される。すなわち、PCIeのシリアル伝送には送信時にデータを8bitから10bitに変換し、受信時にデータを10bitから8bitにデコードする。ここで、1つの8bitのコードには、対応する2種類の10bitのコード(Current RD−、Current RD+)が存在し、直前のエンコード処理における10bitのコードの内容によりいずれかのコードが選択される。
ここで、8B/10Bエンコード処理には、ディスパリティーのルールがある。すなわち、送信側は、電源投入後、ランニングディスパリティの初期値が(−)に設定され、送信側は、送信した10bitコードの内容に基づき新しいランニングディスパリティーの値を計算する。このようなランニングディスパリティーは、送信したデータビットの「0」よりも「1」が多ければ(+)となり、「1」よりも「0」が多ければ(−)となる。また、送信したデータビットの「0」と「1」が同じニュートラルであれば、ランニングディスパリティーは変化しない。このようなルールの下、送信側は、8bitのコードを10bitのコードへ変換する場合、ランニングディスパリティーに応じた10bitのコードを選択する。
また受信側は、電源投入後、ランニングディスパリティの初期値が(+)および(−)の両方が想定される。受信側は、受信した10bitコードが有効化無効化を判断し、受信した10bitコードの内容に基づき、新たなランニングディスパリティーの値を計算する。また、受信側は、受信した10bitコードが現在のランニングディスパリティーのテーブルに存在する場合には、受信した10bitコードが有効であるとみなし、8bitのコードにデコードする。一方、受信側は、受信した10bitコードが現在のランニングディスパリティーのテーブルに存在しない場合には、受信した10bitコードが無効であるとみなす。
このようなルールの下、上記「ADD」シンボルと「RMV」シンボルとがニュートラルなコードでないとすると、「ADD」シンボル、または、「RMV」シンボルの送信時にランニングディスパリティが変化する。すると、受信側で「RMV」シンボルが削除された場合には、ランニングディスパリティの変化が起きないので、「RMV」シンボルの次に受信したシンボルでディスパリティーエラーが生する可能性がある。この結果、「ADD」シンボルおよび「RMV」シンボルは、ディスパリティーがニュートラルなコードとして定義される。
[実施例2の効果]
上述したように、伝送装置10hは、自身の動作クロックよりも速い場合には、通常の4シンボル長のスキップオーダードセットに、伝送装置10iで削除されるシンボルを追加したスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。また、伝送装置10は、伝送装置10iの動作クロックが自身の動作クロックよりも速い場合には、通常よりも短い3シンボル長のスキップオーダードセットであって、伝送装置10iが複製を行うシンボルを有するスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。
このため、伝送装置10hは、伝送装置10iでスキップオーダードセットの長さを修正せずとも、自身の動作クロックと受信側の伝送装置10iの動作クロックとの誤差を吸収することができるので、デスキュー処理の論理を容易にすることができる。また、伝送装置10iは、スキップオーダードセットのシンボル長を検出せずとも、「RMV」シンボルと「ADD」シンボルとを検出し、検出したシンボルに応じた処理を行えば各送信データ#1〜#8に挿入されたスキップオーダードセットのシンボル長をそろえることができる。このため、伝送装置10hは、受信側において、スキップオーダードセットのシンボル長をそろえる処理をさらに容易にすることができる。
上述した各伝送装置10〜10iは、送信先の伝送装置における処理を容易にするものであった。しかし、実施例はこれに限定されるものではなく、例えば、各伝送装置10〜10iは、ループバック処理によって返信された各送信データ#1〜#8を受信する際の処理を容易にする処理をさらに実行してもよい。以下、送信データ#1〜#8の送信元の伝送装置を伝送装置10j、送信先の伝送装置を伝送装置10kとして説明する。
例えば、送信装置10jおよび伝送装置10kは、各送信データ#1〜#8をエラスティックバッファに格納する際に「RMV」シンボルを検出し、検出した「RMV」シンボルを削除する。また、伝送装置10jおよび伝送装置10kは、各送信データ#1〜#8をエラスティックバッファから読み出す際に「ADD」シンボルを検出し、検出した「ADD」シンボルを「SKP」シンボルと「ADD」シンボルとに修正する。また、送信装置10jおよび伝送装置10kは、各送信データ#1〜#8をエラスティックバッファから読み出す際に「ADD−r」シンボルを検出し、検出した「ADD−r」シンボルを「SKP」シンボルと「RMV」シンボルとに修正する。
つまり、「SKP」シンボルとは、追加および削除が行われないシンボルであり、「RMV」シンボルとは、エラスティックバッファに格納される際に削除されるシンボルである。また、「ADD」シンボルとは、エラスティックバッファから読み出される際に追加および削除が行われないシンボルを1つ追加するシンボルである。また、「ADD−r」シンボルとは、エラスティックバッファから読み出される際に、追加及び削除が行われない1つのシンボルとエラスティックバッファに格納される際に削除される1つのシンボルとに変換されるシンボルである。
このような処理を行う伝送装置10jは、自身の動作クロックが伝送装置10kの動作クロックよりも速い場合には、図17に示すように、「COM」、「SKP」、「ADD」、「RMV」、「RMV」シンボルを有する5シンボル長のスキップオーダードセットを生成する。そして、伝送装置10jは、生成したスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。なお、図17は、実施例3に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
また、伝送装置10jは、伝送装置10kの動作クロックが自身の動作クロックよりも速い場合には、図18に示すように、「COM」、「SKP」、「ADD−r」シンボルを有する3シンボル長のスキップオーダードセットを生成する。そして、伝送装置10jは、生成したスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。なお、図18は、実施例3に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
次に、図19a、19b、19cを用いて、伝送装置10kが各送信データ#1〜#8に対して同時に挿入したスキップシンボルをどのように処理するかを説明する。図19aは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(1)である。図19bは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(2)である。図19cは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(3)である。
なお、図19a〜図19cに示す例では、伝送装置10jが挿入するスキップオーダードセットを自装置送信側処理として示す。また、図19a〜図19cには、対向受信側処理として、送信先の伝送装置10kに入力されるスキップオーダードセット、伝送装置10kがエラスティックバッファに格納するスキップオーダードセット、伝送装置10kがエラスティックバッファから読み出すスキップオーダードセットを示す。また、図19a〜図19cには、自装置受信側処理として、伝送装置10jにループバック送信されたスキップオーダードセット、伝送装置10jがエラスティックバッファに格納するスキップオーダードセット、伝送装置10jがエラスティックバッファから読み出すスキップオーダードセットを示す。
図19aに示すように、送信側の伝送装置10jは、「COM」、「SKP」、「SKP」、「SKP」を有するスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。このような場合には、受信側の伝送装置10kは、エラスティックバッファに各送信データ#1〜#8を格納する際や、エラスティックバッファから各送信データ#1〜#8を読み出す際に、「SKP」シンボルの削除や追加を行わない。このため、送信側の伝送装置10jは、送信した際と同じシンボル長のスキップオーダードセットが格納された各送信データ#1〜#8を取得することができる。
図19bは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(2)である。図19bに示すように、送信側の伝送装置10jは、「COM」、「SKP」、「ADD」、「RMV」、「RMV」を有するスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。このような場合には、受信側の伝送装置10kは、エラスティックバッファに各送信データ#1〜#8を格納する際に、2つの「RMV」シンボルを削除する。
また、伝送装置10kは、エラスティックバッファから各送信データ#1〜#8を読み出す際に「ADD」シンボルを「SKP」シンボルと「ADD」シンボルとに修正する。つまり、伝送装置10kは、「SKP」シンボルを追加する。そして、伝送装置10kは、エラスティックバッファから読み出した送信データ#1〜#8を伝送装置10jにループバック送信する。
一方、伝送装置10jは、ループバック送信された各送信データ#1〜#8をエラスティックバッファに格納する。そして、伝送装置10jは、各送信データ#1〜#8をエラスティックバッファから読み出す際に、「ADD」シンボルを「SKP」シンボルと「ADD」シンボルとに修正する。このため、伝送装置10jは、自身が挿入した5シンボル長のスキップオーダードセットと同じシンボル長のスキップオーダードセットが格納された各送信データ#1〜#8を取得することができる。
また、図19cは、実施例3に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図(3)である。図19cに示すように、送信側の送信装置10jは、「COM」、「SKP」、「ADD−r」を有するスキップシンボルを各送信データ#1〜#8に同時に格納する。このような場合には、送信装置10kは、エラスティックバッファから各送信データ#1〜#8を読取る際に、「ADD−r」シンボルを「SKP」シンボルと「RMV」シンボルとに修正する。そして、送信装置10kは、エラスティックバッファから読み出した各送信データ#1〜#8を伝送装置10jにループバック送信する。
一方、伝送装置10jは、ループバック送信された各送信データ#1〜#8をエラスティックバッファに格納する際に、各送信データ#1〜#8に挿入された「RMV」シンボルを削除する。そして、伝送装置10jは、エラスティックバッファに格納された各送信データ#1〜#8を取得する。つまり、伝送装置10jは、自身が挿入した3シンボル長のスキップオーダードセットと同じシンボル長のスキップオーダードセットが格納された各送信データ#1〜#8を取得することができる。
次に、図20および図21を用いて、伝送装置10jおよび伝送装置10kが実行する処理の流れについて説明する。図20は、実施例3に係る受信側の伝送装置が実行する処理の流れを説明する図である。また、図21は、実施例3に係る送信側の伝送装置が実行する処理の流れを説明するための図である。なお、図20、21に示す例では、「COM」シンボルを「C」、「SKIP」シンボルを「S」、「ADD」シンボルを「A」、「RMV」シンボルを「R」、「ADD−r」シンボルを「Ar」と示す。
まず、図20を用いて、伝送装置10kが実行する処理の流れの一例を説明する。図20に示す例では、伝送装置10kが伝送装置10jから受信した受信データ#1〜#8、伝送装置10kがエラスティックバッファに格納する受信データ#1〜#8、伝送装置10kがエラスティックバッファから読み出す受信データ#1〜#8を示す。
図20中(R)に示すように、伝送装置10kは、「RMV」シンボルが含まれるスキップシンボルと、図20中(S)に示すように、「ADD−r」シンボルが含まれるスキップシンボルとが挿入された各受信データ#1〜#8を取得する。このような場合には、伝送装置10kは、図20中(T)に示すように、各受信データ#1〜#8をエラスティックバッファに格納する際に、「RMV」シンボルを破棄する。また、伝送装置10kは、図20中(U)に示すように、各受信データ#1〜#8をエラスティックバッファから読み出す際に、「ADD−r」シンボルを「SKP」シンボルと「RMV」シンボルとに変換する。
次に、図21を用いて、伝送装置10jが実行する処理の流れの一例を説明する。図21に示す例では、伝送装置10jが伝送装置10kからループバック送信された受信データ#1〜#8、伝送装置10jがエラスティックバッファに格納する受信データ#1〜#8を示す。また、図21に示す例では、伝送装置10jがエラスティックバッファから読み出す受信データ#1〜#8、伝送装置10jがデスキュー処理を行った受信データ#1〜#8を示す。
図21に示す例では、伝送装置10jは、図20に示した伝送装置10kがエラスティックバッファから読み出した各受信データ#1〜#8を取得する。次に、伝送装置10jは、図21中(V)に示すように、エラスティックバッファに各受信データ#1〜#8を書き込む際に、「RMV」シンボルを削除する。
次に、伝送装置10jは、図21中(W)に示すように、エラスティックバッファから各受信データ#1〜#8を読み出す際に、「ADD」シンボルを「ADD」シンボルと「SKP」シンボルとに変換する。このため、伝送装置10jは、ループバック送信された各受信データ#1〜#8に挿入されたスキップオーダードセットのシンボル数を、自身が挿入したスキップオーダードセットと同じシンボル数のスキップオーダードセットに修正することができる。
次に、伝送装置10jは、図21中(X)に示すように、受信データ#8に挿入された「COM」シンボルの位置と他の受信データ#1〜#7に挿入された「COM」シンボルの位置とをそろえるデスキュー処理を行う。このように、伝送装置10jは、ループバック送信された各受信データ#1〜#8についても、各スキップオーダードセットのシンボル数を検出、修正することなく、容易にデスキュー処理を行うことができる。
なお、実施例3に係る「ADD」シンボル、「RMV」シンボルおよび「ADD−r」シンボルは、実施例2に係る「RMV」、「ADD」シンボルと同様に、ディスパリティーがニュートラルなコードとして定義される。
[実施例3の効果]
上述したように、伝送装置10jは、自身の動作クロックが伝送装置10kの動作クロックよりも速い場合には、「COM」、「SKP」、「ADD」、「RMV」、「RMV」シンボルを有するスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。また、伝送装置10jは、伝送装置10kの動作クロックが自身の動作クロックよりも速い場合には、「COM」、「SKP」、「ADD−r」シンボルを有するスキップオーダードセットを各送信データ#1〜#8に同時に挿入する。
このため伝送装置10jは、自身の動作クロックと伝送装置10kの動作クロックとの誤差を吸収することができる。また、伝送装置10jは、複雑な処理をおこなうことなく、「ADD」シンボルおよび「RMV」シンボルを検出するだけで、以下のような効果をえることができる。すなわち、伝送装置10jは、ループバック処理によって返信された各送信データ#1〜#8に挿入されるスキップオーダードセットのシンボル数を自身が挿入したスキップオーダードセットのシンボル数と容易にそろえることができる。また、伝送装置10jは、ループバック処理によって返信された各送信データ#1〜#8のデスキュー処理を容易に行う事ができる。
また、伝送装置10jは、伝送装置10kにおけるデスキュー処理を容易にすることができる。このため、伝送装置10jは、ループバック処理を行う場合にも、送信側および受信側のデスキュー処理の論理を容易にし、回路規模を抑え、設計および検証を容易にすることができる。また、伝送装置10jは、デスキュー処理に係る処理遅延を減少させることができる。
また、伝送装置10kは、ループバック処理を行う際に、自身の動作クロックと送信先となる伝送装置10jの動作クロックとの比較を行わずとも、適切なスキップオーダードセットが挿入されたデータを伝送装置10jに送信することができる。このため、伝送装置10jは、伝送装置10j、kの回路規模をさらに減少させることができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例4として本発明に含まれる他の実施例を説明する。
(1)伝送経路の数について
上述した各伝送装置10〜10kは、ぞれぞれ他の伝送装置と8本のシリアルリンクで接続されているものとした。しかし、実施例はこれに限定されるものではなく、各伝送装置10〜10kは、他の伝送装置と任意の数の伝送経路で接続することができる。
(2)シンボルについて
上述した各伝送経路10〜10kは、スキップオーダードセットに格納するシンボルとして「COM」シンボル、「SKP」シンボル、「ADD」シンボル、「RMV」シンボル、「ADD−r」シンボルを定義した。しかし、実施例はこれに限定されるものではなく、各伝送経路10〜10kが検出した際に、各実施例1〜3と同様の処理を実行するものであれば、任意のシンボルを定義することができる。
1 情報処理システム
2 CPU
3 データ伝送装置
4 メモリ
5 スイッチ
6〜6b 入出力デバイス
10〜10k 伝送装置
11 上位層
20 MAC部
21 スキップ挿入部
21a〜21h バッファ
21i 生成部
21k 制御部
21j スキップ挿入セレクタ
22 スリップ検出部
22a、22b グレーコードカウンタ
23c フリップフロップ
22d シフトレジスタ
22e 比較部
23 スクランブラ
24 デスキュー部
24a 遅延吸収用データレジスタ
24b デスキュー制御部
25 デスクランブラ
26 制御部
30 PCS部
30a〜30h PCSレイヤ
31 エンコーダ
32 ループバック部
33 転極部
34 アライン
35 エラスティックバッファ
35a クロック載せ換え用データレジスタ
35b 書き込み制御部
36c 読み出し制御部
36 デコーダ
37 受信ステータス判定部
40 SerDes
50、51 伝送装置

Claims (9)

  1. 対向装置に対してそれぞれ異なる経路でデータを送信する複数の送信部と、
    前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する判別部と、
    前記判別部が、前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第1の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第2の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第3の誤差吸収データを各送信部が送信するデータに挿入する挿入部と
    を有することを特徴とする伝送装置。
  2. 前記第1の誤差吸収データは、前記対向装置が削除および複製を行わないシンボルを有し、
    前記第2の誤差吸収データは、前記対向装置が複製するシンボルを有し、
    前記第3の誤差吸収データは、前記対向装置が削除するシンボルを前記第1の誤差吸収データに付加したデータであることを特徴とする請求項1に記載の伝送装置。
  3. 前記伝送装置は、
    前記対向装置が返信したデータを格納するバッファを有し、
    当該バッファに格納したデータの読出しを行い、
    前記読み出したデータに前記第2の誤差吸収データが含まれていた場合は、前記第2の誤差吸収データに含まれるシンボルを削除し、
    前記読み出したデータに前記第3の誤差吸収データが含まれていた場合は、前記第3の誤差吸収データに含まれるシンボルを複製することを特徴とする請求項2に記載の伝送装置。
  4. 前記判別部は、
    前記自身の動作クロックに合わせて動作する第1カウンタと、
    前記対向装置の動作クロックに合わせて動作する第2カウンタと、
    前記第1カウンタの値が所定の値となった際に、前記第2カウンタの値を取得し、第2カウンタから取得した値と前回第2カウンタから取得した値とを比較し、今回取得した値が前回取得した値よりも大きいと判別した場合には前記対向装置の動作クロックが速いと判定し、前記取得した値が今回取得した値よりも大きいと判別した場合には自身の動作クロックが速いと判定する判定部と
    を有することを特徴とする請求項1〜3のいずれか1つに記載の伝送装置。
  5. 対向装置からデータを受信する受信部と、
    前記受信部が受信したデータから、前記対向装置の動作クロックと自身の動作クロックとの誤差を吸収するために用いる誤差吸収データを検出する検出部と、
    前記検出部が検出した誤差吸収データが所定のデータ長よりも長い場合には、当該誤差吸収データの一部を削除し、前記検出部が検出した誤差吸収データが所定のデータ長よりも短い場合には、当該誤差吸収データの一部を複製する誤差吸収部と
    を有する事を特徴とする伝送装置。
  6. 対向装置に対してデータを送信する送信装置に対し、前記対向装置の動作クロックと自身の動作クロックとの誤差を吸収する誤差吸収データを挿入したデータを供給する伝送回路であって、
    前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する判別部と、
    前記判別部が、前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第1の誤差吸収データを送信部が送信するデータに挿入し、前記判別部が前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第2の誤差吸収データを送信部が送信するデータに挿入し、前記判別部が前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第3の誤差吸収データを送信部が送信するデータに挿入する挿入部と、
    前記挿入部がいずれかの誤差吸収データを挿入したデータを送信装置に供給する供給部と、
    を有することを特徴とする伝送回路。
  7. 前記第2の誤差吸収データは、データを受信した対向装置が前記第2の誤差吸収データからシンボルを削除することを示すシンボルを含み、
    前記第3の誤差吸収データは、データを受信した対向装置が前記第3の誤差吸収データにシンボルを付加することを示すシンボルを含む
    ことを特徴とする請求項6に記載の伝送回路。
  8. 対向装置の動作クロックと、自身の動作クロックとの誤差を吸収する誤差吸収データを挿入したデータを、複数の経路を介して前記対向装置へ送信する伝送装置と、
    前記伝送装置が送信したデータを受信する対向装置と
    を有する伝送システムであって、
    前記伝送装置は、
    前記対向装置に対してそれぞれ異なる経路でデータを送信する複数の送信部と、
    前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する判別部と、
    前記判別部が、前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第1の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第2の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第3の誤差吸収データを各送信部が送信するデータに挿入する挿入部と
    を有することを特徴とする伝送システム。
  9. 受信したデータをバッファに格納し、当該バッファに格納したデータを読み出す対向装置に対し、複数の経路を介してデータを送信する伝送装置の制御方法であって、
    前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別し、
    前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第1の誤差吸収データを送信するデータに挿入し、前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第2の誤差吸収データを送信するデータに挿入し、前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第3の誤差吸収データを送信するデータに挿入する
    処理を前記伝送装置に実行させることを特徴とする伝送装置の制御方法。
JP2013522411A 2011-06-29 2011-06-29 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法 Withdrawn JPWO2013001631A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013522411A JPWO2013001631A1 (ja) 2011-06-29 2011-06-29 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013522411A JPWO2013001631A1 (ja) 2011-06-29 2011-06-29 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法

Publications (1)

Publication Number Publication Date
JPWO2013001631A1 true JPWO2013001631A1 (ja) 2015-02-23

Family

ID=52687794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013522411A Withdrawn JPWO2013001631A1 (ja) 2011-06-29 2011-06-29 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法

Country Status (1)

Country Link
JP (1) JPWO2013001631A1 (ja)

Similar Documents

Publication Publication Date Title
WO2013001631A1 (ja) 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
US7570659B2 (en) Multi-lane receiver de-skewing
KR102205823B1 (ko) 다중 와이어 데이터 신호들을 위한 클록 복원 회로
US8824581B2 (en) Data transmission apparatus, data transmission system and data transmission method
TWI490880B (zh) 資料匯流排反轉裝置、系統及方法
US8903000B2 (en) Transmission circuit, reception circuit, transmission method, reception method, communication system and communication method therefor
US20170117979A1 (en) Alternating pseudo-random binary sequence seeds for mipi csi-2 c-phy
US20060117125A1 (en) Data Receiving Apparatus of a PCI Express Device
JP5266164B2 (ja) データ受信装置
JP5426326B2 (ja) データ受信装置、データ受信方法、及びプログラム
US10129371B2 (en) Serial communication device and serial communication method
US8572300B2 (en) Physical coding sublayer (PCS) architecture for synchronizing data between different reference clocks
TW201631929A (zh) 用於高速網路的初始化之背通道通訊技術(二)
US10901933B2 (en) Programmable link training sequences
JP2007502570A (ja) 複数のシリアルバイトレーンの自動再整列
KR20080112893A (ko) 신호 인코더 및 신호 디코더
CN104333388A (zh) 串行通信协议控制器及字符重对齐电路、8b10b解码器
JP4917901B2 (ja) 受信装置
JP5263986B2 (ja) シリアル受信装置並びにシリアル受信装置の制御方法及びプログラム
US9311975B1 (en) Bi-synchronous electronic device and FIFO memory circuit with jump candidates and related methods
JPWO2013001631A1 (ja) 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
US20060098770A1 (en) Synchronizer for passing data from a first system to a second system
JP2017050734A (ja) シリアル通信装置、通信システム及び通信方法
JP2016042218A (ja) エラー検出装置及びエラー検出方法
EP1683031B1 (en) Method and apparatus for maintaining data density for derived clocking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131225

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20141110