JP5928192B2 - ブリッジ回路 - Google Patents

ブリッジ回路 Download PDF

Info

Publication number
JP5928192B2
JP5928192B2 JP2012145666A JP2012145666A JP5928192B2 JP 5928192 B2 JP5928192 B2 JP 5928192B2 JP 2012145666 A JP2012145666 A JP 2012145666A JP 2012145666 A JP2012145666 A JP 2012145666A JP 5928192 B2 JP5928192 B2 JP 5928192B2
Authority
JP
Japan
Prior art keywords
data
buffer
clock domain
input
outputs
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.)
Active
Application number
JP2012145666A
Other languages
English (en)
Other versions
JP2014010550A (ja
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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2012145666A priority Critical patent/JP5928192B2/ja
Publication of JP2014010550A publication Critical patent/JP2014010550A/ja
Application granted granted Critical
Publication of JP5928192B2 publication Critical patent/JP5928192B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、ブリッジ回路に関する。
PCI Express規格のスイッチ及びバスを介してデータの転送を受けるPCI Express規格のエンドポイントを備えるデータ分配装置が知られている(例えば、特許文献1参照)。バッファは、上位のスイッチ及びバスを介して転送されたデータをバッファリングする。分配制御回路は、この転送されたデータを下位の複数の出力先である出力部に分配して転送する制御を行う。PCI Express規格のルートコンプレックス及びスイッチは、分配制御回路の制御によりデータの転送を行なう。
特開2005−332316号公報
高速入出力インタフェース回路を使用した実機デバイス評価では、デジタル部の動作周波数が高く、FPGA(フィールドプログラマブルゲートアレイ:Field Programmable Gate Array)にて動作させることが困難である課題が存在する。例えば、PCI ExpressやUSB3.0などのインタフェース規格は、動作周波数が250MHzであり、高周波数であるため、FPGAにおいては動作させることが難しい状況にある。
本発明の目的は、高周波数のクロックドメインと低周波数のクロックドメインとの間でクロックドメイン変換をすることができるブリッジ回路を提供することである。
ブリッジ回路は、第1のクロック信号に同期して動作する第1のクロックドメインと、前記第1のクロック信号より周波数が低い第2のクロック信号に同期して動作する第2のクロックドメインと、前記第2のクロックドメインから入力したデータを前記第2のクロック信号に同期した状態から前記第1のクロック信号に同期した状態に変換して前記第1のクロックドメインに出力する第1のクロックドメイン変換部と、前記第1のクロックドメインから入力したデータを前記第1のクロック信号に同期した状態から前記第2のクロック信号に同期した状態に変換して前記第2のクロックドメインに出力する第2のクロックドメイン変換部とを有し、前記第1のクロックドメインは、前記第1のクロックドメイン変換部から入力したデータをバッファリングして外部に出力し、データの種類毎のバッファを有する第1のバッファと、外部から入力したデータをバッファリングして前記第2のクロックドメイン変換部に出力し、データの種類毎のバッファを有する第2のバッファとを有し、前記第1のバッファは、前記第1のクロックドメイン変換部から連続転送が必要なデータである第1のデータを入力すると、前記入力した同じ前記第1のデータを繰り返して外部に出力し、前記第2のバッファは、外部から第2のデータを入力すると、前記第2のデータを間引いて前記第2のクロックドメイン変換部に出力する。
第1のクロック信号に同期する第1のクロックドメインと第2のクロック信号に同期する第2のクロックドメインとの間でクロックドメイン変換をすることができる。
図1は、実施形態による入出力インタフェース回路の構成例を示す図である。 図2は、図1のブリッジ回路の構成例を示す図である。 図3は、図2のスクランブラの構成例を示す図である。 図4(A)〜(D)は、パケットのフォーマット例を示す図である。 図5(A)及び(B)は、バッファの入力データ及び出力データの例を示す図である。
図1は、実施形態による入出力インタフェース回路の構成例を示す図である。以下、入出力インタフェース回路の例として、PCI Express規格の高速入出力インタフェース回路の例を説明するが、他の入出力インタフェース回路に適用することもできる。
入出力インタフェース回路は、物理層111、ブリッジ回路112及びリンク層113を有する。例えば、物理層111はシリコン101により構成され、ブリッジ回路112及びリンク層113はFPGA102により構成される。入出力インタフェース回路は、高速クロックドメイン121及び低速クロックドメイン122を有する。シリコン101は、高速動作可能である。FPGA102は、シリコン101と同じ高速度で動作することが困難であり、シリコン101よりも低速で動作可能である。物理層111の一部及びブリッジ回路112の一部は、高速クロックドメイン121に属する。リンク層113及びブリッジ回路112の他の一部は、低速クロックドメイン122に属する。高速クロックドメイン121は、第1のクロック信号に同期して動作する。低速クロックドメイン122は、第1のクロック信号より周波数が低い第2のクロック信号に同期して動作する。ブリッジ回路112は、リンク層113から入力した第2のクロック信号に同期した送信データtxを、第1のクロック信号に同期した送信データtxに変換して物理層111に出力する。また、ブリッジ回路112は、物理層111から入力した第1のクロック信号に同期した受信データrxを、第2のクロック信号に同期した受信データrxに変換してリンク層113に出力する。
ブリッジ回路112は、リンク層113の論理を変えずに(バス幅を変更せずに)、リンク層113が第2のクロック信号の低周波数でデータtx,rxを送受信できるようにすることにより、リンク層113の動作周波数を低速にすることができる。ここで、データtx,rxの送受信は、待ち時間がなく、連続で送受信しなければならないため、単純にデータtx,rxを受け渡す制御では、受信動作(高速クロックドメイン121から低速クロックドメイン122への受け渡し)では受信データrxが溢れ、送信動作(低速クロックドメイン122から高速クロックドメイン121への受け渡し)では送信データtxが不足することになる。そこで、ブリッジ回路112は、クロック周波数の変換を行い、さらに、データtx及びrxの特性を利用し、データtx及びrxの溢れや不足が発生しないように制御する。
図2は、図1のブリッジ回路112の構成例を示す図である。ブリッジ回路112は、第1のクロックドメイン(高速クロックドメイン)121、第2のクロックドメイン(低速クロックドメイン)122、第1のクロックドメイン変換部202及び第2のクロックドメイン変換部235を有する。第1のクロックドメイン121は、第1のクロック信号に同期して動作する。第2のクロックドメイン122は、第1のクロック信号より周波数が低い第2のクロック信号に同期して動作する。
第1のクロックドメイン121は、第1のスクランブラ219、第1のデスクランブラ220、第1のバッファ204、第2のバッファ222及びセレクタ218,203,221,234を有する。第2のクロックドメイン122は、第2のデスクランブラ201及び第2のスクランブラ236を有する。
図3は、図2のスクランブラ219及び236の構成例を示す図である。スクランブラ219及び236は、それぞれ、D型フリップフロップD0〜D15,D20〜D27、バッファ301及び排他的論理和回路302〜305を有し、クロック信号CKに同期して、入力データDiを暗号化し、暗号化した出力データDoを出力する。排他的論理和回路302は、フリップフロップD0〜D15のシフトレジスタにより生成されたデータと、フリップフロップD20〜D27のシフトレジスタのデータとの排他的論理和データを出力データDoとして出力する。スクランブラ219及び236は、EMC(電磁両立性:Electro-Magnetic Compatibility)対策のため、同じデータ列を繰り返し転送する場合でも、暗号化により、違うデータ列として転送できるため、シリアルバス上から発生される電磁ノイズの周波数成分を平坦化できる。
なお、図1のデスクランブラ201及び220は、スクランブラ219及び236による暗号化データを復号することにより、元のデータに戻す。デスクランブラ201及び220は、スクランブラ219及び236と同じアルゴリズムで排他的論理和演算することにより、アルゴリズム論理が打ち消されることになる。
図2の送信データtx及び受信データrxは、スクランブラにより暗号化されている。そのため、送信データtxの入口には第2のデスクランブラ201を設け、送信データtxの出口には第1のスクランブラ219を設ける。また、受信データrxの入口には第1のデスクランブラ220を設け、受信データrxの出口には第2のスクランブラ236を設ける。
まず、送信データtxについて説明する。図2において、第2のデスクランブラ201は、図1のリンク層113からの送信データtxを復号して第1のクロックドメイン変換部202に出力する。第1のクロックドメイン変換部202は、第2のデスクランブラ201から入力した送信データを第2のクロック信号に同期した状態から第1のクロック信号に同期した状態に変換してセレクタ203に出力する。例えば、第1のクロックドメイン変換部202は、同期化バッファを有し、第2のデスクランブラ201からの送信データを第2のクロック信号に同期して同期化バッファに書き込み、その同期化バッファから第1のクロック信号に同期して読み出してセレクタ203に出力する。
セレクタ203は、送信データ(パケット)の種類に応じて、第1のクロックドメイン変換部202から入力した送信データを、第1のバッファ204内の10個のバッファ205〜214のいずれかに書き込む。ただし、セレクタ203は、第1のクロックドメイン変換部202から入力した送信データがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第1のバッファ204に書き込まずに廃棄する。ロジカルアイドルデータは、0値データであり、意味がある通信を行っていない期間に送受信されるデータ(無効データ)である。
第1のバッファ204は、送信データ(パケット)の種類毎のバッファ205〜214を有し、セレクタ203から入力したデータをバッファリングしてセレクタ218に出力する。送信動作では、低周波数の第2のクロック信号から高周波数の第1のクロック信号へデータを受け渡す。そのため、第1のバッファ204は、出力データが入力データより多いデータ量となる。第1のバッファ204は、入力データをそのまま出力すると、出力するデータが不足するため、次のような制御でデータを追加する。
バッファ205〜207は、PLP(物理層パケット:Physical Layer Packet)のバッファである。図4(A)は、PLPのフォーマット例を示す図である。PLPは、1バイトの開始フレーム401及び3バイトの制御コード402を有し、物理層111の基本制御に必要なパケットである。開始フレーム401は、8B10BエンコードのK28.5(COM)で表される。制御コード402は、KコードのK28.1で表されるFTSと、K28.0で表されるSKPと、K28.3で表されるIDLとのうちのいずれかのコードを示す。PLPのFTSは、バッファ205によりバッファリングされる。PLPのSKPは、バッファ206によりバッファリングされる。PLPのIDLは、バッファ207によりバッファリングされる。
バッファ205は、セレクタ203からPLPのFTSを入力してバッファリングする。FTSは、シリアルバスのビットを識別するためのビットロック、及びシンボルを識別するためのシンボルロックに使用されるパケットである。FTSは、ビットロック及びシンボルロックするまで連続転送が必要である。そのため、バッファ205は、図5(A)に示すように、セレクタ203からPLPのFTS(第1のデータ)を入力すると、その入力した同じPLPのFTS215を繰り返してセレクタ218に出力する。
図5(A)は、PLPのFTSのバッファ205の入力データ及び出力データの例を示す図である。バッファ205の入力データは、低周波数の第2のクロック信号の周期で入力される。バッファ205は、その入力データが入力される度にバッファリングデータを更新する。バッファ205の出力データは、バッファ205内のデータが更新されると、高周波数の第1のクロック信号に同期して、バッファ205内の同じデータを所定回数(例えば4回)繰り返して出力される。同じデータを繰り返し出力することにより、連続転送が可能になる。これにより、ビットロック及びシンボルロックを確実に行うことができる。
図2において、バッファ206は、セレクタ203からPLPのSKPを入力してバッファリングする。SKPは、通信デバイス間の周波数偏差を吸収しデータの過不足の調整するために送受信されるパケットである。バッファ206は、セレクタ203からPLPのSKP(第3のデータ)を入力すると、その入力したPLPのSKPを繰り返さずにセレクタ218に出力する。
バッファ207は、セレクタ203からPLPのIDLを入力してバッファリングする。IDLは、パワーセーブ時にバスの振幅を停止する際に使用され、以降は送受信データがないことを示すパケットである。バッファ207は、セレクタ203からPLPのIDLを入力すると、その入力したPLPのIDLを繰り返さずにセレクタ218に出力する。
バッファ208〜212は、DLLP(データリンク層パケット:Data Link Layer Packet)のバッファである。図4(B)は、DLLPのフォーマット例を示す図である。DLLPは、1バイトの開始フレーム411、4バイトの制御コード412、2バイト(16ビット)のCRC(巡回冗長検査:Cyclic Redundancy Check)コード413及び1バイトの終了フレーム414を有し、リンク層113の情報伝達用のパケットである。開始フレーム411は、8B10BエンコードのK28.2(SDP)で表される。制御コード412は、Ack/Nac、FC(Flow Control)のPosted、FCのNon−Posted、FCのCompletion、及びPM(Power Management)のいずれかのコードで表される。
DLLPのAck/Nacは、バッファ208によりバッファリングされる。DLLPのFCのPostedは、バッファ209によりバッファリングされる。DLLPのFCのNon−Postedは、バッファ210によりバッファリングされる。DLLPのFCのCompletionは、バッファ211によりバッファリングされる。DLLPのPMは、バッファ212によりバッファリングされる。
バッファ208は、セレクタ203からDLLPのAck/Nacを入力してバッファリングする。DLLPのAck/Nacは、受信した後述のTLP(図4(D))が正しいことを示すときにはAck、又は受信したTLPにエラーがあったことを示すときにはNakで表される。制御コード412内にて、受領できたところまでのTLPのシーケンス番号が示される。TLPの通信が進行することにより、処理されているTLPのシーケンス番号も更新されていくため、最新のシーケンス番号が把握できていれば、古い情報は必要なくなる。したがって、バッファ208は、セレクタ203からDLLPのAck/Nacを入力すると、その入力したDLLPのAck/Nacを繰り返さずにセレクタ218に出力する。
バッファ209〜211は、セレクタ203からDLLPのFCを入力してバッファリングする。DLLPのFCは、後述のTLPについて受信用バッファのオーバーフローを抑制するためのパケットである。
バッファ209は、セレクタ203からDLLPのFCのPostedを入力してバッファリングする。DLLPのFCのPostedは、応答なしで完了するパケットである。
バッファ210は、セレクタ203からDLLPのFCのNon−Postedを入力してバッファリングする。DLLPのFCのNon−Postedは、応答を待って完了するパケットである。
バッファ211は、セレクタ203からDLLPのFCのCompletionを入力してバッファリングする。DLLPのFCのCompletionは、応答(完了通知)のパケットである。
DLLPのFCは、制御コード412内にてTLPの「受信総量+受信バッファの空き量」を通知する。これにより、TLPの送信側は自己が送信した総量と、上記の通知された値との差分により、受信側のバッファの空き量を判断することが可能となる。これを使って、受信バッファのオーバーフローを防止するための制御が行われる。TLPの通信が進行することにより値が更新されていくが、最新のFCにより最新の受信バッファの情報が得られるため古い情報は必要なくなる。したがって、バッファ209〜211は、それぞれ、セレクタ203からDLLPのFCを入力すると、その入力したDLLPのFCを繰り返さずにセレクタ218に出力する。
バッファ212は、セレクタ203からDLLPのPMを入力してバッファリングする。DLLPのPMは、電力の状態を制御するためのパケットであり、連続転送する必要はない。したがって、バッファ212は、セレクタ203からDLLPのPMを入力すると、その入力したDLLPのPMを繰り返さずにセレクタ218に出力する。
バッファ213は、TS(トレーニングシーケンス:Training Sequence)のバッファである。図4(C)は、TSのフォーマット例を示す図である。TSは、1バイトの開始フレーム421及び15バイトの制御コード422を有し、物理層111の基本情報の交換や制御に必要なパケットである。開始フレーム421は、8B10BエンコードのK28.5(COM)で表される。制御コード422は、KコードのK23.7(PAD)又はDコードで表される。TSは、図4(A)のPLPに対して、開始フレーム421が同じだが、制御コード422が異なる。
バッファ213は、セレクタ203からTSを入力してバッファリングする。TSは、PCI Express規格の2個のデバイス間が正しく通信できることの確認や調整を行い、物理層111の制御(レート変更やリセットなど)をコントロールするためのパケットであり、連続転送が必要なパケットである。連続転送の期間は、送信データtxの入力状態が連続していると判断できる期間となる。したがって、バッファ213は、図5(A)に示すように、セレクタ203からTSを入力すると、その入力した同じTS216を繰り返してセレクタ218に出力する。
図5(A)に示すように、バッファ213の入力データは、低周波数の第2のクロック信号の周期で入力される。バッファ213は、その入力データが入力される度にバッファリングデータを更新する。バッファ213の出力データは、バッファ213内のデータが更新されると、高周波数の第1のクロック信号に同期して、バッファ213内の同じデータを所定回数(例えば4回)繰り返して出力される。
バッファ214は、TLP(トランザクション層パケット:Transaction Layer Packet)のバッファである。図4(D)は、TLPのフォーマット例を示す図である。TLPは、1バイトの開始フレーム431、2バイトのシーケンス番号432、12又は16バイトのヘッダ部433、0〜4096バイトのデータ部434、0又は4バイトのECRCコード435、4バイトのLCRCコード436及び1バイトの終了フレーム437を有し、上位層であるトランザクション層でデータを送受信するためのパケットである。開始フレーム431は、8B10BエンコードのK27.7(STP)である。ヘッダ部433は、データの種別として、メモリリード/ライト、入出力回路リード/ライト、コンフィグレーションリード/ライト、完了通知(Completion)、又はメッセージを表す。
データの種類に応じて、上記のFCによる転送制御が異なり、Posted、Non−Posted、Completionに分類される。Postedは、メモリライト及びメッセージである。Non−Postedは、メモリリード、入出力回路リード/ライト、コンフィグレーションリード/ライトである。Completionは、完了通知である。
シーケンス番号432は、TLPの送信毎に1増加されるフィールドであり、DLLPのAck/Nakにて受領できたTLPのシーケンス番号と対応付けることにより、転送が正しく行われたことを確認することができる。
ECRCコード435は、データ部434のCRCコードである。LCRCコード436は、シーケンス番号432からECRCコード435までのCRCコードである。
図2のバッファ214は、セレクタ203からTLPを入力すると、その入力したTLPを繰り返さずにセレクタ218に出力する。
上記のように、セレクタ203は、第1のクロックドメイン変換部202から入力した送信データがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第1のバッファ204に書き込まずに廃棄する。ロジカルアイドルデータは、0値データであり、意味がある通信を行っていない期間に送受信されるデータ(無効データ)である。第1のクロックドメイン121は、セレクタ203の入力データがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第1のバッファ204にバッファリングせず、第1のバッファ204の出力データがないときにはロジカルアイドルデータ(0値データ)217をセレクタ218に出力する。
セレクタ218は、プロトコルの優先順位に従い、バッファ205〜214からの出力データ及びロジカルアイドルデータ217を、PLP>DLLP>TS>TLP>ロジカルアイドルデータ(0値データ)の優先順位で選択し、第1のスクランブラ219に出力する。すなわち、セレクタ218は、バッファ205〜214のデータ、ロジカルアイドルデータ217の順の優先順位で選択する。バッファ205のデータの優先順位が最も高く、ロジカルアイドルデータ217の優先順位が最も低い。バッファ205〜214間のデータ切り替えは、PLP/TS/DLLP/TLP単位の切れ目で行う。例えば、TLPの出力期間中にPLPのバッファ205〜207にデータが格納されたとしても、出力中の1つのTLPが出力を完了するまで新たなPLPは出力しない。
第1のスクランブラ219は、図3の構成を有し、上記と同様に、セレクタ218からのデータを暗号化して図1の物理層111に送信データtxを出力する。
次に、受信データrxについて説明する。第1のデスクランブラ220は、第2のスクランブラ201と同様に、図1の物理層111からの受信データrxを復号してセレクタ221に出力する。セレクタ221は、上記のセレクタ203と同様に、入力データ(パケット)の種類に応じて、入力データを第2のバッファ222内の10個のバッファ223〜232のいずれかに書き込む。ただし、セレクタ221は、入力データがロジカルアイドルデータ(0値データ)であるときには、そのロジカルアイドルデータを第2のバッファ222に書き込まずに廃棄する。
第2のバッファ222は、第1のバッファ204と同様に、受信データ(パケット)の種類毎のバッファ223〜232を有し、セレクタ221から入力したデータをバッファリングしてセレクタ234に出力する。受信動作では、高周波数の第1のクロック信号から低周波数の第2のクロック信号へデータを受け渡す。そのため、第2のバッファ222は、出力データが入力データよりも少ないデータ量となる。第2のバッファ222は、入力データを全てバッファリングすると、データが溢れる状況となるため、次のような制御を行う。
バッファ223は、バッファ205と同様に、セレクタ221からPLPのFTSを入力してバッファリングする。バッファ223は、図5(B)に示すように、セレクタ221からPLPのFTS(第2のデータ)を入力すると、そのPLPのFTSを間引いてセレクタ234に出力する。
図5(B)は、PLPのFTSのバッファ223の入力データ及び出力データの例を示す図である。バッファ223の入力データは、高周波数の第1のクロック信号の周期で入力される。バッファ223は、その入力データが入力される度にバッファリングデータを更新(上書き)する。バッファ205の出力データは、低周波数の第2のクロック信号の周期でバッファ205のデータが出力される。例えば、「1」、「2」、「3」、「5」、「6」、「7」のデータが間引かれ、「0」、「4」、「8」のデータが出力される。これにより、バッファ223は、入力されたPLPのFTSを間引いて出力することができる。
バッファ224は、バッファ206と同様に、セレクタ221からPLPのSKPを入力してバッファリングする。バッファ224は、図5(B)と同様に、セレクタ221からPLPのSKPを入力すると、そのPLPのSKPを間引いてセレクタ234に出力する。
バッファ225は、バッファ207と同様に、セレクタ221からPLPのIDLを入力してバッファリングする。バッファ225は、図5(B)と同様に、セレクタ221からPLPのIDLを入力すると、そのPLPのIDLを間引いてセレクタ234に出力する。
バッファ226は、バッファ208と同様に、セレクタ221からDLLPのAck/Nakを入力してバッファリングする。バッファ226は、図5(B)と同様に、セレクタ221からDLLPのAck/Nakを入力すると、そのDLLPのAck/Nakを間引いてセレクタ234に出力する。
バッファ227は、バッファ209と同様に、セレクタ221からDLLPのFCのPostedを入力してバッファリングする。バッファ227は、図5(B)と同様に、セレクタ221からDLLPのFCのPostedを入力すると、そのDLLPのFCのPostedを間引いてセレクタ234に出力する。
バッファ228は、バッファ210と同様に、セレクタ221からDLLPのFCのNon−Postedを入力してバッファリングする。バッファ228は、図5(B)と同様に、セレクタ221からDLLPのFCのNon−Postedを入力すると、そのDLLPのFCのNon−Postedを間引いてセレクタ234に出力する。
バッファ229は、バッファ211と同様に、セレクタ221からDLLPのFCのCompletionを入力してバッファリングする。バッファ229は、図5(B)と同様に、セレクタ221からDLLPのFCのCompletionを入力すると、そのDLLPのFCのCompletionを間引いてセレクタ234に出力する。
バッファ230は、バッファ212と同様に、セレクタ221からDLLPのPMを入力してバッファリングする。バッファ230は、図5(B)と同様に、セレクタ221からDLLPのPMを入力すると、そのDLLPのPMを間引いてセレクタ234に出力する。
バッファ231は、バッファ213と同様に、セレクタ221からTSを入力してバッファリングする。バッファ231は、図5(B)と同様に、セレクタ221からTSを入力すると、そのTSを間引いてセレクタ234に出力する。
バッファ232は、バッファ214と同様に、セレクタ221からTLPを入力してバッファリングする。TLPのバッファ232は、受信側のリンク層113(図1)にある受信バッファ以上のバッファサイズを用意すれば、オーバーフローしない。したがって、バッファ232は、セレクタ221からTLPを入力すると、そのTLPを間引かずにセレクタ234に出力する。
上記のように、セレクタ221は、第1のデスクランブラ220から入力した受信データrxがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第2のバッファ222に書き込まずに廃棄する。ロジカルアイドルデータは、0値データであり、意味がある通信を行っていない期間に送受信されるデータ(無効データ)である。第1のクロックドメイン121は、セレクタ221の入力データがロジカルアイドルデータであるときには、ロジカルアイドルデータを第2のバッファ222にバッファリングせず、第2のバッファ222の出力データがないときにはロジカルアイドルデータ(0値データ)233をセレクタ234に出力する。
セレクタ234は、プロトコルの優先順位に従い、バッファ223〜232からの出力データ及びロジカルアイドルデータ233を、PLP>DLLP>TS>TLP>ロジカルアイドルデータ(0値データ)の優先順位で選択し、第2のクロックドメイン変換部235に出力する。すなわち、セレクタ234は、バッファ223〜232のデータ、ロジカルアイドルデータ233の順の優先順位で選択する。バッファ223のデータの優先順位が最も高く、ロジカルアイドルデータ233の優先順位が最も低い。バッファ223〜232間のデータ切り替えは、PLP/TS/DLLP/TLP単位の切れ目で行う。例えば、TLPの出力期間中にPLPのバッファ223〜225にデータが格納されたとしても、出力中の1つのTLPが出力を完了するまで新たなPLPは出力しない。
第2のクロックドメイン変換部235は、第1のクロックドメイン変換部202と同様に、セレクタ234から入力したデータを第1のクロック信号に同期した状態から第2のクロック信号に同期した状態に変換して第2のスクランブラ236に出力する。
第2のスクランブラ236は、図3の構成を有し、上記と同様に、第2のクロックドメイン変換部235からの受信データを暗号化して受信データrxを図1のリンク層113に出力する。
以上のように、PLPのFTSの送信バッファ205及びTSの送信バッファ213については、データの連続性が必要であるが、送信バッファ205及び213への入力が遅いため、連続で入力する状況でもバッファ205及び213が空になる状態が発生する。送信する情報が無いことで、データの連続性が損なわれるため、バッファ205及び213が空になった状態では、次の入力データが格納されるまでの一定期間、同じデータを繰り返し出力することで連続性を維持する。
また、バッファ205〜214に格納されているデータが無く、繰り返し出力も行っていない場合は、ロジカルアイドルデータ217を出力することにより、データが途切れることなく、データ転送することが可能となる。
PLPのFTSのバッファ205のパケットは、すべて内容が同じデータであり、シリアルバスのビットロック及びシンボルロックのために連続性と転送期間が必要なパケットである。また、TSのバッファ213のパケットは、通信デバイス間でハンドシェークを行いながら同じデータを繰り返し転送する性質があり、対向側のデータが変化するまでは同じデータを連続で転送し続ける。以上から、連続転送が必要なパケットについては、同じデータ送信しているため、バッファ205及び213内において同じデータを繰り返し転送しても送信動作として影響はない。
なお、PCI Express規格以外の高速入出力インタフェース回路でも同様に、データ(パケット)の種別毎にバッファリングし、連続転送が必要なものについては繰り返し転送し、無データ時にはロジカルアイドルデータ217を転送することにより、送信動作を確立させることができる。
次に、第2のバッファ222について説明する。PLP(FTS/SKP/IDL)の受信バッファ223〜225のデータは、バッファ223〜225の内容を間引いても問題はない。PLPのFTSについては、データの連続性が必要であるが、受信動作については、出力するよりも入力が速いため、繰り返すことなく、そのままの制御で連続性を保つことができる。
TSの受信バッファ231は、通信デバイス間でハンドシェークを行いながら、同じデータを繰り返し転送する性質があり、対向側のデータが変化するまでは同じデータを連続で転送し続ける。バッファ231の内容を上書きして出力しても、最終的にハンドシェークされたことが判断できれば良いので、間引いても影響はない。連続性については、受信動作では、出力するよりも入力が速いため、そのままの制御で連続性を保つことができる。
DLLPのAck/Nakの受信バッファ226のパケットは、シーケンス番号の管理により、TLPの受領状況を判断するためにある。このシーケンス番号は、TLPの送信毎に1増加する番号であり、この番号を利用して、どのTLPまでが受領できたのかを判断することに利用される。最新のDLLPのAck/Nakを参照することにより、今現在のTLPの受領状況が判断できるので、古い情報を上書きしたとしても、受信動作として影響はない。
DLLPのFCの受信バッファ227〜229についても同様で、更新された「受信総量+受信バッファの空き量」を通知するので、最新の受信バッファの空き量が判断できれば良く、古い情報を上書きしたとしても、受信動作として影響はない。
DLLPのPMの受信バッファ230のパケットについては、連続性もなく、転送間隔がバッファの制御時間に対して十分に長いため、バッファに入力できたことを通知できれば良い。
TLPの受信バッファ232は、全ての入力データをバッファリングし、データを出力する。TLPの受信バッファ232は、リンク層113の受信バッファがオーバーフローしない原理を利用し、リンク層113と同じ量の受信バッファ容量を持たせることで、オーバーフローを回避する。TLPの受信バッファがオーバーフローしない制御は、DLLPのFCを利用して行われ、受信バッファの空き容量を送信側で判断し、受信バッファが溢れない範囲で新たなTLPを送信する。ブリッジ回路112内でTLPをバッファリングすることにより、遅れて受信バッファへ転送されたとしても、DLLPのFCの値が更新されず、送信側にとっては受信バッファに空きがない状況として判断できるため、必要以上のTLP送信が発生することは無く、受信動作としても影響はない。
また、各バッファ223〜232に格納されているデータが無い場合は、ロジカルアイドルデータ(0値データ)233を出力することにより、データが途切れることなく、データ転送することが可能となる。
なお、PCI Express規格以外の高速入出力インタフェース回路でも同様に、データ(パケット)の種別毎にバッファリングし、最新の情報のみが必要なものについてはバッファへの上書きし、無データ時にはロジカルアイドルデータ233を転送することにより、受信動作を確立させることができる。
本実施形態によれば、クロックドメイン変換部202および235は、第1のクロック信号に同期する第1のクロックドメイン121と第2のクロック信号に同期する第2のクロックドメイン122との間でクロックドメイン変換をすることができる。また、リンク層113の論理を変更することなく(バス幅を変更することなく)、リンク層113をFPGA102へ実装(低速クロックの動作)することが可能になる。また、リンク層113をシリコン基板に実装した場合でも、リンク層113の動作クロックを低速にすることができ、低消費電力化が可能になる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 シリコン
102 FPGA
111 物理層
112 ブリッジ回路
113 リンク層
121 高速クロックドメイン
122 低速クロックドメイン
201 第2のデスクランブラ
202 第1のクロックドメイン変換部
203,218,221,234 セレクタ
204 第1のバッファ
219 第1のスクランブラ
220 第1のデスクランブラ
222 第2のバッファ
235 第2のクロックドメイン変換部
236 第2のスクランブラ

Claims (4)

  1. 第1のクロック信号に同期して動作する第1のクロックドメインと、
    前記第1のクロック信号より周波数が低い第2のクロック信号に同期して動作する第2のクロックドメインと、
    前記第2のクロックドメインから入力したデータを前記第2のクロック信号に同期した状態から前記第1のクロック信号に同期した状態に変換して前記第1のクロックドメインに出力する第1のクロックドメイン変換部と、
    前記第1のクロックドメインから入力したデータを前記第1のクロック信号に同期した状態から前記第2のクロック信号に同期した状態に変換して前記第2のクロックドメインに出力する第2のクロックドメイン変換部とを有し、
    前記第1のクロックドメインは、
    前記第1のクロックドメイン変換部から入力したデータをバッファリングして外部に出力し、データの種類毎のバッファを有する第1のバッファと、
    外部から入力したデータをバッファリングして前記第2のクロックドメイン変換部に出力し、データの種類毎のバッファを有する第2のバッファとを有し、
    前記第1のバッファは、前記第1のクロックドメイン変換部から連続転送が必要なデータである第1のデータを入力すると、前記入力した同じ前記第1のデータを繰り返して外部に出力し、
    前記第2のバッファは、外部から第2のデータを入力すると、前記第2のデータを間引いて前記第2のクロックドメイン変換部に出力することを特徴とするブリッジ回路。
  2. 前記第1のバッファは、前記第1のクロックドメイン変換部から連続転送が不要なデータである第3のデータを入力すると、前記入力した前記第3のデータを繰り返さずに外部に出力することを特徴とする請求項1記載のブリッジ回路。
  3. 前記第1のクロックドメインは、
    前記第1のクロックドメイン変換部から入力したデータがロジカルアイドルデータであるときには、前記ロジカルアイドルデータを前記第1のバッファにバッファリングせず、前記第1のバッファの出力データがないときにはロジカルアイドルデータを外部に出力し、
    外部から入力したデータがロジカルアイドルデータであるときには、前記ロジカルアイドルデータを前記第2のバッファにバッファリングせず、前記第2のバッファの出力データがないときにはロジカルアイドルデータを前記第2のクロックドメイン変換部に出力することを特徴とする請求項1又は2記載のブリッジ回路。
  4. 前記第1のクロックドメインは、
    前記第1のバッファからのデータを暗号化して外部に出力する第1のスクランブラと、
    外部からのデータを復号して前記第2のバッファに出力する第1のデスクランブラとを有し、
    前記第2のクロックドメインは、
    外部からのデータを復号して前記第1のクロックドメイン変換部に出力する第2のデスクランブラと、
    前記第2のクロックドメイン変換部からのデータを暗号化して外部に出力する第2のスクランブラとを有することを特徴とする請求項1〜3のいずれか1項に記載のブリッジ回路。
JP2012145666A 2012-06-28 2012-06-28 ブリッジ回路 Active JP5928192B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012145666A JP5928192B2 (ja) 2012-06-28 2012-06-28 ブリッジ回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012145666A JP5928192B2 (ja) 2012-06-28 2012-06-28 ブリッジ回路

Publications (2)

Publication Number Publication Date
JP2014010550A JP2014010550A (ja) 2014-01-20
JP5928192B2 true JP5928192B2 (ja) 2016-06-01

Family

ID=50107238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012145666A Active JP5928192B2 (ja) 2012-06-28 2012-06-28 ブリッジ回路

Country Status (1)

Country Link
JP (1) JP5928192B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1127246A (ja) * 1997-07-01 1999-01-29 Sony Corp 伝送装置および伝送方法、並びに情報処理装置
EP1011224B1 (en) * 1998-10-02 2009-08-19 Thomson Consumer Electronics, Inc. Data rate conversion
JP2001145054A (ja) * 1999-11-12 2001-05-25 Matsushita Electric Ind Co Ltd バス変換器を用いた編集システム
JP4524974B2 (ja) * 2001-09-07 2010-08-18 ルネサスエレクトロニクス株式会社 入力信号速度変換装置、出力信号速度変換装置及び信号速度変換装置
KR101419292B1 (ko) * 2008-02-20 2014-07-14 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법

Also Published As

Publication number Publication date
JP2014010550A (ja) 2014-01-20

Similar Documents

Publication Publication Date Title
EP3412016B1 (en) Scalable, high-efficiency, high-speed serialized interconnect
KR101419292B1 (ko) 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법
JP5879545B2 (ja) 送信回路、受信回路、送信方法、受信方法、通信システム及びその通信方法
US7979608B2 (en) Lane to lane deskewing via non-data symbol processing for a serial point to point link
US20170222686A1 (en) Scalable, high-efficiency, high-speed serialized interconnect
US7843216B2 (en) Techniques for optimizing design of a hard intellectual property block for data transmission
US7583600B1 (en) Schedule prediction for data link layer packets
US8572300B2 (en) Physical coding sublayer (PCS) architecture for synchronizing data between different reference clocks
JP4279672B2 (ja) データ有効インジケータ及びスキュー不耐性データグループを有するパラレルデータ通信
WO2005066785A1 (en) Programmable measurement mode for a serial point to point link
TWI423007B (zh) 串列匯流排裝置以及其時脈差補償方法
US10461805B2 (en) Valid lane training
WO2013001631A1 (ja) 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
US12003610B1 (en) Retimer with mesochronous intra-lane path controllers
US20170041093A1 (en) Latency-optimized physical coding sublayer
JP2010509894A (ja) 高速シリアライザ/デシリアライザ送信アーキテクチャー
EP1700202A2 (en) Buffer management via non-data symbol processing for a point to point link
WO2017171997A1 (en) A method, apparatus and system for communicating between multiple protocols
EP1700224B1 (en) Receiver corporation
US8675798B1 (en) Systems, circuits, and methods for phase inversion
US10680963B2 (en) Circuit and method for credit-based flow control
JP5928192B2 (ja) ブリッジ回路
TWI698092B (zh) 用於高速序列資料通訊系統的編碼和解碼架構及其相關方法、實體層電路、發射器與接收器及其中的通訊系統
US11249511B2 (en) High performance clock domain crossing FIFO
CN105306421A (zh) 一种基于pci-e接口的信号处理方法及信号处理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150224

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150612

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160411

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5928192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150