高速​シリアル​通信​の​解説

概要

高速​シリアル​インタフェース​は、​デバイス​の​サイズ​縮小​と​データ​通信​レート​の​向上​を​目的​と​した​技術​で、​現在​ます​ます​成長​を​遂​げ​つつ​あり​ます。​この​ホワイト​ペーパー​では、​高速​シリアル​通信​リンク​の​基本​概念​について​説明​し​ます。

目次

  1. 高速​シリアル​の​ニーズ
  2. 高速​シリアル​リンク​の層
  3. まとめ
  4. 関連​コンテンツ

高速​シリアル​の​ニーズ

消費者​は​常に、​性能​の​向上、​サイズ​の​小型化、​消費​電力​の​縮小​を​求め​てい​ます。​ビッグ​データ​が​主流​と​な​っ​た​現在​ですが、​デジタル​通信​バス​が​パラレル​から​シリアル​バス​へ​移行​する​という​大きな​変化​が​起​こ​り​始め​た​の​は、​2000​年代​に​入​っ​た​頃​で​した。​パラレル​バス​から​高速​シリアル​バス​へ​移行​した​こと​により、​デバイスははるかに小型化され、​データ​スループット​は​高速​化​し、​必要​な​電力​量​は​少​なく​て​すむ​よう​に​なり​ま​した。​現在、​広​く​利用​さ​れ​て​いる​SATA、​USB、​PCI Express​といった​技術​の​多く​が​可能​に​な​っ​た​の​も、​こうした​変化​の​おかげ​です。

 

図1. 一般​的​だ​っ​た​パラレル​通信​の​規格​が​シリアル​規格​へ​と​移行​し​始め​た​のは
​2000​年代初期だった。

 

メリット

パラレル​バス​の​クロック​レート​に​は、​1​~​2 GHz​あたり​で​物理​的​な​限界​が​ありま​した。​原因​は、​個々​の​クロック​および​データ​ライン​から​スキュー​が​生​じ​て、​高速​レート​に​なる​と​ビット​エラー​が​発生​し​て​しまう​ことに​あり​ます。​高速​シリアル​バス​は、​1​つ​の​差動​信号​に​データ​と​クロック​の​両方​の​情報​を​含​め、​データ​を​符号​化​し​て​伝送​する​ため、​パラレル​バス​に​存在​する​よう​な​速度​制限​を​回避​でき​ます。​現在​では、​10 Gbps​で​転送​を​行う​データ​レーン​を​備え​た​高速​シリアル​リンク​は​珍​しく​なく​なり​ま​した。​また、​シリアル​リンク​の​複数​の​レーン​を​位相​同期​し​ながら​一つ​の​バス​に​まとめる​こと​で、​高い​データ​スループット​が​実現​できる​通信​リンク​を​形成​する​こと​が​でき​ます。

データ​を​シリアル​化​し、​より高速で転送すれば、​集積​回路​(IC)​の​ピン​数​を​減らす​こと​が​できる​ため、​サイズ​を​縮小​し​や​すく​なり​ます。​さらに、​シリアル​レーン​は​より​速い​クロック​速度​で​動作​できる​ため、​パラレル​バス​の​場合​より​も​高い​データ​スループット​が​実現​し​ます。

図2. この​グラフ​は​広​く​普及​し​て​いる​バス​規格​と、​それぞれ​の​レーン​数​を​ライン​レート​に​対比​さ​せ​た​もの。​これらの​シリアル​規格​では​パラレル​規格​より​も​はるかに​高い​ライン​レート​が​可能​に​なる​ため、​スループット​の​向上​に​つながる。

 

デメリット

ピン​数​が​減る​こと​によって​設計​の​複雑​性​は​軽減​できる​ものの、​必要​と​さ​れる​高速​転送​を​可能​に​する​に​は、​設計​に​新た​な​課題​が​生​じ​ます。​RF​周波数​に​対応​できる​設計​を​行う​ので​あれ​ば、​RF​と​同様​に​アナログ​回路​に​考慮​を​施​し​て、​適切​な​信号​整合性​を​確保​する​必要​が​あり​ます。​こうした​信号​整合性​の​問題​を​軽減​する​ため、​高速​シリアル​リンク​に​は、​符号​化、​プリエンファシス、​イ​コ​ライ​ゼ​ー​ション​といった​技術​が​使​われ​ます。

 

トップ​へ​戻る

高速​シリアル​リンク​の層

シリアル​接続​を​機能​させる​に​は、​各​エンド​が​特定​の​パラメータ​内​で​動作​する​という​こと​で​一致​し​て​いる​必要​が​あり​ます。​これらの​パラメータ​は​複数​の​機能​層​に​抽象​化​でき​ます。  

図3. 物理​層​と​データリンク​層​の​上​に​層​が​追加​さ​れる​こと​が​ある。​これらの​層​は​プロトコル​と​アプリケーション​によって​異​なり、​通常、​最も​よく​カスタマイズ​さ​れる。

 

最​下層​は​物理​層​で​あり、​0​と​1​の​正常​な​データ​伝送​と​データ​リカバリ​を​受け​持​って​い​ます。​その​上​が​データリンク​層​で、​未処理​の​データ​を​意味​の​ある​データ​に​マッピング​し​ます。​また、​物理​層​が​正常​に​送受信​を​行える​よう​に​機能​し​ます。​最後​が​物理​層​と​データリンク​層​の​上位​層​で、​コンテキスト​を​追加​する​役割​を​担う​とともに、​エラー​修正​や​パケット​化​といった​機能、​データ​の​経路​設定​情報​を​含​んで​い​ます。

 

物理層

物理​層​は、​デバイス​間​の​電気​的​な​互換性​を​確保​し、​データリンク層に対してクロックを同期させます。

 

接続​インタフェース

高速シリアルプロトコルが異なれば、​送信​機​と​受信​機​の​接続​インタフェース​に​定義​さ​れる​要件​も​異​なり​ます。​これ​によって、​送信​機​と​受信​機​の​互換性​が​保​たれ、​接続​が​確立​し​ます。​高速​シリアル​リンク​の​電気​信号​は​差動​伝送​さ​れる​ため、​1 Gbps​を​超える​速度​の​通信​に​必要​な​極端​な​立ち上がり​時間​と​立ち​下がり​時間​に​対応​し、​電磁​放射線​を​最小限​に​抑え、​コモ​ン​ノード​ノイズ​を​除去​する​こと​によって​耐​ノイズ​性​を​向上​させる​こと​が​でき​ます。​さらに、​この​よう​な​速度​で​ピーク​ピーク​値​の​電圧​が​1 V​を​超える​こと​は​ほとんど​なく、​通常、​LVDS(Low Voltage Differential Signaling)、​ECL(Emitter Coupled Logic)、​または​CML(Current Mode Logic)​といった​規格​が​使​われ​ます。  

 

クロック​データ​リカバリ​(CDR)

高速​シリアル​リンク​の​物理​層​が​持つ​もう​一つ​の​重要​な​機能​は、​クロック​データ​リカバリ​(CDR)​です。​CDR​は、​データ​を​受信​する​側​の​デバイス​が、​実際​の​クロック​信号​なし​で、​受信​データ​の​クロック​情報​を​抽出​できる​機能​です。​データリンク​層​は​符号​化​を​使​っ​た​頻繁​な​データ​ビット​の​シフト​を​正しく​行う​こと​で、​これ​を​サポート​し​ます。​そう​する​こと​で、​位相​同期​ループ​(PLL)、​または​位相​補間​(PI)​回路​が​伝送​クロック​信号​を​再生​し、​それ​を​使​って​受信​データ​に​最小限​の​タイミング​エラー​しか​生​じ​ない​よう​に​する​こと​が​でき​ます。

図4. データリンク​層​で​符号​化​を​行う​こと​で、​0​と​1​の​頻繁​な​シフト​が​行​われる​ため、​CDR​回路は受信データを位相同期ループさせ、​符号​化​した​データ​ビット​を​同期​サンプリング​する​こと​が​でき​ます。

 

信号​整合性​の​考慮点

ビット​シフト​を​行う​データ​を​5 GHz​を​上回る​レート​で​伝送​すると​なる​と、​アナログ​設計​に​課題​が​生​じ​て​き​ます。​RF​設計​特有​の​周波数​範囲​における​伝送​速度​と​なる​ため、​信号​整合性​の​問題​が​生じる​の​です。​そこで、​高​品質​の​PCB、​コネ​クタ、​ケーブル​を​使い、​こうした​高い​データ​レート​で​問題​なく​通信​できる​よう​に​する​こと​が​重要​となり​ます。​また、​PCB​設計​者​が​高速​シリアル​リンク​の​設計​時に​伝送​線路​理論​を​理解​し、​スタブ、​インピーダンス​不​整合、​トレース​長​不一致​を​回避​し​て、​信号​歪み​を​最小限​に​する​適切​な​技術​を​使用​する​こと​が​重要​です。  

 

イ​コ​ライ​ゼ​ー​ション

イ​コ​ライ​ゼ​ー​ション​と​は、​チャンネル​の​周波数​応答​を​増やす​ため​に、​チャンネル​の​電気​的​挙動​を​反作用​させる​処理​です。​この​処理​は​十分​な​リンク​マージン​を​確保​する​ため​に、​通信​リンク​の​送信​機​あるいは​受信​機​の​どちら​か​で​行​われ​ます​が、​この​イ​コ​ライ​ゼ​ー​ション​という​用語​は​通常、​受信​機​の​側​で​使​われ​ます。​高速​シリアル​信号​が​PCB​トレース​を​通過​し、​コネ​クタ​や​ケーブル​を​経由​し​て、​受信​機​に​到達​する​とき、​信号の周波数成分全体に対して減衰が均等に加わらず、​信号​に​歪み​が​生​じ​ます。​マルチギガビットトランシーバ​(MGT)​の​イ​コ​ライ​ゼ​ー​ション​設定​は、​信号​が​サンプリング​さ​れる​前​に、​信号​の​周波数​成分​に​応​じ​て​ゲイ​ン​または​減衰​を​適用​し、​信号​および​リンク​の​マージン​を​十分​に​確保​し​ます。​多く​の​MGT​に​搭載​さ​れ​て​いる​自動​イ​コ​ライ​ゼ​ー​ション​は、​最適​な​設定​を​自動的​に​検出​し、​継続​的​に​イコライザー​を​その​設定​に​アップデート​し​ます。   

 

プリエンファシス

プリエンファシス​と​は、​通常、​高速​シリアル​リンク​の​送信​機​側​の​イ​コ​ライ​ゼ​ー​ション​を​指す​用語​です。​主に、​シンボル​間​の​混信​(ISI)​によって​生じる​アナログ​の​問題​を​解消​する​ため​に​使用​し​ます。​高速​ライン​レート​において​は、​ビット​データ​が​伝送​中​に​相互​に​影響​を​及​ぼ​し​ます。​例えば、​1​が​3​つ連続で伝送され、​次に​0​が​1​つ​伝送​さ​れる​場合、​ライン​に​は​正​の​バイアス​が​形成​さ​れ​て​いる​ため、​この​0​が​すぐ​に​0​として​伝送​さ​れる​こと​が​難​しく​なり​ます。

 

   

図5. シンボル​間​の​混信​(ISI)​による​信号​の​劣化。​ビット​が​シフト​しない​こと​で​ライン​が​バイアス​を​形成​し、​次に​来る​逆​の​ビット​の​シフト​が​す​ば​やく​行​われ​ない​ことに​原因​が​ある。

 

ISI​を​克服​する​に​は​2​つ​の​方法​が​あり​ます。​Low​から​High、​あるいは​High​から​Low​へ​シフト​する​最初​の​ビット​のみ​に​問題​が​ある​こと​が​わか​って​いる​なら、​シフト​後​の​最初​の​ビット​のみ​を​増幅​する​こと​が​でき​ます。​この​方法​を​用いる​と、​図​6​に​示し​た​信号​に​なり​ます。

 

図6. プリエンファシス​と​は、​信号​の​シフト​後​最初​の​ビット​を​増幅​する​こと​で​ある。​これ​によって​シンボル​間​の​混信​(ISI)​の​よう​な​問題​は​軽減​さ​れる。

 

さらに​一般​的​な​方法​を​用​い​て、​図​6​に​示し​た​よう​な​波形​と​同様​の​波形​を​得る​に​は、​最初​の​ビット​を​増幅​する​代わり​に、​最初​の​シフト​後​の​ビット​を​減衰​し​ます。​この​挙動​は​ハイ​パス​フィルタ​で​実現​が​可能​です。​シフト​する​ビット​(高​周波数)​が、​シフト​しない​ビット​より​も​少​なく​減衰​さ​れる​ため​です。

 

データリンク層

データリンク​層​は、​データ​を​操作​する​こと​で、​信号​整合性​の​向上、​正常​な​通信​の​確保、​物理​的​な​ビット​の​データ​へ​の​マッピング​を​行い​ます。​これ​を​可能​に​する​機能​は​符号​化​スキーム​と、​アライメント、​クロック​補正、​チャンネル​ボンディング​を​行う​制御​符号​です。   

 

符号​化​スキーム

符号​化​の​目的​は、​頻繁​な​ビット​の​シフト​を​確実​に​行う​こと​で、​正常​な​クロック​データ​リカバリ​(CDR)​を​行い、​データ​の​DC​バランス​を​維持​する​こと​です。​正常​な​CDR​を​行う​に​は、​符号​化​スキーム​によって、​データ​信号​の​ビット​シフト​を​十分​行い、​CDR​回路​が​データ​ストリーム​に対する​位相​同期​を​維持​できる​よう​に​する​必要​が​あり​ます。​ビット​シフト​が​十分​で​ない​ため​に、​CDR​回路​内​の​PLL​の​同期​が​維持​さ​れ​ない​場合、​受信機ではデータビットのクロックを同期できず、​ビット​誤差​または​リンク​障害​が​発生​し​ます。​CDR​は、​頻繁​な​ビット​シフト​を​行う​シンボル​の​伝送​を​保証​する​こと​で​実現​し、​その​結果​として、​オーバー​ヘッド​ビット​が​データ​に​追加​さ​れる​ことに​なり​ます。
​DC​バランス​も​シリアル​リンク​の​機能​を​維持​する​うえ​で​重要​です。​DC​バランス​の​量​が​制限​さ​れ​てい​ない​場合、​信号​が​最適​な​ロジック​の​High/​Low​レベル​から​遠​ざ​かって​しま​い、​ビット​誤差​が​発生​する​可能性​が​あり​ます。​DC​バランス​は、​伝送​さ​れる​シンボル​の​1​と​0​の​数​の​均衡​を​保つ​こと​で​確保​さ​れ​ます。​DC​バランス​が​維持​さ​れる​信号​では、​一定​の​時間​にわたって​伝送​さ​れる​0​と​1​の​数​が​統計​的​に​等​しく​なり​ます。   

 

8b/​10b​の​符号​化​方式

一般​的​な​符号​化​方式​として、​8b/​10b​が​あり​ます。​8​ビット​の​データ​全て​に​2​ビット​を​追加​する​こと​で、​符号​化​の​オーバー​ヘッド​が​生​じ​ます。​この​よう​な​2​ビット​の​追加​は、​8​ビット​の​データ​で​可能​な​ビット​表記​(シンボル)​の​4​倍​の​シンボル​を​供給​し​ます。​現在、​選択​できる​シンボル​オプション​が​数多く​ある​なか、​8b/​10b​方式​が​選択​する​定義​済み​シンボル​では、​特定​の​データ​ワード​と​制御​シンボル​に​マッピング​できる​よう​に​最も​頻繁​に​ビット​が​シフト​し、​DC​バランス​が​最も​維持​さ​れ​ます。​これらのシンボルはルックアップテーブルに格納され、​データ​の​符号​化​と​復号​化​に​使用​さ​れ​ます。
​8​ビット​の​データ​ワード​が​符号​化​さ​れる​とき、​エンコーダ​は​データ​ワード​を​5​ビット​と​3​ビット​に​分け、​データ​ワード​に対して、​5b/​6b​と​3b/​4b​という、​別々​の​符号​化​を​実行​し​ます。​最下位​5​ビット​は​5b/​6b​テーブルに送られ、​最​上位​3​ビット​は​3b/​4b​に​送​ら​れ​ます。

 

3b​データ​ワード

4b​符号​化​シンボル

 

5b​データ​ワード

6b​符号​化​シンボル

000

0100​または​1011

 

00000

100111​または​011000

001

1001

 

00001

011101​または​100010

010

0101

 

00010

101101​または​010010

011

0011​または​1100

 

00011

110001

100

0010​または​1101

 

00100

110101​または​001010

101

1010

 

00101

101001

110

0110

 

00110

011001

111

0001​または​1110

 

00111

111000​または​000111

 

 

 

01000

111001​または​000101

 

 

 

01001

100101

 

 

 

01010

010101

 

 

 

01011

110100

 

 

 

01100

001101

 

 

 

01101

101100

 

 

 

01110

011100

 

 

 

01111

010111​または​101000

 

 

 

10000

011011​または​100100

 

 

 

10001

100011

 

 

 

10010

010011

 

 

 

10011

110010

 

 

 

10100

001011

 

 

 

10101

101010

 

 

 

10110

011010

 

 

 

10111

111010​または​000101

 

 

 

11000

110011​または​001100

 

 

 

11001

100110

 

 

 

11010

010110

 

 

 

11011

110110​または​001001

 

 

 

11100

001110

 

 

 

11101

101110​または​010001

 

 

 

11110

011110​または​100001

 

 

 

11111

101011​または​010100


表1. 8b​データ​ワード​は、​最​上位​3​ビット​を​3b/​4b​テーブル​に、​最下位​5​ビット​を​5b/​6b​テーブル​に​送る​こと​で​符号​化​さ​れる。​それから、​現在の不均衡に基づいて結合され、​CDR​回路​に​適​した​頻繁​な​シフト​を​行う​10b​シンボル​を​形成​する。

 

理想​的​な​状態​は、​全て​の​シンボル​の​0​と​1​の​数​が​等​しく​なり、​DC​バランス​が​維持​さ​れる​状態​です。​しかし、​この​よう​な​理想​的​な​状態​に​する​に​は、​5b/​6b​と​3b/​4b​に​ある​シンボル​の​数​が​足​り​ない​ため、​「ランニング・​ディス​パリティ」​として​知​られる​概念​に​基​づ​い​て​判断​を​下す​よう​な​規則​が​実装​さ​れ​ま​した。​ランニング・​ディス​パリティ​と​は、​伝送​さ​れ​て​きた​1​の​数​と​0​の​数​の​差​が​積み重なる​こと​を​指し​ます。​8​ビット​の​データ​を​表記​する​ため​に​は、​1​と​0​の​数​が​等しい​シンボル​が​足​り​ない​ため、​一部​の​データ​ワード​は​2​シンボル​で​表記​さ​れ​ます。​つまり、​一つ​は​1​より​0​の​数​が​多い​シンボル​で、​もう​一つ​は​0​より​1​の​数​が​多い​シンボル​です。​例えば、​1101​の​3b/​4b​テーブル​の​シンボル​は、​0010​として​も​表記​できる​わけ​です。​使用​する​シンボル​を​どちら​に​する​か​選択​する​とき、​エンコーダ​は​常に​ランニング・​ディス​パリティ​の​バランス​を​取​ろうと​し​ます。​8b/​10b​の​シンボル​の​差​を​全て​表す​と、​常に​0、+2、​または-2​となり​ます。 次​の​表​は、​使用​すべ​き​シンボル​を​決める​ときの​判断​プロセス​を​示し​てい​ます。

 

ランニング・​ディス​パリティ​(RD)​の​規則

前​の​RD

シンボル​の​ディス​パリティ​選択肢

選択​さ​れ​た​ディス​パリティ

次​の​RD

-1

0

0

-1

-1

+2, -2

+2

+1

+1

0

0

+1

+1

+2,-2

-2

-1


表2. この​表​は​ランニング・​ディス​パリティ​の​規則​を​示し​て​いる。​この​規則​は、​DC​バランス​が​維持​できる​よう​に、​使用​する​コード​ワード​を​決定​する。

 

この​規則​を​説明​する​ため​に、​データ​ワード​10010001​を​取り上げ​て​み​ま​しょう。​最​上位​3​ビット​(100)​が​3b/​4b​テーブルへ送られ、​最下位​5​ビット​(10001)​が​5b/​6b​テーブル​に​送​ら​れ​ます。​これ​が​伝送​さ​れ​て​いる​最初​の​ワード​の​場合、​エンコーダ​は-1​という​差​を​想定​し​ます。​したがって、​この​例​における​ランニング・​ディス​パリティ​は-1​という​ことに​なり​ます。​5b/​6b​部分​に関して​選択肢​は​なく、​3b/​4b​の​ほう​で​その​差​が​+2​と-2​の​どちら​に​なる​か​を​判断​し​ます。​ランニング・​ディス​パリティ​が-1​の​ため、​差​が​+2(1101)​の​3b/​4b​コード​が​選択​さ​れ​ます。​3b/​4b​と​5b/​6b​の​コード​が​結合​さ​れる​と、​符号​化​シンボル​の​合計​は​1101100011​に​なり​ます。 この​シンボル​が​伝送​さ​れ​た​後、​ランニング・​ディス​パリティ​は​+1 = -1 + 2​となり​ます。

 

64b/​66b​の​符号​化​方式

64b/​66b​では、​8b/​10b​と​は​異​な​っ​た​手法​で​同様​の​こと​を​行い​ます。​64b/​66b​の​符号​化​では、​コード​テーブル​の​代わり​に、​スク​ラン​ブ​リング​という​技術​を​用​い​ます。​スク​ラン​ブ​リング​に​は、​0​と​1​が​高​確率​で​連続​しない​よう​に​スクランブル​する​ハードウェア​回路​が​必要​です。​スク​ラン​ブ​リング​すると、​符号​化​データ​の​0​と​1​の​パターン​は​頻繁​な​シフト​によって​ランダム​化​さ​れ​ます​が、​受信​側​では​再び​元​に​戻す​こと​が​でき​ます。

図7. スク​ラン​ブ​リング​回路​によって、​出力​データ​の​ランダム​化​が​行​われ、​DC​バランス​が​均衡​に​なる。​受信​側​では​再び​データ​を​元​に​戻す​こと​が​可能。​スク​ラン​ブ​リング​は​ルック​アップ​テーブル​と​は​異​な​っ​た​データ​符号​化​の​手法​で​ある。

 

66​ビット​の​最初​の​2​ビット​は​プリアンブル​で、​残り​の​64​ビット​に関する​情報​を​含​んで​い​ます。   

 

プリアンブル​(最初​の​2​ビット)

残り​の​64​ビット

00

使用​しない。​エラー​と​見なす。

01

データ

10

8​ビット​タイプ、​56​ビット​の​制御/​データ

11

使用​しない。​エラー​と​見なす。


表3. 64b/​66b​シンボル​の​最初​の​2​ビット​は​プリアンブル。​プリアンブル​は​次に​続く​64​ビット​の​復号​化​に関する​情報​を​含​んで​いる。​上記​の​プリアンブル​の​意味​は​10​ギガ​ビット​Ethernet​に​も​当てはまる。

 

8b/​10b​と​比較​した​ときの​64b/​66b​の​主​な​メリット​は​オーバー​ヘッド​を​減​ら​せる​点​です。​8b/​10b​の​オーバー​ヘッド​が​20%​で​ある​の​に対して、​64b/​66b​の​オーバー​ヘッド​は​わずか​3%​超​です。​64b/​66b​で​1​つ​妥協​すべ​き​点​は、​8b/​10b​の​よう​に​は​確実​に​DC​バランス​が​取​れ​ない​点​です。​スク​ラン​ブ​リング​回路​は​0​と​1​の​パターン​を​ランダム​化​する​点​では​大変​優​れ​て​いる​し、​統計的に見れば、​DC​バランス​の​不均衡​は​わずか​ですが、​それでも、​8b/​10b​程​に​は​DC​バランス​は​取​れ​ま​せん。

 

64b/​67b

一定​の​エレクトロニクス​製品​は​時間​が​経つ​につれ、​DC​オフセット​の​影響​を​受け​や​すく​なり​ます。​したがって、​DC​オフセット​の​制限​が​ない​64b/​66b​の​符号​化​スキーム​は​敬遠​さ​れる​場合​が​あり​ます。​こうした​状況​において​は、​8b/​10b​スキーム​の​高い​オーバー​ヘッド​(20%)​に​悩​まさ​れる​ことに​なり​ます。​64b/​67b​では、​1​ビット​の​オーバー​ヘッド​を​追加​する​こと​で、​符号​化​スキーム​の​ランニング・​ディス​パリティ​を​±96​に​制限​する​こと​が​でき​ます。
​送信​機​は​ランニング・​ディス​パリティ​を​監視​し、​新た​に​スク​ラン​ブ​リング​さ​れ​た​コード​ワード​の​差​を​計算​し​ます。​新しい​コード​ワード​の​差​の​数字​が​低​く​なる​場合、​その​シンボル​を​伝送​し​ます。​新しい​コード​ワード​によって​差​の​数字​が​高​く​なる​場合、​エンコーダはスクランブリングされた​64​ビット​の​ビット​パターン​を​反転​し​ます​(プリアンブル​は​差​が​0​の​ため​反転​は​不要)。​追加されたビットは反転ビットと呼ばれ、​デコーダ​に対して​データ​を​反転​する​必要​が​ある​か​どうか​を​伝え​ます。​これ​によって、​DC​オフセット​に​反応​し​やすい​エレクトロニクス​製品​でも、​低い​オーバー​ヘッド​と、​制限​の​ある​DC​オフセット​の​両方​の​メリット​を​活用​できる​よう​に​なり​ます。

 

128b/​130b

PCIe 1.0​と​2.0​の​両方​で​8b/​10b​が​使用​さ​れる​一方、​PCIe 3.0​と​4.0​では、​実現​可能​な​ライン​レート​で​より​高い​データ​スループット​を​得​よう​と、​128b/​130b​が​使用​さ​れる​ことに​なり​ま​した。​128b/​130b​は、​プリアンブル​が​2​ビット​の​ま​まで​ペイ​ロード​を​2​倍​に​した​64b/​66b​だ​と​言​え​ます。​次​の​表​は、​PCIe​の​仕様​を​示し​てい​ます。

 

PCIe​バージョン

符号化

ライン​レート

スループット​(x16)

1.0

8b/​10b

2.5 Gb/秒

4 GB/秒

2.0

8b/​10b

5 Gb/秒

8 GB/秒

3.0

128b/​130b

8 Gb/秒

15.8 GB/秒

4.0

128b/​130b

16 Gb/秒

31.5 GB/秒


表4. PCI Express4​世代​の​仕様。​PCIe 3.0​と​4.0​は​128b/​130b​へ​移行​する​こと​で、​実現可能なラインレートでデータスループットを向上できるようになった。

 

制御​シンボル​(K​コード)

制御​シンボル​は、​8b/​10b​符号​化​を​指す​とき​は​K​コード​とも​呼​ば​れ​て​おり、​高速​シリアル​リンク​の​重要​な​機能​です。​データ​から​差別​化​できる​シンボル​で​あり、​受信​機​が​異なる​制御​管理​に​使用​できる​もの​です。​例えば、​復号​化​の​前​の​バイト​境界​の​アライメント、​クロック​補正​テクニック、​チャンネル​ボンディング​による​複数​レーン​全体​で​の​データ​一貫性​など​に対する​制御​です。  

 

アラインメント​と​カンマ​検出

復号​化​が​正しく​機能​する​ため​に​は、​受信​機​が​符号​化​データ​の​正しい​ワード​境界​を​認識​する​必要​が​あり​ます。​受信​機​は​入力​さ​れる​データ​を​スキャン​し​て、​符号​化​データ​の​境界​を​定義​する​制御​符号​(8b/​10b​では​アラインメント​で​使用​さ​れる​カンマ)​を​探​し​ます。​受信​機​が​アラインメント​符号​を​特定​したら、​符号​化​データ​の​ワード​境界​の​概念​が​できる​ため、​符号​化​データ​を​復号​化​ロジック​へ​送り込む​こと​が​できる​の​です。

 

クロック​補正​符号

クロック​補正​が​必要​に​なる​の​は、​送信​さ​れ​た​クロック​信号​が​受信​さ​れる​クロック​信号​と​同じ​ソース​に対して​同期​し​てい​ない​とき​です。​これらの​クロック​信号​が​同じ​公称​周波数​で​あっ​た​として​も、​クロック​周波数​の​不正確​さ​が​少し​ずつ​重なる​こと​によって、​徐々に​差​が​出​て​き​て​しま​い​ます。​エラ​スティック・​バッファ​と​呼ばれる​こと​も​ある​FIFO(First-​In-​First-​Out​メモリ​バッファ)​が​ある​こと​によって、​受信​機​は​送信​機​と​受信​機​の​間​に​生​じ​た​クロック​信号​の​小さな​差​を​把握​し、​クロック​補正​を​行う​こと​が​でき​ます。

図8. デコーダ​と​受信​機​の​上位​層​と​の​間​に​ある​RX​エラ​スティック・​バッファ​が​クロック​補正​の​実行​に​必要。​クロック​信号​間​の​タイミング​の​ずれ​から​生じる​エラー​を​防ぐ​ため​に​データ​を​バッファ​に​格納​し、​基準クロックを共有せずに​2​デバイス​間​の​通信​を​可能​に​する。

 

クロック​補正​ロジック​は、​エラ​スティック・​バッファ​が​オーバー​フロー​および​アンダー​フロー​しない​よう​に​管理​し​ます。​受信​機​の​クロック​が​エラ​スティック・​バッファ​から​データ​を​読み取る​速度​より、​送信​クロック​の​実行​速度​の​ほうが​やや​速い​場合、​クロック​補正​が​行​われ​ない​と​オーバー​フロー​が​起こる​こと​が​あり​ます。​受信​機​の​読み取り​ロジック​より、​送信​クロック​の​速度​の​ほうが​やや​遅い​場合、​クロック​補正​が​行​われ​ない​と​アンダー​フロー​が​起こる​こと​が​あり​ます。

クロック​補正​の​符号​として、​制御​符号​が​使用​さ​れ​ます。​送信​機​は​実際​の​データ​に​この​クロック​補正​符号​を​周期​的​に​挿入​し​て​送信​する​必要​が​あり​ます。​また、​送信​さ​れる​クロック​補正​符号​の​周波数​は、​アプリケーション​および​ハードウェア​設計​の​クロック​補正​ニーズ​によって​決まり​ます。​受信​機​の​クロック​補正​ロジック​は、​受信​機​の​エラ​スティック・​バッファ​が​アンダー​フロー​状態​に​なり​そう​に​なる​と、​追加​の​クロック​補正​符号​を​挿入​し​て、​それ​を​防ぐ​こと​が​でき​ます。​また、​エラ​スティック・​バッファ​が​いっぱい​に​なり、​オーバー​フロー​状態​に​なり​そう​に​なる​と、​バッファ​に​格納​さ​れ​た​クロック​補正​シーケンス​を​破棄​し​て、​データ​の​ため​に​スペース​を​空ける​こと​が​でき​ます。

 

チャンネル​ボンディング

ライン​レート​と​符号​化​の​スキーム​が、​必要​な​データ​スループット​を​1​つ​の​シリアル​レーン​で​達成​でき​ない​場合、​複数​の​レーン​を​使用​する​こと​が​あり​ます。​例えば、​HDMI​規格​は​3​つ​の​シリアル​データ​レーン​を​使用​し​て、​データ​の​合計​帯域​幅​を​実現​し​ます。​複数​レーン​を​使用​し​て​データ​を​送信​すると、​伝播​遅延​が​生​じ、​データ​が​受信​機​の​各​受信​レーン​に​異なる​タイミング​で​到達​し​ます。​アプリケーション​によって​は、​受信​機​の​全て​の​レーン​に対して​データ​の​アラインメント​が​必要​に​なり、​このプロセスのことをチャンネルボンディングと呼びます。​クロック​補正​に​使用​さ​れる​受信​機​の​各​受信​レーン​の​エラ​スティック・​バッファ​は、​チャンネル​ボンディング​機能​に​も​使用​さ​れ​ます。

チャンネル​ボンディング​を​可能​に​する​に​は、​特別​な​制御​符号​を​選択​し​て、​チャンネル​ボンディング​用​に​用意​する​必要​が​あり​ます。​シリアル​リンク​に​は​1​つ​の​マスタ​レーン​が​あり、​その他​は​スレーブ​と​見​なし​ます。​マスタ​レーン​と​全て​の​スレーブ​レーン​が​送信​機​から​同時に​チャンネル​ボンディング​符号​を​送信​し​ます。​受信​側​の​マスタ​レーン​が​エラ​スティック・​バッファ​の​特定​の​位置​に​チャンネル​ボンディング​の​シーケンス​を​見つける​と、​全て​の​スレーブ​レーン​に対して、​それぞれ​の​チャンネル​ボンディング​の​シーケンス​を​探す​よう​に​指示​が​送​ら​れ​ます。​全て​の​エラ​スティック・​バッファ​の​読み取り​ポインタ​は​チャンネル​ボンディング​の​シーケンス​が​格納​さ​れ​た​場所​の​オフセット​に​合わせ​て​調節​さ​れ​ます。​各​データ​レーン​が​独自​の​エラ​スティック・​バッファ​に対して​独自​の​オフセット​を​持​って​いる​ため、​受信​機​は​各​エラ​スティック・​バッファ​の​異なる​場所​から​読み取り​を​行い、​最後​に​アラインメント​の​取​れ​た​データ​を​読み取る​こと​が​でき​ます。

 

図9. チャンネル​ボンディング​は​各​受信​レーン​の​エラ​スティック・​バッファ​の​読み取り​ポインタ​を​変更​し​て、​受信​機​が​複数​の​データ​レーン​にわたって​同期​した​データ​を​読み取れる​よう​に​する。

 

アイドル​符号

制御​符号​に​は​他​に​も​重要​な​使用​例​が​あり、​その​一つ​が​アイドル​符号​です。​クロック​データ​リカバリ​が​位相​同期​を​維持​する​ため​に、​送信​機​は​常に​ビット​データ​を​送信​し​て​いる​必要​が​あり​ます。​送信​する​データ​が​ない​場合、​アイドル​符号​を​送信​する​必要​が​あり​ます。​これ​も​プロトコル​が​決める​制御​符号​で、​受信​機​は​この​符号​が​真​の​データ​では​ない​こと​を​認識​し​てい​ます。

 

その他​の​上位層

データリンク​層​に​は​他​に​も​上位​層​が​あり、​特定​の​ニーズ​に​合わせ​て​通信​を​カスタマイズ​する​ため​に​使用​さ​れ​ます。​上位​層​の​機能​に対して​特定​の​規格​を​持つ​プロトコル​も​あれ​ば、​設計​者​が​自由​に​決める​こと​が​できる​プロトコル​も​あり​ます。​一般​的​な​機能​として、​エラー​チェック/​修正​や​パケット​ベース​通信​の​ヘッダ​情報、​リンク​の​ステータス​情報​といった​もの​まで​扱える​場合​が​あり​ます。

アプリケーション​特有​の​ニーズ​に​合わせ​て​最も​よく​カスタマイズ​さ​れる​層​が​データリンク​層​と​物理​層​の​上位​層​で​ある​こと​から、​既に​実装​さ​れ​て​いる​標準​的​な​物理​層​および​データリンク​層​の​メリット​を​活用​する​こと​が​でき​ます。  
​一般​的​な​上位​層​機能​の​例​として、​巡回​冗長​検査​(CRC)​と​前方​誤り​訂正​(FEC)​を​使​っ​た​エラー​検出/​修正​が​あり​ます。​データ​転送​の​効率​の​トレードオフ​として、​スキーム​を​エラー​の​検出​や​修正​に​使用​する​こと​が​でき​ます。​CRC​の​場合、​実装​さ​れる​規則​によって、​伝送​データ​に​ビット​エラー​が​ある​か​どうか​を​知る​こと​が​でき​ます​が、​その​エラー​を​修正​する​こと​は​でき​ま​せん。​データ​の​再​リクエスト​に​対応​する​か​どうか​は、​アプリケーション​によって​決まり​ます。​対照​的​に、​FEC​の​場合​は​伝送​データ​に​エラー​修正​情報​が​含​まれ​て​おり、​これ​によって、​受信​機​では​限​ら​れ​た​量​の​ビット​エラー​から​の​回復​が​可能​に​なり​ます。​これ​は、​チャンネル​に​ノイズ​が​多い​場合​や、​通信​レート​が​高​すぎ​て​信号​整合性​による​ビット​エラー​が​多い​場合​に​便利​な​機能​です。​FEC​を​設計​に​含める​か​どうか​は、​データ​レート​の​効率​と​信号​整合性​の​要件​の​厳​し​さ​と​の​トレードオフ​に​なり​ます。  

 

トップ​へ​戻る

まとめ

正常​な​通信​を​確立​する​に​は、​高速​シリアル​リンク​の​複数​の​層​で​多く​の​課題​が​あり​ます。​各​レベル​で​異なる​概念​を​把握​する​こと​で、​各層​の​実装​と​テスト​が​可能​に​なり​ます。​ある​層​が​機能​する​に​は、​その​下位​層​が​正常​に​機能​し​て​いる​必要​が​あり​ます。​物理​層​と​データリンク​層​に​は​定義​さ​れ​た​仕様​が​数多く​あり​ます。​そういった​実装​済み​の​標準​定義​の​一つ​を​用いる​こと​で、​その​下位​レベル​の​詳細​を​独自​に​決める​必要​が​なく​なり​ます。​標準​的​な​物理​層​と​データリンク​層​を​使う​こと​の​もう​一つ​の​メリット​は、​通常、​こうした​下位​レベル​の​全て​の​詳細​を​実装​する​IP​が​使用​できる​こと​です。​その​大変​良い​例​が​Xilinx​社​の​Aurora​プロトコル​です。​軽量​の​データリンク​層​プロトコル​を​実装​する​無償​IP​で、​ポイントツーポイント​シリアル​通信​に​使用​でき​ます。​クロック​補正、​チャンネル​ボンディング、​符号​化/​復号​化​といった​詳細​部分​を​抽象​化​し​て​くれる​ため、​アプリケーション​特有​の​上位​層​に​集中​する​こと​が​でき​ます。  

サイズ​の​小型化、​消費​電力​の​縮小、​性能​の​向上​を​同時に​実現​する​高速​シリアル​リンク​は、​急速​に​普及​し​てい​ます。​高速​シリアル​が​常に​改善​さ​れ​続​け​てい​く​こと​により、​ライン​レート​が​高速​化​し、​ビッグ​データ​が​より​有効​に​活用​できる​社会​に​なる​と​言える​で​しょう。

 

トップ​へ​戻る