Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
高速シリアル通信を支える技術
2013/8/31
株式会社パソナテック
西日本エンジニアリング事業部
夏谷
アジェンダ
 自己紹介
 高速シリアル通信とは
 バス規格のおさらい
 高速シリアル通信で使われている技術
 作動信号
 CDR(クロックデータリカバリ)
 8B/10Bエンコーディング
 Elasticバッファ
特に出典を書いていない図表は、「Xilinx 7 シリーズ FPGA GTP トラ
ンシーバー UG482 (v1.0) 2012 年 1 月 3 日」から引用しています。
自己紹介
 夏谷実
 パソナテック勤務
 エンジニアリング事業部 西日本エンジニアリ
ンググループ
 ブログ
 ぱたヘネ http://d.hatena.ne.jp/natsutan/
高速シリアル通信とは
 1ペアの作動信号のみで通信する技術
 数100Mbps~数Gbps以上
 信号数が少ないため、ケーブルや基板を小型化
できる
 使われているところ
 PCI-Express
 SATA
 Infiniband
Xilinx Whitepaper
WP431 (v1.0) Figure 5
イメージ図
物理的形状の比較
http://www.atmarkit.co.jp/fsys/kaisetsu/047pe1800/pe1800.html
①⑤が64bit PCI
133MHz×64bit = 約8.5Gbps
②③がPCI-e x8
2.5G × 8 lane = 20Gbps
PowerEdge 1800
PC周辺規格の進化
非同期 同期
多重化
高速シリアル
PCI-
Express
ISA PCI
シリア
ルポー
ト
USB USB 3.0
SCSI SATA
DRAM SDRAM DDR
VGA DVI
ATA
CLK
DATA
多重化(x4)
高速シリアル通信で使われている技術
 自己紹介
 高速シリアル通信とは
 バス規格のおさらい
 高速シリアル通信で使われている技術
 作動信号
 CDR(クロックデータリカバリ)
 8B/10Bエンコーディング
 Elasticバッファ
FPGA2FPGA1
セパレートクロック方式
OSC1 OSC2
PLL(x20) PLL(x20)
TX
125MHz
125MHz2.5GHz 2.5GHz
・今回想定しているクロック系統図
・両方のFPGAにそれぞれOSCの出力を入力している。
・FPGA内部のPLLで20倍のクロックを作成している。
・基板上でケアする部分が少ない。
・詳しくは後で
125MHz
RX TX
RX
2.5GHz
2.5GHz125MHz
受信回路ブロック図
②CDR(クロックデータリカ
バリ)
③8B10Bエンコーディン
グ
④Elasticバッフ
ァ
送信回路
受信回路
内部ロジック
へ
基板へ
①作動信号
①作動信号
①作動信号
①作動信号
シングルエン
ド
ディファレンシャ
ル
0V
2.5V
0V
-0.3V
+0.3V
+ -
断面図
FPGA
コネク
タ
配線イメージ
noise
noise
②クロックリカバリ
②CDR(クロックデータリカバ
リ)
②クロックデータリカバリ
受信データ
E0 E
1
E2
D0 D
1
D2
データの変化点から、クロックを作り出し、変化点の真ん中でサンプリングを
行う
データが変化しない時はどうするの? ⇒ 後で
送信クロッ
ク
(基板上に
は存在しな
い)
リカバリされ
た
クロック
②クロックデータリカバリ
a) 受信データから変化点を抜き出す
b) 抜き出したデータから受信用のクロック(Recovered Clock)の
生成
c) 受信用のクロックから、データを再サンプリング
a
b
c
③8B10Bエンコーディング
③8B10Bエンコーディン
グ
③8B10Bエンコーディング
データ送信時に8bitを10bitに符号化して、CDR用に常にデータを変化さ
せる。
8bit 10bit
0000_0000 1001110100
0000_0001 0111010100
・・・ ・・・
1111_1110 0111100001
1111_1111 1010110001
8bit 10bit
1111_1101 1011101000
1111_1110 0111101000
・・・ ・・・
制御コード(Kキャラクター)
通常のデータ
データの中に必ず0→1、1→0への
変化がある。
転送効率がいきなり80%に落ちる。
2.5Gbpsといっても、アプリケー
ションレベルで見ると最大
2.0Gbpsになる
最近は64b66b、128b/130b等も。
④Elastic バッファ
④Elasticバッファ
世代によって、バ
ッファのサイズや
アルゴリズムが違
います。
FPGA2FPGA1
④Elasticバッファ
OSC1 OSC2
PLL(x20) PLL(x20)
TX
125MHz
125MHz2.5GHz 2.5GHz
・クロック再び
・両方のFPGAにそれぞれOSCの出力を入力している。
・FPGA内部のPLLで20倍のクロックを作成している。
・基板上でケアする部分が少ない。
125MHz
RX
④Elasticバッファ
書込み
125MHz (Recovered
Clock)
源振:
送信側の基板に実装さ
れているOSC
読出し
63
0
125MHz
源振:
受信側の基板に実装
されているOSC
Elastic Buffer
64エントリーのリングバッファ 125.000・・・・
MHz?
④Elasticバッファ
2つの異なるOSCが、全く同一の周波数をもつことはない
書込み 読出し
受信側のOSCの方が速い場合
読み出しが、書き込みを追い抜
く
書込み 読出し
送信側のOSCの方が速い場合
書き込みが、読み出しを追い抜
く
④Elasticバッファ
周波数の違いを吸収するためにクロックコレクションを使う。
一定の間隔で通常のデータと違う制御データを送信する。(8B/10Bの未使用のキャラ
クタ)
書込み
読出し
(skip)
送信側のOSCの方が速い場合
・書込み側はElasticバッファに制御データ
を書き込む。
・読出し側は、読出し位置を一つ進める.
・書込み位置と読出し位置の差が広がる。
書込み位置と、読出し
位置の差が32未満
書込み
読出し
(空読
み)
受信側のOSCの方が速い場合
・書込み側はElasticバッファに制御データ
を書き込み、次のクロックで同じ場所を上
書きする。
・読出し側は一度から読みする。(読み出
し位置を進めない)
・読出しが1clk遅れるので、間隔が縮む
書込み位置と、読出し
位置の差が32以上
63
0
63
0
この仕組みでクロックの違いを吸収するため、Elasticバッファを呼ばれます。
④Elasticバッファ
Elasticバッファを使う時の問題点
・Aurora I/Fを使うとCCが自動挿入される
送信側
TX_EN
データ
受信側
RX_EN
データ
valid
CC発生
valid
CC発生
クロックコレクションが入るとデータの送受信が途切
れる
偶然にも高速シリアル通信を使うことになったオレ達の前に現れたのはデータ
送信中のクロックコレクションだった。最速を求めるオレたちは!
④Elasticバッファ
クロックコレクションは自動挿入ではなく、手動に変更
送信を開始する前に、クロックコレクションを送り続ける
データ通
信
CC
valid
Elasticバッファの半分のCCを連続送信する。
大きなデータを送る前に、まとめてCCを行う。
データ通信を開始する前に、Elasticバッファが最大のマージンを持つようにする
と、データ通信中にCCを入れる必要がなくなる。
書込み位置と、読出し
位置の差がElastticバッ
ファサイズのちょうど
半分
まとめ
 高速シリアル通信で使われている技術
 作動信号
 CDR(クロックデータリカバリ)
 8B/10Bエンコーディング
 Elasticバッファ
宣伝

More Related Content

高速シリアル通信を支える技術