JP2014010550A - Bridge circuit - Google Patents

Bridge circuit Download PDF

Info

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
Application number
JP2012145666A
Other languages
Japanese (ja)
Other versions
JP5928192B2 (en
Inventor
Tatsushi Kojima
龍志 小島
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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2012145666A priority Critical patent/JP5928192B2/en
Publication of JP2014010550A publication Critical patent/JP2014010550A/en
Application granted granted Critical
Publication of JP5928192B2 publication Critical patent/JP5928192B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To provide a bridge circuit capable of clock domain conversion between a high frequency clock domain and a low frequency clock domain.SOLUTION: The bridge circuit comprise: a first clock domain (121) operating in synchronization with a first clock signal; a second clock domain (122) operating in synchronization with a second clock signal having a frequency lower than that of the first clock signal; a first clock domain conversion section (202) that converts data inputted from the second clock domain from a state synchronized with the second clock signal into a state synchronized with the first clock signal, and outputs the data to the first clock domain; and a second clock domain conversion section (235) that converts data inputted from the first clock domain from a state synchronized with the first clock signal into a state synchronized with the second clock signal, and outputs the data to the second clock domain.

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.

特開2005−332316号公報JP 2005-332316 A

高速入出力インタフェース回路を使用した実機デバイス評価では、デジタル部の動作周波数が高く、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は、実施形態による入出力インタフェース回路の構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of an input / output interface circuit according to the embodiment. 図2は、図1のブリッジ回路の構成例を示す図である。FIG. 2 is a diagram illustrating a configuration example of the bridge circuit of FIG. 図3は、図2のスクランブラの構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of the scrambler of FIG. 図4(A)〜(D)は、パケットのフォーマット例を示す図である。4A to 4D are diagrams showing examples of packet formats. 図5(A)及び(B)は、バッファの入力データ及び出力データの例を示す図である。FIGS. 5A and 5B are diagrams showing examples of buffer input data and output data.

図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 physical layer 111, a bridge circuit 112, and a link layer 113. For example, the physical layer 111 is composed of silicon 101, and the bridge circuit 112 and the link layer 113 are composed of FPGA 102. The input / output interface circuit has a high-speed clock domain 121 and a low-speed clock domain 122. The silicon 101 can operate at high speed. The FPGA 102 is difficult to operate at the same high speed as the silicon 101 and can operate at a lower speed than the silicon 101. A part of the physical layer 111 and a part of the bridge circuit 112 belong to the high-speed clock domain 121. Another part of the link layer 113 and the bridge circuit 112 belongs to the low-speed clock domain 122. The high-speed clock domain 121 operates in synchronization with the first clock signal. The low-speed clock domain 122 operates in synchronization with a second clock signal whose frequency is lower than that of the first clock signal. The bridge circuit 112 converts the transmission data tx synchronized with the second clock signal input from the link layer 113 into transmission data tx synchronized with the first clock signal and outputs the transmission data tx to the physical layer 111. Further, the bridge circuit 112 converts the received data rx synchronized with the first clock signal input from the physical layer 111 into received data rx synchronized with the second clock signal, and outputs the received data rx to the link layer 113.

ブリッジ回路112は、リンク層113の論理を変えずに(バス幅を変更せずに)、リンク層113が第2のクロック信号の低周波数でデータtx,rxを送受信できるようにすることにより、リンク層113の動作周波数を低速にすることができる。ここで、データtx,rxの送受信は、待ち時間がなく、連続で送受信しなければならないため、単純にデータtx,rxを受け渡す制御では、受信動作(高速クロックドメイン121から低速クロックドメイン122への受け渡し)では受信データrxが溢れ、送信動作(低速クロックドメイン122から高速クロックドメイン121への受け渡し)では送信データtxが不足することになる。そこで、ブリッジ回路112は、クロック周波数の変換を行い、さらに、データtx及びrxの特性を利用し、データtx及びrxの溢れや不足が発生しないように制御する。   The bridge circuit 112 allows the link layer 113 to transmit and receive data tx and rx at the low frequency of the second clock signal without changing the logic of the link layer 113 (without changing the bus width). The operating frequency of the link layer 113 can be reduced. Here, since transmission / reception of the data tx, rx has no waiting time and must be continuously transmitted / received, in the control of simply passing the data tx, rx, a reception operation (from the high-speed clock domain 121 to the low-speed clock domain 122). Received data rx overflows, and in the transmission operation (transfer from the low-speed clock domain 122 to the high-speed clock domain 121), the transmission data tx is insufficient. Therefore, the bridge circuit 112 converts the clock frequency, and further uses the characteristics of the data tx and rx to control the overflow and deficiency of the data tx and rx.

図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 bridge circuit 112 of FIG. The bridge circuit 112 includes a first clock domain (high-speed clock domain) 121, a second clock domain (low-speed clock domain) 122, a first clock domain conversion unit 202, and a second clock domain conversion unit 235. The first clock domain 121 operates in synchronization with the first clock signal. The second clock domain 122 operates in synchronization with a second clock signal having a frequency lower than that of the first clock signal.

第1のクロックドメイン121は、第1のスクランブラ219、第1のデスクランブラ220、第1のバッファ204、第2のバッファ222及びセレクタ218,203,221,234を有する。第2のクロックドメイン122は、第2のデスクランブラ201及び第2のスクランブラ236を有する。   The first clock domain 121 includes a first scrambler 219, a first descrambler 220, a first buffer 204, a second buffer 222, and selectors 218, 203, 221 and 234. The second clock domain 122 includes a second descrambler 201 and a second scrambler 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)対策のため、同じデータ列を繰り返し転送する場合でも、暗号化により、違うデータ列として転送できるため、シリアルバス上から発生される電磁ノイズの周波数成分を平坦化できる。   FIG. 3 is a diagram illustrating a configuration example of the scramblers 219 and 236 in FIG. The scramblers 219 and 236 have D-type flip-flops D0 to D15, D20 to D27, a buffer 301, and exclusive OR circuits 302 to 305, respectively, and encrypt input data Di in synchronization with the clock signal CK. The encrypted output data Do is output. The exclusive OR circuit 302 outputs exclusive OR data of the data generated by the shift registers of the flip-flops D0 to D15 and the data of the shift registers of the flip-flops D20 to D27 as output data Do. The scramblers 219 and 236 are generated from the serial bus because they can be transferred as different data strings by encryption even when the same data string is repeatedly transferred for EMC (Electro-Magnetic Compatibility) countermeasures. The frequency component of electromagnetic noise can be flattened.

なお、図1のデスクランブラ201及び220は、スクランブラ219及び236による暗号化データを復号することにより、元のデータに戻す。デスクランブラ201及び220は、スクランブラ219及び236と同じアルゴリズムで排他的論理和演算することにより、アルゴリズム論理が打ち消されることになる。   The descramblers 201 and 220 in FIG. 1 restore the original data by decrypting the encrypted data by the scramblers 219 and 236. The descramblers 201 and 220 perform the exclusive OR operation with the same algorithm as the scramblers 219 and 236, thereby canceling the algorithm logic.

図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 second descrambler 201 is provided at the entrance of the transmission data tx, and the first scrambler 219 is provided at the exit of the transmission data tx. A first descrambler 220 is provided at the entrance of the reception data rx, and a second scrambler 236 is provided at the exit of the reception data rx.

まず、送信データ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 second descrambler 201 decodes the transmission data tx from the link layer 113 in FIG. 1 and outputs the decoded data to the first clock domain conversion unit 202. The first clock domain conversion unit 202 converts the transmission data input from the second descrambler 201 from a state synchronized with the second clock signal to a state synchronized with the first clock signal, and outputs it to the selector 203. . For example, the first clock domain conversion unit 202 has a synchronization buffer, writes transmission data from the second descrambler 201 to the synchronization buffer in synchronization with the second clock signal, and from the synchronization buffer. The data is read out in synchronization with the first clock signal and output to the selector 203.

セレクタ203は、送信データ(パケット)の種類に応じて、第1のクロックドメイン変換部202から入力した送信データを、第1のバッファ204内の10個のバッファ205〜214のいずれかに書き込む。ただし、セレクタ203は、第1のクロックドメイン変換部202から入力した送信データがロジカルアイドルデータであるときには、そのロジカルアイドルデータを第1のバッファ204に書き込まずに廃棄する。ロジカルアイドルデータは、0値データであり、意味がある通信を行っていない期間に送受信されるデータ(無効データ)である。   The selector 203 writes the transmission data input from the first clock domain conversion unit 202 in one of the ten buffers 205 to 214 in the first buffer 204 according to the type of transmission data (packet). However, when the transmission data input from the first clock domain conversion unit 202 is logical idle data, the selector 203 discards the logical idle data without writing it to the first buffer 204. The logical idle data is 0-value data and is data (invalid data) transmitted / received during a period in which no meaningful communication is performed.

第1のバッファ204は、送信データ(パケット)の種類毎のバッファ205〜214を有し、セレクタ203から入力したデータをバッファリングしてセレクタ218に出力する。送信動作では、低周波数の第2のクロック信号から高周波数の第1のクロック信号へデータを受け渡す。そのため、第1のバッファ204は、出力データが入力データより多いデータ量となる。第1のバッファ204は、入力データをそのまま出力すると、出力するデータが不足するため、次のような制御でデータを追加する。   The first buffer 204 has buffers 205 to 214 for each type of transmission data (packet), buffers the data input from the selector 203, and outputs the data to the selector 218. In the transmission operation, data is transferred from the low-frequency second clock signal to the high-frequency first clock signal. Therefore, the first buffer 204 has a data amount in which the output data is larger than the input data. If the first buffer 204 outputs the input data as it is, the data to be output is insufficient, so the data is added by the following control.

バッファ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 buffers 205 to 207 are PLP (Physical Layer Packet) buffers. FIG. 4A is a diagram illustrating a format example of PLP. The PLP has a 1-byte start frame 401 and a 3-byte control code 402, and is a packet necessary for basic control of the physical layer 111. The start frame 401 is represented by 8B10B encoded K28.5 (COM). The control code 402 indicates any one of the FTS represented by K28.1 of the K code, the SKP represented by K28.0, and the IDL represented by K28.3. The PTS FTS is buffered by the buffer 205. The PLP SKP is buffered by the buffer 206. The IDL of the PLP is buffered by the buffer 207.

バッファ205は、セレクタ203からPLPのFTSを入力してバッファリングする。FTSは、シリアルバスのビットを識別するためのビットロック、及びシンボルを識別するためのシンボルロックに使用されるパケットである。FTSは、ビットロック及びシンボルロックするまで連続転送が必要である。そのため、バッファ205は、図5(A)に示すように、セレクタ203からPLPのFTS(第1のデータ)を入力すると、その入力した同じPLPのFTS215を繰り返してセレクタ218に出力する。   The buffer 205 receives the PTS FTS from the selector 203 and buffers it. The FTS is a packet used for bit lock for identifying bits of the serial bus and symbol lock for identifying symbols. The FTS requires continuous transfer until it is bit-locked and symbol-locked. Therefore, as shown in FIG. 5A, when the P205 FTS (first data) is input from the selector 203, the buffer 205 repeatedly outputs the input PTS FTS 215 of the same PLP to the selector 218.

図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 buffer 205 of the PLP FTS. The input data of the buffer 205 is input at the cycle of the low-frequency second clock signal. The buffer 205 updates the buffering data every time the input data is input. When the data in the buffer 205 is updated, the output data of the buffer 205 is output by repeating the same data in the buffer 205 a predetermined number of times (for example, four times) in synchronization with the high-frequency first clock signal. . Continuous transfer is possible by repeatedly outputting the same data. Thereby, the bit lock and the symbol lock can be reliably performed.

図2において、バッファ206は、セレクタ203からPLPのSKPを入力してバッファリングする。SKPは、通信デバイス間の周波数偏差を吸収しデータの過不足の調整するために送受信されるパケットである。バッファ206は、セレクタ203からPLPのSKP(第3のデータ)を入力すると、その入力したPLPのSKPを繰り返さずにセレクタ218に出力する。   In FIG. 2, the buffer 206 receives the PLP SKP from the selector 203 and buffers it. The SKP is a packet that is transmitted and received in order to absorb frequency deviation between communication devices and adjust the excess or deficiency of data. When the PLP SKP (third data) is input from the selector 203, the buffer 206 outputs the input PLP SKP to the selector 218 without repeating.

バッファ207は、セレクタ203からPLPのIDLを入力してバッファリングする。IDLは、パワーセーブ時にバスの振幅を停止する際に使用され、以降は送受信データがないことを示すパケットである。バッファ207は、セレクタ203からPLPのIDLを入力すると、その入力したPLPのIDLを繰り返さずにセレクタ218に出力する。   The buffer 207 receives the IDL of the PLP from the selector 203 and buffers it. IDL is a packet used to stop the amplitude of the bus during power saving, and indicates that there is no transmission / reception data thereafter. When the PLP IDL is input from the selector 203, the buffer 207 outputs the input PLP IDL to the selector 218 without repeating it.

バッファ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)のいずれかのコードで表される。   Buffers 208 to 212 are DLLP (Data Link Layer Packet) buffers. FIG. 4B is a diagram illustrating a format example of DLLP. The DLLP includes a 1-byte start frame 411, a 4-byte control code 412, a 2-byte (16-bit) CRC (Cyclic Redundancy Check) code 413, and a 1-byte end frame 414. It is a packet for information transmission. The start frame 411 is represented by K28.2 (SDP) of 8B10B encoding. The control code 412 is represented by one of the following codes: Ack / Nac, FC (Flow Control) Posted, FC Non-Posted, FC Completion, and 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 buffer 208. DLL LP FC Posted is buffered by buffer 209. The non-posted of the FC of DLLP is buffered by the buffer 210. The completion of DLLP FC is buffered by the buffer 211. The DLL of DLLP is buffered by the buffer 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に出力する。   The buffer 208 inputs DLLLP Ack / Nac from the selector 203 and buffers it. The DLL Ack / Nac is represented by Ack when the received TLP (FIG. 4D) indicates that it is correct, or Nak when the received TLP has an error. In the control code 412, the sequence number of the TLP up to the point where it can be received is indicated. As the TLP communication progresses, the sequence number of the TLP being processed is also updated. Therefore, if the latest sequence number is known, old information is no longer necessary. Accordingly, when the DLL 208 receives DLLP Ack / Nac from the selector 203, the buffer 208 outputs the input DLLLP Ack / Nac to the selector 218 without repeating.

バッファ209〜211は、セレクタ203からDLLPのFCを入力してバッファリングする。DLLPのFCは、後述のTLPについて受信用バッファのオーバーフローを抑制するためのパケットである。   The buffers 209 to 211 receive the DLLP FC from the selector 203 and buffer it. The DLLLP FC is a packet for suppressing an overflow of a receiving buffer for a TLP described later.

バッファ209は、セレクタ203からDLLPのFCのPostedを入力してバッファリングする。DLLPのFCのPostedは、応答なしで完了するパケットである。   The buffer 209 receives the DLL LP FC Posted from the selector 203 and buffers it. DLLLP FC Posted is a packet that completes without a response.

バッファ210は、セレクタ203からDLLPのFCのNon−Postedを入力してバッファリングする。DLLPのFCのNon−Postedは、応答を待って完了するパケットである。   The buffer 210 inputs non-posted DLL LP FC from the selector 203 and buffers it. The non-posted FC of the DLLP is a packet that is completed after waiting for a response.

バッファ211は、セレクタ203からDLLPのFCのCompletionを入力してバッファリングする。DLLPのFCのCompletionは、応答(完了通知)のパケットである。   The buffer 211 inputs the DLL LP FC Completion from the selector 203 and buffers it. DLL Completion of FC is a response (completion notification) packet.

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 control code 412. As a result, the transmitting side of the TLP can determine the amount of free buffer on the receiving side based on the difference between the total amount transmitted by itself and the notified value. Using this, control for preventing overflow of the reception buffer is performed. Although the value is updated as the TLP communication progresses, the latest reception buffer information is obtained by the latest FC, so the old information is no longer necessary. Accordingly, when the buffers 209 to 211 each receive the DLLLP FC from the selector 203, the buffers 209 to 211 output the input DLLLP FC to the selector 218 without repeating them.

バッファ212は、セレクタ203からDLLPのPMを入力してバッファリングする。DLLPのPMは、電力の状態を制御するためのパケットであり、連続転送する必要はない。したがって、バッファ212は、セレクタ203からDLLPのPMを入力すると、その入力したDLLPのPMを繰り返さずにセレクタ218に出力する。   The buffer 212 receives the DLL of the DLLP from the selector 203 and buffers it. The DLL of the DLLP is a packet for controlling the power state and does not need to be continuously transferred. Accordingly, when the buffer 212 receives the DLL LP's PM from the selector 203, the buffer 212 outputs the input DLLP PM to the selector 218 without repeating.

バッファ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 buffer 213 is a TS (Training Sequence) buffer. FIG. 4C is a diagram illustrating an example of a TS format. The TS has a 1-byte start frame 421 and a 15-byte control code 422, and is a packet necessary for exchange and control of basic information of the physical layer 111. The start frame 421 is represented by 8B10B encoded K28.5 (COM). The control code 422 is represented by K code K23.7 (PAD) or D code. TS has the same start frame 421 as the PLP in FIG. 4A, but a different control code 422.

バッファ213は、セレクタ203からTSを入力してバッファリングする。TSは、PCI Express規格の2個のデバイス間が正しく通信できることの確認や調整を行い、物理層111の制御(レート変更やリセットなど)をコントロールするためのパケットであり、連続転送が必要なパケットである。連続転送の期間は、送信データtxの入力状態が連続していると判断できる期間となる。したがって、バッファ213は、図5(A)に示すように、セレクタ203からTSを入力すると、その入力した同じTS216を繰り返してセレクタ218に出力する。   The buffer 213 receives TS from the selector 203 and buffers it. TS is a packet for confirming and adjusting that two PCI Express standard devices can communicate correctly and controlling physical layer 111 (rate change, reset, etc.), and requires continuous transfer. It is. The continuous transfer period is a period during which it can be determined that the input state of the transmission data tx is continuous. Therefore, as shown in FIG. 5A, when the TS is input from the selector 203, the buffer 213 repeatedly outputs the same TS 216 that has been input to the selector 218.

図5(A)に示すように、バッファ213の入力データは、低周波数の第2のクロック信号の周期で入力される。バッファ213は、その入力データが入力される度にバッファリングデータを更新する。バッファ213の出力データは、バッファ213内のデータが更新されると、高周波数の第1のクロック信号に同期して、バッファ213内の同じデータを所定回数(例えば4回)繰り返して出力される。   As shown in FIG. 5A, the input data of the buffer 213 is input at the cycle of the low-frequency second clock signal. The buffer 213 updates the buffering data every time the input data is input. When the data in the buffer 213 is updated, the output data of the buffer 213 is output by repeating the same data in the buffer 213 a predetermined number of times (for example, four times) in synchronization with the high-frequency first clock signal. .

バッファ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 buffer 214 is a TLP (Transaction Layer Packet) buffer. FIG. 4D is a diagram illustrating a TLP format example. The TLP includes a 1-byte start frame 431, a 2-byte sequence number 432, a 12- or 16-byte header portion 433, a 0-4096-byte data portion 434, a 0- or 4-byte ECRC code 435, and a 4-byte LCRC code 436. And a 1-byte end frame 437, which is a packet for transmitting and receiving data in the transaction layer, which is an upper layer. The start frame 431 is 8B10B encoded K27.7 (STP). The header part 433 represents memory read / write, input / output circuit read / write, configuration read / write, completion notification (Completion), or message as the data type.

データの種類に応じて、上記の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 sequence number 432 is a field that is incremented by 1 every time TLP is transmitted. By associating the sequence number with the TLP sequence number that can be received by the ALP / Nak of the DLLP, it is possible to confirm that the transfer has been performed correctly. .

ECRCコード435は、データ部434のCRCコードである。LCRCコード436は、シーケンス番号432からECRCコード435までのCRCコードである。   The ECRC code 435 is a CRC code of the data part 434. The LCRC code 436 is a CRC code from the sequence number 432 to the ECRC code 435.

図2のバッファ214は、セレクタ203からTLPを入力すると、その入力したTLPを繰り返さずにセレクタ218に出力する。   When the TLP is input from the selector 203, the buffer 214 in FIG. 2 outputs the input TLP to the selector 218 without repeating.

上記のように、セレクタ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 domain conversion unit 202 is logical idle data, the selector 203 discards the logical idle data without writing it to the first buffer 204. The logical idle data is 0-value data and is data (invalid data) transmitted / received during a period in which no meaningful communication is performed. The first clock domain 121 does not buffer the logical idle data in the first buffer 204 when the input data of the selector 203 is logical idle data, and the logical idle data when there is no output data of the first buffer 204. Data (0-value data) 217 is output to selector 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は出力しない。   The selector 218 selects the output data from the buffers 205 to 214 and the logical idle data 217 in accordance with the priority order of the protocol according to the priority order of PLP> DLLP> TS> TLP> logical idle data (0 value data). To the scrambler 219. That is, the selector 218 selects data in the order of the data in the buffers 205 to 214 and the logical idle data 217 in this order. The priority of the data in the buffer 205 is the highest, and the priority of the logical idle data 217 is the lowest. Data switching between the buffers 205 to 214 is performed at intervals of PLP / TS / DLLP / TLP units. For example, even if data is stored in the PLP buffers 205 to 207 during the TLP output period, no new PLP is output until one TLP being output completes output.

第1のスクランブラ219は、図3の構成を有し、上記と同様に、セレクタ218からのデータを暗号化して図1の物理層111に送信データtxを出力する。   The first scrambler 219 has the configuration shown in FIG. 3, encrypts data from the selector 218, and outputs transmission data tx to the physical layer 111 shown in FIG.

次に、受信データ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 second scrambler 201, the first descrambler 220 decodes the reception data rx from the physical layer 111 in FIG. 1 and outputs it to the selector 221. The selector 221 writes the input data to one of the ten buffers 223 to 232 in the second buffer 222 according to the type of the input data (packet), similarly to the selector 203 described above. However, when the input data is logical idle data (0-value data), the selector 221 discards the logical idle data without writing it to the second buffer 222.

第2のバッファ222は、第1のバッファ204と同様に、受信データ(パケット)の種類毎のバッファ223〜232を有し、セレクタ221から入力したデータをバッファリングしてセレクタ234に出力する。受信動作では、高周波数の第1のクロック信号から低周波数の第2のクロック信号へデータを受け渡す。そのため、第2のバッファ222は、出力データが入力データよりも少ないデータ量となる。第2のバッファ222は、入力データを全てバッファリングすると、データが溢れる状況となるため、次のような制御を行う。   Similar to the first buffer 204, the second buffer 222 includes buffers 223 to 232 for each type of received data (packet), buffers the data input from the selector 221, and outputs the buffered data to the selector 234. In the reception operation, data is transferred from the first clock signal having a high frequency to the second clock signal having a low frequency. For this reason, the second buffer 222 has a smaller amount of output data than the input data. The second buffer 222 performs the following control because all the input data is buffered and the data overflows.

バッファ223は、バッファ205と同様に、セレクタ221からPLPのFTSを入力してバッファリングする。バッファ223は、図5(B)に示すように、セレクタ221からPLPのFTS(第2のデータ)を入力すると、そのPLPのFTSを間引いてセレクタ234に出力する。   Similarly to the buffer 205, the buffer 223 receives the PLP FTS from the selector 221 and buffers it. As shown in FIG. 5B, when the PLP FTS (second data) is input from the selector 221, the buffer 223 thins out the PLP FTS and outputs it to the selector 234.

図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 buffer 223 of the PLP FTS. Input data of the buffer 223 is input at the cycle of the first clock signal having a high frequency. The buffer 223 updates (overwrites) the buffering data every time the input data is input. As the output data of the buffer 205, the data of the buffer 205 is output at the cycle of the low-frequency second clock signal. For example, data “1”, “2”, “3”, “5”, “6”, “7” is thinned out, and data “0”, “4”, “8” is output. As a result, the buffer 223 can thin out and input the FTS of the input PLP.

バッファ224は、バッファ206と同様に、セレクタ221からPLPのSKPを入力してバッファリングする。バッファ224は、図5(B)と同様に、セレクタ221からPLPのSKPを入力すると、そのPLPのSKPを間引いてセレクタ234に出力する。   Similarly to the buffer 206, the buffer 224 receives the PLP SKP from the selector 221 and buffers it. Similarly to FIG. 5B, when the PLP SKP is input from the selector 221, the buffer 224 thins out the PLP SKP and outputs it to the selector 234.

バッファ225は、バッファ207と同様に、セレクタ221からPLPのIDLを入力してバッファリングする。バッファ225は、図5(B)と同様に、セレクタ221からPLPのIDLを入力すると、そのPLPのIDLを間引いてセレクタ234に出力する。   Similarly to the buffer 207, the buffer 225 inputs the PLP IDL from the selector 221 and buffers it. Similarly to FIG. 5B, when the PLP IDL is input from the selector 221, the buffer 225 thins out the PLP IDL and outputs it to the selector 234.

バッファ226は、バッファ208と同様に、セレクタ221からDLLPのAck/Nakを入力してバッファリングする。バッファ226は、図5(B)と同様に、セレクタ221からDLLPのAck/Nakを入力すると、そのDLLPのAck/Nakを間引いてセレクタ234に出力する。   Similarly to the buffer 208, the buffer 226 inputs DLLL Ack / Nak from the selector 221 and buffers it. Similarly to FIG. 5B, when the buffer 226 receives DLLP Ack / Nak from the selector 221, the buffer 226 thins out the DLLP Ack / Nak and outputs it to the selector 234.

バッファ227は、バッファ209と同様に、セレクタ221からDLLPのFCのPostedを入力してバッファリングする。バッファ227は、図5(B)と同様に、セレクタ221からDLLPのFCのPostedを入力すると、そのDLLPのFCのPostedを間引いてセレクタ234に出力する。   Similarly to the buffer 209, the buffer 227 inputs the DLL LP FC Posted from the selector 221 and performs buffering. Similarly to FIG. 5B, when the buffer 227 receives a DLLP FC posted from the selector 221, the buffer 227 thins out the DLLP FC posted and outputs it to the selector 234.

バッファ228は、バッファ210と同様に、セレクタ221からDLLPのFCのNon−Postedを入力してバッファリングする。バッファ228は、図5(B)と同様に、セレクタ221からDLLPのFCのNon−Postedを入力すると、そのDLLPのFCのNon−Postedを間引いてセレクタ234に出力する。   Similarly to the buffer 210, the buffer 228 inputs the non-posted DLL LP FC from the selector 221 and performs buffering. Similarly to FIG. 5B, the buffer 228 receives the non-posted DLLLP FC from the selector 221, thins out the non-posted DLLLP FC, and outputs the result to the selector 234.

バッファ229は、バッファ211と同様に、セレクタ221からDLLPのFCのCompletionを入力してバッファリングする。バッファ229は、図5(B)と同様に、セレクタ221からDLLPのFCのCompletionを入力すると、そのDLLPのFCのCompletionを間引いてセレクタ234に出力する。   Similarly to the buffer 211, the buffer 229 inputs the DLL LP FC Completion from the selector 221 and buffers it. Similarly to FIG. 5B, the buffer 229 receives the DLL LP FC Completion from the selector 221 and thins out the DLL LP FC Completion and outputs it to the selector 234.

バッファ230は、バッファ212と同様に、セレクタ221からDLLPのPMを入力してバッファリングする。バッファ230は、図5(B)と同様に、セレクタ221からDLLPのPMを入力すると、そのDLLPのPMを間引いてセレクタ234に出力する。   Similarly to the buffer 212, the buffer 230 inputs the DLL of DLLP from the selector 221 and buffers it. Similarly to FIG. 5B, when the buffer 230 receives the DLLP PM from the selector 221, the buffer 230 thins out the DLLP PM and outputs it to the selector 234.

バッファ231は、バッファ213と同様に、セレクタ221からTSを入力してバッファリングする。バッファ231は、図5(B)と同様に、セレクタ221からTSを入力すると、そのTSを間引いてセレクタ234に出力する。   Similarly to the buffer 213, the buffer 231 receives TS from the selector 221 and performs buffering. Similarly to FIG. 5B, when the TS is input from the selector 221, the buffer 231 thins out the TS and outputs it to the selector 234.

バッファ232は、バッファ214と同様に、セレクタ221からTLPを入力してバッファリングする。TLPのバッファ232は、受信側のリンク層113(図1)にある受信バッファ以上のバッファサイズを用意すれば、オーバーフローしない。したがって、バッファ232は、セレクタ221からTLPを入力すると、そのTLPを間引かずにセレクタ234に出力する。   Similarly to the buffer 214, the buffer 232 receives TLP from the selector 221 and buffers it. The TLP buffer 232 does not overflow if a buffer size larger than the reception buffer in the link layer 113 (FIG. 1) on the reception side is prepared. Accordingly, when the TLP is input from the selector 221, the buffer 232 outputs the TLP to the selector 234 without thinning out the TLP.

上記のように、セレクタ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 first descrambler 220 is logical idle data, the selector 221 discards the logical idle data without writing it to the second buffer 222. The logical idle data is 0-value data and is data (invalid data) transmitted / received during a period in which no meaningful communication is performed. The first clock domain 121 does not buffer the logical idle data in the second buffer 222 when the input data of the selector 221 is logical idle data, and the logical idle data when there is no output data of the second buffer 222. (0 value data) 233 is output to the selector 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は出力しない。   The selector 234 selects the output data from the buffers 223 to 232 and the logical idle data 233 according to the priority order of the protocol in the order of priority of PLP> DLLP> TS> TLP> logical idle data (0 value data). To the clock domain conversion unit 235. That is, the selector 234 selects data in the order of priority of the data in the buffers 223 to 232 and the logical idle data 233. The priority of the data in the buffer 223 is the highest, and the priority of the logical idle data 233 is the lowest. Data switching between the buffers 223 to 232 is performed at breaks in units of PLP / TS / DLLP / TLP. For example, even if data is stored in the PLP buffers 223 to 225 during the TLP output period, no new PLP is output until one TLP being output completes the output.

第2のクロックドメイン変換部235は、第1のクロックドメイン変換部202と同様に、セレクタ234から入力したデータを第1のクロック信号に同期した状態から第2のクロック信号に同期した状態に変換して第2のスクランブラ236に出力する。   Similar to the first clock domain conversion unit 202, the second clock domain conversion unit 235 converts the data input from the selector 234 from a state synchronized with the first clock signal to a state synchronized with the second clock signal. And output to the second scrambler 236.

第2のスクランブラ236は、図3の構成を有し、上記と同様に、第2のクロックドメイン変換部235からの受信データを暗号化して受信データrxを図1のリンク層113に出力する。   The second scrambler 236 has the configuration shown in FIG. 3, and encrypts the reception data from the second clock domain conversion unit 235 and outputs the reception data rx to the link layer 113 shown in FIG. .

以上のように、PLPのFTSの送信バッファ205及びTSの送信バッファ213については、データの連続性が必要であるが、送信バッファ205及び213への入力が遅いため、連続で入力する状況でもバッファ205及び213が空になる状態が発生する。送信する情報が無いことで、データの連続性が損なわれるため、バッファ205及び213が空になった状態では、次の入力データが格納されるまでの一定期間、同じデータを繰り返し出力することで連続性を維持する。   As described above, for the PLP FTS transmission buffer 205 and the TS transmission buffer 213, data continuity is necessary. However, since the input to the transmission buffers 205 and 213 is slow, the buffer is used even in a situation where data is input continuously. A state occurs in which 205 and 213 are empty. Since there is no information to be transmitted, the continuity of data is lost. Therefore, when the buffers 205 and 213 are empty, the same data is repeatedly output for a certain period until the next input data is stored. Maintain continuity.

また、バッファ205〜214に格納されているデータが無く、繰り返し出力も行っていない場合は、ロジカルアイドルデータ217を出力することにより、データが途切れることなく、データ転送することが可能となる。   Further, when there is no data stored in the buffers 205 to 214 and no repeated output is performed, the logical idle data 217 is output so that the data can be transferred without interruption.

PLPのFTSのバッファ205のパケットは、すべて内容が同じデータであり、シリアルバスのビットロック及びシンボルロックのために連続性と転送期間が必要なパケットである。また、TSのバッファ213のパケットは、通信デバイス間でハンドシェークを行いながら同じデータを繰り返し転送する性質があり、対向側のデータが変化するまでは同じデータを連続で転送し続ける。以上から、連続転送が必要なパケットについては、同じデータ送信しているため、バッファ205及び213内において同じデータを繰り返し転送しても送信動作として影響はない。   The packets of the PLP FTS buffer 205 are all the same data, and need continuity and transfer period for bit lock and symbol lock of the serial bus. The packet in the TS buffer 213 has a property of repeatedly transferring the same data while performing handshaking between communication devices, and continues to transfer the same data continuously until the data on the opposite side changes. From the above, since the same data is transmitted for packets that require continuous transfer, repeated transmission of the same data in the buffers 205 and 213 does not affect the transmission operation.

なお、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 idle data 217 is transferred when there is no data. Thus, the transmission operation can be established.

次に、第2のバッファ222について説明する。PLP(FTS/SKP/IDL)の受信バッファ223〜225のデータは、バッファ223〜225の内容を間引いても問題はない。PLPのFTSについては、データの連続性が必要であるが、受信動作については、出力するよりも入力が速いため、繰り返すことなく、そのままの制御で連続性を保つことができる。   Next, the second buffer 222 will be described. There is no problem even if data in the PLP (FTS / SKP / IDL) reception buffers 223 to 225 is thinned out. For the PTS FTS, data continuity is necessary, but the receiving operation is faster than the output, and therefore the continuity can be maintained by the same control without repeating.

TSの受信バッファ231は、通信デバイス間でハンドシェークを行いながら、同じデータを繰り返し転送する性質があり、対向側のデータが変化するまでは同じデータを連続で転送し続ける。バッファ231の内容を上書きして出力しても、最終的にハンドシェークされたことが判断できれば良いので、間引いても影響はない。連続性については、受信動作では、出力するよりも入力が速いため、そのままの制御で連続性を保つことができる。   The TS reception buffer 231 has the property of repeatedly transferring the same data while performing handshaking between communication devices, and continues to transfer the same data continuously until the data on the opposite side changes. Even if the contents of the buffer 231 are overwritten and output, it is only necessary to finally determine that the handshaking has been performed. As for continuity, in the receiving operation, since input is faster than output, continuity can be maintained by the control as it is.

DLLPのAck/Nakの受信バッファ226のパケットは、シーケンス番号の管理により、TLPの受領状況を判断するためにある。このシーケンス番号は、TLPの送信毎に1増加する番号であり、この番号を利用して、どのTLPまでが受領できたのかを判断することに利用される。最新のDLLPのAck/Nakを参照することにより、今現在のTLPの受領状況が判断できるので、古い情報を上書きしたとしても、受信動作として影響はない。   The packets in the DLL LP Ack / Nak reception buffer 226 are used for judging the TLP reception status by managing the sequence number. This sequence number is a number that is incremented by one every TLP transmission, and is used to determine which TLP has been received by using this number. Since the current TLP reception status can be determined by referring to the latest DLLP Ack / Nak, even if old information is overwritten, the reception operation is not affected.

DLLPのFCの受信バッファ227〜229についても同様で、更新された「受信総量+受信バッファの空き量」を通知するので、最新の受信バッファの空き量が判断できれば良く、古い情報を上書きしたとしても、受信動作として影響はない。   The same applies to the receive buffers 227 to 229 of the DLLP FC, and the updated “received total amount + empty amount of receive buffer” is notified, so it is only necessary to determine the latest available receive buffer amount, and old information is overwritten. However, this does not affect the reception operation.

DLLPのPMの受信バッファ230のパケットについては、連続性もなく、転送間隔がバッファの制御時間に対して十分に長いため、バッファに入力できたことを通知できれば良い。   The packets in the DLL reception buffer 230 of the DLLP are not continuous, and the transfer interval is sufficiently longer than the control time of the buffer.

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 link layer 113 does not overflow and having the same amount of reception buffer capacity as the link layer 113. Control that the TLP reception buffer does not overflow is performed using the DLLP FC, and the transmission buffer determines the free capacity of the reception buffer, and transmits a new TLP within a range in which the reception buffer does not overflow. By buffering the TLP in the bridge circuit 112, even if the TLP is delayed and transferred to the reception buffer, the value of the DLLLP FC is not updated, and it can be determined that the reception buffer has no free space on the transmission side. Unnecessary TLP transmission does not occur and reception operation is not affected.

また、各バッファ223〜232に格納されているデータが無い場合は、ロジカルアイドルデータ(0値データ)233を出力することにより、データが途切れることなく、データ転送することが可能となる。   In addition, when there is no data stored in each of the buffers 223 to 232, it is possible to transfer data without interruption by outputting logical idle data (0-value data) 233.

なお、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 clock domain converters 202 and 235 perform clocks between the first clock domain 121 synchronized with the first clock signal and the second clock domain 122 synchronized with the second clock signal. Domain conversion can be performed. Further, the link layer 113 can be mounted on the FPGA 102 (low-speed clock operation) without changing the logic of the link layer 113 (without changing the bus width). In addition, even when the link layer 113 is mounted on a silicon substrate, the operation clock of the link layer 113 can be reduced, and the power consumption can be reduced.

なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。   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 silicon 102 FPGA
111 Physical layer 112 Bridge circuit 113 Link layer 121 High-speed clock domain 122 Low-speed clock domain 201 Second descrambler 202 First clock domain converter 203, 218, 221, 234 Selector 204 First buffer 219 First scrambler 220 First descrambler 222 Second buffer 235 Second clock domain converter 236 Second scrambler

Claims (4)

第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のクロックドメイン変換部に出力することを特徴とするブリッジ回路。
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のクロックドメイン変換部から第3のデータを入力すると、前記入力した前記第3のデータを繰り返さずに外部に出力することを特徴とする請求項1記載のブリッジ回路。   2. The first buffer according to claim 1, wherein when the third data is input from the first clock domain converter, the first buffer outputs the input third data to the outside without repeating. Bridge circuit. 前記第1のクロックドメインは、
前記第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のバッファからのデータを暗号化して外部に出力する第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.
JP2012145666A 2012-06-28 2012-06-28 Bridge circuit Active JP5928192B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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