JP6601282B2 - Data transfer apparatus, data transfer system, and control method for data transfer system - Google Patents

Data transfer apparatus, data transfer system, and control method for data transfer system Download PDF

Info

Publication number
JP6601282B2
JP6601282B2 JP2016046172A JP2016046172A JP6601282B2 JP 6601282 B2 JP6601282 B2 JP 6601282B2 JP 2016046172 A JP2016046172 A JP 2016046172A JP 2016046172 A JP2016046172 A JP 2016046172A JP 6601282 B2 JP6601282 B2 JP 6601282B2
Authority
JP
Japan
Prior art keywords
data
transmission
data transfer
unit
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016046172A
Other languages
Japanese (ja)
Other versions
JP2017163348A (en
Inventor
竜二 岩月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016046172A priority Critical patent/JP6601282B2/en
Publication of JP2017163348A publication Critical patent/JP2017163348A/en
Application granted granted Critical
Publication of JP6601282B2 publication Critical patent/JP6601282B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Description

本発明は、データ転送装置、データ転送システム、及びデータ転送システムの制御方法に関する。   The present invention relates to a data transfer device, a data transfer system, and a data transfer system control method.

情報処理システムの高速シリアルバスを用いたデータ転送において、伝送品質向上のために、スクランブラ及びデスクランブラと呼ばれる回路が用いられている。送信側のデータ転送装置(データ送信装置)は、スクランブラによってデータをランダム化し、ランダム化したデータを受信側のデータ転送装置(データ受信装置)へ送信する。データ受信装置は、ランダム化されたデータを受信し、デスクランブラによって受信データから元のデータを復元する。このように、スクランブラによって送信データをランダム化することで、次のような効果が得られる。
(1)データ受信装置に設けられたClock Data Recovery(CDR)回路がクロック信号を再生するために利用する、データエッジの発生頻度が増加する。
(2)送信データの論理“1”と論理“0”のバランスが良くなり、ベースライン・ワンダによる伝送品質の悪化が防止される。
(3)送信データの固定周波数成分が低下するため、電磁波ノイズのピーク低減に寄与する。
(4)送信データの固定周波数成分による符号間干渉(Intersymbol Interference)によって伝送品質が悪化することが防止される。
In data transfer using a high-speed serial bus of an information processing system, circuits called a scrambler and a descrambler are used to improve transmission quality. The data transfer device (data transmission device) on the transmission side randomizes the data with a scrambler and transmits the randomized data to the data transfer device (data reception device) on the reception side. The data receiving device receives the randomized data and restores the original data from the received data by the descrambler. Thus, the following effects are acquired by randomizing transmission data with a scrambler.
(1) The frequency of occurrence of data edges used by the clock data recovery (CDR) circuit provided in the data receiving apparatus to recover the clock signal increases.
(2) The balance between logic “1” and logic “0” of transmission data is improved, and deterioration of transmission quality due to baseline wander is prevented.
(3) Since the fixed frequency component of the transmission data is reduced, it contributes to the reduction of electromagnetic noise peaks.
(4) Transmission quality is prevented from deteriorating due to intersymbol interference caused by fixed frequency components of transmission data.

スクランブラ及びデスクランブラは、同一の多項式に基づいてデータのランダム化及び復元を行う。このため、デスクランブラがデータを復元する際には、デスクランブラがスクランブラと同期化される。   The scrambler and descrambler randomize and restore data based on the same polynomial. Therefore, when the descrambler restores data, the descrambler is synchronized with the scrambler.

例えば、PCI Express Base Specification Revision 3.0等で使用されるアディティブ・スクランブラの場合、線形帰還シフトレジスタ(LFSR)を用いて乱数が生成される。データ送信装置のスクランブラは、スクランブラ及びデスクランブラの同期化のために、LFSR初期化パターンをデータ受信装置へ送信するとき、スクランブラのLFSRが保持する乱数を、シード値と呼ばれる初期値に初期化する。データ受信装置のデスクランブラは、データ送信装置からLFSR初期化パターンを受信したとき、デスクランブラのLFSRが保持する乱数をシード値に初期化する。   For example, in the case of an additive scrambler used in PCI Express Base Specification Revision 3.0 or the like, a random number is generated using a linear feedback shift register (LFSR). When the scrambler of the data transmission device transmits the LFSR initialization pattern to the data reception device for synchronization of the scrambler and the descrambler, the random number held by the LFSR of the scrambler is set to an initial value called a seed value. initialize. When the descrambler of the data receiving device receives the LFSR initialization pattern from the data transmitting device, the descrambler initializes a random number held in the LFSR of the descrambler to a seed value.

データ送信装置及びデータ受信装置は、LFSR初期化パターンを送受信することで、スクランブラ及びデスクランブラの乱数を同じ値に初期化し、これによってスクランブラ及びデスクランブラの同期化が完了する。同期化完了後に、デスクランブラは、スクランブルされている受信データを正しく復元できるようになる。アディティブ・スクランブラは、同期スクランブラと呼ばれることがある。   The data transmitting device and the data receiving device initialize the random numbers of the scrambler and descrambler to the same value by transmitting and receiving the LFSR initialization pattern, thereby completing the synchronization of the scrambler and descrambler. After the synchronization is completed, the descrambler can correctly restore the scrambled received data. The additive scrambler is sometimes called a synchronous scrambler.

フレーム同期信号にデータ信号列を付加した信号をスクランブルして伝送するシステムも知られている(例えば、特許文献1を参照)。   A system is also known that scrambles and transmits a signal obtained by adding a data signal sequence to a frame synchronization signal (see, for example, Patent Document 1).

特開昭63−226145号公報JP 63-226145 A

しかしながら、従来のデータ転送装置では、通常データはスクランブルしてから送信されるが、LFSR初期化パターンはスクランブルすることなく送信される。このため、スクランブルされていないLFSR初期化パターンの送信によって、伝送品質の低下を招く可能性がある。   However, in the conventional data transfer apparatus, normal data is transmitted after being scrambled, but the LFSR initialization pattern is transmitted without being scrambled. For this reason, transmission quality may be degraded by transmission of an unscrambled LFSR initialization pattern.

なお、かかる問題は、PCI Expressで使用されるアディティブ・スクランブラに限らず、他のデータ転送システムにおいて使用されるスクランブラにおいても生ずるものである。   Such a problem occurs not only in the additive scrambler used in PCI Express, but also in scramblers used in other data transfer systems.

1つの側面において、本発明は、スクランブラ及びデスクランブラの同期化を行うデータ転送システムにおいて、伝送品質の低下を抑制することを目的とする。   In one aspect, an object of the present invention is to suppress a decrease in transmission quality in a data transfer system that synchronizes a scrambler and a descrambler.

1つの案では、データ転送装置は、受信部、更新部、復元部、及び制御部を含む。
受信部は、第1期間において、第1乱数を用いて第1データ列をスクランブルすることで生成される、第1乱数を含む第1送信データ列を、データ送信装置から受信する。そして、受信部は、第2期間において、第1乱数を更新して得られる第2乱数を用いて第2データ列をスクランブルすることで生成される、第2乱数を含む第2送信データ列を、データ送信装置から受信する。
In one plan, the data transfer apparatus includes a receiving unit, an updating unit, a restoring unit, and a control unit.
The receiving unit receives, from the data transmission device, a first transmission data sequence including the first random number generated by scrambling the first data sequence using the first random number in the first period. The receiving unit generates a second transmission data sequence including the second random number generated by scrambling the second data sequence using the second random number obtained by updating the first random number in the second period. Receive from the data transmission device.

更新部は、受信部が受信した第1送信データ列に含まれる第1乱数を更新して、第2乱数を生成する。復元部は、更新部が生成した第2乱数を用いて第2送信データ列をデスクランブルすることで、第2送信データ列から第2データ列を復元する。制御部は、復元部が復元した第2データ列が所定のデータ列である場合、生成した乱数を更新するように更新部を制御する。   The updating unit updates the first random number included in the first transmission data sequence received by the receiving unit, and generates a second random number. The restoration unit restores the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the second random number generated by the update unit. When the second data string restored by the restoration unit is a predetermined data string, the control unit controls the update unit to update the generated random number.

実施形態によれば、スクランブラ及びデスクランブラの同期化を行うデータ転送システムにおいて、伝送品質の低下を抑制することができる。   According to the embodiment, in the data transfer system that synchronizes the scrambler and the descrambler, it is possible to suppress a decrease in transmission quality.

アディティブ・スクランブラを用いたデータ転送システムの構成図である。It is a block diagram of a data transfer system using an additive scrambler. スクランブラの構成図である。It is a block diagram of a scrambler. デスクランブラの構成図である。It is a block diagram of a descrambler. LFSR初期化パターンを用いないデータ転送システムの構成図である。It is a block diagram of the data transfer system which does not use a LFSR initialization pattern. データ転送システムの制御方法のフローチャートである。It is a flowchart of the control method of a data transfer system. データ転送システムの具体例を示す構成図である。It is a block diagram which shows the specific example of a data transfer system. デスクランブラロックパターンを示す図である。It is a figure which shows a descrambler lock pattern. LFSR初期化パターンを用いないスクランブラの構成図である。It is a block diagram of the scrambler which does not use a LFSR initialization pattern. LFSR初期化パターンを用いないデスクランブラの構成図である。It is a block diagram of the descrambler which does not use a LFSR initialization pattern. 判定部の動作を示すフローチャート(その1)である。It is a flowchart (the 1) which shows operation | movement of a determination part. 判定部の動作を示すフローチャート(その2)である。It is a flowchart (the 2) which shows operation | movement of a determination part. デスクランブラの動作を示すタイミングチャートである。It is a timing chart which shows operation | movement of a descrambler. 受信シーケンスコントローラの動作を示すフローチャート(その1)である。It is a flowchart (the 1) which shows operation | movement of a reception sequence controller. 受信シーケンスコントローラの動作を示すフローチャート(その2)である。It is a flowchart (the 2) which shows operation | movement of a reception sequence controller. 送信シーケンスコントローラの動作を示すフローチャート(その1)である。It is a flowchart (the 1) which shows operation | movement of a transmission sequence controller. 送信シーケンスコントローラの動作を示すフローチャート(その2)である。It is a flowchart (the 2) which shows operation | movement of a transmission sequence controller. 送信シーケンスコントローラの動作を示すフローチャート(その3)である。It is a flowchart (the 3) which shows operation | movement of a transmission sequence controller. 送信シーケンスコントローラの動作を示すタイミングチャートである。It is a timing chart which shows operation | movement of a transmission sequence controller. 情報処理システムの構成図である。It is a block diagram of an information processing system.

以下、図面を参照しながら、実施形態を詳細に説明する。
図1は、アディティブ・スクランブラを用いたデータ転送システムの構成例を示している。図1のデータ転送システムは、データ転送装置101及びデータ転送装置102を含む。データ転送装置101は、送信回路111、受信回路112、及びトレーニング制御部113を含み、データ転送装置102は、送信回路121、受信回路122、及びトレーニング制御部123を含む。シリアルバス103は、データ転送装置101の送信回路111と、データ転送装置102の受信回路122とを接続するとともに、データ転送装置102の送信回路121と、データ転送装置101の受信回路112とを接続する。
Hereinafter, embodiments will be described in detail with reference to the drawings.
FIG. 1 shows a configuration example of a data transfer system using an additive scrambler. The data transfer system in FIG. 1 includes a data transfer apparatus 101 and a data transfer apparatus 102. The data transfer apparatus 101 includes a transmission circuit 111, a reception circuit 112, and a training control unit 113, and the data transfer apparatus 102 includes a transmission circuit 121, a reception circuit 122, and a training control unit 123. The serial bus 103 connects the transmission circuit 111 of the data transfer apparatus 101 and the reception circuit 122 of the data transfer apparatus 102, and connects the transmission circuit 121 of the data transfer apparatus 102 and the reception circuit 112 of the data transfer apparatus 101. To do.

トレーニング制御部113は、送信シーケンスコントローラ151及び受信シーケンスコントローラ152を含み、シリアルバス103のリンク初期化及びリンク再初期化の制御を行う。送信シーケンスコントローラ151は、主として送信回路111に対する制御を行い、受信シーケンスコントローラ152は、主として受信回路112に対する制御を行う。   The training control unit 113 includes a transmission sequence controller 151 and a reception sequence controller 152, and controls link initialization and link reinitialization of the serial bus 103. The transmission sequence controller 151 mainly controls the transmission circuit 111, and the reception sequence controller 152 mainly controls the reception circuit 112.

送信回路111は、Cyclic Redundancy Check(CRC)生成部131、パターン生成部132、セレクタ133、スクランブラ134、セレクタ135、エンコーダ136、及び変換部137を含む。受信回路112は、変換部141、アライメント回路142、アライメント検出部143、エラスティックバッファ144、デコーダ145、デスクランブラ146、パターン受信部147、及びCRCチェッカ148を含む。   The transmission circuit 111 includes a cyclic redundancy check (CRC) generation unit 131, a pattern generation unit 132, a selector 133, a scrambler 134, a selector 135, an encoder 136, and a conversion unit 137. The reception circuit 112 includes a conversion unit 141, an alignment circuit 142, an alignment detection unit 143, an elastic buffer 144, a decoder 145, a descrambler 146, a pattern reception unit 147, and a CRC checker 148.

スクランブラ134は、アディティブ・スクランブラであり、デスクランブラ146は、アディティブ・デスクランブラである。以下では、スクランブラ134及びデスクランブラ146が保持する乱数を、LFSR値と記すことがある。   The scrambler 134 is an additive scrambler, and the descrambler 146 is an additive descrambler. Hereinafter, the random numbers held by the scrambler 134 and the descrambler 146 may be referred to as LFSR values.

データ転送装置102の送信回路121、受信回路122、及びトレーニング制御部123の構成についても、データ転送装置101の送信回路111、受信回路112、及びトレーニング制御部113の構成と同様である。   The configurations of the transmission circuit 121, the reception circuit 122, and the training control unit 123 of the data transfer apparatus 102 are the same as the configurations of the transmission circuit 111, the reception circuit 112, and the training control unit 113 of the data transfer apparatus 101.

まず、送信回路111の動作について説明する。リンク初期化中において、送信回路111は、Training Sequence Ordered Set 1(tsos1)及びtsos2と呼ばれるトレーニングパターンをデータ転送装置102へ送信する。以下では、tsos1及びtsos2を、単にtsosと記すことがある。   First, the operation of the transmission circuit 111 will be described. During link initialization, the transmission circuit 111 transmits training patterns called Training Sequence Ordered Set 1 (tsos1) and tsos2 to the data transfer apparatus 102. Hereinafter, tsos1 and tsos2 may be simply referred to as tsos.

トレーニング制御部113は、tsos1の送信を指示する信号tsos1_send及びtsos2の送信を指示する信号tsos2_sendをパターン生成部132へ出力する。また、トレーニング制御部113は、スクランブラ134の出力を選択する信号scrambler_selectをセレクタ135へ出力する。パターン生成部132は、tsosを生成し、セレクタ133は、tsosをスクランブラ134へ出力し、スクランブラ134は、tsosをスクランブルし、セレクタ135は、スクランブルされたtsosをエンコーダ136へ出力する。   The training control unit 113 outputs the signal tsos1_send instructing transmission of tsos1 and the signal tsos2_send instructing transmission of tsos2 to the pattern generation unit 132. Further, the training control unit 113 outputs a signal scrambler_select for selecting the output of the scrambler 134 to the selector 135. The pattern generation unit 132 generates tsos, the selector 133 outputs tsos to the scrambler 134, the scrambler 134 scrambles tsos, and the selector 135 outputs the scrambled tsos to the encoder 136.

エンコーダ136は、スクランブルされたtsosをエンコードすることで、そのtsosにenc−bitを付加する。enc−bitは、エンコードブロックの境界、トレーニングパターン又はパケット等のデータ種別、スクランブルの有無等を示す情報を含む。データ転送装置102は、enc−bitによって、エンコードブロックの境界、データ種別、スクランブルの有無等を判定することができる。スクランブル後に付加されるenc−bit自体は、スクランブルされていない。   The encoder 136 encodes the scrambled tsos to add an enc-bit to the tsos. The enc-bit includes information indicating the boundary of the encoding block, the data type such as a training pattern or a packet, the presence / absence of scramble, and the like. The data transfer apparatus 102 can determine the boundary of the encoded block, the data type, the presence / absence of scramble, and the like based on enc-bit. The enc-bit itself added after scrambling is not scrambled.

変換部137は、エンコードされたtsosを、パラレルデータからシリアルデータに変換し、シリアルバス103へ出力する。これにより、tsosがデータ転送装置101からデータ転送装置102へ送信される。   The conversion unit 137 converts the encoded tsos from parallel data to serial data, and outputs the serial data to the serial bus 103. As a result, tsos is transmitted from the data transfer apparatus 101 to the data transfer apparatus 102.

tsosの送信中において、送信回路111は、スクランブラ134と受信回路122内のデスクランブラとを同期化するため、定期的に、LFSR初期化パターンと呼ばれるトレーニングパターンをデータ転送装置102へ送信する。   During transmission of tsos, the transmission circuit 111 periodically transmits a training pattern called an LFSR initialization pattern to the data transfer apparatus 102 in order to synchronize the scrambler 134 and the descrambler in the reception circuit 122.

トレーニング制御部113は、LFSR初期化パターンの送信を指示する信号dsc_init_ptn_sendをパターン生成部132へ出力し、LFSR値の初期値を選択する信号scrambler_initをスクランブラ134へ出力する。パターン生成部132は、LFSR初期化パターンを生成し、セレクタ133は、LFSR初期化パターンをセレクタ135へ出力し、セレクタ135は、LFSR初期化パターンをエンコーダ136へ出力する。したがって、LFSR初期化パターンは、スクランブラ134を迂回してエンコーダ136へ出力される。   The training control unit 113 outputs a signal dsc_init_ptn_send for instructing transmission of the LFSR initialization pattern to the pattern generation unit 132, and outputs a signal scrambler_init for selecting the initial value of the LFSR value to the scrambler 134. The pattern generation unit 132 generates an LFSR initialization pattern, the selector 133 outputs the LFSR initialization pattern to the selector 135, and the selector 135 outputs the LFSR initialization pattern to the encoder 136. Therefore, the LFSR initialization pattern is output to the encoder 136 bypassing the scrambler 134.

エンコーダ136は、LFSR初期化パターンをエンコードし、変換部137は、エンコードされたLFSR初期化パターンをシリアルデータに変換して、シリアルバス103へ出力する。これにより、LFSR初期化パターンがデータ転送装置101からデータ転送装置102へ送信される。   The encoder 136 encodes the LFSR initialization pattern, and the conversion unit 137 converts the encoded LFSR initialization pattern into serial data and outputs the serial data to the serial bus 103. As a result, the LFSR initialization pattern is transmitted from the data transfer apparatus 101 to the data transfer apparatus 102.

リンク初期化が完了すると、CRC生成部131は、通常データのパケットにCRCを付加して、セレクタ133へ出力する。トレーニング制御部113は、CRC生成部131の出力を選択する信号packet_selectをセレクタ133へ出力し、スクランブラ134の出力を選択する信号scrambler_selectをセレクタ135へ出力する。   When the link initialization is completed, the CRC generation unit 131 adds a CRC to the normal data packet and outputs the packet to the selector 133. The training control unit 113 outputs a signal packet_select for selecting the output of the CRC generation unit 131 to the selector 133, and outputs a signal scrambler_select for selecting the output of the scrambler 134 to the selector 135.

セレクタ133は、パケットをスクランブラ134へ出力し、スクランブラ134は、パケットをスクランブルする。セレクタ135は、スクランブルされたパケットをエンコーダ136へ出力し、エンコーダ136は、スクランブルされたパケットをエンコードし、変換部137は、エンコードされたパケットをシリアルデータに変換して、シリアルバス103へ出力する。これにより、パケットがデータ転送装置101からデータ転送装置102へ送信される。   The selector 133 outputs the packet to the scrambler 134, and the scrambler 134 scrambles the packet. The selector 135 outputs the scrambled packet to the encoder 136, the encoder 136 encodes the scrambled packet, and the conversion unit 137 converts the encoded packet into serial data and outputs it to the serial bus 103. . As a result, the packet is transmitted from the data transfer apparatus 101 to the data transfer apparatus 102.

リンク初期化中又はリンク初期化完了後に関わらず、送信回路111は、定期的にSKIP Ordered Set(skpos)と呼ばれるパターンをデータ転送装置102へ送信する。skposは、データ転送装置101とデータ転送装置102との間におけるオシレータの周波数偏差を吸収するために用いられる。   Regardless of link initialization or after link initialization is completed, the transmission circuit 111 periodically transmits a pattern called SKIP Ordered Set (skpos) to the data transfer apparatus 102. The skpos is used to absorb the frequency deviation of the oscillator between the data transfer apparatus 101 and the data transfer apparatus 102.

トレーニング制御部113は、skposの送信を指示する信号skpos_sendをパターン生成部132へ出力する。パターン生成部132によって生成されるskposは、スクランブラ134を迂回してエンコーダ136へ出力され、変換部137からシリアルバス103へ出力される。これにより、skposがデータ転送装置101からデータ転送装置102へ送信される。   The training control unit 113 outputs a signal skpos_send that instructs transmission of skpos to the pattern generation unit 132. The skpos generated by the pattern generation unit 132 bypasses the scrambler 134 and is output to the encoder 136 and is output from the conversion unit 137 to the serial bus 103. As a result, skpos is transmitted from the data transfer apparatus 101 to the data transfer apparatus 102.

このとき、トレーニング制御部113は、LFSR値のホールドを指示する信号scrambler_holdをスクランブラ134へ出力し、スクランブラ134は、LFSR値をホールドする。   At this time, the training control unit 113 outputs a signal scrambler_hold instructing to hold the LFSR value to the scrambler 134, and the scrambler 134 holds the LFSR value.

次に、受信回路112の動作について説明する。データ転送装置102の送信回路121も、送信回路111と同様に動作して、tsos、LFSR初期化パターン、及びskposをデータ転送装置101へ送信する。変換部141は、シリアルバス103から入力される受信データを、シリアルデータからパラレルデータに変換して、アライメント回路142及びアライメント検出部143へ出力する。   Next, the operation of the receiving circuit 112 will be described. The transmission circuit 121 of the data transfer apparatus 102 operates in the same manner as the transmission circuit 111, and transmits tsos, the LFSR initialization pattern, and skpos to the data transfer apparatus 101. The converter 141 converts the received data input from the serial bus 103 from serial data to parallel data, and outputs the converted data to the alignment circuit 142 and the alignment detector 143.

リンク初期化中において、アライメント検出部143は、受信データのenc−bit等に基づいて、エンコードブロックの境界を検出する。そして、アライメント検出部143は、エンコードブロックの境界の検出を示す信号align_detと、エンコードブロックの境界を含むデータalign_boundaryとを、アライメント回路142へ出力する。   During link initialization, the alignment detection unit 143 detects the boundary of the encoded block based on enc-bit or the like of the received data. Then, the alignment detection unit 143 outputs to the alignment circuit 142 a signal align_det indicating detection of the boundary of the encoded block and data align_boundary including the boundary of the encoded block.

アライメント回路142は、検出されたエンコードブロックの境界に基づいて、受信データをエラスティックバッファ144のライト側に書き込む。これにより、エラスティックバッファ144のリード側は、エンコードブロック単位で受信データを扱えるようになる。   The alignment circuit 142 writes the received data to the write side of the elastic buffer 144 based on the detected boundary of the encoded block. As a result, the read side of the elastic buffer 144 can handle received data in units of encode blocks.

エラスティックバッファ144は、アライメント回路142からライト動作が継続して行われているとき、エラスティックバッファ144がアクティブであることを示す信号elbf_actをトレーニング制御部113へ出力する。トレーニング制御部113は、エラスティックバッファ144がアクティブである場合、エンコードブロックのアライメントが完了していると認識する。そして、リンク初期化が完了すると、検出されたエンコードブロックのアライメントがホールドされる。   The elastic buffer 144 outputs a signal elbf_act indicating that the elastic buffer 144 is active to the training control unit 113 when the write operation is continuously performed from the alignment circuit 142. When the elastic buffer 144 is active, the training control unit 113 recognizes that the alignment of the encoding block has been completed. When the link initialization is completed, the alignment of the detected encoded block is held.

変換部141、アライメント回路142、アライメント検出部143、及びエラスティックバッファ144のライト側は、クロック信号rx_clkの領域である。受信回路112内に設けられたCDR回路(不図示)は、受信データからタイミング信号を再生することで、rx_clkを生成する。エラスティックバッファ144において、rx_clkから、受信回路112のPhysical Coding Sublayer(PCS)のクロック信号pcs_clkへの乗り換えが行われる。   The write side of the conversion unit 141, the alignment circuit 142, the alignment detection unit 143, and the elastic buffer 144 is an area of the clock signal rx_clk. A CDR circuit (not shown) provided in the receiving circuit 112 generates rx_clk by reproducing a timing signal from the received data. In the elastic buffer 144, switching from rx_clk to the physical coding sublayer (PCS) clock signal pcs_clk of the reception circuit 112 is performed.

リンク初期化中又はリンク初期化完了後に関わらず、デコーダ145は、エラスティックバッファ144から読み出された受信データをデコードする。このとき、デコーダ145は、enc−bitを参照して、データ種別及びスクランブルの有無を判定し、スクランブルされている受信データを、デスクランブラ146へ出力する。また、デコーダ145は、スクランブルされていないLFSR初期化パターン、skpos等の受信データを、パターン受信部147へ出力する。デスクランブラ146は、スクランブルされている受信データをデスクランブルして、非スクランブルデータを復元する。   Regardless of link initialization or after link initialization is completed, the decoder 145 decodes the received data read from the elastic buffer 144. At this time, the decoder 145 refers to enc-bit, determines the data type and the presence / absence of scramble, and outputs the scrambled received data to the descrambler 146. In addition, the decoder 145 outputs received data such as an unscrambled LFSR initialization pattern and skpos to the pattern receiving unit 147. The descrambler 146 descrambles the scrambled received data and restores the unscrambled data.

パターン受信部147は、デスクランブラ146から出力される非スクランブルデータからtsosを検出し、tsos1の検出を示す信号tsos1_det及びtsos2の検出を示す信号tsos2_detをトレーニング制御部113へ出力する。また、パターン受信部147は、デコーダ145から直接出力される受信データから、LFSR初期化パターン及びskposを検出する。   The pattern receiving unit 147 detects tsos from the unscrambled data output from the descrambler 146, and outputs a signal tsos1_det indicating the detection of tsos1 and a signal tsos2_det indicating the detection of tsos2 to the training control unit 113. Further, the pattern receiving unit 147 detects the LFSR initialization pattern and skpos from the reception data directly output from the decoder 145.

パターン受信部147は、LFSR初期化パターンを検出したとき、LFSR値の初期値を選択する信号descrambler_initをデスクランブラ146へ出力し、デスクランブラ146は、LFSR値を初期化する。また、パターン受信部147は、skposを検出したとき、LFSR値をホールドする信号descrambler_holdをデスクランブラ146へ出力し、デスクランブラ146は、LFSR値をホールドする。   When the pattern reception unit 147 detects the LFSR initialization pattern, the pattern reception unit 147 outputs a signal descrambler_init for selecting an initial value of the LFSR value to the descrambler 146, and the descrambler 146 initializes the LFSR value. Further, when the pattern receiving unit 147 detects skpos, the pattern receiving unit 147 outputs a signal descrambler_hold for holding the LFSR value to the descrambler 146, and the descrambler 146 holds the LFSR value.

そして、リンク初期化が完了すると、CRCチェッカ148は、非スクランブルデータのCRCをチェックし、非スクランブルデータをパケットとして出力する。また、トレーニング制御部113は、受信データが有効であることを示す信号rx_packet_validを出力する。   When the link initialization is completed, the CRC checker 148 checks the CRC of the unscrambled data and outputs the unscrambled data as a packet. Further, the training control unit 113 outputs a signal rx_packet_valid indicating that the received data is valid.

リンク初期化中又はリンク初期化完了後に関わらず、デコーダ145は、デコードエラーが発生したとき、デコードエラーの発生を示す信号decode_errorをトレーニング制御部113へ出力する。また、CRCチェッカ148は、CRCエラーが発生したとき、CRCエラーの発生を示す信号crc_errorをトレーニング制御部113へ出力する。   Regardless of link initialization or after completion of link initialization, the decoder 145 outputs a signal decode_error indicating the occurrence of a decode error to the training control unit 113 when a decode error occurs. Further, when a CRC error occurs, the CRC checker 148 outputs a signal crc_error indicating the occurrence of the CRC error to the training control unit 113.

トレーニング制御部113は、デコードエラー又はCRCエラーの多発に基づいて、エンコードブロックのアライメントずれ等を検出することができる。エンコードブロックのアライメントずれが発生していると推測される場合、トレーニング制御部113は、アライメント検出部143に対してアライメントの再実行を指示する信号align_re_lockを出力する。リンク初期化が完了している場合は、リンク初期化が再開される。   The training control unit 113 can detect misalignment of encode blocks based on frequent occurrences of decoding errors or CRC errors. When it is estimated that the encode block is misaligned, the training control unit 113 outputs a signal align_re_lock that instructs the alignment detection unit 143 to re-execute alignment. If link initialization is complete, link initialization is resumed.

図2は、図1のスクランブラ134の構成例を示している。図2のスクランブラ134は、LFSR201、セレクタ202、論理和(OR)回路203、フリップフロップ(FF)204、及び排他的論理和(XOR)回路205を含む。FF204は、LFSR値を保持し、XOR回路205は、FF204が出力するLFSR値と入力データD1との排他的論理和を、スクランブルされた送信データD2として出力する。   FIG. 2 shows a configuration example of the scrambler 134 of FIG. The scrambler 134 in FIG. 2 includes an LFSR 201, a selector 202, a logical sum (OR) circuit 203, a flip-flop (FF) 204, and an exclusive logical sum (XOR) circuit 205. The FF 204 holds the LFSR value, and the XOR circuit 205 outputs the exclusive OR of the LFSR value output from the FF 204 and the input data D1 as scrambled transmission data D2.

LFSR201は、FF204が出力するLFSR値を更新して、次のLFSR値を生成し、セレクタ202へ出力する。OR回路203は、セレクタ202が出力する信号とリセット信号Rとの論理和を、FF204へ出力する。リセット時以外は、リセット信号Rは論理“0”に設定される。セレクタ202は、トレーニング制御部113が出力するscrambler_init及びscrambler_holdによって制御される。   The LFSR 201 updates the LFSR value output from the FF 204, generates the next LFSR value, and outputs it to the selector 202. The OR circuit 203 outputs the logical sum of the signal output from the selector 202 and the reset signal R to the FF 204. Except at the time of resetting, the reset signal R is set to logic “0”. The selector 202 is controlled by scrambler_init and scrambler_hold output from the training control unit 113.

LFSR初期化パターンの送信時に、トレーニング制御部113は、scrambler_initを論理“1”に設定し、セレクタ202は、初期値を表す信号lfsr_init_valueを選択して、OR回路203へ出力する。これにより、lfsr_init_valueがFF204に格納され、LFSR値が初期化される。   At the time of transmitting the LFSR initialization pattern, the training control unit 113 sets the scrambler_init to logic “1”, and the selector 202 selects the signal lfsr_init_value representing the initial value and outputs it to the OR circuit 203. Thereby, lfsr_init_value is stored in the FF 204, and the LFSR value is initialized.

また、skposの送信時に、トレーニング制御部113は、scrambler_holdを論理“1”に設定し、セレクタ202は、FF204が出力するLFSR値を選択して、OR回路203へ出力する。これにより、FF204のLFSR値がホールドされ、LFSR値は更新されない。   At the time of transmitting skpos, the training control unit 113 sets scrambler_hold to logic “1”, and the selector 202 selects the LFSR value output from the FF 204 and outputs the LFSR value to the OR circuit 203. Thereby, the LFSR value of the FF 204 is held, and the LFSR value is not updated.

一方、tsos及び通常データの送信時に、セレクタ202は、LFSR201が出力する信号を選択して、OR回路203へ出力する。これにより、FF204のLFSR値が次のLFSR値に更新される。   On the other hand, when transmitting tsos and normal data, the selector 202 selects a signal output from the LFSR 201 and outputs it to the OR circuit 203. As a result, the LFSR value of the FF 204 is updated to the next LFSR value.

図3は、図1のデスクランブラ146の構成例を示している。図3のデスクランブラ146は、LFSR301、セレクタ302、OR回路303、FF304、及びXOR回路305を含む。FF304は、LFSR値を保持し、XOR回路305は、FF304が出力するLFSR値と、スクランブルされた入力データD3との排他的論理和を、非スクランブルデータD4として出力する。   FIG. 3 shows a configuration example of the descrambler 146 of FIG. The descrambler 146 of FIG. 3 includes an LFSR 301, a selector 302, an OR circuit 303, an FF 304, and an XOR circuit 305. The FF 304 holds the LFSR value, and the XOR circuit 305 outputs an exclusive OR of the LFSR value output from the FF 304 and the scrambled input data D3 as non-scrambled data D4.

LFSR301は、FF304が出力するLFSR値を更新して、次のLFSR値を生成し、セレクタ302へ出力する。OR回路303は、セレクタ302が出力する信号とリセット信号Rとの論理和を、FF304へ出力する。セレクタ302は、パターン受信部147が出力するdescrambler_init及びdescrambler_holdによって制御される。   The LFSR 301 updates the LFSR value output from the FF 304, generates the next LFSR value, and outputs it to the selector 302. The OR circuit 303 outputs the logical sum of the signal output from the selector 302 and the reset signal R to the FF 304. The selector 302 is controlled by descrambler_init and descrambler_hold output from the pattern receiving unit 147.

LFSR初期化パターンの受信時に、パターン受信部147は、descrambler_initを論理“1”に設定し、セレクタ302は、初期値を表す信号lfsr_init_valueを選択して、OR回路303へ出力する。これにより、lfsr_init_valueがFF304に格納され、LFSR値が初期化される。   When receiving the LFSR initialization pattern, the pattern receiving unit 147 sets descrambler_init to logic “1”, and the selector 302 selects the signal lfsr_init_value representing the initial value and outputs it to the OR circuit 303. As a result, lfsr_init_value is stored in the FF 304, and the LFSR value is initialized.

また、skposの受信時に、パターン受信部147は、descrambler_holdを論理“1”に設定し、セレクタ302は、FF304が出力するLFSR値を選択して、OR回路303へ出力する。これにより、FF304のLFSR値がホールドされ、LFSR値は更新されない。   At the time of reception of skpos, the pattern receiving unit 147 sets descrambler_hold to logic “1”, and the selector 302 selects the LFSR value output from the FF 304 and outputs it to the OR circuit 303. As a result, the LFSR value of the FF 304 is held, and the LFSR value is not updated.

一方、tsos及び通常データの受信時に、セレクタ302は、LFSR301が出力する信号を選択して、OR回路303へ出力する。これにより、FF304のLFSR値が次のLFSR値に更新される。   On the other hand, when receiving tsos and normal data, the selector 302 selects a signal output from the LFSR 301 and outputs it to the OR circuit 303. As a result, the LFSR value of the FF 304 is updated to the next LFSR value.

このように、図1のデータ転送システムでは、tsos及び通常データはスクランブルしてから送信されるが、LFSR初期化パターン及びskposはスクランブルすることなく送信される。したがって、シリアルバス103は、スクランブルされたデータとスクランブルされていないデータの2種類のデータを転送する。   Thus, in the data transfer system of FIG. 1, tsos and normal data are transmitted after being scrambled, but the LFSR initialization pattern and skpos are transmitted without being scrambled. Therefore, the serial bus 103 transfers two types of data, scrambled data and unscrambled data.

そもそも、データ転送システムでは伝送品質向上のために、スクランブルされたデータを送信しているので、スクランブルされていないLFSR初期化パターンの送信によって、伝送品質の低下を招く可能性がある。したがって、このようなLFSR初期化パターンを用いることなく、スクランブラ及びデスクランブラの同期化を行うことが望ましい。   In the first place, in the data transfer system, scrambled data is transmitted in order to improve the transmission quality. Therefore, transmission of an unscrambled LFSR initialization pattern may cause a decrease in transmission quality. Therefore, it is desirable to synchronize the scrambler and descrambler without using such an LFSR initialization pattern.

さらに、受信回路には、スクランブルされたデータとスクランブルされていないデータとを区別するための回路が設けられる。また、送信回路及び受信回路の両方において、データ種別に応じてスクランブラ又はデスクランブラを有効又は無効にする制御が行われる。このように、LFSR初期化パターンを送受信するために、送信回路及び受信回路の制御が複雑になる。   Further, the receiving circuit is provided with a circuit for distinguishing between scrambled data and unscrambled data. In both the transmission circuit and the reception circuit, control for enabling or disabling the scrambler or descrambler is performed according to the data type. As described above, since the LFSR initialization pattern is transmitted and received, the control of the transmission circuit and the reception circuit becomes complicated.

アディティブ・スクランブラとは別のスクランブラとして、IEEE802.3−2008の49項で規格化され、10GbE等で使用される、自己同期型スクランブラも知られている。自己同期型スクランブラを採用した場合、自己同期型の名称が示すように、簡単な回路構成で、送信回路のスクランブラと受信回路のデスクランブラとの同期化が可能である。   As a scrambler that is different from the additive scrambler, a self-synchronous scrambler that is standardized in 49 of IEEE 802.3-2008 and used in 10 GbE or the like is also known. When the self-synchronizing scrambler is employed, the transmission circuit scrambler and the receiving circuit descrambler can be synchronized with a simple circuit configuration, as the name of the self-synchronizing type indicates.

例えば、多項式G(x)=x58+x39+1に基づきLFSR値を生成する場合、58ビットのデータを送受信するだけで、スクランブラとデスクランブラとの同期化が可能である。つまり、特別なLFSR初期化パターンの送受信を行うことなく、単に通信を継続していれば、スクランブラとデスクランブラとの同期化が行われる。自己同期型スクランブラは、マルティプリカティブ・スクランブラと呼ばれることがある。 For example, when the LFSR value is generated based on the polynomial G (x) = x 58 + x 39 +1, the scrambler and the descrambler can be synchronized only by transmitting and receiving 58-bit data. That is, if communication is simply continued without transmitting / receiving a special LFSR initialization pattern, synchronization between the scrambler and the descrambler is performed. The self-synchronizing scrambler is sometimes called a multiple scrambler.

しかし、自己同期型スクランブラは、1ビットの伝送路エラーを多項式のタップ数分増加させる。例えば、上記多項式に基づきLFSR値を生成する場合、タップ数は2であるから、1ビットの伝送路エラーに2ビットを加算した、3ビットの伝送路エラーが生成される。通常、高速シリアルバスはCRC等の冗長ビットで保護されているため、伝送路エラーのビット数が増えると、伝送路エラーの発生がCRCエラーによって検出されない確率が増加する。   However, the self-synchronizing scrambler increases the 1-bit transmission line error by the number of taps of the polynomial. For example, when the LFSR value is generated based on the above polynomial, since the number of taps is 2, a 3-bit transmission path error is generated by adding 2 bits to the 1-bit transmission path error. Usually, since the high-speed serial bus is protected by redundant bits such as CRC, the probability that the occurrence of a transmission path error is not detected due to the CRC error increases when the number of transmission path errors increases.

図4は、LFSR初期化パターンを用いることなく、スクランブラ及びデスクランブラの同期化を行うデータ転送システムの構成例を示している。図4のデータ転送システムは、データ転送装置401及びデータ転送装置402を含む。データ転送装置401は、生成部411、ランダム化部412、送信部413、及び更新部414を含み、データ転送装置402は、受信部421、復元部422、更新部423、及び制御部424を含む。   FIG. 4 shows a configuration example of a data transfer system that synchronizes the scrambler and the descrambler without using the LFSR initialization pattern. The data transfer system in FIG. 4 includes a data transfer device 401 and a data transfer device 402. The data transfer device 401 includes a generation unit 411, a randomization unit 412, a transmission unit 413, and an update unit 414. The data transfer device 402 includes a reception unit 421, a restoration unit 422, an update unit 423, and a control unit 424. .

生成部411は、第1データ列及び第2データ列を生成し、更新部414は、第1乱数を更新して第2乱数を生成する。ランダム化部412は、第1乱数を用いて第1データ列をスクランブルすることで、第1乱数を含む第1送信データ列を生成し、第2乱数を用いて第2データ列をスクランブルすることで、第2乱数を含む第2送信データ列を生成する。   The generation unit 411 generates a first data sequence and a second data sequence, and the update unit 414 updates the first random number to generate a second random number. The randomization unit 412 generates a first transmission data sequence including the first random number by scrambling the first data sequence using the first random number, and scrambles the second data sequence using the second random number. Thus, a second transmission data string including the second random number is generated.

送信部413は、第1期間において第1送信データ列をデータ転送装置402へ送信し、第2期間において第2送信データ列をデータ転送装置402へ送信する。受信部421は、第1期間においてデータ転送装置401から第1送信データ列を受信し、第2期間においてデータ転送装置401から第2送信データ列を受信する。   The transmission unit 413 transmits the first transmission data string to the data transfer apparatus 402 in the first period, and transmits the second transmission data string to the data transfer apparatus 402 in the second period. The receiving unit 421 receives the first transmission data string from the data transfer apparatus 401 in the first period, and receives the second transmission data string from the data transfer apparatus 401 in the second period.

更新部423は、受信部421が受信した第1送信データ列に含まれる第1乱数を更新して、第2乱数を生成する。復元部422は、更新部423が生成した第2乱数を用いて第2送信データ列をデスクランブルすることで、第2送信データ列から第2データ列を復元する。制御部424は、復元部422が復元した第2データ列が所定のデータ列である場合、生成した乱数を更新するように更新部423を制御する。   The updating unit 423 updates the first random number included in the first transmission data sequence received by the receiving unit 421 and generates a second random number. The restoration unit 422 restores the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the second random number generated by the update unit 423. When the second data string restored by the restoration unit 422 is a predetermined data string, the control unit 424 controls the update unit 423 to update the generated random number.

図5は、図4のデータ転送システムの制御方法の例を示すフローチャートである。まず、データ転送装置401の生成部411は、第1乱数を用いて第1データ列をスクランブルすることで第1送信データ列を生成し(ステップ501)、第1期間において、送信部413は、第1送信データ列をデータ転送装置402へ送信する(ステップ502)。   FIG. 5 is a flowchart showing an example of a control method of the data transfer system of FIG. First, the generation unit 411 of the data transfer device 401 generates a first transmission data sequence by scrambling the first data sequence using the first random number (step 501). In the first period, the transmission unit 413 The first transmission data string is transmitted to the data transfer device 402 (step 502).

次に、データ転送装置402の受信部421は、データ転送装置401から第1送信データ列を受信し(ステップ503)、更新部423は、受信した第1送信データ列に含まれる第1乱数を更新して、第2乱数を生成する(ステップ504)。   Next, the reception unit 421 of the data transfer device 402 receives the first transmission data sequence from the data transfer device 401 (step 503), and the update unit 423 receives the first random number included in the received first transmission data sequence. The second random number is generated by updating (step 504).

次に、データ転送装置401の更新部414は、第1乱数を更新して第2乱数を生成する(ステップ505)。そして、生成部411は、第2乱数を用いて第2データ列をスクランブルすることで第2送信データ列を生成し(ステップ506)、第2期間において、送信部413は、第2送信データ列をデータ転送装置402へ送信する(ステップ507)。   Next, the update unit 414 of the data transfer device 401 updates the first random number to generate a second random number (step 505). Then, the generation unit 411 generates the second transmission data sequence by scrambling the second data sequence using the second random number (step 506), and in the second period, the transmission unit 413 generates the second transmission data sequence. Is transmitted to the data transfer apparatus 402 (step 507).

次に、データ転送装置402の受信部421は、データ転送装置401から第2送信データ列を受信し(ステップ508)、復元部422は、第2乱数を用いて第2送信データ列をデスクランブルすることで第2データ列を復元する(ステップ509)。そして、更新部423は、復元した第2データ列が所定のデータ列である場合、制御部424からの指示に基づいて、生成した乱数を更新する(ステップ510)。   Next, the reception unit 421 of the data transfer device 402 receives the second transmission data sequence from the data transfer device 401 (step 508), and the restoration unit 422 descrambles the second transmission data sequence using the second random number. Thus, the second data string is restored (step 509). Then, when the restored second data string is a predetermined data string, the updating unit 423 updates the generated random number based on an instruction from the control unit 424 (step 510).

図4のデータ転送システムによれば、スクランブラ及びデスクランブラの同期化を行うデータ転送システムにおいて、伝送品質の低下を抑制することができる。   According to the data transfer system of FIG. 4, it is possible to suppress a decrease in transmission quality in the data transfer system that synchronizes the scrambler and the descrambler.

図6は、図4のデータ転送システムの具体例を示している。図6のデータ転送システムは、データ転送装置601及びデータ転送装置602を含む。データ転送装置601は、送信回路611、受信回路612、及びトレーニング制御部613を含み、データ転送装置602は、送信回路621、受信回路622、及びトレーニング制御部623を含む。シリアルバス603は、データ転送装置601の送信回路611と、データ転送装置602の受信回路622とを接続するとともに、データ転送装置602の送信回路621と、データ転送装置601の受信回路612とを接続する。   FIG. 6 shows a specific example of the data transfer system of FIG. The data transfer system in FIG. 6 includes a data transfer device 601 and a data transfer device 602. The data transfer device 601 includes a transmission circuit 611, a reception circuit 612, and a training control unit 613. The data transfer device 602 includes a transmission circuit 621, a reception circuit 622, and a training control unit 623. The serial bus 603 connects the transmission circuit 611 of the data transfer apparatus 601 and the reception circuit 622 of the data transfer apparatus 602, and connects the transmission circuit 621 of the data transfer apparatus 602 and the reception circuit 612 of the data transfer apparatus 601. To do.

トレーニング制御部613は、送信シーケンスコントローラ651及び受信シーケンスコントローラ652を含み、シリアルバス603のリンク初期化及びリンク再初期化の制御を行う。送信シーケンスコントローラ651は、主として送信回路611に対する制御を行い、受信シーケンスコントローラ652は、主として受信回路612に対する制御を行う。   The training control unit 613 includes a transmission sequence controller 651 and a reception sequence controller 652, and controls link initialization and link reinitialization of the serial bus 603. The transmission sequence controller 651 mainly controls the transmission circuit 611, and the reception sequence controller 652 mainly controls the reception circuit 612.

送信回路611は、CRC生成部631、パターン生成部632、セレクタ633、エンコーダ634、スクランブラ635、及び変換部636を含む。受信回路612は、変換部641、デスクランブラ642、アライメント回路643、エラスティックバッファ644、デコーダ645、パターン受信部646、及びCRCチェッカ647を含む。スクランブラ635は、アディティブ・スクランブラであり、デスクランブラ642は、アディティブ・デスクランブラである。デスクランブラ642は、制御部648を含む。   The transmission circuit 611 includes a CRC generation unit 631, a pattern generation unit 632, a selector 633, an encoder 634, a scrambler 635, and a conversion unit 636. The reception circuit 612 includes a conversion unit 641, a descrambler 642, an alignment circuit 643, an elastic buffer 644, a decoder 645, a pattern reception unit 646, and a CRC checker 647. The scrambler 635 is an additive scrambler, and the descrambler 642 is an additive descrambler. The descrambler 642 includes a control unit 648.

データ転送装置602の送信回路621、受信回路622、及びトレーニング制御部623の構成についても、データ転送装置601の送信回路611、受信回路612、及びトレーニング制御部613の構成と同様である。   The configurations of the transmission circuit 621, the reception circuit 622, and the training control unit 623 of the data transfer device 602 are the same as the configurations of the transmission circuit 611, the reception circuit 612, and the training control unit 613 of the data transfer device 601.

データ転送装置601及びデータ転送装置602が、図4のデータ転送装置401及びデータ転送装置402にそれぞれ対応する場合、送信回路611内のパターン生成部632及び変換部636は、生成部411及び送信部413にそれぞれ対応する。また、受信回路622内の変換部及び制御部は、受信部421及び制御部424にそれぞれ対応する。   When the data transfer device 601 and the data transfer device 602 correspond to the data transfer device 401 and the data transfer device 402 in FIG. 4, respectively, the pattern generation unit 632 and the conversion unit 636 in the transmission circuit 611 include the generation unit 411 and the transmission unit. 413 respectively. A conversion unit and a control unit in the reception circuit 622 correspond to the reception unit 421 and the control unit 424, respectively.

一方、データ転送装置601及びデータ転送装置602が、図4のデータ転送装置402及びデータ転送装置401にそれぞれ対応する場合、送信回路621内のパターン生成部及び変換部は、生成部411及び送信部413にそれぞれ対応する。また、受信回路612内の変換部641及び制御部648は、受信部421及び制御部424にそれぞれ対応する。   On the other hand, when the data transfer device 601 and the data transfer device 602 correspond to the data transfer device 402 and the data transfer device 401 in FIG. 4 respectively, the pattern generation unit and the conversion unit in the transmission circuit 621 are the generation unit 411 and the transmission unit. 413 respectively. Further, the conversion unit 641 and the control unit 648 in the reception circuit 612 correspond to the reception unit 421 and the control unit 424, respectively.

まず、送信回路611の動作について説明する。リンク初期化中又はリンク初期化完了後に関わらず、エンコーダ634は、セレクタ633が出力するデータ列をエンコードすることで、そのデータ列にenc−bitを付加する。スクランブラ635は、エンコーダ634が出力するデータ列をスクランブルすることで、送信データ列を生成する。この場合、データ列がエンコードされた後にスクランブルされるため、enc−bitもスクランブルされる。   First, the operation of the transmission circuit 611 will be described. Regardless of the link initialization or after the link initialization is completed, the encoder 634 encodes the data string output from the selector 633 and adds an enc-bit to the data string. The scrambler 635 generates a transmission data string by scrambling the data string output from the encoder 634. In this case, since the data string is scrambled after being encoded, the enc-bit is also scrambled.

変換部636は、送信データ列をパラレルデータからシリアルデータに変換し、シリアルバス603へ出力する。これにより、送信データ列がデータ転送装置601からデータ転送装置602へ送信される。   The conversion unit 636 converts the transmission data string from parallel data to serial data, and outputs it to the serial bus 603. As a result, the transmission data string is transmitted from the data transfer apparatus 601 to the data transfer apparatus 602.

リンク初期化中において、送信回路611は、tsos1及びtsos2をデータ転送装置602へ送信する。トレーニング制御部613は、tsos1_send及びtsos2_sendをパターン生成部632へ出力する。パターン生成部632は、tsosのデータ列を生成し、セレクタ633は、tsosをエンコーダ634へ出力する。   During link initialization, the transmission circuit 611 transmits tsos1 and tsos2 to the data transfer apparatus 602. The training control unit 613 outputs tsos1_send and tsos2_send to the pattern generation unit 632. The pattern generation unit 632 generates a data string of tsos, and the selector 633 outputs tsos to the encoder 634.

エンコーダ634は、tsosをエンコードし、スクランブラ635は、エンコードされたtsosをスクランブルし、変換部636は、スクランブルされたtsosをシリアルデータに変換して、シリアルバス603へ出力する。これにより、tsosがデータ転送装置601からデータ転送装置602へ送信される。   The encoder 634 encodes tsos, the scrambler 635 scrambles the encoded tsos, and the conversion unit 636 converts the scrambled tsos into serial data and outputs the serial data to the serial bus 603. As a result, tsos is transmitted from the data transfer apparatus 601 to the data transfer apparatus 602.

tsosの送信中において、送信回路611は、スクランブラ635と受信回路622内のデスクランブラとを同期化するため、定期的に、デスクランブラロックパターンと呼ばれるトレーニングパターンをデータ転送装置602へ送信する。   During the transmission of tsos, the transmission circuit 611 periodically transmits a training pattern called a descrambler lock pattern to the data transfer apparatus 602 in order to synchronize the scrambler 635 and the descrambler in the reception circuit 622.

トレーニング制御部613は、デスクランブラロックパターンの送信を指示する信号dsc_lock_ptn_sendをパターン生成部632へ出力する。パターン生成部632は、デスクランブラロックパターンのデータ列を生成し、セレクタ633は、デスクランブラロックパターンをエンコーダ634へ出力する。   The training control unit 613 outputs a signal dsc_lock_ptn_send that instructs transmission of the descrambler lock pattern to the pattern generation unit 632. The pattern generation unit 632 generates a descrambler lock pattern data string, and the selector 633 outputs the descrambler lock pattern to the encoder 634.

エンコーダ634は、デスクランブラロックパターンをエンコードし、スクランブラ635は、エンコードされたデスクランブラロックパターンをスクランブルする。変換部636は、スクランブルされたデスクランブラロックパターンをシリアルデータに変換して、シリアルバス603へ出力する。これにより、デスクランブラロックパターンがデータ転送装置601からデータ転送装置602へ送信される。   The encoder 634 encodes the descrambler lock pattern, and the scrambler 635 scrambles the encoded descrambler lock pattern. The conversion unit 636 converts the scrambled descrambler lock pattern into serial data and outputs the serial data to the serial bus 603. As a result, the descrambler lock pattern is transmitted from the data transfer apparatus 601 to the data transfer apparatus 602.

リンク初期化が完了すると、CRC生成部631は、通常データのパケットのデータ列にCRCを付加して、セレクタ633へ出力する。トレーニング制御部613は、CRC生成部631の出力を選択する信号packet_selectをセレクタ633へ出力し、セレクタ633は、パケットをエンコーダ634へ出力する。   When the link initialization is completed, the CRC generation unit 631 adds a CRC to the data string of the normal data packet and outputs it to the selector 633. The training control unit 613 outputs a signal packet_select for selecting the output of the CRC generation unit 631 to the selector 633, and the selector 633 outputs the packet to the encoder 634.

エンコーダ634は、パケットをエンコードし、スクランブラ635は、エンコードされたパケットをスクランブルし、変換部636は、スクランブルされたパケットをシリアルデータに変換して、シリアルバス603へ出力する。これにより、パケットがデータ転送装置601からデータ転送装置602へ送信される。   The encoder 634 encodes the packet, the scrambler 635 scrambles the encoded packet, and the conversion unit 636 converts the scrambled packet into serial data and outputs the serial data to the serial bus 603. As a result, the packet is transmitted from the data transfer apparatus 601 to the data transfer apparatus 602.

リンク初期化中又はリンク初期化完了後に関わらず、送信回路611は、定期的にskposをデータ転送装置602へ送信する。トレーニング制御部613は、skpos_sendをパターン生成部632へ出力する。パターン生成部632は、skposのデータ列を生成し、セレクタ633は、skposをエンコーダ634へ出力する。   Regardless of the link initialization or after the link initialization is completed, the transmission circuit 611 periodically transmits skpos to the data transfer device 602. The training control unit 613 outputs skpos_send to the pattern generation unit 632. The pattern generation unit 632 generates a skpos data string, and the selector 633 outputs the skpos to the encoder 634.

エンコーダ634は、skposをエンコードし、スクランブラ635は、エンコードされたskposをスクランブルし、変換部636は、スクランブルされたskposをシリアルデータに変換して、シリアルバス603へ出力する。これにより、skposがデータ転送装置601からデータ転送装置602へ送信される。   The encoder 634 encodes skpos, the scrambler 635 scrambles the encoded skpos, and the conversion unit 636 converts the scrambled skpos into serial data and outputs the serial data to the serial bus 603. As a result, skpos is transmitted from the data transfer apparatus 601 to the data transfer apparatus 602.

このように、図6のデータ転送システムでは、LFSR初期化パターンが用いられず、スクランブルされた送信データ列のみがシリアルバス603に出力されるため、図4のデータ転送システムよりも伝送品質が向上する。   As described above, in the data transfer system of FIG. 6, the LFSR initialization pattern is not used, and only the scrambled transmission data string is output to the serial bus 603. Therefore, the transmission quality is improved as compared with the data transfer system of FIG. To do.

次に、受信回路612の動作について説明する。データ転送装置602の送信回路621も、送信回路611と同様に動作して、tsos、デスクランブラロックパターン、及びskposをデータ転送装置601へ送信する。変換部641は、シリアルバス603から入力される受信データ列を、シリアルデータからパラレルデータに変換して、デスクランブラ642へ出力する。   Next, the operation of the receiving circuit 612 will be described. The transmission circuit 621 of the data transfer apparatus 602 operates in the same manner as the transmission circuit 611 and transmits tsos, a descrambler lock pattern, and skpos to the data transfer apparatus 601. The converter 641 converts the received data string input from the serial bus 603 from serial data to parallel data, and outputs the parallel data to the descrambler 642.

デスクランブラ642は、スクランブルされている受信データ列をデスクランブルすることで、非スクランブルデータ列を復元し、復元した非スクランブルデータ列をアライメント回路643へ出力する。   The descrambler 642 restores the non-scrambled data sequence by descrambling the scrambled received data sequence, and outputs the restored non-scrambled data sequence to the alignment circuit 643.

デスクランブラ642は、ロックされていない状態では、スクランブルされている受信データ列から次のLFSR値を生成し、ロックされた状態では、保持しているLFSR値から次のLFSR値を生成する。リンク初期化の開始時には、デスクランブラ642はロックされておらず、デスクランブラロックパターンを受信することによってロックされる。   The descrambler 642 generates the next LFSR value from the scrambled received data string in the unlocked state, and generates the next LFSR value from the held LFSR value in the locked state. At the start of link initialization, the descrambler 642 is not locked and is locked by receiving a descrambler lock pattern.

リンク初期化中において、デスクランブラ642は、デスクランブラロックパターンに基づいて、送信回路621内のスクランブラとデスクランブラ642とを同期化するとともに、エンコードブロックのアライメントを検出する。そして、デスクランブラ642は、エンコードブロックの境界の検出を示す信号align_detと、エンコードブロックの境界を含むデータalign_boundaryとを、アライメント回路643へ出力する。   During link initialization, the descrambler 642 synchronizes the scrambler in the transmission circuit 621 and the descrambler 642 based on the descrambler lock pattern, and detects the alignment of the encode blocks. Then, the descrambler 642 outputs to the alignment circuit 643 a signal align_det indicating detection of the boundary of the encoded block and data align_boundary including the boundary of the encoded block.

アライメント回路643は、検出されたエンコードブロックの境界に基づいて、デスクランブラ642が出力するデータ列を、エラスティックバッファ644のライト側に書き込む。これにより、エラスティックバッファ644のリード側は、エンコードブロック単位でデータ列を扱えるようになる。   The alignment circuit 643 writes the data string output from the descrambler 642 to the write side of the elastic buffer 644 based on the detected boundary of the encoded block. As a result, the read side of the elastic buffer 644 can handle data strings in units of encode blocks.

エラスティックバッファ644は、アライメント回路643からライト動作が継続して行われているとき、elbf_actをトレーニング制御部613へ出力する。トレーニング制御部613は、elbf_actを受信した場合、デスクランブラ642のロック及びエンコードブロックのアライメントが完了していると認識する。そして、リンク初期化が完了すると、デスクランブラ642のロック状態と、検出されたエンコードブロックのアライメントとがホールドされる。   The elastic buffer 644 outputs elbf_act to the training control unit 613 when the write operation is continuously performed from the alignment circuit 643. When receiving the elbf_act, the training control unit 613 recognizes that the descrambler 642 has been locked and the encoding block is aligned. When the link initialization is completed, the locked state of the descrambler 642 and the detected encoding block alignment are held.

変換部641、デスクランブラ642、アライメント回路643、及びエラスティックバッファ644のライト側は、クロック信号rx_clkの領域である。エラスティックバッファ644において、rx_clkからPCSのクロック信号pcs_clkへの乗り換えが行われる。   The write side of the conversion unit 641, the descrambler 642, the alignment circuit 643, and the elastic buffer 644 is an area of the clock signal rx_clk. In the elastic buffer 644, the transfer from rx_clk to the PCS clock signal pcs_clk is performed.

リンク初期化中又はリンク初期化完了後に関わらず、デコーダ645は、エラスティックバッファ644から読み出されたデータ列をデコードする。このとき、デコーダ645は、enc−bitを参照してデータ種別を判定し、デスクランブラロックパターン、tsos、skpos等のデータ列を、パターン受信部646へ出力する。パターン受信部646は、デコーダ645が出力するデータ列からtsosを検出し、tsos1_det及びtsos2_detをトレーニング制御部613へ出力する。   The decoder 645 decodes the data string read from the elastic buffer 644 regardless of whether the link initialization is in progress or after the link initialization is completed. At this time, the decoder 645 determines the data type with reference to enc-bit, and outputs a data string such as a descrambler lock pattern, tsos, and skpos to the pattern receiving unit 646. The pattern receiving unit 646 detects tsos from the data string output by the decoder 645 and outputs tsos1_det and tsos2_det to the training control unit 613.

そして、リンク初期化が完了すると、CRCチェッカ647は、デコーダ645が出力するデータ列のCRCをチェックし、データ列をパケットとして出力する。また、トレーニング制御部613は、rx_packet_validを出力する。   When link initialization is completed, the CRC checker 647 checks the CRC of the data string output by the decoder 645 and outputs the data string as a packet. The training control unit 613 outputs rx_packet_valid.

リンク初期化中又はリンク初期化完了後に関わらず、デコーダ645は、デコードエラーが発生したとき、decode_errorをトレーニング制御部613へ出力する。また、CRCチェッカ647は、CRCエラーが発生したとき、crc_errorをトレーニング制御部613へ出力する。   Regardless of link initialization or after link initialization is completed, the decoder 645 outputs decode_error to the training control unit 613 when a decoding error occurs. The CRC checker 647 outputs crc_error to the training control unit 613 when a CRC error occurs.

トレーニング制御部613は、デコードエラー又はCRCエラーの多発に基づいて、デスクランブラ642の同期ずれ、エンコードブロックのアライメントずれ等を検出することができる。デスクランブラ642の同期ずれ又はエンコードブロックのアライメントずれが発生していると推測される場合、トレーニング制御部613は、デスクランブラ642に対して同期化の再実行を指示する信号lfsr_re_lockを出力する。リンク初期化が完了している場合は、リンク初期化が再開される。   The training control unit 613 can detect a synchronization error of the descrambler 642, an alignment error of the encoding block, and the like based on frequent occurrences of decoding errors or CRC errors. When it is estimated that the descrambler 642 is out of synchronization or the encoding block is out of alignment, the training control unit 613 outputs a signal lfsr_re_lock that instructs the descrambler 642 to re-execute synchronization. If link initialization is complete, link initialization is resumed.

図7は、デスクランブラロックパターンの例を示している。図7のデスクランブラロックパターンは、2K個(Kは2以上の整数)のエンコードブロックを含み、各エンコードブロックは、複数のビットを含む。前半K個のエンコードブロックの各々は、すべてのビットが論理“0”のデータALL0であり、後半K個のエンコードブロックの各々は、すべてのビットが論理“1”のデータALL1である。   FIG. 7 shows an example of a descrambler lock pattern. The descrambler lock pattern in FIG. 7 includes 2K (K is an integer of 2 or more) encode blocks, and each encode block includes a plurality of bits. Each of the first half K encoded blocks is data ALL0 in which all bits are logical “0”, and each of the second half K encoded blocks is data ALL1 in which all bits are logical “1”.

データALL0とLFSR値との排他的論理和はLFSR値になるため、前半K個のエンコードブロックの送信時には、スクランブラ635のLFSR値がそのままシリアルバス603に出力される。一方、データALL1とLFSR値との排他的論理和はLFSR値を反転した値になるため、後半K個のエンコードブロックの送信時には、スクランブラ635のLFSR値を反転した値がシリアルバス603に出力される。   Since the exclusive OR of the data ALL0 and the LFSR value becomes the LFSR value, the LFSR value of the scrambler 635 is output to the serial bus 603 as it is when transmitting the first half K encoded blocks. On the other hand, since the exclusive OR of the data ALL1 and the LFSR value is a value obtained by inverting the LFSR value, the value obtained by inverting the LFSR value of the scrambler 635 is output to the serial bus 603 when transmitting the last half K encoded blocks. Is done.

したがって、デスクランブラ642は、スクランブルされたデータALL0から送信回路621のスクランブラのLFSR値を抽出することができ、データALL0とデータALL1との境界を、エンコードブロックの境界として検出することができる。   Therefore, the descrambler 642 can extract the LFSR value of the scrambler of the transmission circuit 621 from the scrambled data ALL0, and can detect the boundary between the data ALL0 and the data ALL1 as the boundary of the encoding block.

このとき、デスクランブラ642は、スクランブルされたデータALL1がLFSR値を反転した値として正しく認識されることをチェックする。これにより、誤った位置でデスクランブラ642をロックする確率が低下する。誤った位置でデスクランブラ642をロックする確率を低減するためには、前半K個のエンコードブロックのビット幅が、デスクランブラ642内のLFSRのビット幅よりも十分に大きいことが望ましい。   At this time, the descrambler 642 checks that the scrambled data ALL1 is correctly recognized as a value obtained by inverting the LFSR value. This reduces the probability of locking the descrambler 642 at the wrong position. In order to reduce the probability of locking the descrambler 642 at a wrong position, it is desirable that the bit width of the first half K encoded blocks is sufficiently larger than the bit width of the LFSR in the descrambler 642.

例えば、K=8であり、1個のエンコードブロックのビット幅が20ビットである場合、前半8個のエンコードブロックのビット幅は、160ビットとなる。また、LFSRの多項式が23次多項式G(X)=X23+X21+X16+X+X+X+1である場合、LFSRのビット幅は、23ビットとなる。この場合、前半8個のエンコードブロックのビット幅はLFSRのビット幅よりも十分に大きいと考えられる。 For example, when K = 8 and the bit width of one encode block is 20 bits, the bit width of the first eight encode blocks is 160 bits. In addition, when the LFSR polynomial is a 23-order polynomial G (X) = X 23 + X 21 + X 16 + X 8 + X 5 + X 2 +1, the bit width of the LFSR is 23 bits. In this case, it is considered that the bit widths of the first eight encoding blocks are sufficiently larger than the bit width of the LFSR.

図8は、図6のスクランブラ635の構成例を示している。図8のスクランブラ635は、LFSR801、OR回路802、FF803、及びXOR回路804を含む。FF803は、LFSR値を保持し、XOR回路804は、FF803が出力するLFSR値と入力データD5との排他的論理和を、スクランブルされた送信データD6として出力する。   FIG. 8 shows a configuration example of the scrambler 635 of FIG. The scrambler 635 in FIG. 8 includes an LFSR 801, an OR circuit 802, an FF 803, and an XOR circuit 804. The FF 803 holds the LFSR value, and the XOR circuit 804 outputs the exclusive OR of the LFSR value output from the FF 803 and the input data D5 as scrambled transmission data D6.

LFSR801は、FF803が出力するLFSR値を更新して、次のLFSR値を生成し、OR回路802へ出力する。OR回路802は、LFSR801が出力するLFSR値とリセット信号Rとの論理和を、FF803へ出力する。リセット時以外は、リセット信号Rは論理“0”に設定される。これにより、FF803のLFSR値が次のLFSR値に更新される。   The LFSR 801 updates the LFSR value output from the FF 803, generates the next LFSR value, and outputs it to the OR circuit 802. The OR circuit 802 outputs the logical sum of the LFSR value output from the LFSR 801 and the reset signal R to the FF 803. Except at the time of resetting, the reset signal R is set to logic “0”. As a result, the LFSR value of the FF 803 is updated to the next LFSR value.

図9は、図6のデスクランブラ642の構成例を示している。図9のデスクランブラ642は、制御部648、FF901、セレクタ902、LFSR903、OR回路904、FF905、及びXOR回路906を含む。制御部648は、検出部911、検出部912、判定部913、及びFF914を含む。   FIG. 9 shows a configuration example of the descrambler 642 of FIG. The descrambler 642 in FIG. 9 includes a control unit 648, an FF 901, a selector 902, an LFSR 903, an OR circuit 904, an FF 905, and an XOR circuit 906. The control unit 648 includes a detection unit 911, a detection unit 912, a determination unit 913, and an FF 914.

FF905は、LFSR値を保持し、XOR回路906は、FF905が出力するLFSR値と、スクランブルされた入力データD7との排他的論理和を、非スクランブルデータD8として出力する。FF901は、スクランブルされた入力データD7をラッチして、セレクタ902へ出力することで、セレクタ902の入力データ921のビット幅をFF905のビット幅に合わせる。   The FF 905 holds the LFSR value, and the XOR circuit 906 outputs an exclusive OR of the LFSR value output from the FF 905 and the scrambled input data D7 as non-scrambled data D8. The FF 901 latches the scrambled input data D 7 and outputs it to the selector 902, thereby matching the bit width of the input data 921 of the selector 902 with the bit width of the FF 905.

例えば、LFSR903の多項式が23次多項式である場合、FF905のビット幅は、23ビットとなる。そして、入力データD7のビット幅が16ビットであり、16ビットの入力データ[15:0]のうち、ビット15が最初に受信したビットに対応し、ビット0が最後に受信したビットに対応する場合を考える。この場合、FF901が出力する16ビットのデータ[15:0]のうち末尾7ビットのデータ[6:0]と、16ビットの入力データ[15:0]とを統合することで、23ビットの入力データ921を生成することができる。   For example, when the LFSR 903 polynomial is a 23-order polynomial, the bit width of the FF 905 is 23 bits. The bit width of the input data D7 is 16 bits. Of the 16-bit input data [15: 0], bit 15 corresponds to the first received bit, and bit 0 corresponds to the last received bit. Think about the case. In this case, the end 7-bit data [6: 0] of the 16-bit data [15: 0] output from the FF 901 and the 16-bit input data [15: 0] are integrated to form a 23-bit data. Input data 921 can be generated.

セレクタ902は、判定部913が出力する信号lfsr_lockによって制御され、入力データ921又はFF905が出力するLFSR値を選択して、LFSR903へ出力する。LFSR903は、セレクタ902が出力するデータを更新して、次のLFSR値を生成し、OR回路904へ出力する。OR回路904は、LFSR903が出力するLFSR値とリセット信号Rとの論理和を、FF905へ出力する。リセット時以外は、リセット信号Rは論理“0”に設定される。これにより、FF905のLFSR値が次のLFSR値に更新される。   The selector 902 is controlled by the signal lfsr_lock output from the determination unit 913, selects the LFSR value output from the input data 921 or the FF 905, and outputs the selected LFSR value to the LFSR 903. The LFSR 903 updates the data output from the selector 902, generates the next LFSR value, and outputs it to the OR circuit 904. The OR circuit 904 outputs the logical sum of the LFSR value output from the LFSR 903 and the reset signal R to the FF 905. Except at the time of resetting, the reset signal R is set to logic “0”. Thereby, the LFSR value of FF905 is updated to the next LFSR value.

検出部911は、例えば、コンパレータであり、XOR回路906が出力するデータD8と、すべてのビットが論理“0”のデータALL0とを比較する。データD8とデータALL0とが一致した場合、検出部911は、論理“0”のパターンの検出を示す信号ptn_all0を、判定部913へ出力する。   The detection unit 911 is, for example, a comparator, and compares the data D8 output from the XOR circuit 906 with the data ALL0 in which all bits are logic “0”. When the data D8 matches the data ALL0, the detection unit 911 outputs a signal ptn_all0 indicating the detection of the pattern of logic “0” to the determination unit 913.

検出部912は、例えば、コンパレータであり、XOR回路906が出力するデータD8と、すべてのビットが論理“1”のデータALL1とを比較する。データD8とデータALL1とが一致した場合、検出部912は、論理“1”のパターンの検出を示す信号ptn_all1を、判定部913へ出力する。   The detection unit 912 is, for example, a comparator, and compares the data D8 output from the XOR circuit 906 with the data ALL1 whose all bits are logic “1”. When the data D8 and the data ALL1 match, the detection unit 912 outputs a signal ptn_all1 indicating the detection of the pattern of logic “1” to the determination unit 913.

判定部913は、リンク初期化中において、ptn_all0及びptn_all1に基づいて、デスクランブラロックパターン及びエンコードブロックの境界を検出したか否かを判定する。デスクランブラ642がロックしていない状態の場合、判定部913は、デスクランブラ642がロックしている状態を示す信号lfsr_lockを論理“0”に設定する。これにより、セレクタ902は、入力データ921を選択し、LFSR903は、入力データ921から次のLFSR値を生成する。   The determination unit 913 determines whether a boundary between the descrambler lock pattern and the encode block is detected based on ptn_all0 and ptn_all1 during link initialization. When the descrambler 642 is not locked, the determination unit 913 sets the signal lfsr_lock indicating the locked state of the descrambler 642 to logic “0”. As a result, the selector 902 selects the input data 921 and the LFSR 903 generates the next LFSR value from the input data 921.

デスクランブラロックパターンを検出した後、判定部913は、lfsr_lockを論理“1”に設定する。これにより、セレクタ902は、FF905が出力するLFSR値を選択し、LFSR903は、FF905が出力するLFSR値から次のLFSR値を生成する。このように、判定部913がlfsr_lockを論理“1”に設定することで、デスクランブラ642がロックされる。   After detecting the descrambler lock pattern, the determination unit 913 sets lfsr_lock to logic “1”. Accordingly, the selector 902 selects the LFSR value output from the FF 905, and the LFSR 903 generates the next LFSR value from the LFSR value output from the FF 905. Thus, the descrambler 642 is locked by the determination unit 913 setting lfsr_lock to logic “1”.

判定部913は、エンコードブロックの境界を検出しない場合、align_detを論理“0”に設定し、エンコードブロックの境界を検出した場合、align_detを論理“1”に設定する。FF914は、XOR回路906が出力するデータD8をラッチし、align_boundaryとして出力する。   The determination unit 913 sets align_det to logic “0” when the boundary of the encode block is not detected, and sets align_det to logic “1” when the boundary of the encode block is detected. The FF 914 latches the data D8 output from the XOR circuit 906 and outputs it as align_boundary.

データ転送装置601及びデータ転送装置602が、図4のデータ転送装置401及びデータ転送装置402にそれぞれ対応する場合、図8のLFSR801及びXOR回路804は、更新部414及びランダム化部412にそれぞれ対応する。   When the data transfer device 601 and the data transfer device 602 correspond to the data transfer device 401 and the data transfer device 402 in FIG. 4, the LFSR 801 and the XOR circuit 804 in FIG. 8 correspond to the update unit 414 and the randomization unit 412, respectively. To do.

一方、データ転送装置601及びデータ転送装置602が、図4のデータ転送装置402及びデータ転送装置401にそれぞれ対応する場合、図9のLFSR903及びXOR回路906は、更新部423及び復元部422にそれぞれ対応する。   On the other hand, when the data transfer device 601 and the data transfer device 602 correspond to the data transfer device 402 and the data transfer device 401 in FIG. 4, the LFSR 903 and the XOR circuit 906 in FIG. Correspond.

図6のデータ転送システムによれば、リンク初期化中においても、スクランブルされた送信データ列のみがシリアルバス603に出力されるため、送信データ列のランダム性が高くなり、伝送品質が向上する。また、スクランブルされたデータとスクランブルされていないデータとを区別するための回路が不要になるため、送信回路及び受信回路の構成及び制御が簡単化される。   According to the data transfer system of FIG. 6, since only the scrambled transmission data string is output to the serial bus 603 even during link initialization, the randomness of the transmission data string is increased and the transmission quality is improved. In addition, since a circuit for distinguishing between scrambled data and unscrambled data becomes unnecessary, the configuration and control of the transmission circuit and the reception circuit are simplified.

図7に示したデスクランブラロックパターンの代わりに、前半K個のエンコードブロックにデータALL1を設定し、後半K個のエンコードブロックにデータALL0を設定した、デスクランブラロックパターンを用いることも可能である。   Instead of the descrambler lock pattern shown in FIG. 7, it is also possible to use a descrambler lock pattern in which data ALL1 is set in the first half K encoded blocks and data ALL0 is set in the second half K encode blocks. .

図10A及び図10Bは、図9の判定部913が行う動作の例を示すフローチャートである。判定部913は、データ判定を開始すると(ステップ1001)、idle状態に移行し、lfsr_lock及びalign_detを論理“0”に設定する(ステップ1002)。そして、判定部913は、カウント値を表すpattern counterを0に設定する(ステップ1003)。   10A and 10B are flowcharts illustrating an example of operations performed by the determination unit 913 in FIG. When the determination unit 913 starts data determination (step 1001), the determination unit 913 shifts to an idle state, and sets lfsr_lock and align_det to logic “0” (step 1002). Then, the determination unit 913 sets a pattern counter representing the count value to 0 (step 1003).

次に、判定部913は、検出部911が出力するptn_all0の値をチェックし(ステップ1004)、ptn_all0が論理“0”である場合(ステップ1004,NO)、ステップ1003以降の動作を繰り返す。一方、ptn_all0が論理“1”である場合(ステップ1004,YES)、判定部913は、pattern counterを1だけインクリメントする(ステップ1005)。そして、判定部913は、pattern counterを、ALL0を検出した回数に対する閾値TH1と比較する(ステップ1006)。   Next, the determination unit 913 checks the value of ptn_all0 output from the detection unit 911 (step 1004). If ptn_all0 is logic “0” (step 1004, NO), the operation after step 1003 is repeated. On the other hand, when ptn_all0 is logic “1” (step 1004, YES), the determination unit 913 increments the pattern counter by 1 (step 1005). Then, the determination unit 913 compares the pattern counter with a threshold value TH1 for the number of times ALL0 has been detected (step 1006).

pattern counterがTH1よりも小さい場合(ステップ1006,NO)、判定部913は、ステップ1004以降の動作を繰り返す。一方、pattern counterがTH1に達した場合(ステップ1006,YES)、判定部913は、lfsr_lockを論理“1”に設定し(ステップ1007)、pattern counterを0に設定して、prelock状態に移行する(ステップ1008)。prelock状態は、デスクランブラロックパターンの前半のALL0が検出された状態を表す。   When the pattern counter is smaller than TH1 (step 1006, NO), the determination unit 913 repeats the operations after step 1004. On the other hand, when the pattern counter reaches TH1 (step 1006, YES), the determination unit 913 sets lfsr_lock to logic “1” (step 1007), sets the pattern counter to 0, and shifts to the prelock state. (Step 1008). The prelock state represents a state in which ALL0 in the first half of the descrambler lock pattern is detected.

次に、判定部913は、検出部912が出力するptn_all1の値をチェックする(ステップ1009)。ptn_all1が論理“0”である場合(ステップ1009,NO)、判定部913は、pattern counterを1だけインクリメントする(ステップ1010)。そして、判定部913は、pattern counterを、ALL1を検出しなかった回数に対する閾値TH2と比較する(ステップ1011)。   Next, the determination unit 913 checks the value of ptn_all1 output from the detection unit 912 (step 1009). When ptn_all1 is logic “0” (step 1009, NO), the determination unit 913 increments the pattern counter by 1 (step 1010). Then, the determination unit 913 compares the pattern counter with a threshold value TH2 for the number of times that ALL1 has not been detected (step 1011).

pattern counterがTH2よりも小さい場合(ステップ1011,NO)、判定部913は、ステップ1009以降の動作を繰り返す。一方、pattern counterがTH2に達した場合(ステップ1011,YES)、判定部913は、ステップ1002以降の動作を繰り返す。この場合、判定部913は、デスクランブラロックパターンを検出しなかったと判定して、idle状態に戻り、pattern counterを0にリセットする。   When the pattern counter is smaller than TH2 (step 1011, NO), the determination unit 913 repeats the operations after step 1009. On the other hand, when the pattern counter reaches TH2 (step 1011, YES), the determination unit 913 repeats the operations after step 1002. In this case, the determination unit 913 determines that the descrambler lock pattern has not been detected, returns to the idle state, and resets the pattern counter to 0.

ptn_all1が論理“1”である場合(ステップ1009,YES)、判定部913は、align_detを論理“1”に設定し(ステップ1012)、pattern counterに0を設定して、det状態に移行する(ステップ1013)。det状態は、デスクランブラロックパターンに含まれるエンコードブロックの境界が検出された状態を表す。   When ptn_all1 is logic “1” (step 1009, YES), the determination unit 913 sets align_det to logic “1” (step 1012), sets 0 to the pattern counter, and shifts to the det state ( Step 1013). The det state represents a state in which the boundary of the encode block included in the descrambler lock pattern is detected.

次に、判定部913は、ptn_all1の値をチェックし(ステップ1014)、ptn_all1が論理“0”である場合(ステップ1014,NO)、ステップ1002以降の動作を繰り返す。この場合、判定部913は、デスクランブラロックパターンを検出しなかったと判定して、idle状態に戻り、pattern counterを0にリセットする。   Next, the determination unit 913 checks the value of ptn_all1 (step 1014). If ptn_all1 is logic “0” (step 1014, NO), the operation from step 1002 is repeated. In this case, the determination unit 913 determines that the descrambler lock pattern has not been detected, returns to the idle state, and resets the pattern counter to 0.

一方、ptn_all1が論理“1”である場合(ステップ1014,YES)、判定部913は、pattern counterを1だけインクリメントする(ステップ1015)。そして、判定部913は、pattern counterを、ALL1を検出した回数に対する閾値TH3と比較する(ステップ1016)。   On the other hand, when ptn_all1 is logic “1” (step 1014, YES), the determination unit 913 increments the pattern counter by 1 (step 1015). Then, the determination unit 913 compares the pattern counter with a threshold value TH3 for the number of times ALL1 has been detected (step 1016).

pattern counterがTH3よりも小さい場合(ステップ1016,NO)、判定部913は、ステップ1014以降の動作を繰り返す。一方、pattern counterがTH3に達した場合(ステップ1016,YES)、判定部913は、pattern counterを0に設定して、lock状態に移行する(ステップ1017)。lock状態は、デスクランブラロックパターン全体が検出された状態を表す。   When the pattern counter is smaller than TH3 (step 1016, NO), the determination unit 913 repeats the operations after step 1014. On the other hand, when the pattern counter reaches TH3 (step 1016, YES), the determination unit 913 sets the pattern counter to 0 and shifts to the lock state (step 1017). The lock state represents a state in which the entire descrambler lock pattern is detected.

align_detが論理“1”に設定されると、アライメント回路643は、エラスティックバッファ644に対する書き込みを開始する。このとき、エラスティックバッファ644は、elbf_actを論理“1”に設定することで、間接的に、デスクランブラ642の同期化とエンコードブロックのアライメントの両方が完了していることを、トレーニング制御部613へ通知する。   When the alignment_det is set to logic “1”, the alignment circuit 643 starts writing to the elastic buffer 644. At this time, the elastic buffer 644 sets elbf_act to logic “1” to indirectly indicate that both the synchronization of the descrambler 642 and the alignment of the encode block have been completed. To notify.

次に、判定部913は、トレーニング制御部613が出力するlfsr_re_lockの値をチェックし(ステップ1018)、lfsr_re_lockが論理“1”である場合(ステップ1018,YES)、ステップ1002以降の動作を繰り返す。この場合、判定部913は、idle状態に戻ってリンク初期化を再開する。   Next, the determination unit 913 checks the value of lfsr_re_lock output from the training control unit 613 (step 1018). If lfsr_re_lock is logic “1” (step 1018, YES), the operation after step 1002 is repeated. In this case, the determination unit 913 returns to the idle state and resumes link initialization.

一方、lfsr_re_lockが論理“0”である場合(ステップ1018,NO)、判定部913は、データ判定を終了するか否かを判定する(ステップ1019)。データ判定を終了しない場合(ステップ1019,NO)、判定部913は、ステップ1018以降の動作を繰り返す。したがって、判定部913は、トレーニング制御部613から同期化の再実行を指示されない限り、lock状態を維持する。   On the other hand, when lfsr_re_lock is logic “0” (step 1018, NO), the determination unit 913 determines whether or not to end the data determination (step 1019). When the data determination is not completed (step 1019, NO), the determination unit 913 repeats the operations after step 1018. Therefore, the determination unit 913 maintains the lock state unless the training control unit 613 instructs to re-execute synchronization.

一方、データ判定を終了する場合(ステップ1019,YES)、判定部913は、動作を終了する。例えば、デスクランブラ642の電源がオフになった場合、又はトレーニング制御部613から動作停止指示を受信した場合に、データ判定を終了すると判定される。   On the other hand, when the data determination is finished (step 1019, YES), the determination unit 913 ends the operation. For example, when the power of the descrambler 642 is turned off or when an operation stop instruction is received from the training control unit 613, it is determined that the data determination is finished.

図10A及び図10Bのデータ判定によれば、デスクランブラロックパターンを用いて、デスクランブラ642の同期化とエンコードブロックのアライメントの両方を同時に行うことができる。   10A and 10B, the descrambler lock pattern can be used to simultaneously perform descrambler 642 synchronization and encode block alignment.

ステップ1006において、pattern counterをTH1と比較することで、デスクランブラロックパターンの前半部分を検出したことを確認できる。そして、デスクランブラロックパターンの前半部分とは異なるデータ列を受信した場合は、pattern counterをリセットして、デスクランブラロックパターンの検出をやり直すことができる。   In step 1006, it can be confirmed that the first half of the descrambler lock pattern has been detected by comparing the pattern counter with TH1. If a data string different from the first half of the descrambler lock pattern is received, the pattern counter can be reset and the descrambler lock pattern can be detected again.

また、ステップ1011において、pattern counterをTH2と比較することで、デスクランブラロックパターンの後半部分を検出しなかったことを確認した上で、デスクランブラロックパターンの検出をやり直すことができる。   Further, in step 1011, by comparing the pattern counter with TH2, it is possible to redo the detection of the descrambler lock pattern after confirming that the latter half of the descrambler lock pattern has not been detected.

さらに、ステップ1016において、pattern counterをTH3と比較することで、デスクランブラロックパターンの後半部分を検出したことを確認できる。そして、デスクランブラロックパターンの後半部分とは異なるデータ列を受信した場合は、pattern counterをリセットして、デスクランブラロックパターンの検出をやり直すことができる。   Furthermore, in step 1016, it is possible to confirm that the latter half of the descrambler lock pattern has been detected by comparing the pattern counter with TH3. When a data string different from the latter half of the descrambler lock pattern is received, the pattern counter can be reset and the descrambler lock pattern can be detected again.

図11は、デスクランブラ642が行う動作の例を示すタイミングチャートである。図11において、t0〜t22の各期間は、クロック信号rx_clkの1サイクルに対応する。   FIG. 11 is a timing chart illustrating an example of an operation performed by the descrambler 642. In FIG. 11, each period from t0 to t22 corresponds to one cycle of the clock signal rx_clk.

状態は、判定部913の状態を表し、scramble receive data[15:0]は、16ビットの入力データD7を表し、shft−reg出力[15:0]は、FF901が出力する16ビットのデータを表す。   The state represents the state of the determination unit 913, scramble receive data [15: 0] represents 16-bit input data D7, and shft-reg output [15: 0] represents 16-bit data output by the FF 901. To express.

next lfsr入力[22:0]は、セレクタ902が出力する23ビットのデータを表し、next lfsr出力[22:0]は、LFSR903が出力する23ビットのデータを表す。lfsr−reg出力[22:0]は、FF905が出力する23ビットのデータを表し、non−scramble receive data[15:0]は、16ビットの非スクランブルデータD8を表す。   The next lfsr input [22: 0] represents the 23-bit data output from the selector 902, and the next lfsr output [22: 0] represents the 23-bit data output from the LFSR 903. The lfsr-reg output [22: 0] represents the 23-bit data output from the FF 905, and the non-scramble receive data [15: 0] represents the 16-bit non-scrambled data D8.

1個のエンコードブロックのビット幅は20ビットであり、デスクランブラロックパターンは、前半8個のデータALL0及び後半8個のデータALL1を含むものとする。また、送信回路621内のLFSRは、連続する320ビットのLFSR値bit_ptn[0:319]を生成し、このうちビット0が先頭のビットであり、ビット319が末尾のビットであるものとする。   It is assumed that the bit width of one encode block is 20 bits, and the descrambler lock pattern includes the first half 8 data ALL0 and the second half 8 data ALL1. The LFSR in the transmission circuit 621 generates a continuous 320-bit LFSR value bit_ptn [0: 319], of which bit 0 is the first bit and bit 319 is the last bit.

この場合、デスクランブラロックパターンの前半8個のALL0をスクランブルしたデータは、bit_ptn[0:159]そのものである。scramble receive data[15:0]の“0:8”等は、bit_ptn[0:319]の対応するビット列を表す。   In this case, data obtained by scrambling the first eight ALL0s of the descrambler lock pattern is bit_ptn [0: 159] itself. “0: 8” or the like of scramble receive data [15: 0] represents a bit string corresponding to bit_ptn [0: 319].

一方、後半8個のALL1をスクランブルしたデータは、bit_ptn[160:319]を反転した値になる。scramble receive data[15:0]の“160:168”等は、bit_ptn[0:319]の対応するビット列を反転した値を表す。 On the other hand, the data obtained by scrambling the latter eight ALL1s is a value obtained by inverting bit_ptn [160: 319]. “ 160: 168 ” or the like of scramble receive data [15: 0] represents a value obtained by inverting the corresponding bit string of bit_ptn [0: 319].

ステップ1006のTH1、ステップ1011のTH2、及びステップ1016のTH3は、例えば、次式を満たすように決定される。   For example, TH1 in step 1006, TH2 in step 1011, and TH3 in step 1016 are determined so as to satisfy the following equation, for example.

1≦TH1≦(B1−B2)/B3−2 (1)
TH2≧(B1−B2)/B3−TH1+1 (2)
1≦TH3≦B4/B3−3 (3)
1 ≦ TH1 ≦ (B1-B2) / B3-2 (1)
TH2 ≧ (B1-B2) / B3-TH1 + 1 (2)
1 ≦ TH3 ≦ B4 / B3-3 (3)

B1は、デスクランブラロックパターンの前半K個のALL0のビット幅を表し、B2は、LFSR903のビット幅を表し、B3は、入力データD7のビット幅を表し、B4は、デスクランブラロックパターンの後半K個のALL1のビット幅を表す。K=8、B1=B4=160、B2=23、B3=16である場合、式(1)及び式(3)は、次式によって置き換えられる。   B1 represents the bit width of the first K ALL0s of the descrambler lock pattern, B2 represents the bit width of the LFSR 903, B3 represents the bit width of the input data D7, and B4 represents the second half of the descrambler lock pattern. It represents the bit width of K ALL1s. When K = 8, B1 = B4 = 160, B2 = 23, and B3 = 16, the equations (1) and (3) are replaced by the following equations.

1≦TH1≦6.56 (4)
1≦TH3≦7 (5)
1 ≦ TH1 ≦ 6.56 (4)
1 ≦ TH3 ≦ 7 (5)

また、TH1=5である場合、式(2)は、次式によって置き換えられる。   When TH1 = 5, the expression (2) is replaced by the following expression.

TH2≧4.56 (6) TH2 ≧ 4.56 (6)

デスクランブラ642が未だロックされていないt0〜t8の各期間においては、lfsr_lock=0であるため、セレクタ902は、入力データ921をLFSR903へ出力する。したがって、next_lfsr入力[22:0]には、1サイクル前の期間におけるshift−reg出力[6:0]と、当該期間におけるscramble receive data[15:0]とが混在している。   In each period from t0 to t8 when the descrambler 642 is not yet locked, since lfsr_lock = 0, the selector 902 outputs the input data 921 to the LFSR 903. Therefore, the shift_reg output [6: 0] in the period one cycle before and the scramble receive data [15: 0] in the period are mixed in the next_lfsr input [22: 0].

この場合、LFSR903は、next_lfsr入力[22:0]を、scramble receive data[15:0]のビット数に相当する16ビット分更新して、次のLFSR値を生成し、next lfsr出力[22:0]として出力する。そして、FF905は、LFSR903が生成した次のLFSR値を、次の期間において、lfsr−reg出力[22:0]として出力する。   In this case, the LFSR 903 updates the next_lfsr input [22: 0] by 16 bits corresponding to the number of bits of the scramble receive data [15: 0], generates the next LFSR value, and outputs the next lfsr output [22: 0] is output. Then, the FF 905 outputs the next LFSR value generated by the LFSR 903 as the lfsr-reg output [22: 0] in the next period.

例えば、期間t2において、LFSR903は、next_lfsr入力[22:0]として入力されるbit_ptn[2:24]を16ビット分更新することで、bit_ptn[18:40]を生成し、next lfsr出力[22:0]として出力する。そして、FF905は、期間t3において、bit_ptn[18:40]をlfsr−reg出力[22:0]として出力する。   For example, in the period t2, the LFSR 903 generates bit_ptn [18:40] by updating bit_ptn [2:24] input as the next_lfsr input [22: 0] by 16 bits, and generates the next lfsr output [22]. : 0]. Then, the FF 905 outputs bit_ptn [18:40] as the lfsr-reg output [22: 0] in the period t3.

デスクランブラロックパターンのALL0を受信している間は、non−scramble receive data[15:0]はALL0であり、ptn_all0は論理“1”に設定される。そして、TH1に相当する規定回数だけ連続してptn_all0=1が検出されると、lfsr_lockが論理“1”に設定され、判定部913はprelock状態になる。例えば、TH1=5である場合、期間t8において、pattern counter=5になるため、期間t9において、lfsr_lock=1になる。   While receiving descrambler lock pattern ALL0, non-scramble receive data [15: 0] is ALL0, and ptn_all0 is set to logic “1”. When ptn_all0 = 1 is detected continuously for the prescribed number of times corresponding to TH1, lfsr_lock is set to logic “1”, and the determination unit 913 enters the prelock state. For example, when TH1 = 5, since pattern counter = 5 in period t8, lfsr_lock = 1 in period t9.

lfsr_lock=1になると、セレクタ902は、lfsr−reg出力[22:0]をLFSR903へ出力する。したがって、next_lfsr入力[22:0]=lfsr−reg出力[22:0]になる。例えば、期間t9において、FF905からlfsr−reg出力[22:0]として出力されるbit_ptn[114:136]は、next_lfsr入力[22:0]としてLFSR903へ入力される。   When lfsr_lock = 1, the selector 902 outputs the lfsr-reg output [22: 0] to the LFSR 903. Therefore, next_lfsr input [22: 0] = lfsr-reg output [22: 0]. For example, in the period t9, bit_ptn [114: 136] output from the FF 905 as the lfsr-reg output [22: 0] is input to the LFSR 903 as the next_lfsr input [22: 0].

次に、期間t12において、non−scramble receive data[15:0]がALL1になると、ptn_all1が論理“1”に設定されるとともに、align_detが論理“1”に設定される。このとき、FF914は、1サイクル前の期間t11におけるnon−scramble receive data[15:0]を、align_boundaryとして出力する。   Next, in the period t12, when non-scramble receive data [15: 0] becomes ALL1, ptn_all1 is set to logic “1”, and align_det is set to logic “1”. At this time, the FF 914 outputs non-scramble received data [15: 0] in the period t11 one cycle before as align_boundary.

デスクランブラ642が正しくロックされている場合、align_boundaryは、ALL0のパターン、又は“00..00111..11”のように“0”と“1”の切り替わりを1箇所だけ含むパターンになる。この例では、期間t12におけるalign_boundaryは、7ビットの“0”と9ビットの“1”とからなるビット列{7’h00,9’h1ff}である。   When the descrambler 642 is correctly locked, the alignment_boundary is an ALL0 pattern or a pattern including only one switching between “0” and “1” such as “00..001111.11”. In this example, the alignment_boundary in the period t12 is a bit string {7′h00, 9′h1ff} including 7 bits “0” and 9 bits “1”.

{7’h00,9’h1ff}=“0000000111111111” (7) {7′h00, 9′h1ff} = “0000000111111111” (7)

この場合、align_boundaryに含まれる“0”と“1”の切り替わりの位置が、エンコードブロックの境界を示している。その後、期間t13において、判定部913はdet状態になる。   In this case, the switching position between “0” and “1” included in the alignment_boundary indicates the boundary of the encoding block. Thereafter, in the period t13, the determination unit 913 enters the det state.

det状態において、TH3に相当する規定回数だけ連続してptn_all1=1が検出されると、判定部913はlock状態になる。例えば、TH3=4である場合、期間t17において、pattern counter=4になるため、期間t18において、判定部913はlock状態になる。その後、期間t21において、tsos等のトレーニングパターンがデスクランブラ642に入力される。   In the det state, when ptn_all1 = 1 is continuously detected for a specified number of times corresponding to TH3, the determination unit 913 enters the lock state. For example, when TH3 = 4, pattern counter = 4 in the period t17, so that the determination unit 913 enters the locked state in the period t18. Thereafter, in a period t21, a training pattern such as tsos is input to the descrambler 642.

図12A及び図12Bは、図6の受信シーケンスコントローラ652が行う動作の例を示すフローチャートである。受信シーケンスコントローラ652は、ステージ0〜ステージ2の3つの状態になり得る。ステージ0及びステージ1は、リンク初期化中の状態であり、ステージ2は、リンク初期化が完了した状態である。   12A and 12B are flowcharts illustrating an example of operations performed by the reception sequence controller 652 of FIG. The reception sequence controller 652 can be in three states: stage 0 to stage 2. Stage 0 and stage 1 are in a state of link initialization, and stage 2 is a state in which link initialization is completed.

受信シーケンスコントローラ652は、リンク初期化を開始すると、lfsr_re_lock及びrx_packet_validを論理“0”に設定し、ステージ0に移行する(ステップ1201)。   When starting the link initialization, the reception sequence controller 652 sets lfsr_re_lock and rx_packet_valid to logic “0”, and proceeds to stage 0 (step 1201).

次に、受信シーケンスコントローラ652は、エラスティックバッファ644が出力するelbf_actの値をチェックする(ステップ1202)。elbf_actが論理“1”である場合(ステップ1202,YES)、受信シーケンスコントローラ652は、デスクランブラ642の同期化を再度実行するか否かを判定する(ステップ1203)。   Next, the reception sequence controller 652 checks the value of elbf_act output from the elastic buffer 644 (step 1202). If elbf_act is logic “1” (step 1202, YES), the reception sequence controller 652 determines whether or not to synchronize the descrambler 642 again (step 1203).

このとき、受信シーケンスコントローラ652は、デコーダ645がdecode_errorを出力した回数及びCRCチェッカ647がcrc_errorを出力した回数をカウントする。そして、受信シーケンスコントローラ652は、いずれかの回数が所定回数以上である場合、デスクランブラ642の同期化を再度実行すると判定し、いずれの回数も所定回数未満である場合、デスクランブラ642の同期化を再度実行しないと判定する。   At this time, the reception sequence controller 652 counts the number of times the decoder 645 has output decode_error and the number of times that the CRC checker 647 has output crc_error. The reception sequence controller 652 determines that the synchronization of the descrambler 642 is executed again if any of the numbers is equal to or greater than the predetermined number of times, and the synchronization of the descrambler 642 is determined if any of the numbers is less than the predetermined number of times. Is determined not to be executed again.

デスクランブラ642の同期化を再度実行する場合(ステップ1203,YES)、受信シーケンスコントローラ652は、lfsr_re_lockを論理“1”に設定し(ステップ1204)、elbf_actの値をチェックする(ステップ1205)。   When synchronization of the descrambler 642 is executed again (step 1203, YES), the reception sequence controller 652 sets lfsr_re_lock to logic “1” (step 1204) and checks the value of elbf_act (step 1205).

lfsr_re_lockが論理“1”に設定されると、デスクランブラ642は、align_detを論理“0”に設定する。そして、アライメント回路643は、エラスティックバッファ644に対する書き込みを中止し、エラスティックバッファ644は、elbf_actを論理“0”に設定する。したがって、受信シーケンスコントローラ652は、elbf_actの変化を検出することで、再同期化の指示がデスクランブラ642に伝わったことを認識できる。   When lfsr_re_lock is set to logic “1”, the descrambler 642 sets align_det to logic “0”. The alignment circuit 643 stops writing to the elastic buffer 644, and the elastic buffer 644 sets elbf_act to logic “0”. Therefore, the reception sequence controller 652 can recognize that the resynchronization instruction has been transmitted to the descrambler 642 by detecting the change in elbf_act.

elbf_actが論理“1”である場合(ステップ1205,NO)、受信シーケンスコントローラ652は、ステップ1205の動作を繰り返す。一方、elbf_actが論理“0”である場合(ステップ1205,YES)、受信シーケンスコントローラ652は、lfsr_re_lockを論理“0”に設定し(ステップ1206)、elbf_actの値をチェックする(ステップ1207)。   When elbf_act is logic “1” (step 1205, NO), the reception sequence controller 652 repeats the operation of step 1205. On the other hand, when elbf_act is logic “0” (step 1205, YES), the reception sequence controller 652 sets lfsr_re_lock to logic “0” (step 1206), and checks the value of elbf_act (step 1207).

デスクランブラ642が同期化を再開し、align_detを論理“1”に設定すると、アライメント回路643は、エラスティックバッファ644に対する書き込みを再開し、エラスティックバッファ644は、elbf_actを論理“1”に設定する。したがって、受信シーケンスコントローラ652は、elbf_actの変化を検出することで、デスクランブラ642の再同期化が完了したことを認識できる。   When descrambler 642 resumes synchronization and sets align_det to logic “1”, alignment circuit 643 resumes writing to elastic buffer 644 and elastic buffer 644 sets elbf_act to logic “1”. . Therefore, the reception sequence controller 652 can recognize that the resynchronization of the descrambler 642 has been completed by detecting the change in elbf_act.

elbf_actが論理“0”である場合(ステップ1207,NO)、受信シーケンスコントローラ652は、ステップ1207の動作を繰り返す。一方、elbf_actが論理“1”である場合(ステップ1207,YES)、受信シーケンスコントローラ652は、パターン受信部646が出力するtsos1_det及びtsos2_detの値をチェックする(ステップ1208)。ステージ0の状態で、かつ、tsos1_det又はtsos2_detが論理“1”である場合(ステップ1208,YES)、受信シーケンスコントローラ652は、ステージ1に移行する(ステップ1209)。   When elbf_act is logic “0” (step 1207, NO), the reception sequence controller 652 repeats the operation of step 1207. On the other hand, when elbf_act is logic “1” (step 1207, YES), the reception sequence controller 652 checks the values of tsos1_det and tsos2_det output from the pattern reception unit 646 (step 1208). In the state of stage 0 and when tsos1_det or tsos2_det is logic “1” (step 1208, YES), the reception sequence controller 652 proceeds to stage 1 (step 1209).

次に、受信シーケンスコントローラ652は、tsos2_detの値をチェックする(ステップ1210)。ステージ1の状態で、かつ、tsos2_detが論理“1”である場合(ステップ1210,YES)、受信シーケンスコントローラ652は、リンク初期化を終了して、パケットの受信を開始する(ステップ1211)。そして、受信シーケンスコントローラ652は、ステージ2に移行して、rx_packet_validを論理“1”に設定する。   Next, the reception sequence controller 652 checks the value of tsos2_det (step 1210). In the state of stage 1 and when tsos2_det is logic “1” (step 1210, YES), the reception sequence controller 652 finishes link initialization and starts receiving packets (step 1211). Then, the reception sequence controller 652 moves to stage 2 and sets rx_packet_valid to logic “1”.

次に、受信シーケンスコントローラ652は、tsos1_detの値をチェックする(ステップ1212)。tsos1_detが論理“0”である場合(ステップ1212,NO)、受信シーケンスコントローラ652は、ステップ1203と同様にして、デスクランブラ642の同期化を再度実行するか否かを判定する(ステップ1213)。   Next, the reception sequence controller 652 checks the value of tsos1_det (step 1212). When tsos1_det is logic “0” (step 1212, NO), the reception sequence controller 652 determines whether or not to synchronize the descrambler 642 again as in step 1203 (step 1213).

デスクランブラ642の同期化を再度実行しない場合(ステップ1213,NO)、受信シーケンスコントローラ652は、パケットの受信を終了するか否かを判定する(ステップ1214)。パケットの受信を終了しない場合(ステップ1214,NO)、受信シーケンスコントローラ652は、ステップ1212以降の動作を繰り返す。一方、パケットの受信を終了する場合(ステップ1214,YES)、受信シーケンスコントローラ652は、動作を終了する。   When synchronization of the descrambler 642 is not executed again (step 1213, NO), the reception sequence controller 652 determines whether or not to end the packet reception (step 1214). When the reception of the packet is not finished (step 1214, NO), the reception sequence controller 652 repeats the operations after step 1212. On the other hand, when the reception of the packet is ended (step 1214, YES), the reception sequence controller 652 ends the operation.

ステップ1202において、elbf_actが論理“0”である場合(ステップ1202,NO)、受信シーケンスコントローラ652は、ステップ1207以降の動作を行う。ステップ1203において、デスクランブラ642の同期化を再度実行しない場合(ステップ1203,NO)、受信シーケンスコントローラ652は、ステップ1206以降の動作を行う。   In step 1202, when elbf_act is logic “0” (step 1202, NO), the reception sequence controller 652 performs the operation after step 1207. If the synchronization of the descrambler 642 is not executed again at step 1203 (step 1203, NO), the reception sequence controller 652 performs the operations after step 1206.

ステップ1208において、tsos1_det及びtsos2_detがともに論理“0”、もしくは、ステージ1の状態である場合(ステップ1208,NO)、受信シーケンスコントローラ652は、ステップ1210以降の動作を行う。ステップ1210において、tsos2_detが論理“0”、もしくは、ステージ0の状態である場合(ステップ1210,NO)、受信シーケンスコントローラ652は、ステップ1202以降の動作を繰り返す。   In step 1208, if both tsos1_det and tsos2_det are logic “0” or in the state of stage 1 (step 1208, NO), the reception sequence controller 652 performs the operation from step 1210 onward. In step 1210, when tsos2_det is logic “0” or in the state of stage 0 (step 1210, NO), the reception sequence controller 652 repeats the operations after step 1202.

ステップ1212において、tsos1_detが論理“1”である場合(ステップ1212,YES)、受信シーケンスコントローラ652は、ステップ1201以降の動作を繰り返す。ステップ1213において、デスクランブラ642の同期化を再度実行する場合(ステップ1213,YES)、受信シーケンスコントローラ652は、ステップ1201以降の動作を行う。   If tsos1_det is logic “1” in step 1212 (step 1212, YES), the reception sequence controller 652 repeats the operations in and after step 1201. In step 1213, when the descrambler 642 is synchronized again (YES in step 1213), the reception sequence controller 652 performs the operations in and after step 1201.

図13A〜図13Cは、図6の送信シーケンスコントローラ651が行う動作の例を示すフローチャートである。リンク初期化中において、送信シーケンスコントローラ651は、受信シーケンスコントローラ652の状態に応じて、tsos1又はtsos2を切り替えて送信する。   13A to 13C are flowcharts illustrating an example of operations performed by the transmission sequence controller 651 in FIG. During link initialization, the transmission sequence controller 651 switches between tsos1 and tsos2 for transmission according to the state of the reception sequence controller 652.

受信シーケンスコントローラ652の状態がステージ0である場合は、tsos1が送信され、ステージ1である場合は、tsos2が送信される。また、受信シーケンスコントローラ652がステージ2に移行した直後は、データ転送装置602に対するtsos2の送信を保証するため、M個(Mは2以上の整数)のtsos2が送信される。   When the state of the reception sequence controller 652 is stage 0, tsos1 is transmitted, and when it is stage 1, tsos2 is transmitted. Immediately after the reception sequence controller 652 shifts to stage 2, M (M is an integer of 2 or more) tsos2 are transmitted to guarantee transmission of tsos2 to the data transfer apparatus 602.

まず、送信シーケンスコントローラ651は、skpos_send counter及びdsc_lock_ptn counterを0に設定する(ステップ1301)。skpos_send counterは、skposの送信タイミングを示すカウント値であり、dsc_lock_ptn counterは、デスクランブラロックパターンの送信タイミングを示すカウント値である。   First, the transmission sequence controller 651 sets skpos_send counter and dsc_lock_ptn counter to 0 (step 1301). The skpos_send counter is a count value indicating the transmission timing of skpos, and the dsc_lock_ptn counter is a count value indicating the transmission timing of the descrambler lock pattern.

次に、送信シーケンスコントローラ651は、リンク初期化を開始し、packet_select、tsos2_send、dsc_lock_ptn_send、及びskpos_sendを論理“0”に設定する(ステップ1302)。そして、送信シーケンスコントローラ651は、tsos1_sendを論理“1”に設定する。これにより、パターン生成部632は、tsos1を生成し、送信回路611は、tsos1をデータ転送装置602へ送信する。   Next, the transmission sequence controller 651 starts link initialization, and sets packet_select, tsos2_send, dsc_lock_ptn_send, and skpos_send to logic “0” (step 1302). The transmission sequence controller 651 sets tsos1_send to logic “1”. Thereby, the pattern generation unit 632 generates tsos1 and the transmission circuit 611 transmits tsos1 to the data transfer device 602.

次に、送信シーケンスコントローラ651は、送信回路611が1個のエンコードブロックを送信したか否かをチェックする(ステップ1303)。送信回路611が1個のエンコードブロックを送信中である場合(ステップ1303,NO)、送信シーケンスコントローラ651は、ステップ1303の動作を繰り返す。   Next, the transmission sequence controller 651 checks whether or not the transmission circuit 611 has transmitted one encode block (step 1303). When the transmission circuit 611 is transmitting one encode block (step 1303, NO), the transmission sequence controller 651 repeats the operation of step 1303.

一方、送信回路611が1個のエンコードブロックを送信した場合(ステップ1303,YES)、送信シーケンスコントローラ651は、skpos_send counterを1だけインクリメントする(ステップ1304)。そして、送信シーケンスコントローラ651は、送信されたエンコードブロックがtsosの末尾であるか否かをチェックする(ステップ1305)。送信されたエンコードブロックがtsosの末尾ではない場合(ステップ1305,NO)、送信シーケンスコントローラ651は、ステップ1303以降の動作を繰り返す。   On the other hand, when the transmission circuit 611 transmits one encode block (step 1303, YES), the transmission sequence controller 651 increments skpos_send counter by 1 (step 1304). Then, the transmission sequence controller 651 checks whether or not the transmitted encoded block is at the end of tsos (step 1305). If the transmitted encoded block is not at the end of tsos (step 1305, NO), the transmission sequence controller 651 repeats the operations after step 1303.

一方、送信されたエンコードブロックがtsosの末尾である場合(ステップ1305,YES)、送信シーケンスコントローラ651は、dsc_lock_ptn counterを1だけインクリメントする(ステップ1306)。そして、送信シーケンスコントローラ651は、skpos_send counterを閾値TH4と比較する(ステップ1307)。   On the other hand, when the transmitted encoded block is the end of tsos (step 1305, YES), the transmission sequence controller 651 increments dsc_lock_ptn counter by 1 (step 1306). Then, the transmission sequence controller 651 compares the skpos_send counter with the threshold value TH4 (step 1307).

skpos_send counterがTH4よりも大きい場合(ステップ1307,YES)、送信シーケンスコントローラ651は、skpos_sendを論理“1”に設定する(ステップ1308)。これにより、パターン生成部632は、skposを生成し、送信回路611は、skposをデータ転送装置602へ送信する。ただし、tsos又はデスクランブラロックパターンの送信中である場合、その送信完了を待ってから、skposが送信される。   If skpos_send counter is greater than TH4 (step 1307, YES), the transmission sequence controller 651 sets skpos_send to logic “1” (step 1308). As a result, the pattern generation unit 632 generates skpos, and the transmission circuit 611 transmits skpos to the data transfer device 602. However, when the tsos or descrambler lock pattern is being transmitted, skpos is transmitted after waiting for the completion of the transmission.

次に、送信シーケンスコントローラ651は、送信回路611がskposを送信したか否かをチェックする(ステップ1309)。送信回路611がskposを送信中である場合(ステップ1309,NO)、送信シーケンスコントローラ651は、ステップ1309の動作を繰り返す。   Next, the transmission sequence controller 651 checks whether or not the transmission circuit 611 has transmitted skpos (step 1309). When the transmission circuit 611 is transmitting skpos (step 1309, NO), the transmission sequence controller 651 repeats the operation of step 1309.

一方、送信回路611がskposを送信した場合(ステップ1309,YES)、送信シーケンスコントローラ651は、skpos_sendを論理“0”に設定し、skpos_send counterを0に設定する(ステップ1310)。そして、送信シーケンスコントローラ651は、dsc_lock_ptn counterを閾値TH5と比較する(ステップ1311)。   On the other hand, when the transmission circuit 611 transmits skpos (step 1309, YES), the transmission sequence controller 651 sets skpos_send to logic “0” and sets skpos_send counter to 0 (step 1310). Then, the transmission sequence controller 651 compares the dsc_lock_ptn counter with the threshold value TH5 (step 1311).

dsc_lock_ptn counterがTH5よりも大きい場合(ステップ1311,YES)、送信シーケンスコントローラ651は、dsc_lock_ptn_sendを論理“1”に設定する(ステップ1312)。これにより、パターン生成部632は、デスクランブラロックパターンを生成し、送信回路611は、デスクランブラロックパターンをデータ転送装置602へ送信する。   If dsc_lock_ptn counter is larger than TH5 (step 1311, YES), the transmission sequence controller 651 sets dsc_lock_ptn_send to logic “1” (step 1312). Thereby, the pattern generation unit 632 generates a descrambler lock pattern, and the transmission circuit 611 transmits the descrambler lock pattern to the data transfer device 602.

次に、送信シーケンスコントローラ651は、送信回路611がデスクランブラロックパターンを送信したか否かをチェックする(ステップ1313)。送信回路611がデスクランブラロックパターンを送信中である場合(ステップ1313,NO)、送信シーケンスコントローラ651は、ステップ1313の動作を繰り返す。   Next, the transmission sequence controller 651 checks whether or not the transmission circuit 611 has transmitted a descrambler lock pattern (step 1313). When the transmission circuit 611 is transmitting the descrambler lock pattern (step 1313, NO), the transmission sequence controller 651 repeats the operation of step 1313.

一方、送信回路611がデスクランブラロックパターンを送信した場合(ステップ1313,YES)、送信シーケンスコントローラ651は、dsc_lock_ptn_sendを論理“0”に設定する(ステップ1314)。そして、送信シーケンスコントローラ651は、dsc_lock_ptn counterを0に設定する。   On the other hand, when the transmission circuit 611 transmits the descrambler lock pattern (step 1313, YES), the transmission sequence controller 651 sets dsc_lock_ptn_send to logic “0” (step 1314). Then, the transmission sequence controller 651 sets dsc_lock_ptn counter to 0.

次に、送信シーケンスコントローラ651は、受信シーケンスコントローラ652の状態をチェックする(ステップ1315)。受信シーケンスコントローラ652の状態がステージ0である場合(ステップ1315,NO)、送信シーケンスコントローラ651は、ステップ1302以降の動作を繰り返す。   Next, the transmission sequence controller 651 checks the state of the reception sequence controller 652 (step 1315). When the state of the reception sequence controller 652 is stage 0 (step 1315, NO), the transmission sequence controller 651 repeats the operations after step 1302.

一方、受信シーケンスコントローラ652の状態がステージ1又はステージ2である場合(ステップ1315,YES)、送信シーケンスコントローラ651は、tsos1_sendを論理“0”に設定する(ステップ1316)。そして、送信シーケンスコントローラ651は、tsos2_sendを論理“1”に設定する。これにより、パターン生成部632は、tsos2を生成し、送信回路611は、tsos2をデータ転送装置602へ送信する。   On the other hand, when the state of the reception sequence controller 652 is stage 1 or stage 2 (step 1315, YES), the transmission sequence controller 651 sets tsos1_send to logic “0” (step 1316). Then, the transmission sequence controller 651 sets tsos2_send to logic “1”. Thereby, the pattern generation unit 632 generates tsos2, and the transmission circuit 611 transmits tsos2 to the data transfer device 602.

次に、送信シーケンスコントローラ651は、受信シーケンスコントローラ652の状態をチェックする(ステップ1317)。受信シーケンスコントローラ652の状態がステージ0もしくはステージ1である場合(ステップ1317,NO)、送信シーケンスコントローラ651は、ステップ1303以降の動作を繰り返す。   Next, the transmission sequence controller 651 checks the state of the reception sequence controller 652 (step 1317). When the state of the reception sequence controller 652 is stage 0 or stage 1 (step 1317, NO), the transmission sequence controller 651 repeats the operations after step 1303.

一方、受信シーケンスコントローラ652の状態がステージ2である場合(ステップ1317,YES)、送信シーケンスコントローラ651は、送信回路611がM個のtsos2を送信したか否かをチェックする(ステップ1318)。送信回路611がM個のtsos2を送信していない場合(ステップ1318,NO)、送信シーケンスコントローラ651は、ステップ1318の動作を繰り返す。   On the other hand, when the state of the reception sequence controller 652 is stage 2 (step 1317, YES), the transmission sequence controller 651 checks whether or not the transmission circuit 611 has transmitted M tsos2 (step 1318). When the transmission circuit 611 has not transmitted M tsos2 (step 1318, NO), the transmission sequence controller 651 repeats the operation of step 1318.

一方、送信回路611がM個のtsos2を送信した場合(ステップ1318,YES)、送信シーケンスコントローラ651は、リンク初期化を終了して、パケットの送信を開始する(ステップ1319)。そして、送信シーケンスコントローラ651は、tsos2_sendを論理“0”に設定し、packet_selectを論理“1”に設定する。   On the other hand, when the transmission circuit 611 transmits M tsos2 (step 1318, YES), the transmission sequence controller 651 ends link initialization and starts packet transmission (step 1319). Then, the transmission sequence controller 651 sets tsos2_send to logic “0”, and sets packet_select to logic “1”.

次に、送信シーケンスコントローラ651は、パケットの送信を終了するか否かを判定する(ステップ1320)。パケットの送信を終了しない場合(ステップ1320,NO)、送信シーケンスコントローラ651は、受信シーケンスコントローラ652がリンク初期化を再開したか否かをチェックする(ステップ1321)。受信シーケンスコントローラ652がリンク初期化を再開した場合(ステップ1321,YES)、送信シーケンスコントローラ651は、ステップ1302以降の動作を繰り返す。   Next, the transmission sequence controller 651 determines whether or not to end the packet transmission (step 1320). If the packet transmission is not finished (step 1320, NO), the transmission sequence controller 651 checks whether or not the reception sequence controller 652 has resumed link initialization (step 1321). When the reception sequence controller 652 resumes link initialization (step 1321, YES), the transmission sequence controller 651 repeats the operations after step 1302.

一方、受信シーケンスコントローラ652がリンク初期化を再開していない場合(ステップ1321,NO)、送信シーケンスコントローラ651は、送信回路611が1個のエンコードブロックを送信したか否かをチェックする(ステップ1322)。送信回路611が1個のエンコードブロックを送信中である場合(ステップ1322,NO)、送信シーケンスコントローラ651は、ステップ1320以降の動作を繰り返す。   On the other hand, if the reception sequence controller 652 has not resumed link initialization (step 1321, NO), the transmission sequence controller 651 checks whether or not the transmission circuit 611 has transmitted one encode block (step 1322). ). When the transmission circuit 611 is transmitting one encode block (step 1322, NO), the transmission sequence controller 651 repeats the operations after step 1320.

一方、送信回路611が1個のエンコードブロックを送信した場合(ステップ1322,YES)、送信シーケンスコントローラ651は、skpos_send counterを1だけインクリメントする(ステップ1323)。そして、送信シーケンスコントローラ651は、skpos_send counterを閾値TH4と比較する(ステップ1324)。skpos_send counterがTH4以下である場合(ステップ1324,NO)、送信シーケンスコントローラ651は、ステップ1320以降の動作を繰り返す。   On the other hand, when the transmission circuit 611 transmits one encode block (step 1322, YES), the transmission sequence controller 651 increments skpos_send counter by 1 (step 1323). Then, the transmission sequence controller 651 compares the skpos_send counter with the threshold value TH4 (step 1324). When skpos_send counter is equal to or lower than TH4 (step 1324, NO), the transmission sequence controller 651 repeats the operations after step 1320.

一方、skpos_send counterがTH4よりも大きい場合(ステップ1324,YES)、送信シーケンスコントローラ651は、送信回路611がskposの送信が可能か否かをチェックする(ステップ1325)。パケットの送信中である場合、skposの送信が不可能と判定され、パケットの送信中ではない場合又はパケットの送信が完了したとき、skposの送信が可能と判定される。   On the other hand, when skpos_send counter is larger than TH4 (step 1324, YES), the transmission sequence controller 651 checks whether or not the transmission circuit 611 can transmit skpos (step 1325). When the packet is being transmitted, it is determined that the transmission of the skpos is impossible. When the packet is not being transmitted or when the transmission of the packet is completed, it is determined that the transmission of the skpos is possible.

skposの送信が不可能である場合(ステップ1325,NO)、送信シーケンスコントローラ651は、ステップ1325の動作を繰り返す。一方、skposの送信が可能である場合(ステップ1325,YES)、送信シーケンスコントローラ651は、skpos_sendを論理“1”に設定する(ステップ1326)。そして、送信シーケンスコントローラ651は、packet_selectを論理“0”に設定する。   When transmission of skpos is impossible (step 1325, NO), the transmission sequence controller 651 repeats the operation of step 1325. On the other hand, when transmission of skpos is possible (step 1325, YES), the transmission sequence controller 651 sets skpos_send to logic “1” (step 1326). Then, the transmission sequence controller 651 sets packet_select to logic “0”.

次に、送信シーケンスコントローラ651は、送信回路611がskposを送信したか否かをチェックする(ステップ1327)。送信回路611がskposを送信中である場合(ステップ1327,NO)、送信シーケンスコントローラ651は、ステップ1327の動作を繰り返す。   Next, the transmission sequence controller 651 checks whether or not the transmission circuit 611 has transmitted skpos (step 1327). When the transmission circuit 611 is transmitting skpos (step 1327, NO), the transmission sequence controller 651 repeats the operation of step 1327.

一方、送信回路611がskposを送信した場合(ステップ1327,YES)、送信シーケンスコントローラ651は、skpos_sendを論理“0”に設定し、packet_selectを論理“1”に設定する(ステップ1328)。そして、送信シーケンスコントローラ651は、skpos_send counterを0に設定して、ステップ1320以降の動作を繰り返す。   On the other hand, when the transmission circuit 611 transmits skpos (step 1327, YES), the transmission sequence controller 651 sets skpos_send to logic “0” and packet_select to logic “1” (step 1328). Then, the transmission sequence controller 651 sets skpos_send counter to 0, and repeats the operations from step 1320 onward.

ステップ1307において、skpos_send counterがTH4以下である場合(ステップ1307,NO)、送信シーケンスコントローラ651は、ステップ1311以降の動作を行う。ステップ1311において、dsc_lock_ptn counterがTH5以下である場合(ステップ1311,NO)、送信シーケンスコントローラ651は、ステップ1315以降の動作を行う。ステップ1320において、パケットの送信を終了する場合(ステップ1320,YES)、送信シーケンスコントローラ651は、動作を終了する。   If the skpos_send counter is equal to or lower than TH4 in step 1307 (step 1307, NO), the transmission sequence controller 651 performs the operation from step 1311 onward. If dsc_lock_ptn counter is equal to or lower than TH5 in step 1311 (step 1311, NO), the transmission sequence controller 651 performs the operation after step 1315. In step 1320, when the transmission of the packet is ended (step 1320, YES), the transmission sequence controller 651 ends the operation.

図14は、送信シーケンスコントローラの動作の例を示すタイミングチャートである。図14において、u0、u2〜u3、u5、u6、u8、u9、u11〜u13、u15〜u17、u19、u21、及びu22の各期間は、16個のエンコードブロックを送信する時間に対応する。一方、u1、u4、u7、u10、u14、u18、及びu20の各期間は、より多数のエンコードブロックを送信する時間に対応し、期間の途中で切断することで、実際よりも短縮して示されている。   FIG. 14 is a timing chart showing an example of the operation of the transmission sequence controller. In FIG. 14, each period of u0, u2 to u3, u5, u6, u8, u9, u11 to u13, u15 to u17, u19, u21, and u22 corresponds to a time for transmitting 16 encoded blocks. On the other hand, each of the periods u1, u4, u7, u10, u14, u18, and u20 corresponds to a time for transmitting a larger number of encode blocks, and is shortened from the actual time by cutting in the middle of the period. Has been.

TXは、送信シーケンスコントローラ651の動作を表し、RXは、受信シーケンスコントローラ652の動作を表し、non−encode send dataは、送信回路611のセレクタ633が出力するデータを表す。non−encode send dataのTSOS1、TSOS2、及びSKPOSは、16個のエンコードブロックからなるtsos1、tsos2、及びskposを表す。dsc_lock_ptnは、16個のエンコードブロックからなるデスクランブラロックパターンを表し、前半8個のデータALL0及び後半8個のデータALL1を含む。   TX represents the operation of the transmission sequence controller 651, RX represents the operation of the reception sequence controller 652, and non-encode send data represents the data output from the selector 633 of the transmission circuit 611. Non-encoded send data TSOS1, TSOS2, and SKPOS represent tsos1, tsos2, and skpos composed of 16 encoded blocks. dsc_lock_ptn represents a descrambler lock pattern composed of 16 encoded blocks, and includes 8 data ALL0 in the first half and 8 data ALL1 in the second half.

この例では、ステップ1307及びステップ1324のTH4は1500であり、ステップ1311のTH5は15であり、ステップ1318のMは16である。   In this example, TH4 in step 1307 and step 1324 is 1500, TH5 in step 1311 is 15, and M in step 1318 is 16.

リンク初期化中であるu0〜u9の各期間において、受信シーケンスコントローラ652の状態はステージ0であるため、tsos1_sendが論理“1”に設定され、TSOS1が送信される。そして、期間u1の末尾において、skpos_send counter=1501>TH4となるため、TSOS1の送信完了を待って、期間u2において、skpos_sendが論理“1”に設定され、SKPOSが送信される。   In each period from u0 to u9 during link initialization, since the state of the reception sequence controller 652 is stage 0, tsos1_send is set to logic “1” and TSOS1 is transmitted. Since skpos_send counter = 1501> TH4 at the end of period u1, skpos_send is set to logic “1” and SKPOS is transmitted in period u2 after transmission of TSOS1 is completed.

また、期間u5において、dsc_lock_ptn counter=16>TH5となるため、dsc_lock_ptn_sendが論理“1”に設定され、dsc_lock_ptnが送信される。同様に、期間u8においても、dsc_lock_ptn counter=16となるため、dsc_lock_ptnが送信される。   Further, since dsc_lock_ptn counter = 16> TH5 in the period u5, dsc_lock_ptn_send is set to logic “1”, and dsc_lock_ptn is transmitted. Similarly, in the period u8, dsc_lock_ptn counter = 16, so dsc_lock_ptn is transmitted.

次に、u10〜u16の各期間において、受信シーケンスコントローラ652の状態はステージ1であるため、tsos1_sendが論理“0”に設定され、tsos2_sendが論理“1”に設定されて、TSOS2が送信される。そして、期間u10の末尾において、skpos_send counter=1501となるため、TSOS2の送信完了を待って、期間u11において、SKPOSが送信される。また、期間u15において、dsc_lock_ptn counter=16となるため、dsc_lock_ptnが送信される。   Next, in each period from u10 to u16, since the state of the reception sequence controller 652 is stage 1, tsos1_send is set to logic “0”, tsos2_send is set to logic “1”, and TSOS2 is transmitted. . Since skpos_send counter = 1501 at the end of period u10, SKPOS is transmitted in period u11 after completion of transmission of TSOS2. Further, since dsc_lock_ptn counter = 16 in the period u15, dsc_lock_ptn is transmitted.

次に、受信シーケンスコントローラ652がステージ2に移行した直後の期間u17及び期間u18において、16個のTSOS2が送信される。そして、16個のTSOS2の送信が完了した期間u19において、送信シーケンスコントローラ651は、リンク初期化を完了し、パケットpaket(1)〜paket(N+1)の送信を開始する。その後、期間u20の末尾において、skpos_send counter=1501となるため、paket(N)の送信完了を待って、期間u21において、SKPOSが送信される。   Next, in the period u17 and the period u18 immediately after the reception sequence controller 652 shifts to the stage 2, 16 TSOS2s are transmitted. Then, in the period u19 in which the transmission of the 16 TSOSs 2 is completed, the transmission sequence controller 651 completes the link initialization and starts transmitting the packets packet (1) to packet (N + 1). Thereafter, since skpos_send counter = 1501 at the end of the period u20, SKPOS is transmitted in the period u21 after waiting for the completion of transmission of the packet (N).

図15は、図6のデータ転送システムに対応する情報処理システムの構成例を示している。図15の情報処理システムは、Central Processing Unit(CPU)1501、Memory Control Unit(MCU)1502、及びメモリ1503を含む。情報処理システムは、さらに、入出力部(IOU)1504、アダプタ1505〜アダプタ1507、及びRead Only Memory(ROM)1508を含む。   FIG. 15 shows a configuration example of an information processing system corresponding to the data transfer system of FIG. The information processing system in FIG. 15 includes a central processing unit (CPU) 1501, a memory control unit (MCU) 1502, and a memory 1503. The information processing system further includes an input / output unit (IOU) 1504, adapters 1505 to 1507, and a read only memory (ROM) 1508.

MCU1502は、CPU1501(プロセッサ)及びIOU1504からメモリ1503に対するアクセスを制御し、アダプタ1505〜アダプタ1507は、周辺装置との間でデータ通信を行う。アダプタ1506は、ROM1508と通信し、アダプタ1507は、Local Area Network(LAN)を介して他の装置と通信する。IOU1504は、アダプタ1505〜アダプタ1507を制御する。この場合、図6のシリアルバス603は、以下の装置間の接続に用いることができる。
(a)CPU1501とMCU1502の接続
(b)MCU1502とIOU1504の接続
(c)IOU1504とアダプタ1505の接続
(d)IOU1504とアダプタ1506の接続
(e)IOU1504とアダプタ1507の接続
(f)アダプタ1506とROM1508の接続
The MCU 1502 controls access from the CPU 1501 (processor) and the IOU 1504 to the memory 1503, and the adapters 1505 to 1507 perform data communication with peripheral devices. The adapter 1506 communicates with the ROM 1508, and the adapter 1507 communicates with other devices via a local area network (LAN). The IOU 1504 controls the adapters 1505 to 1507. In this case, the serial bus 603 in FIG. 6 can be used for connection between the following devices.
(A) Connection between CPU 1501 and MCU 1502 (b) Connection between MCU 1502 and IOU 1504 (c) Connection between IOU 1504 and adapter 1505 (d) Connection between IOU 1504 and adapter 1506 (e) Connection between IOU 1504 and adapter 1507 (f) Connection between adapter 1506 and ROM 1508 Connection

そして、データ転送装置601及びデータ転送装置602は、シリアルバス603の両端に位置する装置内に、通信用の大規模集積回路(LSI)として実装される。   The data transfer device 601 and the data transfer device 602 are mounted as communication large-scale integrated circuits (LSIs) in devices located at both ends of the serial bus 603.

図1、図4、及び図6のデータ転送システムの構成は一例に過ぎず、データ転送システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図6のデータ転送システムにおいて、データ転送装置601が送信動作のみを行う場合は、受信回路612及び受信シーケンスコントローラ652を省略することができる。同様に、データ転送装置602が受信動作のみを行う場合は、送信回路621を省略することができる。   The configuration of the data transfer system in FIGS. 1, 4, and 6 is merely an example, and some components may be omitted or changed according to the use or conditions of the data transfer system. For example, in the data transfer system of FIG. 6, when the data transfer apparatus 601 performs only a transmission operation, the reception circuit 612 and the reception sequence controller 652 can be omitted. Similarly, when the data transfer device 602 performs only the reception operation, the transmission circuit 621 can be omitted.

図2及び図8のスクランブラと図3及び図9のデスクランブラの構成は一例に過ぎず、データ転送システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。   The configurations of the scrambler of FIGS. 2 and 8 and the descrambler of FIGS. 3 and 9 are merely examples, and some components may be omitted or changed according to the use or conditions of the data transfer system.

図15の情報処理システムの構成は一例に過ぎず、情報処理システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。図1、図4、及び図6のデータ転送システムは、複数のCPUを含む大規模な情報処理システムに対して適用することも可能である。   The configuration of the information processing system in FIG. 15 is merely an example, and some components may be omitted or changed according to the use or conditions of the information processing system. The data transfer systems of FIGS. 1, 4, and 6 can also be applied to a large-scale information processing system including a plurality of CPUs.

図7のデスクランブラロックパターンは一例に過ぎず、データ転送システムの構成又は条件に応じて別のデスクランブラロックパターンを用いてもよい。例えば、前半部分と後半部分のエンコードブロックの個数は異なっていてもよく、ALL0又はALL1以外の所定のデータ列をデスクランブラロックパターンとして用いてもよい。   The descrambler lock pattern in FIG. 7 is merely an example, and another descrambler lock pattern may be used according to the configuration or conditions of the data transfer system. For example, the number of encoding blocks in the first half and the second half may be different, and a predetermined data string other than ALL0 or ALL1 may be used as the descrambler lock pattern.

図5、図10A、図10B、図12A、図12B、及び図13A〜図13Cのフローチャートは一例に過ぎず、データ転送システムの構成又は条件に応じて一部の処理を省略又は変更してもよい。   The flowcharts of FIGS. 5, 10A, 10B, 12A, 12B, and 13A to 13C are merely examples, and some processes may be omitted or changed depending on the configuration or conditions of the data transfer system. Good.

図11及び図14のタイミングチャートは一例に過ぎず、データ転送システムの構成又は条件に応じてタイミングチャートは変化する。tsos又はskposの代わりに、別のトレーニングパターンを用いてもよい。   The timing charts of FIGS. 11 and 14 are merely examples, and the timing charts change according to the configuration or conditions of the data transfer system. Another training pattern may be used instead of tsos or skpos.

式(1)〜式(6)のTH1〜TH3は一例に過ぎず、デスクランブラロックパターンに応じて別の閾値を用いてもよい。   TH1 to TH3 in Expressions (1) to (6) are merely examples, and different threshold values may be used according to the descrambler lock pattern.

開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。   Although the disclosed embodiments and their advantages have been described in detail, those skilled in the art can make various modifications, additions and omissions without departing from the scope of the present invention as explicitly set forth in the claims. Let's go.

図1乃至図15を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1期間において、第1乱数を用いて第1データ列をスクランブルすることで生成される、前記第1乱数を含む第1送信データ列を、データ送信装置から受信し、第2期間において、前記第1乱数を更新して得られる第2乱数を用いて第2データ列をスクランブルすることで生成される、前記第2乱数を含む第2送信データ列を、前記データ送信装置から受信する受信部と、
前記受信部が受信した前記第1送信データ列に含まれる前記第1乱数を更新して、前記第2乱数を生成する更新部と、
前記更新部が生成した前記第2乱数を用いて前記第2送信データ列をデスクランブルすることで、前記第2送信データ列から前記第2データ列を復元する復元部と、
前記復元部が復元した前記第2データ列が所定のデータ列である場合、生成した乱数を更新するように前記更新部を制御する制御部と、
を備えることを特徴とするデータ転送装置。
(付記2)
前記受信部は、前記第2期間を含む複数の期間それぞれにおいて、前記第2送信データ列を含む複数の送信データ列を前記データ送信装置から受信し、
前記復元部は、前記複数の送信データ列をデスクランブルすることで、前記複数の送信データ列から前記第2データ列を含む複数のデータ列を復元し、
前記制御部は、
前記復元部が復元した前記複数のデータ列から前記所定のデータ列を検出する第1検出部と、
前記第1検出部が前記所定のデータ列を検出した回数をカウントし、前記所定のデータ列を検出した回数が第1所定回数に達した場合、前記生成した乱数の更新を指示する制御信号を前記更新部へ出力する判定部と、
を含むことを特徴とする付記1記載のデータ転送装置。
(付記3)
前記制御部は、前記復元部が復元した前記複数のデータ列から、前記所定のデータ列とは異なるデータ列を検出する第2検出部をさらに含み、
前記判定部は、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記第2検出部が前記異なるデータ列を検出しなかった回数をカウントし、前記異なるデータ列を検出しなかった回数が第2所定回数に達した場合、前記制御信号を解除して、前記第1検出部が前記所定のデータ列を検出した回数をリセットすることを特徴とする付記2記載のデータ転送装置。
(付記4)
前記判定部は、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記第2検出部が前記異なるデータ列を検出した回数をカウントし、前記異なるデータ列を検出した回数が第3所定回数に達しない場合、前記制御信号を解除して、前記第1検出部が前記所定のデータ列を検出した回数をリセットすることを特徴とする付記2又は3記載のデータ転送装置。
(付記5)
前記受信部は、前記異なるデータ列を検出した回数が前記第3所定回数に達した後に、スクランブルされたトレーニングパターンを前記データ送信装置から受信することを特徴とする付記4記載のデータ転送装置。
(付記6)
第1データ転送装置と第2データ転送装置とを備えるデータ転送システムであって、
前記第1データ転送装置は、
第1データ列と第2データ列とを生成する生成部と、
第1乱数を更新して第2乱数を生成する第1更新部と、
前記第1乱数を用いて前記第1データ列をスクランブルすることで、前記第1乱数を含む第1送信データ列を生成し、前記第2乱数を用いて前記第2データ列をスクランブルすることで、前記第2乱数を含む第2送信データ列を生成するランダム化部と、
第1期間において前記第1送信データ列を前記第2データ転送装置へ送信し、第2期間において前記第2送信データ列を前記第2データ転送装置へ送信する送信部とを含み、
前記第2データ転送装置は、
前記第1期間において前記第1データ転送装置から前記第1送信データ列を受信し、前記第2期間において前記第1データ転送装置から前記第2送信データ列を受信する受信部と、
前記受信部が受信した前記第1送信データ列に含まれる前記第1乱数を更新して、前記第2乱数を生成する第2更新部と、
前記第2更新部が生成した前記第2乱数を用いて前記第2送信データ列をデスクランブルすることで、前記第2送信データ列から前記第2データ列を復元する復元部と、
前記復元部が復元した前記第2データ列が所定のデータ列である場合、生成した乱数を更新するように前記第2更新部を制御する制御部とを含む、
ことを特徴とするデータ転送システム。
(付記7)
前記受信部は、前記第2期間を含む複数の期間それぞれにおいて、前記第2送信データ列を含む複数の送信データ列を前記第1データ転送装置から受信し、
前記復元部は、前記複数の送信データ列をデスクランブルすることで、前記複数の送信データ列から前記第2データ列を含む複数のデータ列を復元し、
前記制御部は、
前記復元部が復元した前記複数のデータ列から前記所定のデータ列を検出する第1検出部と、
前記第1検出部が前記所定のデータ列を検出した回数をカウントし、前記所定のデータ列を検出した回数が第1所定回数に達した場合、前記生成した乱数の更新を指示する制御信号を前記第2更新部へ出力する判定部と、
を含むことを特徴とする付記6記載のデータ転送システム。
(付記8)
前記制御部は、前記復元部が復元した前記複数のデータ列から、前記所定のデータ列とは異なるデータ列を検出する第2検出部をさらに含み、
前記判定部は、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記第2検出部が前記異なるデータ列を検出しなかった回数をカウントし、前記異なるデータ列を検出しなかった回数が第2所定回数に達した場合、前記制御信号を解除して、前記第1検出部が前記所定のデータ列を検出した回数をリセットすることを特徴とする付記7記載のデータ転送システム。
(付記9)
前記判定部は、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記第2検出部が前記異なるデータ列を検出した回数をカウントし、前記異なるデータ列を検出した回数が第3所定回数に達しない場合、前記制御信号を解除して、前記第1検出部が前記所定のデータ列を検出した回数をリセットすることを特徴とする付記7又は8記載のデータ転送システム。
(付記10)
前記受信部は、前記異なるデータ列を検出した回数が前記第3所定回数に達した後に、スクランブルされたトレーニングパターンを前記第1データ転送装置から受信することを特徴とする付記9記載のデータ転送システム。
(付記11)
第1データ転送装置と第2データ転送装置とを備えるデータ転送システムの制御方法であって、
前記第1データ転送装置が、第1乱数を用いて第1データ列をスクランブルすることで、前記第1乱数を含む第1送信データ列を生成し、
第1期間において、前記第1データ転送装置が、前記第1送信データ列を前記第2データ転送装置へ送信し、
前記第2データ転送装置が、前記第1データ転送装置から前記第1送信データ列を受信し、
前記第2データ転送装置が、受信した前記第1送信データ列に含まれる前記第1乱数を更新して、前記第2乱数を生成し、
前記第1データ転送装置が、前記第1乱数を更新して前記第2乱数を生成し、
前記第1データ転送装置が、前記第2乱数を用いて第2データ列をスクランブルすることで、前記第2乱数を含む第2送信データ列を生成し、
第2期間において、前記第1データ転送装置が、前記第2送信データ列を前記第2データ転送装置へ送信し、
前記第2データ転送装置が、前記第1データ転送装置から前記第2送信データ列を受信し、
前記第2データ転送装置が、生成した前記第2乱数を用いて前記第2送信データ列をデスクランブルすることで、前記第2送信データ列から前記第2データ列を復元し、
前記第2データ転送装置が、復元した前記第2データ列が所定のデータ列である場合、生成した乱数を更新する、
ことを特徴とするデータ転送システムの制御方法。
(付記12)
前記第1データ転送装置が、前記第2データ列を含む複数のデータ列をスクランブルすることで、前記第2送信データ列を含む複数の送信データ列を生成し、
前記第2期間を含む複数の期間それぞれにおいて、前記第1データ転送装置が、前記複数の送信データ列を前記第2データ転送装置へ送信し、
前記第2データ転送装置が、前記第1データ転送装置から前記複数の送信データ列を受信し、
前記第2データ転送装置が、前記複数の送信データ列をデスクランブルすることで、前記複数の送信データ列から前記複数のデータ列を復元し、
前記第2データ転送装置が、復元した前記複数のデータ列から前記所定のデータ列を検出し、
前記第2データ転送装置が、前記所定のデータ列を検出した回数をカウントし、
前記第2データ転送装置が、前記所定のデータ列を検出した回数が第1所定回数に達した場合、前記生成した乱数を更新する、
ことを特徴とする付記11記載の制御方法。
(付記13)
前記第2データ転送装置が、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記所定のデータ列とは異なるデータ列を検出しなかった回数をカウントし、
前記第2データ転送装置が、前記異なるデータ列を検出しなかった回数が第2所定回数に達した場合、前記制御信号を解除して、前記所定のデータ列を検出した回数をリセットする、
ことを特徴とする付記12記載の制御方法。
(付記14)
前記第2データ転送装置が、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記複数のデータ列から前記異なるデータ列を検出し、
前記第2データ転送装置が、前記異なるデータ列を検出した回数をカウントし、
前記第2データ転送装置が、前記異なるデータ列を検出した回数が第3所定回数に達しない場合、前記制御信号を解除して、前記所定のデータ列を検出した回数をリセットする、
ことを特徴とする付記12又は13記載の制御方法。
(付記15)
前記第2データ転送装置が、前記異なるデータ列を検出した回数が前記第3所定回数に達した後に、スクランブルされたトレーニングパターンを前記第1データ転送装置から受信することを特徴とする付記14記載の制御方法。
Regarding the embodiment described with reference to FIGS. 1 to 15, the following additional notes are disclosed.
(Appendix 1)
In the first period, a first transmission data sequence including the first random number, which is generated by scrambling the first data sequence using the first random number, is received from the data transmission device, and in the second period, A receiving unit that receives, from the data transmission device, a second transmission data sequence including the second random number generated by scrambling the second data sequence using a second random number obtained by updating the first random number When,
An update unit that updates the first random number included in the first transmission data sequence received by the reception unit and generates the second random number;
A restoration unit that restores the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the second random number generated by the update unit;
A control unit that controls the update unit to update the generated random number when the second data sequence restored by the restoration unit is a predetermined data sequence;
A data transfer device comprising:
(Appendix 2)
The receiving unit receives a plurality of transmission data sequences including the second transmission data sequence from the data transmission device in each of a plurality of periods including the second period,
The restoration unit restores a plurality of data strings including the second data string from the plurality of transmission data strings by descrambling the plurality of transmission data strings;
The controller is
A first detection unit for detecting the predetermined data sequence from the plurality of data sequences restored by the restoration unit;
The first detection unit counts the number of times that the predetermined data string is detected, and when the number of times that the predetermined data string is detected reaches the first predetermined number, a control signal that instructs to update the generated random number A determination unit for outputting to the update unit;
The data transfer device as set forth in appendix 1, wherein:
(Appendix 3)
The control unit further includes a second detection unit that detects a data sequence different from the predetermined data sequence from the plurality of data sequences restored by the restoration unit,
The determination unit counts the number of times the second detection unit does not detect the different data sequence after the number of times the predetermined data sequence is detected reaches the first predetermined number of times, and determines the different data sequence. The supplementary note 2, wherein when the number of times of not detecting reaches a second predetermined number of times, the control signal is canceled and the number of times that the first detecting unit detects the predetermined data string is reset. Data transfer device.
(Appendix 4)
The determination unit counts the number of times the second detection unit detects the different data sequence after the number of times the predetermined data sequence is detected reaches the first predetermined number of times, and detects the different data sequence. The data transfer according to claim 2 or 3, wherein when the number of times does not reach the third predetermined number of times, the control signal is canceled and the number of times that the first detection unit detects the predetermined data string is reset. apparatus.
(Appendix 5)
The data transfer apparatus according to appendix 4, wherein the reception unit receives a scrambled training pattern from the data transmission apparatus after the number of times the different data strings are detected reaches the third predetermined number of times.
(Appendix 6)
A data transfer system comprising a first data transfer device and a second data transfer device,
The first data transfer device includes:
A generating unit that generates a first data string and a second data string;
A first updating unit for updating the first random number to generate a second random number;
By scrambling the first data sequence using the first random number, a first transmission data sequence including the first random number is generated, and by scrambling the second data sequence using the second random number. A randomizing unit for generating a second transmission data sequence including the second random number;
A transmission unit that transmits the first transmission data sequence to the second data transfer device in a first period, and transmits the second transmission data sequence to the second data transfer device in a second period;
The second data transfer device includes:
A receiving unit that receives the first transmission data sequence from the first data transfer device in the first period and receives the second transmission data sequence from the first data transfer device in the second period;
A second updating unit for updating the first random number included in the first transmission data sequence received by the receiving unit and generating the second random number;
A restoration unit for restoring the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the second random number generated by the second update unit;
A control unit that controls the second update unit so as to update the generated random number when the second data sequence restored by the restoration unit is a predetermined data sequence;
A data transfer system characterized by that.
(Appendix 7)
The receiving unit receives a plurality of transmission data sequences including the second transmission data sequence from the first data transfer device in each of a plurality of periods including the second period,
The restoration unit restores a plurality of data strings including the second data string from the plurality of transmission data strings by descrambling the plurality of transmission data strings;
The controller is
A first detection unit for detecting the predetermined data sequence from the plurality of data sequences restored by the restoration unit;
The first detection unit counts the number of times that the predetermined data string is detected, and when the number of times that the predetermined data string is detected reaches the first predetermined number, a control signal that instructs to update the generated random number A determination unit for outputting to the second update unit;
The data transfer system according to appendix 6, characterized by comprising:
(Appendix 8)
The control unit further includes a second detection unit that detects a data sequence different from the predetermined data sequence from the plurality of data sequences restored by the restoration unit,
The determination unit counts the number of times the second detection unit does not detect the different data sequence after the number of times the predetermined data sequence is detected reaches the first predetermined number of times, and determines the different data sequence. 8. The supplementary note 7, wherein when the number of times of not detecting reaches a second predetermined number of times, the control signal is canceled and the number of times that the first detecting unit detects the predetermined data string is reset. Data transfer system.
(Appendix 9)
The determination unit counts the number of times the second detection unit detects the different data sequence after the number of times the predetermined data sequence is detected reaches the first predetermined number of times, and detects the different data sequence. The data transfer according to appendix 7 or 8, wherein when the number of times does not reach the third predetermined number of times, the control signal is canceled and the number of times the first detection unit detects the predetermined data string is reset. system.
(Appendix 10)
The data transfer according to claim 9, wherein the receiving unit receives the scrambled training pattern from the first data transfer device after the number of times the different data strings are detected reaches the third predetermined number of times. system.
(Appendix 11)
A control method of a data transfer system comprising a first data transfer device and a second data transfer device,
The first data transfer device generates a first transmission data sequence including the first random number by scrambling the first data sequence using a first random number,
In the first period, the first data transfer device transmits the first transmission data string to the second data transfer device,
The second data transfer device receives the first transmission data string from the first data transfer device;
The second data transfer device updates the first random number included in the received first transmission data sequence to generate the second random number;
The first data transfer device updates the first random number to generate the second random number;
The first data transfer device generates a second transmission data sequence including the second random number by scrambling the second data sequence using the second random number,
In the second period, the first data transfer device transmits the second transmission data string to the second data transfer device,
The second data transfer device receives the second transmission data string from the first data transfer device;
The second data transfer device restores the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the generated second random number,
The second data transfer device updates the generated random number when the restored second data string is a predetermined data string;
A method for controlling a data transfer system.
(Appendix 12)
The first data transfer device generates a plurality of transmission data sequences including the second transmission data sequence by scrambling a plurality of data sequences including the second data sequence,
In each of a plurality of periods including the second period, the first data transfer device transmits the plurality of transmission data strings to the second data transfer device,
The second data transfer device receives the plurality of transmission data strings from the first data transfer device;
The second data transfer device descrambles the plurality of transmission data sequences to restore the plurality of data sequences from the plurality of transmission data sequences,
The second data transfer device detects the predetermined data sequence from the restored plurality of data sequences,
Counting the number of times the second data transfer device has detected the predetermined data string;
The second data transfer device updates the generated random number when the number of times the predetermined data string is detected reaches the first predetermined number of times;
The control method according to appendix 11, wherein:
(Appendix 13)
The second data transfer device counts the number of times that the predetermined data string is not detected after the number of times the predetermined data string is detected reaches the first predetermined number of times,
When the second data transfer device does not detect the different data string reaches a second predetermined number, the control signal is canceled and the number of times the predetermined data string is detected is reset;
The control method according to supplementary note 12, characterized by:
(Appendix 14)
The second data transfer device detects the different data string from the plurality of data strings after the number of times the predetermined data string is detected reaches the first predetermined number of times;
Counting the number of times the second data transfer device has detected the different data strings;
If the number of times that the second data transfer device has detected the different data sequence does not reach the third predetermined number of times, the control signal is canceled and the number of times the predetermined data sequence is detected is reset;
14. The control method according to appendix 12 or 13, characterized in that.
(Appendix 15)
15. The supplementary note 14, wherein the second data transfer device receives a scrambled training pattern from the first data transfer device after the number of times the different data strings are detected reaches the third predetermined number of times. Control method.

101、102、401、402、601、602 データ転送装置
103、603 シリアルバス
111、611 送信回路
112、612 受信回路
113、123、613、623 トレーニング制御部
121、621 送信回路
122、622 受信回路
131、631 CRC生成部
132、632 パターン生成部
133、135、202、302、633、902 セレクタ
134、635 スクランブラ
136、634 エンコーダ
137、141、636、641 変換部
142、643 アライメント回路
143 アライメント検出部
144、644 エラスティックバッファ
145、645 デコーダ
146、642 デスクランブラ
147、646 パターン受信部
148、647 CRCチェッカ
151、651 送信シーケンスコントローラ
152、652 受信シーケンスコントローラ
201、301、801、903 LFSR
203、303、802、904 OR回路
205、305、804、906 XOR回路
204、304、803、901、905、914 FF
411 生成部
412 ランダム化部
413 送信部
414、423 更新部
421 受信部
422 復元部
424、648 制御部
911、912 検出部
913 判定部
921 入力データ
1501 CPU
1502 MCU
1503 メモリ
1504 IOU
1505〜1507 アダプタ
1508 ROM
101, 102, 401, 402, 601, 602 Data transfer device 103, 603 Serial bus 111, 611 Transmission circuit 112, 612 Reception circuit 113, 123, 613, 623 Training control unit 121, 621 Transmission circuit 122, 622 Reception circuit 131 , 631 CRC generation unit 132, 632 Pattern generation unit 133, 135, 202, 302, 633, 902 Selector 134, 635 Scrambler 136, 634 Encoder 137, 141, 636, 641 Conversion unit 142, 643 Alignment circuit 143 Alignment detection unit 144, 644 Elastic buffer 145, 645 Decoder 146, 642 Descrambler 147, 646 Pattern receiver 148, 647 CRC checker 151, 651 Transmission sequence Controller 152,652 receive sequence controller 201,301,801,903 LFSR
203, 303, 802, 904 OR circuit 205, 305, 804, 906 XOR circuit 204, 304, 803, 901, 905, 914 FF
411 generation unit 412 randomization unit 413 transmission unit 414, 423 update unit 421 reception unit 422 restoration unit 424, 648 control unit 911, 912 detection unit 913 determination unit 921 input data 1501 CPU
1502 MCU
1503 Memory 1504 IOU
1505-1507 Adapter 1508 ROM

Claims (6)

第1期間において、第1乱数を用いて第1データ列をスクランブルすることで生成される、前記第1乱数を含む第1送信データ列を、データ送信装置から受信し、第2期間において、前記第1乱数を更新して得られる第2乱数を用いて第2データ列をスクランブルすることで生成される、前記第2乱数を含む第2送信データ列を、前記データ送信装置から受信する受信部と、
前記受信部が受信した前記第1送信データ列に含まれる前記第1乱数を更新して、前記第2乱数を生成する更新部と、
前記更新部が生成した前記第2乱数を用いて前記第2送信データ列をデスクランブルすることで、前記第2送信データ列から前記第2データ列を復元する復元部と、
前記復元部が復元した前記第2データ列が所定のデータ列である場合、生成した乱数を更新するように前記更新部を制御する制御部と、
を備えることを特徴とするデータ転送装置。
In the first period, a first transmission data sequence including the first random number, which is generated by scrambling the first data sequence using the first random number, is received from the data transmission device, and in the second period, A receiving unit that receives, from the data transmission device, a second transmission data sequence including the second random number generated by scrambling the second data sequence using a second random number obtained by updating the first random number When,
An update unit that updates the first random number included in the first transmission data sequence received by the reception unit and generates the second random number;
A restoration unit that restores the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the second random number generated by the update unit;
A control unit that controls the update unit to update the generated random number when the second data sequence restored by the restoration unit is a predetermined data sequence;
A data transfer device comprising:
前記受信部は、前記第2期間を含む複数の期間それぞれにおいて、前記第2送信データ列を含む複数の送信データ列を前記データ送信装置から受信し、
前記復元部は、前記複数の送信データ列をデスクランブルすることで、前記複数の送信データ列から前記第2データ列を含む複数のデータ列を復元し、
前記制御部は、
前記復元部が復元した前記複数のデータ列から前記所定のデータ列を検出する第1検出部と、
前記第1検出部が前記所定のデータ列を検出した回数をカウントし、前記所定のデータ列を検出した回数が第1所定回数に達した場合、前記生成した乱数の更新を指示する制御信号を前記更新部へ出力する判定部と、
を含むことを特徴とする請求項1記載のデータ転送装置。
The receiving unit receives a plurality of transmission data sequences including the second transmission data sequence from the data transmission device in each of a plurality of periods including the second period,
The restoration unit restores a plurality of data strings including the second data string from the plurality of transmission data strings by descrambling the plurality of transmission data strings;
The controller is
A first detection unit for detecting the predetermined data sequence from the plurality of data sequences restored by the restoration unit;
The first detection unit counts the number of times that the predetermined data string is detected, and when the number of times that the predetermined data string is detected reaches the first predetermined number, a control signal that instructs to update the generated random number A determination unit for outputting to the update unit;
The data transfer apparatus according to claim 1, further comprising:
前記制御部は、前記復元部が復元した前記複数のデータ列から、前記所定のデータ列とは異なるデータ列を検出する第2検出部をさらに含み、
前記判定部は、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記第2検出部が前記異なるデータ列を検出しなかった回数をカウントし、前記異なるデータ列を検出しなかった回数が第2所定回数に達した場合、前記制御信号を解除して、前記第1検出部が前記所定のデータ列を検出した回数をリセットすることを特徴とする請求項2記載のデータ転送装置。
The control unit further includes a second detection unit that detects a data sequence different from the predetermined data sequence from the plurality of data sequences restored by the restoration unit,
The determination unit counts the number of times the second detection unit does not detect the different data sequence after the number of times the predetermined data sequence is detected reaches the first predetermined number of times, and determines the different data sequence. 3. The number of times that the first detection unit detects the predetermined data string is reset by releasing the control signal when the number of times of not detecting reaches a second predetermined number of times. Data transfer device.
前記判定部は、前記所定のデータ列を検出した回数が前記第1所定回数に達した後に、前記第2検出部が前記異なるデータ列を検出した回数をカウントし、前記異なるデータ列を検出した回数が第3所定回数に達しない場合、前記制御信号を解除して、前記第1検出部が前記所定のデータ列を検出した回数をリセットすることを特徴とする請求項2又は3記載のデータ転送装置。   The determination unit counts the number of times the second detection unit detects the different data sequence after the number of times the predetermined data sequence is detected reaches the first predetermined number of times, and detects the different data sequence. 4. The data according to claim 2, wherein when the number of times does not reach the third predetermined number of times, the control signal is canceled and the number of times that the first detection unit detects the predetermined data string is reset. Transfer device. 第1データ転送装置と第2データ転送装置とを備えるデータ転送システムであって、
前記第1データ転送装置は、
第1データ列と第2データ列とを生成する生成部と、
第1乱数を更新して第2乱数を生成する第1更新部と、
前記第1乱数を用いて前記第1データ列をスクランブルすることで、前記第1乱数を含む第1送信データ列を生成し、前記第2乱数を用いて前記第2データ列をスクランブルすることで、前記第2乱数を含む第2送信データ列を生成するランダム化部と、
第1期間において前記第1送信データ列を前記第2データ転送装置へ送信し、第2期間において前記第2送信データ列を前記第2データ転送装置へ送信する送信部とを含み、
前記第2データ転送装置は、
前記第1期間において前記第1データ転送装置から前記第1送信データ列を受信し、前記第2期間において前記第1データ転送装置から前記第2送信データ列を受信する受信部と、
前記受信部が受信した前記第1送信データ列に含まれる前記第1乱数を更新して、前記第2乱数を生成する第2更新部と、
前記第2更新部が生成した前記第2乱数を用いて前記第2送信データ列をデスクランブルすることで、前記第2送信データ列から前記第2データ列を復元する復元部と、
前記復元部が復元した前記第2データ列が所定のデータ列である場合、生成した乱数を更新するように前記第2更新部を制御する制御部とを含む、
ことを特徴とするデータ転送システム。
A data transfer system comprising a first data transfer device and a second data transfer device,
The first data transfer device includes:
A generating unit that generates a first data string and a second data string;
A first updating unit for updating the first random number to generate a second random number;
By scrambling the first data sequence using the first random number, a first transmission data sequence including the first random number is generated, and by scrambling the second data sequence using the second random number. A randomizing unit for generating a second transmission data sequence including the second random number;
A transmission unit that transmits the first transmission data sequence to the second data transfer device in a first period, and transmits the second transmission data sequence to the second data transfer device in a second period;
The second data transfer device includes:
A receiving unit that receives the first transmission data sequence from the first data transfer device in the first period and receives the second transmission data sequence from the first data transfer device in the second period;
A second updating unit for updating the first random number included in the first transmission data sequence received by the receiving unit and generating the second random number;
A restoration unit for restoring the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the second random number generated by the second update unit;
A control unit that controls the second update unit so as to update the generated random number when the second data sequence restored by the restoration unit is a predetermined data sequence;
A data transfer system characterized by that.
第1データ転送装置と第2データ転送装置とを備えるデータ転送システムの制御方法であって、
前記第1データ転送装置が、第1乱数を用いて第1データ列をスクランブルすることで、前記第1乱数を含む第1送信データ列を生成し、
第1期間において、前記第1データ転送装置が、前記第1送信データ列を前記第2データ転送装置へ送信し、
前記第2データ転送装置が、前記第1データ転送装置から前記第1送信データ列を受信し、
前記第2データ転送装置が、受信した前記第1送信データ列に含まれる前記第1乱数を更新して、前記第2乱数を生成し、
前記第1データ転送装置が、前記第1乱数を更新して前記第2乱数を生成し、
前記第1データ転送装置が、前記第2乱数を用いて第2データ列をスクランブルすることで、前記第2乱数を含む第2送信データ列を生成し、
第2期間において、前記第1データ転送装置が、前記第2送信データ列を前記第2データ転送装置へ送信し、
前記第2データ転送装置が、前記第1データ転送装置から前記第2送信データ列を受信し、
前記第2データ転送装置が、生成した前記第2乱数を用いて前記第2送信データ列をデスクランブルすることで、前記第2送信データ列から前記第2データ列を復元し、
前記第2データ転送装置が、復元した前記第2データ列が所定のデータ列である場合、生成した乱数を更新する、
ことを特徴とするデータ転送システムの制御方法。
A control method of a data transfer system comprising a first data transfer device and a second data transfer device,
The first data transfer device generates a first transmission data sequence including the first random number by scrambling the first data sequence using a first random number,
In the first period, the first data transfer device transmits the first transmission data string to the second data transfer device,
The second data transfer device receives the first transmission data string from the first data transfer device;
The second data transfer device updates the first random number included in the received first transmission data sequence to generate the second random number;
The first data transfer device updates the first random number to generate the second random number;
The first data transfer device generates a second transmission data sequence including the second random number by scrambling the second data sequence using the second random number,
In the second period, the first data transfer device transmits the second transmission data string to the second data transfer device,
The second data transfer device receives the second transmission data string from the first data transfer device;
The second data transfer device restores the second data sequence from the second transmission data sequence by descrambling the second transmission data sequence using the generated second random number,
The second data transfer device updates the generated random number when the restored second data string is a predetermined data string;
A method for controlling a data transfer system.
JP2016046172A 2016-03-09 2016-03-09 Data transfer apparatus, data transfer system, and control method for data transfer system Active JP6601282B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016046172A JP6601282B2 (en) 2016-03-09 2016-03-09 Data transfer apparatus, data transfer system, and control method for data transfer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016046172A JP6601282B2 (en) 2016-03-09 2016-03-09 Data transfer apparatus, data transfer system, and control method for data transfer system

Publications (2)

Publication Number Publication Date
JP2017163348A JP2017163348A (en) 2017-09-14
JP6601282B2 true JP6601282B2 (en) 2019-11-06

Family

ID=59857171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016046172A Active JP6601282B2 (en) 2016-03-09 2016-03-09 Data transfer apparatus, data transfer system, and control method for data transfer system

Country Status (1)

Country Link
JP (1) JP6601282B2 (en)

Also Published As

Publication number Publication date
JP2017163348A (en) 2017-09-14

Similar Documents

Publication Publication Date Title
US8065584B2 (en) Transmitting data words
JP5266164B2 (en) Data receiver
US8737625B2 (en) Data receiving apparatus, data receiving method, and non-transitory computer readable medium storing program
US20070168835A1 (en) Serial communications system and method
WO2009146614A1 (en) A data processing apparatus, communication device and data processing method
US10440160B2 (en) Scramble of payload and preamble in 10SPE with synchronous and self-synchronous scrambling
JP2011101321A (en) Data receiver, data receiving method, and program
JPH0376613B2 (en)
JPWO2008059588A1 (en) Data transmission apparatus and transmission code generation method
US6920604B2 (en) Systems and methods for high speed serial encoding and decoding for data and control interfaces
US5629983A (en) Parallel transmission through plurality of optical fibers
CN108965173B (en) Descrambling method, descrambling device and readable storage medium
JP6601282B2 (en) Data transfer apparatus, data transfer system, and control method for data transfer system
US20120027107A1 (en) Communication device and communication method in data transmission system
US7877670B2 (en) Error correcting decoding for convolutional and recursive systematic convolutional encoded sequences
US20120266053A1 (en) Security communication method between devices
JP4407910B2 (en) Data receiver
JPH06291760A (en) Digital signal processing system
US9548857B2 (en) Initializing a descrambler
US10705906B2 (en) Apparatus and control method thereof
CN110545155A (en) Partial pseudo-randomization processing method, corresponding device, equipment and storage medium
US11342938B1 (en) Method and apparatus for codeword alignment
JPH066335A (en) Pseudo synchronization prevention method for high efficiency voice transmission
JP3224310B2 (en) Parallel transmission line decoding processor
JPH07245630A (en) High speed data transmission system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190813

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: 20190910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190923

R150 Certificate of patent or registration of utility model

Ref document number: 6601282

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150