Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
高速シリアル通信を支える技術
2013/8/31
株式会社パソナテック
西日本エンジニアリング事業部
夏谷
アジェンダ
 自己紹介
 高速シリアル通信とは
 バス規格のおさらい
 高速シリアル通信で使われている技術
 作動信号
 CDR(クロックデータリカバリ)
 8B/10Bエンコーディング
 Elasticバッファ
特に出典を書い...
自己紹介
 夏谷実
 パソナテック勤務
 エンジニアリング事業部 西日本エンジニアリ
ンググループ
 ブログ
 ぱたヘネ http://d.hatena.ne.jp/natsutan/
高速シリアル通信とは
 1ペアの作動信号のみで通信する技術
 数100Mbps~数Gbps以上
 信号数が少ないため、ケーブルや基板を小型化
できる
 使われているところ
 PCI-Express
 SATA
 Infiniban...
物理的形状の比較
http://www.atmarkit.co.jp/fsys/kaisetsu/047pe1800/pe1800.html
①⑤が64bit PCI
133MHz×64bit = 約8.5Gbps
②③がPCI-e x8
2....
PC周辺規格の進化
非同期 同期
多重化
高速シリアル
PCI-
Express
ISA PCI
シリア
ルポー
ト
USB USB 3.0
SCSI SATA
DRAM SDRAM DDR
VGA DVI
ATA
CLK
DATA
多重化(x...
高速シリアル通信で使われている技術
 自己紹介
 高速シリアル通信とは
 バス規格のおさらい
 高速シリアル通信で使われている技術
 作動信号
 CDR(クロックデータリカバリ)
 8B/10Bエンコーディング
 Elastic...
FPGA2FPGA1
セパレートクロック方式
OSC1 OSC2
PLL(x20) PLL(x20)
TX
125MHz
125MHz2.5GHz 2.5GHz
・今回想定しているクロック系統図
・両方のFPGAにそれぞれOSCの出力を入力して...
受信回路ブロック図
②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
・・・ ・・・
111...
④Elastic バッファ
④Elasticバッファ
世代によって、バ
ッファのサイズや
アルゴリズムが違
います。
FPGA2FPGA1
④Elasticバッファ
OSC1 OSC2
PLL(x20) PLL(x20)
TX
125MHz
125MHz2.5GHz 2.5GHz
・クロック再び
・両方のFPGAにそれぞれOSCの出力を入力している。
・FPG...
④Elasticバッファ
書込み
125MHz (Recovered
Clock)
源振:
送信側の基板に実装さ
れているOSC
読出し
63
0
125MHz
源振:
受信側の基板に実装
されているOSC
Elastic Buffer
64エ...
④Elasticバッファ
2つの異なるOSCが、全く同一の周波数をもつことはない
書込み 読出し
受信側のOSCの方が速い場合
読み出しが、書き込みを追い抜
く
書込み 読出し
送信側のOSCの方が速い場合
書き込みが、読み出しを追い抜
く
④Elasticバッファ
周波数の違いを吸収するためにクロックコレクションを使う。
一定の間隔で通常のデータと違う制御データを送信する。(8B/10Bの未使用のキャラ
クタ)
書込み
読出し
(skip)
送信側のOSCの方が速い場合
・書込み...
④Elasticバッファ
Elasticバッファを使う時の問題点
・Aurora I/Fを使うとCCが自動挿入される
送信側
TX_EN
データ
受信側
RX_EN
データ
valid
CC発生
valid
CC発生
クロックコレクションが入る...
④Elasticバッファ
クロックコレクションは自動挿入ではなく、手動に変更
送信を開始する前に、クロックコレクションを送り続ける
データ通
信
CC
valid
Elasticバッファの半分のCCを連続送信する。
大きなデータを送る前に、まと...
まとめ
 高速シリアル通信で使われている技術
 作動信号
 CDR(クロックデータリカバリ)
 8B/10Bエンコーディング
 Elasticバッファ
宣伝
Upcoming SlideShare
Loading in …5
×

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

7,730 views

Published on

  • Be the first to comment

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

  1. 1. 高速シリアル通信を支える技術 2013/8/31 株式会社パソナテック 西日本エンジニアリング事業部 夏谷
  2. 2. アジェンダ  自己紹介  高速シリアル通信とは  バス規格のおさらい  高速シリアル通信で使われている技術  作動信号  CDR(クロックデータリカバリ)  8B/10Bエンコーディング  Elasticバッファ 特に出典を書いていない図表は、「Xilinx 7 シリーズ FPGA GTP トラ ンシーバー UG482 (v1.0) 2012 年 1 月 3 日」から引用しています。
  3. 3. 自己紹介  夏谷実  パソナテック勤務  エンジニアリング事業部 西日本エンジニアリ ンググループ  ブログ  ぱたヘネ http://d.hatena.ne.jp/natsutan/
  4. 4. 高速シリアル通信とは  1ペアの作動信号のみで通信する技術  数100Mbps~数Gbps以上  信号数が少ないため、ケーブルや基板を小型化 できる  使われているところ  PCI-Express  SATA  Infiniband Xilinx Whitepaper WP431 (v1.0) Figure 5 イメージ図
  5. 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
  6. 6. PC周辺規格の進化 非同期 同期 多重化 高速シリアル PCI- Express ISA PCI シリア ルポー ト USB USB 3.0 SCSI SATA DRAM SDRAM DDR VGA DVI ATA CLK DATA 多重化(x4)
  7. 7. 高速シリアル通信で使われている技術  自己紹介  高速シリアル通信とは  バス規格のおさらい  高速シリアル通信で使われている技術  作動信号  CDR(クロックデータリカバリ)  8B/10Bエンコーディング  Elasticバッファ
  8. 8. 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
  9. 9. 受信回路ブロック図 ②CDR(クロックデータリカ バリ) ③8B10Bエンコーディン グ ④Elasticバッフ ァ 送信回路 受信回路 内部ロジック へ 基板へ ①作動信号
  10. 10. ①作動信号 ①作動信号
  11. 11. ①作動信号 シングルエン ド ディファレンシャ ル 0V 2.5V 0V -0.3V +0.3V + - 断面図 FPGA コネク タ 配線イメージ noise noise
  12. 12. ②クロックリカバリ ②CDR(クロックデータリカバ リ)
  13. 13. ②クロックデータリカバリ 受信データ E0 E 1 E2 D0 D 1 D2 データの変化点から、クロックを作り出し、変化点の真ん中でサンプリングを 行う データが変化しない時はどうするの? ⇒ 後で 送信クロッ ク (基板上に は存在しな い) リカバリされ た クロック
  14. 14. ②クロックデータリカバリ a) 受信データから変化点を抜き出す b) 抜き出したデータから受信用のクロック(Recovered Clock)の 生成 c) 受信用のクロックから、データを再サンプリング a b c
  15. 15. ③8B10Bエンコーディング ③8B10Bエンコーディン グ
  16. 16. ③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等も。
  17. 17. ④Elastic バッファ ④Elasticバッファ 世代によって、バ ッファのサイズや アルゴリズムが違 います。
  18. 18. FPGA2FPGA1 ④Elasticバッファ OSC1 OSC2 PLL(x20) PLL(x20) TX 125MHz 125MHz2.5GHz 2.5GHz ・クロック再び ・両方のFPGAにそれぞれOSCの出力を入力している。 ・FPGA内部のPLLで20倍のクロックを作成している。 ・基板上でケアする部分が少ない。 125MHz RX
  19. 19. ④Elasticバッファ 書込み 125MHz (Recovered Clock) 源振: 送信側の基板に実装さ れているOSC 読出し 63 0 125MHz 源振: 受信側の基板に実装 されているOSC Elastic Buffer 64エントリーのリングバッファ 125.000・・・・ MHz?
  20. 20. ④Elasticバッファ 2つの異なるOSCが、全く同一の周波数をもつことはない 書込み 読出し 受信側のOSCの方が速い場合 読み出しが、書き込みを追い抜 く 書込み 読出し 送信側のOSCの方が速い場合 書き込みが、読み出しを追い抜 く
  21. 21. ④Elasticバッファ 周波数の違いを吸収するためにクロックコレクションを使う。 一定の間隔で通常のデータと違う制御データを送信する。(8B/10Bの未使用のキャラ クタ) 書込み 読出し (skip) 送信側のOSCの方が速い場合 ・書込み側はElasticバッファに制御データ を書き込む。 ・読出し側は、読出し位置を一つ進める. ・書込み位置と読出し位置の差が広がる。 書込み位置と、読出し 位置の差が32未満 書込み 読出し (空読 み) 受信側のOSCの方が速い場合 ・書込み側はElasticバッファに制御データ を書き込み、次のクロックで同じ場所を上 書きする。 ・読出し側は一度から読みする。(読み出 し位置を進めない) ・読出しが1clk遅れるので、間隔が縮む 書込み位置と、読出し 位置の差が32以上 63 0 63 0 この仕組みでクロックの違いを吸収するため、Elasticバッファを呼ばれます。
  22. 22. ④Elasticバッファ Elasticバッファを使う時の問題点 ・Aurora I/Fを使うとCCが自動挿入される 送信側 TX_EN データ 受信側 RX_EN データ valid CC発生 valid CC発生 クロックコレクションが入るとデータの送受信が途切 れる 偶然にも高速シリアル通信を使うことになったオレ達の前に現れたのはデータ 送信中のクロックコレクションだった。最速を求めるオレたちは!
  23. 23. ④Elasticバッファ クロックコレクションは自動挿入ではなく、手動に変更 送信を開始する前に、クロックコレクションを送り続ける データ通 信 CC valid Elasticバッファの半分のCCを連続送信する。 大きなデータを送る前に、まとめてCCを行う。 データ通信を開始する前に、Elasticバッファが最大のマージンを持つようにする と、データ通信中にCCを入れる必要がなくなる。 書込み位置と、読出し 位置の差がElastticバッ ファサイズのちょうど 半分
  24. 24. まとめ  高速シリアル通信で使われている技術  作動信号  CDR(クロックデータリカバリ)  8B/10Bエンコーディング  Elasticバッファ
  25. 25. 宣伝

×