JP2014010550A - Bridge circuit - Google Patents
Bridge circuit Download PDFInfo
- Publication number
- JP2014010550A JP2014010550A JP2012145666A JP2012145666A JP2014010550A JP 2014010550 A JP2014010550 A JP 2014010550A JP 2012145666 A JP2012145666 A JP 2012145666A JP 2012145666 A JP2012145666 A JP 2012145666A JP 2014010550 A JP2014010550 A JP 2014010550A
- 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.)
- Granted
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
本発明は、ブリッジ回路に関する。 The present invention relates to a bridge circuit.
PCI Express規格のスイッチ及びバスを介してデータの転送を受けるPCI Express規格のエンドポイントを備えるデータ分配装置が知られている(例えば、特許文献1参照)。バッファは、上位のスイッチ及びバスを介して転送されたデータをバッファリングする。分配制御回路は、この転送されたデータを下位の複数の出力先である出力部に分配して転送する制御を行う。PCI Express規格のルートコンプレックス及びスイッチは、分配制御回路の制御によりデータの転送を行なう。 2. Description of the Related Art A data distribution apparatus including a PCI Express standard endpoint that receives data transfer via a PCI Express standard switch and a bus is known (for example, see Patent Document 1). The buffer buffers data transferred via the upper switch and bus. The distribution control circuit performs control to distribute and transfer the transferred data to output units that are a plurality of lower output destinations. The PCI Express standard root complex and switch transfer data under the control of the distribution control circuit.
高速入出力インタフェース回路を使用した実機デバイス評価では、デジタル部の動作周波数が高く、FPGA(フィールドプログラマブルゲートアレイ:Field Programmable Gate Array)にて動作させることが困難である課題が存在する。例えば、PCI ExpressやUSB3.0などのインタフェース規格は、動作周波数が250MHzであり、高周波数であるため、FPGAにおいては動作させることが難しい状況にある。 In an actual device evaluation using a high-speed input / output interface circuit, there is a problem that the operating frequency of the digital unit is high and it is difficult to operate with an FPGA (Field Programmable Gate Array). For example, interface standards such as PCI Express and USB3.0 have a high operating frequency of 250 MHz, and are difficult to operate in an FPGA.
本発明の目的は、高周波数のクロックドメインと低周波数のクロックドメインとの間でクロックドメイン変換をすることができるブリッジ回路を提供することである。 An object of the present invention is to provide a bridge circuit capable of clock domain conversion between a high frequency clock domain and a low frequency clock domain.
ブリッジ回路は、第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のクロックドメイン変換部に出力する。 The bridge circuit includes a first clock domain that operates in synchronization with a first clock signal, a second clock domain that operates in synchronization with a second clock signal having a frequency lower than that of the first clock signal, A first clock domain that converts data input from the second clock domain from a state synchronized with the second clock signal to a state synchronized with the first clock signal and outputs the converted data to the first clock domain And a conversion unit that converts data input from the first clock domain from a state synchronized with the first clock signal to a state synchronized with the second clock signal and outputs the data to the second clock domain. 2 clock domain conversion units, and the first clock domain receives data input from the first clock domain conversion unit. A first buffer for buffering and outputting to the outside; and a second buffer for buffering data input from the outside and outputting to the second clock domain conversion unit. When the first data is input from the first clock domain converter, the buffer repeatedly outputs the same input first data to the outside, and the second buffer receives the second data from the outside. When data is input, the second data is thinned and output to the second clock domain converter.
第1のクロック信号に同期する第1のクロックドメインと第2のクロック信号に同期する第2のクロックドメインとの間でクロックドメイン変換をすることができる。 Clock domain conversion can be performed between the first clock domain synchronized with the first clock signal and the second clock domain synchronized with the second clock signal.
図1は、実施形態による入出力インタフェース回路の構成例を示す図である。以下、入出力インタフェース回路の例として、PCI Express規格の高速入出力インタフェース回路の例を説明するが、他の入出力インタフェース回路に適用することもできる。 FIG. 1 is a diagram illustrating a configuration example of an input / output interface circuit according to the embodiment. Hereinafter, an example of the PCI Express standard high-speed input / output interface circuit will be described as an example of the input / output interface circuit, but the present invention can also be applied to other input / output interface circuits.
入出力インタフェース回路は、物理層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に出力する。
The input / output interface circuit includes a
ブリッジ回路112は、リンク層113の論理を変えずに(バス幅を変更せずに)、リンク層113が第2のクロック信号の低周波数でデータtx,rxを送受信できるようにすることにより、リンク層113の動作周波数を低速にすることができる。ここで、データtx,rxの送受信は、待ち時間がなく、連続で送受信しなければならないため、単純にデータtx,rxを受け渡す制御では、受信動作(高速クロックドメイン121から低速クロックドメイン122への受け渡し)では受信データrxが溢れ、送信動作(低速クロックドメイン122から高速クロックドメイン121への受け渡し)では送信データtxが不足することになる。そこで、ブリッジ回路112は、クロック周波数の変換を行い、さらに、データtx及びrxの特性を利用し、データtx及びrxの溢れや不足が発生しないように制御する。
The
図2は、図1のブリッジ回路112の構成例を示す図である。ブリッジ回路112は、第1のクロックドメイン(高速クロックドメイン)121、第2のクロックドメイン(低速クロックドメイン)122、第1のクロックドメイン変換部202及び第2のクロックドメイン変換部235を有する。第1のクロックドメイン121は、第1のクロック信号に同期して動作する。第2のクロックドメイン122は、第1のクロック信号より周波数が低い第2のクロック信号に同期して動作する。
FIG. 2 is a diagram illustrating a configuration example of the
第1のクロックドメイン121は、第1のスクランブラ219、第1のデスクランブラ220、第1のバッファ204、第2のバッファ222及びセレクタ218,203,221,234を有する。第2のクロックドメイン122は、第2のデスクランブラ201及び第2のスクランブラ236を有する。
The
図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)対策のため、同じデータ列を繰り返し転送する場合でも、暗号化により、違うデータ列として転送できるため、シリアルバス上から発生される電磁ノイズの周波数成分を平坦化できる。
FIG. 3 is a diagram illustrating a configuration example of the
なお、図1のデスクランブラ201及び220は、スクランブラ219及び236による暗号化データを復号することにより、元のデータに戻す。デスクランブラ201及び220は、スクランブラ219及び236と同じアルゴリズムで排他的論理和演算することにより、アルゴリズム論理が打ち消されることになる。
The
図2の送信データtx及び受信データrxは、スクランブラにより暗号化されている。そのため、送信データtxの入口には第2のデスクランブラ201を設け、送信データtxの出口には第1のスクランブラ219を設ける。また、受信データrxの入口には第1のデスクランブラ220を設け、受信データrxの出口には第2のスクランブラ236を設ける。
The transmission data tx and reception data rx in FIG. 2 are encrypted by a scrambler. Therefore, the
まず、送信データtxについて説明する。図2において、第2のデスクランブラ201は、図1のリンク層113からの送信データtxを復号して第1のクロックドメイン変換部202に出力する。第1のクロックドメイン変換部202は、第2のデスクランブラ201から入力した送信データを第2のクロック信号に同期した状態から第1のクロック信号に同期した状態に変換してセレクタ203に出力する。例えば、第1のクロックドメイン変換部202は、同期化バッファを有し、第2のデスクランブラ201からの送信データを第2のクロック信号に同期して同期化バッファに書き込み、その同期化バッファから第1のクロック信号に同期して読み出してセレクタ203に出力する。
First, the transmission data tx will be described. 2, the
セレクタ203は、送信データ(パケット)の種類に応じて、第1のクロックドメイン変換部202から入力した送信データを、第1のバッファ204内の10個のバッファ205〜214のいずれかに書き込む。ただし、セレクタ203は、第1のクロックドメイン変換部202から入力した送信データがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第1のバッファ204に書き込まずに廃棄する。ロジカルアイドルデータは、0値データであり、意味がある通信を行っていない期間に送受信されるデータ(無効データ)である。
The
第1のバッファ204は、送信データ(パケット)の種類毎のバッファ205〜214を有し、セレクタ203から入力したデータをバッファリングしてセレクタ218に出力する。送信動作では、低周波数の第2のクロック信号から高周波数の第1のクロック信号へデータを受け渡す。そのため、第1のバッファ204は、出力データが入力データより多いデータ量となる。第1のバッファ204は、入力データをそのまま出力すると、出力するデータが不足するため、次のような制御でデータを追加する。
The
バッファ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によりバッファリングされる。
The
バッファ205は、セレクタ203からPLPのFTSを入力してバッファリングする。FTSは、シリアルバスのビットを識別するためのビットロック、及びシンボルを識別するためのシンボルロックに使用されるパケットである。FTSは、ビットロック及びシンボルロックするまで連続転送が必要である。そのため、バッファ205は、図5(A)に示すように、セレクタ203からPLPのFTS(第1のデータ)を入力すると、その入力した同じPLPのFTS215を繰り返してセレクタ218に出力する。
The
図5(A)は、PLPのFTSのバッファ205の入力データ及び出力データの例を示す図である。バッファ205の入力データは、低周波数の第2のクロック信号の周期で入力される。バッファ205は、その入力データが入力される度にバッファリングデータを更新する。バッファ205の出力データは、バッファ205内のデータが更新されると、高周波数の第1のクロック信号に同期して、バッファ205内の同じデータを所定回数(例えば4回)繰り返して出力される。同じデータを繰り返し出力することにより、連続転送が可能になる。これにより、ビットロック及びシンボルロックを確実に行うことができる。
FIG. 5A is a diagram illustrating an example of input data and output data of the
図2において、バッファ206は、セレクタ203からPLPのSKPを入力してバッファリングする。SKPは、通信デバイス間の周波数偏差を吸収しデータの過不足の調整するために送受信されるパケットである。バッファ206は、セレクタ203からPLPのSKP(第3のデータ)を入力すると、その入力したPLPのSKPを繰り返さずにセレクタ218に出力する。
In FIG. 2, the
バッファ207は、セレクタ203からPLPのIDLを入力してバッファリングする。IDLは、パワーセーブ時にバスの振幅を停止する際に使用され、以降は送受信データがないことを示すパケットである。バッファ207は、セレクタ203からPLPのIDLを入力すると、その入力したPLPのIDLを繰り返さずにセレクタ218に出力する。
The
バッファ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によりバッファリングされる。
The DLL Ack / Nac is buffered by the
バッファ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に出力する。
The
バッファ209〜211は、セレクタ203からDLLPのFCを入力してバッファリングする。DLLPのFCは、後述のTLPについて受信用バッファのオーバーフローを抑制するためのパケットである。
The
バッファ209は、セレクタ203からDLLPのFCのPostedを入力してバッファリングする。DLLPのFCのPostedは、応答なしで完了するパケットである。
The
バッファ210は、セレクタ203からDLLPのFCのNon−Postedを入力してバッファリングする。DLLPのFCのNon−Postedは、応答を待って完了するパケットである。
The
バッファ211は、セレクタ203からDLLPのFCのCompletionを入力してバッファリングする。DLLPのFCのCompletionは、応答(完了通知)のパケットである。
The
DLLPのFCは、制御コード412内にてTLPの「受信総量+受信バッファの空き量」を通知する。これにより、TLPの送信側は自己が送信した総量と、上記の通知された値との差分により、受信側のバッファの空き量を判断することが可能となる。これを使って、受信バッファのオーバーフローを防止するための制御が行われる。TLPの通信が進行することにより値が更新されていくが、最新のFCにより最新の受信バッファの情報が得られるため古い情報は必要なくなる。したがって、バッファ209〜211は、それぞれ、セレクタ203からDLLPのFCを入力すると、その入力したDLLPのFCを繰り返さずにセレクタ218に出力する。
The DLLLP FC notifies the TLP “total received amount + empty amount of receiving buffer” in the
バッファ212は、セレクタ203からDLLPのPMを入力してバッファリングする。DLLPのPMは、電力の状態を制御するためのパケットであり、連続転送する必要はない。したがって、バッファ212は、セレクタ203からDLLPのPMを入力すると、その入力したDLLPのPMを繰り返さずにセレクタ218に出力する。
The
バッファ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が異なる。
The
バッファ213は、セレクタ203からTSを入力してバッファリングする。TSは、PCI Express規格の2個のデバイス間が正しく通信できることの確認や調整を行い、物理層111の制御(レート変更やリセットなど)をコントロールするためのパケットであり、連続転送が必要なパケットである。連続転送の期間は、送信データtxの入力状態が連続していると判断できる期間となる。したがって、バッファ213は、図5(A)に示すように、セレクタ203からTSを入力すると、その入力した同じTS216を繰り返してセレクタ218に出力する。
The
図5(A)に示すように、バッファ213の入力データは、低周波数の第2のクロック信号の周期で入力される。バッファ213は、その入力データが入力される度にバッファリングデータを更新する。バッファ213の出力データは、バッファ213内のデータが更新されると、高周波数の第1のクロック信号に同期して、バッファ213内の同じデータを所定回数(例えば4回)繰り返して出力される。
As shown in FIG. 5A, the input data of the
バッファ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)、又はメッセージを表す。
The
データの種類に応じて、上記のFCによる転送制御が異なり、Posted、Non−Posted、Completionに分類される。Postedは、メモリライト及びメッセージである。Non−Postedは、メモリリード、入出力回路リード/ライト、コンフィグレーションリード/ライトである。Completionは、完了通知である。 Depending on the type of data, the transfer control by the FC is different and is classified as Posted, Non-Posted, Completion. Posted is a memory write and message. Non-Posted is memory read, input / output circuit read / write, configuration read / write. Completion is a completion notification.
シーケンス番号432は、TLPの送信毎に1増加されるフィールドであり、DLLPのAck/Nakにて受領できたTLPのシーケンス番号と対応付けることにより、転送が正しく行われたことを確認することができる。
The
ECRCコード435は、データ部434のCRCコードである。LCRCコード436は、シーケンス番号432からECRCコード435までのCRCコードである。
The
図2のバッファ214は、セレクタ203からTLPを入力すると、その入力したTLPを繰り返さずにセレクタ218に出力する。
When the TLP is input from the
上記のように、セレクタ203は、第1のクロックドメイン変換部202から入力した送信データがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第1のバッファ204に書き込まずに廃棄する。ロジカルアイドルデータは、0値データであり、意味がある通信を行っていない期間に送受信されるデータ(無効データ)である。第1のクロックドメイン121は、セレクタ203の入力データがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第1のバッファ204にバッファリングせず、第1のバッファ204の出力データがないときにはロジカルアイドルデータ(0値データ)217をセレクタ218に出力する。
As described above, when the transmission data input from the first clock
セレクタ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は出力しない。
The
第1のスクランブラ219は、図3の構成を有し、上記と同様に、セレクタ218からのデータを暗号化して図1の物理層111に送信データtxを出力する。
The
次に、受信データrxについて説明する。第1のデスクランブラ220は、第2のスクランブラ201と同様に、図1の物理層111からの受信データrxを復号してセレクタ221に出力する。セレクタ221は、上記のセレクタ203と同様に、入力データ(パケット)の種類に応じて、入力データを第2のバッファ222内の10個のバッファ223〜232のいずれかに書き込む。ただし、セレクタ221は、入力データがロジカルアイドルデータ(0値データ)であるときには、そのロジカルアイドルデータを第2のバッファ222に書き込まずに廃棄する。
Next, the reception data rx will be described. Similar to the
第2のバッファ222は、第1のバッファ204と同様に、受信データ(パケット)の種類毎のバッファ223〜232を有し、セレクタ221から入力したデータをバッファリングしてセレクタ234に出力する。受信動作では、高周波数の第1のクロック信号から低周波数の第2のクロック信号へデータを受け渡す。そのため、第2のバッファ222は、出力データが入力データよりも少ないデータ量となる。第2のバッファ222は、入力データを全てバッファリングすると、データが溢れる状況となるため、次のような制御を行う。
Similar to the
バッファ223は、バッファ205と同様に、セレクタ221からPLPのFTSを入力してバッファリングする。バッファ223は、図5(B)に示すように、セレクタ221からPLPのFTS(第2のデータ)を入力すると、そのPLPのFTSを間引いてセレクタ234に出力する。
Similarly to the
図5(B)は、PLPのFTSのバッファ223の入力データ及び出力データの例を示す図である。バッファ223の入力データは、高周波数の第1のクロック信号の周期で入力される。バッファ223は、その入力データが入力される度にバッファリングデータを更新(上書き)する。バッファ205の出力データは、低周波数の第2のクロック信号の周期でバッファ205のデータが出力される。例えば、「1」、「2」、「3」、「5」、「6」、「7」のデータが間引かれ、「0」、「4」、「8」のデータが出力される。これにより、バッファ223は、入力されたPLPのFTSを間引いて出力することができる。
FIG. 5B is a diagram illustrating an example of input data and output data of the
バッファ224は、バッファ206と同様に、セレクタ221からPLPのSKPを入力してバッファリングする。バッファ224は、図5(B)と同様に、セレクタ221からPLPのSKPを入力すると、そのPLPのSKPを間引いてセレクタ234に出力する。
Similarly to the
バッファ225は、バッファ207と同様に、セレクタ221からPLPのIDLを入力してバッファリングする。バッファ225は、図5(B)と同様に、セレクタ221からPLPのIDLを入力すると、そのPLPのIDLを間引いてセレクタ234に出力する。
Similarly to the
バッファ226は、バッファ208と同様に、セレクタ221からDLLPのAck/Nakを入力してバッファリングする。バッファ226は、図5(B)と同様に、セレクタ221からDLLPのAck/Nakを入力すると、そのDLLPのAck/Nakを間引いてセレクタ234に出力する。
Similarly to the
バッファ227は、バッファ209と同様に、セレクタ221からDLLPのFCのPostedを入力してバッファリングする。バッファ227は、図5(B)と同様に、セレクタ221からDLLPのFCのPostedを入力すると、そのDLLPのFCのPostedを間引いてセレクタ234に出力する。
Similarly to the
バッファ228は、バッファ210と同様に、セレクタ221からDLLPのFCのNon−Postedを入力してバッファリングする。バッファ228は、図5(B)と同様に、セレクタ221からDLLPのFCのNon−Postedを入力すると、そのDLLPのFCのNon−Postedを間引いてセレクタ234に出力する。
Similarly to the
バッファ229は、バッファ211と同様に、セレクタ221からDLLPのFCのCompletionを入力してバッファリングする。バッファ229は、図5(B)と同様に、セレクタ221からDLLPのFCのCompletionを入力すると、そのDLLPのFCのCompletionを間引いてセレクタ234に出力する。
Similarly to the
バッファ230は、バッファ212と同様に、セレクタ221からDLLPのPMを入力してバッファリングする。バッファ230は、図5(B)と同様に、セレクタ221からDLLPのPMを入力すると、そのDLLPのPMを間引いてセレクタ234に出力する。
Similarly to the
バッファ231は、バッファ213と同様に、セレクタ221からTSを入力してバッファリングする。バッファ231は、図5(B)と同様に、セレクタ221からTSを入力すると、そのTSを間引いてセレクタ234に出力する。
Similarly to the
バッファ232は、バッファ214と同様に、セレクタ221からTLPを入力してバッファリングする。TLPのバッファ232は、受信側のリンク層113(図1)にある受信バッファ以上のバッファサイズを用意すれば、オーバーフローしない。したがって、バッファ232は、セレクタ221からTLPを入力すると、そのTLPを間引かずにセレクタ234に出力する。
Similarly to the
上記のように、セレクタ221は、第1のデスクランブラ220から入力した受信データrxがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第2のバッファ222に書き込まずに廃棄する。ロジカルアイドルデータは、0値データであり、意味がある通信を行っていない期間に送受信されるデータ(無効データ)である。第1のクロックドメイン121は、セレクタ221の入力データがロジカルアイドルデータであるときには、ロジカルアイドルデータを第2のバッファ222にバッファリングせず、第2のバッファ222の出力データがないときにはロジカルアイドルデータ(0値データ)233をセレクタ234に出力する。
As described above, when the received data rx input from the
セレクタ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は出力しない。
The
第2のクロックドメイン変換部235は、第1のクロックドメイン変換部202と同様に、セレクタ234から入力したデータを第1のクロック信号に同期した状態から第2のクロック信号に同期した状態に変換して第2のスクランブラ236に出力する。
Similar to the first clock
第2のスクランブラ236は、図3の構成を有し、上記と同様に、第2のクロックドメイン変換部235からの受信データを暗号化して受信データrxを図1のリンク層113に出力する。
The
以上のように、PLPのFTSの送信バッファ205及びTSの送信バッファ213については、データの連続性が必要であるが、送信バッファ205及び213への入力が遅いため、連続で入力する状況でもバッファ205及び213が空になる状態が発生する。送信する情報が無いことで、データの連続性が損なわれるため、バッファ205及び213が空になった状態では、次の入力データが格納されるまでの一定期間、同じデータを繰り返し出力することで連続性を維持する。
As described above, for the PLP
また、バッファ205〜214に格納されているデータが無く、繰り返し出力も行っていない場合は、ロジカルアイドルデータ217を出力することにより、データが途切れることなく、データ転送することが可能となる。
Further, when there is no data stored in the
PLPのFTSのバッファ205のパケットは、すべて内容が同じデータであり、シリアルバスのビットロック及びシンボルロックのために連続性と転送期間が必要なパケットである。また、TSのバッファ213のパケットは、通信デバイス間でハンドシェークを行いながら同じデータを繰り返し転送する性質があり、対向側のデータが変化するまでは同じデータを連続で転送し続ける。以上から、連続転送が必要なパケットについては、同じデータ送信しているため、バッファ205及び213内において同じデータを繰り返し転送しても送信動作として影響はない。
The packets of the
なお、PCI Express規格以外の高速入出力インタフェース回路でも同様に、データ(パケット)の種別毎にバッファリングし、連続転送が必要なものについては繰り返し転送し、無データ時にはロジカルアイドルデータ217を転送することにより、送信動作を確立させることができる。
Similarly, in the high-speed input / output interface circuit other than the PCI Express standard, buffering is performed for each type of data (packet), data that requires continuous transfer is repeatedly transferred, and logical
次に、第2のバッファ222について説明する。PLP(FTS/SKP/IDL)の受信バッファ223〜225のデータは、バッファ223〜225の内容を間引いても問題はない。PLPのFTSについては、データの連続性が必要であるが、受信動作については、出力するよりも入力が速いため、繰り返すことなく、そのままの制御で連続性を保つことができる。
Next, the
TSの受信バッファ231は、通信デバイス間でハンドシェークを行いながら、同じデータを繰り返し転送する性質があり、対向側のデータが変化するまでは同じデータを連続で転送し続ける。バッファ231の内容を上書きして出力しても、最終的にハンドシェークされたことが判断できれば良いので、間引いても影響はない。連続性については、受信動作では、出力するよりも入力が速いため、そのままの制御で連続性を保つことができる。
The
DLLPのAck/Nakの受信バッファ226のパケットは、シーケンス番号の管理により、TLPの受領状況を判断するためにある。このシーケンス番号は、TLPの送信毎に1増加する番号であり、この番号を利用して、どのTLPまでが受領できたのかを判断することに利用される。最新のDLLPのAck/Nakを参照することにより、今現在のTLPの受領状況が判断できるので、古い情報を上書きしたとしても、受信動作として影響はない。
The packets in the DLL LP Ack /
DLLPのFCの受信バッファ227〜229についても同様で、更新された「受信総量+受信バッファの空き量」を通知するので、最新の受信バッファの空き量が判断できれば良く、古い情報を上書きしたとしても、受信動作として影響はない。
The same applies to the receive
DLLPのPMの受信バッファ230のパケットについては、連続性もなく、転送間隔がバッファの制御時間に対して十分に長いため、バッファに入力できたことを通知できれば良い。
The packets in the
TLPの受信バッファ232は、全ての入力データをバッファリングし、データを出力する。TLPの受信バッファ232は、リンク層113の受信バッファがオーバーフローしない原理を利用し、リンク層113と同じ量の受信バッファ容量を持たせることで、オーバーフローを回避する。TLPの受信バッファがオーバーフローしない制御は、DLLPのFCを利用して行われ、受信バッファの空き容量を送信側で判断し、受信バッファが溢れない範囲で新たなTLPを送信する。ブリッジ回路112内でTLPをバッファリングすることにより、遅れて受信バッファへ転送されたとしても、DLLPのFCの値が更新されず、送信側にとっては受信バッファに空きがない状況として判断できるため、必要以上のTLP送信が発生することは無く、受信動作としても影響はない。
The TLP reception buffer 232 buffers all input data and outputs the data. The TLP reception buffer 232 avoids overflow by utilizing the principle that the reception buffer of the
また、各バッファ223〜232に格納されているデータが無い場合は、ロジカルアイドルデータ(0値データ)233を出力することにより、データが途切れることなく、データ転送することが可能となる。
In addition, when there is no data stored in each of the
なお、PCI Express規格以外の高速入出力インタフェース回路でも同様に、データ(パケット)の種別毎にバッファリングし、最新の情報のみが必要なものについてはバッファへの上書きし、無データ時にはロジカルアイドルデータ233を転送することにより、受信動作を確立させることができる。 Similarly, in high-speed I / O interface circuits other than the PCI Express standard, data is buffered for each type of data (packet). If only the latest information is needed, the buffer is overwritten. By transferring 233, the receiving operation can be established.
本実施形態によれば、クロックドメイン変換部202および235は、第1のクロック信号に同期する第1のクロックドメイン121と第2のクロック信号に同期する第2のクロックドメイン122との間でクロックドメイン変換をすることができる。また、リンク層113の論理を変更することなく(バス幅を変更することなく)、リンク層113をFPGA102へ実装(低速クロックの動作)することが可能になる。また、リンク層113をシリコン基板に実装した場合でも、リンク層113の動作クロックを低速にすることができ、低消費電力化が可能になる。
According to the present embodiment, the
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed in a limited manner. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
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のスクランブラ
101
111
Claims (4)
前記第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のクロックドメイン変換部に出力することを特徴とするブリッジ回路。 A first clock domain operating in synchronization with the first clock signal;
A second clock domain that operates in synchronization with a second clock signal having a frequency lower than that of the first clock signal;
A first clock domain that converts data input from the second clock domain from a state synchronized with the second clock signal to a state synchronized with the first clock signal and outputs the converted data to the first clock domain A conversion unit;
A second clock domain that converts data input from the first clock domain from a state synchronized with the first clock signal to a state synchronized with the second clock signal and outputs the converted data to the second clock domain A conversion unit,
The first clock domain is:
A first buffer for buffering data input from the first clock domain converter and outputting the data to the outside;
A second buffer for buffering data input from the outside and outputting the buffered data to the second clock domain converter;
When the first buffer receives the first data from the first clock domain converter, the first buffer repeatedly outputs the same input first data to the outside.
When the second data is input from the outside to the second buffer, the second buffer thins out the second data and outputs it to the second clock domain converter.
前記第1のクロックドメイン変換部から入力したデータがロジカルアイドルデータであるときには、前記ロジカルアイドルデータを前記第1のバッファにバッファリングせず、前記第1のバッファの出力データがないときにはロジカルアイドルデータを外部に出力し、
外部から入力したデータがロジカルアイドルデータであるときには、前記ロジカルアイドルデータを前記第2のバッファにバッファリングせず、前記第2のバッファの出力データがないときにはロジカルアイドルデータを前記第2のクロックドメイン変換部に出力することを特徴とする請求項1又は2記載のブリッジ回路。 The first clock domain is:
When the data input from the first clock domain conversion unit is logical idle data, the logical idle data is not buffered in the first buffer, and when there is no output data of the first buffer, logical idle data is stored. Is output to the outside,
When the data input from the outside is logical idle data, the logical idle data is not buffered in the second buffer, and when there is no output data of the second buffer, the logical idle data is transferred to the second clock domain. 3. The bridge circuit according to claim 1, wherein the bridge circuit outputs the signal to a conversion unit.
前記第1のバッファからのデータを暗号化して外部に出力する第1のスクランブラと、
外部からのデータを復号して前記第2のバッファに出力する第1のデスクランブラとを有し、
前記第2のクロックドメインは、
外部からのデータを復号して前記第1のクロックドメイン変換部に出力する第2のデスクランブラと、
前記第2のクロックドメイン変換部からのデータを暗号化して外部に出力する第2のスクランブラとを有することを特徴とする請求項1〜3のいずれか1項に記載のブリッジ回路。 The first clock domain is:
A first scrambler that encrypts data from the first buffer and outputs the encrypted data to the outside;
A first descrambler that decodes data from the outside and outputs it to the second buffer;
The second clock domain is
A second descrambler that decodes external data and outputs the decoded data to the first clock domain converter;
The bridge circuit according to claim 1, further comprising a second scrambler that encrypts data from the second clock domain conversion unit and outputs the encrypted data to the outside.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012145666A JP5928192B2 (en) | 2012-06-28 | 2012-06-28 | Bridge circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012145666A JP5928192B2 (en) | 2012-06-28 | 2012-06-28 | Bridge circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014010550A true JP2014010550A (en) | 2014-01-20 |
JP5928192B2 JP5928192B2 (en) | 2016-06-01 |
Family
ID=50107238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012145666A Active JP5928192B2 (en) | 2012-06-28 | 2012-06-28 | Bridge circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5928192B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1127246A (en) * | 1997-07-01 | 1999-01-29 | Sony Corp | Transmitter and transmission method and information processor |
JP2000188614A (en) * | 1998-10-02 | 2000-07-04 | Thomson Consumer Electronics Inc | Device and method for controlling outputting symbol rate in packet transferring rate converting system |
JP2001145054A (en) * | 1999-11-12 | 2001-05-25 | Matsushita Electric Ind Co Ltd | Edit system using bus converter |
JP2003087710A (en) * | 2001-09-07 | 2003-03-20 | Hitachi Ltd | Input signal speed converter, output signal speed converter, and signal speed converter |
JP2011519077A (en) * | 2008-02-20 | 2011-06-30 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | Redriver having two reference clocks and operation method thereof |
-
2012
- 2012-06-28 JP JP2012145666A patent/JP5928192B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1127246A (en) * | 1997-07-01 | 1999-01-29 | Sony Corp | Transmitter and transmission method and information processor |
JP2000188614A (en) * | 1998-10-02 | 2000-07-04 | Thomson Consumer Electronics Inc | Device and method for controlling outputting symbol rate in packet transferring rate converting system |
JP2001145054A (en) * | 1999-11-12 | 2001-05-25 | Matsushita Electric Ind Co Ltd | Edit system using bus converter |
JP2003087710A (en) * | 2001-09-07 | 2003-03-20 | Hitachi Ltd | Input signal speed converter, output signal speed converter, and signal speed converter |
JP2011519077A (en) * | 2008-02-20 | 2011-06-30 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | Redriver having two reference clocks and operation method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP5928192B2 (en) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7631118B2 (en) | Lane to lane deskewing via non-data symbol processing for a serial point to point link | |
KR101419292B1 (en) | Redriver with two reference clocks and method of operation thereof | |
US7444558B2 (en) | Programmable measurement mode for a serial point to point link | |
US20180285227A1 (en) | Adjustable retimer buffer | |
JP5879545B2 (en) | Transmission circuit, reception circuit, transmission method, reception method, communication system and communication method thereof | |
US7843216B2 (en) | Techniques for optimizing design of a hard intellectual property block for data transmission | |
EP3411956A1 (en) | Programmable distributed data processing in a serial link | |
US8572300B2 (en) | Physical coding sublayer (PCS) architecture for synchronizing data between different reference clocks | |
US10110335B2 (en) | Latency-optimized physical coding sublayer | |
US10461805B2 (en) | Valid lane training | |
WO2013001631A1 (en) | Transmission device, transmission circuit, transmission system, and method for controlling transmission device | |
US11424905B1 (en) | Retimer with mesochronous intra-lane path controllers | |
JP2007517334A (en) | Buffer management via non-data code handling point-to-point links | |
US7339995B2 (en) | Receiver symbol alignment for a serial point to point link | |
US8675798B1 (en) | Systems, circuits, and methods for phase inversion | |
JP5928192B2 (en) | Bridge circuit | |
WO2017171997A1 (en) | A method, apparatus and system for communicating between multiple protocols | |
JP2008178102A (en) | Interface device and inter-chip communication interface device | |
JP5545146B2 (en) | Serial communication system | |
TWI698092B (en) | Encoding and decoding architecture for high-speed data communication system and related physical layer circuit, transmitter and receiver and communication system thereof | |
CN114363131B (en) | Physical coding sublayer polarity inference and automatic inversion method and device for multi-mode channel | |
Maragkoudaki et al. | Energy-efficient encoding for high-speed serial interfaces | |
JPWO2013001631A1 (en) | TRANSMISSION DEVICE, TRANSMISSION CIRCUIT, TRANSMISSION SYSTEM, AND TRANSMISSION DEVICE CONTROL METHOD |
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 or registration of utility model |
Ref document number: 5928192 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |