Copyright © Lattice Semiconductor 2007Slide Ref -1
PCI Expressの概要
Copyright © Lattice Semiconductor 2007Slide Ref -2
PCIとPCI Expressの比較 – バス・アーキテクチャ
FSBChipsetChipsetCPUCPU
VideoAGP
SDRSDRAM
HardDrive
IDE
PCI
FSBChipsetChipsetCPUCPU
Video
x16 PCI Express
DDR1/2SDRAM
HardDrive
SATA
x1, x4, x8PCI Express
PCI Based PCI Express Based
CardSlots
CardSlots
・1つのバスを複数のデバイスで共有
・パラレルデータを転送する完全同期バス・一度に2つのデバイス間でのみ通信(一方向のみ)
・デバイス間の接続はPeer to Peer・シリアルデータにクロックを埋め込み送受信・双方向通信(全二重)
Copyright © Lattice Semiconductor 2007Slide Ref -3
PCIとPCI Expressの比較 – 内部構造
PCI Expressでは階層構造を採用。PCIよりネットワーク機器に
近いアーキテクチャ。
階層構造のメリットは、レイヤ単位でのアップグレードが容易なこと。仕様がバージョンアップしても、変更は各レイヤ内に限られる。
Copyright © Lattice Semiconductor 2007Slide Ref -4
PCIとPCI Expressの比較 – 送受信プロトコル
・PCIではペイロードを直接転送。コマンドタイプはC/BE信号で指示。・PCI Expressでは、データをパケット化して転送。コマンドタイプは
パケット内に埋め込み。
PCI
PCI Express
Copyright © Lattice Semiconductor 2007Slide Ref -5
◆ PCI Expressの概要とPCIとの違い
◆ PCIからPCI Expressへの移行の必要性およびメリット
◆ 各レイヤの概要
◆ 通信品質を高めるためのPHYレイヤの機能
◆ Lattice FPGAによるPCI Expressソリューション
Copyright © Lattice Semiconductor 2007Slide Ref -6
現行のPCI規格が抱える問題点
・CPUおよびシステムが要求するバンド幅の高速化に対応できない これまではバス幅やクロック周波数の高速化で対応。 しかし、この方法ではこれ以上はデバイスおよびボード設計が困難になる。
Copyright © Lattice Semiconductor 2007Slide Ref -7
PCI/PCI-Xのバンド幅確保の方法
PCIおよびPCI-X規格ではバス幅を広げクロック周波数を
高めることでバンド幅を上げてきた。
PCI-X266/533ではデータフェイズをDDR/QDRにしてバンド幅を確保。
PCI-X533 Burst Write Transaction
Copyright © Lattice Semiconductor 2007Slide Ref -8
PCI/PCI-Xのバンド幅を大きく出来ない理由
これまでの方法ではこれ以上のバンド幅を大きく出来ない。
理由1 クロックを高速にできない。これ以上周波数が高くなると、十分な Setup/Hold-timeを確保することが難しくなる。
理由2 バス幅を広げられない。これ以上バス幅を広げると、ボード上の 配線が困難になる。また各データ信号間のスキューが問題になり 低価格で高い周波数を実現することが難しい。
Copyright © Lattice Semiconductor 2007Slide Ref -9
PCI Expressでは差動高速シリアルI/Oを使用。
・小振幅のためデータレートの高速化が容易。チャネル当たり2.5Gbps(Gen1)。 全二重(full Duplex)なので 大バンド幅はこの倍。これはPCI(64bit 66MHz)相当。 大32チャネルまでをまとめて使用できる。
・ CDR(Clock Data Recovery)を用い、クロックを伝送しないためSetup/Hold-timeの制約
が無い。
・ チャネル間のスキューは受信側で20nsまで許容される。スキューはロジックで吸収。
・同程度のバンド幅を得るための信号線が極端に少なくなるため、配線が容易。 PCI(64bit 66MHz) : 64本(データ線のみ) PCI Express x1 : 4本
このため、十分なバンド幅を確保でき、かつボード上の配線も容易になる。
PCI Expressでの解決策
Copyright © Lattice Semiconductor 2007Slide Ref -10
・デバイスの耐圧低下
プロセスの微細化が進むと3.3V動作のための耐圧確保が難しくなる。
もう一つの問題点
例 : プロセッサの推奨動作電圧
Copyright © Lattice Semiconductor 2007Slide Ref -11
PCIからPCI Expressへの移行の障害
・回路の複雑化およびゲート規模/設計工数の増大。
LatticeのFPGAでの実現例
レジスタ数 LUT数
PCI Target(64bit 66MHz) 569 1219 PCI Express x1 3727 5631
・PHYレイヤの設計/製造
SERDESは機能は単純だが、高速動作の必要があるため安定動作させる
ための設計は容易ではない。
Copyright © Lattice Semiconductor 2007Slide Ref -12
アジェンダ
◆ PCI Expressの概要とPCIとの違い
◆ PCIからPCI Expressへの移行の必要性およびメリット
◆ 各レイヤの概要
◆ 通信品質を高めるためのPHYレイヤの機能
◆ Lattice FPGAによるPCI Expressソリューション
Copyright © Lattice Semiconductor 2007Slide Ref -13
PCI Expressアークテクチャ概要
階層構造を採用。PCIよりネットワーク機器に近いアーキテクチャ。
階層構造のメリットは、レイヤ単位でのアップグレードが容易なこと。仕様がバージョンアップしても、変更は各レイヤ内に限られる。
Copyright © Lattice Semiconductor 2007Slide Ref -14
PCI Express ソフトウエアレイヤ概要
既存のソフトウエアレイヤと同じアーキテクチャを採用。メモリ空間およびI/Oアドレス空間も既存のPCIのものに、
PCI Express専用の空間を追加。
このため、既存のソフトウエアがそのまま使用できる。(PCI Expressの新機能を使用しない場合)
Copyright © Lattice Semiconductor 2007Slide Ref -15
PCI Express トランザクションレイヤ概要
トランザクションレイヤの主な機能 ・ソフトウエアレイヤからの要求に応じてTLP(Transaction Leyer Packet)を生成。
データリンクレイヤに渡す(送信側)
・データリンクレイヤから受け取ったデータを解析し、コマンドタイプに応じてデータを
ソフトウエアレイヤに渡す(受信側)
・コンフィグレーションレジスタの管理
・バーチャル・チャネルの管理
ソフトウエアレイヤ
トランザクションレイヤ
コンフィグレーションレジスタ
VC0 VC1 VC7・・・・・・・・・・
データリンクレイヤ
ペイロード
TLPTLP Headder内にコマンドタイプやアドレス等が格納される。
Copyright © Lattice Semiconductor 2007Slide Ref -16
PCI Express データリンクレイヤ概要
データリンクレイヤの主な機能 ・トランザクションレイヤから受け取ったパケットにシーケンスナンバーとLCRCを付けて PHYレイヤに渡す。
・PHYレイヤから受け取ったパケットのシーケンスナンバーとLCRCの確認。
・フローコントロール。円滑に送受信するために、受信側のバッファの空き状況を確認。
・パケットの送受信確認。ACK/NAKおよびリンク・マネージメント用パケットの生成。
PHYレイヤへ
データリンクレイヤでのパケット生成
ACK : シーケンスナンバーと共に送信し、 そのパケットまでを正常に受信 できたことを示す。
NAK : シーケンスナンバーと共に送信し、 そのパケットが正常に受信できな かったことを示す。
Copyright © Lattice Semiconductor 2007Slide Ref -17
PCI Express PHYレイヤ概要
PHYレイヤの主な機能・SERDESによる高速データ伝送 -- 複数のレーン(チャネル)を 大32本まとめて1つのリンクを構成。 -- リンクに含まれるレーン数によりx1/x2/…/x32リンクと表現する -- レーン数を増やすことで必要なバンド幅を容易に確保できる。
・LogicalサブブロックとElectoricalサブブロックの2つから構成される。
Copyright © Lattice Semiconductor 2007Slide Ref -18
PHYレイヤ 複数デバイスによるソリューション
外付けSERDESを使用する場合のため、
PHYブロックを分割し複数デバイスで
PHYレイヤを実現するための仕様“PIPE”が
定義されている。 PIPE Interface
MAC
Physical Coding
Sublayer(PCS)
Physical Media
Attachment Layer (PMA)
Tx Rx
Channel
Logical
サブブロック
Electorical
サブブロック
PIPEPHY Interface For The PCI Express Architecture
Copyright © Lattice Semiconductor 2007Slide Ref -19
カードのレーン数とスロットのサポートするレーン数が一致する必要はない。カードより多いレーン数をサポートするスロットにもインストール可能。
スロットに何レーンのカードが刺さっているかは、起動時にデバイス間で自動的に認識。
PCI Express カードスロット
Copyright © Lattice Semiconductor 2007Slide Ref -20
アジェンダ
◆ PCI Expressの概要とPCIとの違い
◆ PCIからPCI Expressへの移行の必要性およびメリット
◆ 各レイヤの概要
◆ 通信品質を高めるためのPHYレイヤの機能
◆ Lattice FPGAによるPCI Expressソリューション
Copyright © Lattice Semiconductor 2007Slide Ref -21
PHYレイヤの機能
PHYレイヤは大きく2つに分類される
Logical サブブロックの要求仕様・データのストライピング★・スクランブル/デスクランブル★・8B10Bエンコーディング/デコーディング★
・クロックトレランス★・リンク・イニシャライゼーション★
Electrical サブブロックの要求仕様・データとクロックリカバリ★・リファレンスクロック誤差(±300ppm)・周波数拡散クロックサポート・ACカップリング★
・レシーバ検出★・エレクトリカル・アイドル検出/生成・ESD & ショート回路の保護
・ビーコンの送信と検出・伝送損失・デ・エンファシス★・アイダイアグラム(送信側)
Copyright © Lattice Semiconductor 2007Slide Ref -22
ストライピング
データリンクレイヤから受け取ったパケットを各レーンに分配。
Byte7Byte6Byte5Byte4Byte3Byte2Byte1Byte0
Byte8Byte4Byte0
Byte9Byte5Byte1
Byte10Byte6Byte2
Byte11Byte7Byte3
x4 ストライピング
Lane0Scrambler
Lane1Scrambler
Lane2Scrambler
Lane3Scrambler
Copyright © Lattice Semiconductor 2007Slide Ref -23
スクランブル/デスクランブル
PCI Express Base Spacificationより抜粋
機能 データの乱雑化。LFSR(Linear Feedback Shift Register)による 擬似ランダムパターンと送信データのXOR論理を出力する。
なお、スクランブル対象は通常データのみで、Kキャラクタや特定の オーダーセット等(SKIP/TS1/TS2等)は対象外。
Copyright © Lattice Semiconductor 2007Slide Ref -24
スクランブル/デスクランブルの目的
なぜ必要か? EMI(Erectro Magnetic Interference : 電磁妨害)対策。
同じデータの繰り返しが続くと、特定の周波数ノイズが大きくなる。
例: パケットのペイロードが0もしくは1の連続だった場合、スクランブル しなくても8B10Bされた0/1の混ざったパターンが出力される。しかし、 同じデータパターンの繰り返しなり結果として特定の周波数ノイズが 増大する。
Copyright © Lattice Semiconductor 2007Slide Ref -25
8B10Bエンコーディング/デコーディング
機能 送信データで同じレベルが長く続かないように、8bitデータを 10bitデータに変換する。 8B10Bでエンコードされたデータは 6bit以上同じレベルが連続しない。エンコードされたデータには RD(Running Disparity)+/-がある。送信データに依存して0/1の 数に大きな差が出ないようにこれを自動的に切り替え、0/1の数の バランス(DCバランス)を調整する。
8B10B変換例
Copyright © Lattice Semiconductor 2007Slide Ref -26
8B10Bの必要性
なぜ必要か? 理由1 SERDESの受信回路は、受信データのトグルからクロックを再生させる。 従って、長い期間0または1が連続すると正確にクロックを再生できない。
理由2 データを適度にトグルさせることにより、送信データに依存するJitter (Data Depentent Jitter)を小さくするため。
理由3 シリアル化したデータの何処から何処までが1ワード(10bit)なのかを 識別するため。8B10Bされたデータの中には特殊なコード(Kキャラクタ)が 含まれており、受信回路はそれを目印にデータの境目を決める。
Copyright © Lattice Semiconductor 2007Slide Ref -27
クロックトレランス
機能 送受信の両デバイス間でのシステムクロック周波数のズレを吸収するための 機能。送信側デバイスは1180~1538シンボル(byte)に1度、必ず送信データ 内に“SKIP”オーダーセットを挿入する。受信側デバイスは、受信したデータレート と自身の処理できるデータレートを考慮し、この“SKIP”オーダーセットの伸張を 行うことで、両デバイス間のデータレートのズレを±300ppmまで吸収する。
COMSKPSKPSKP
SKIPオーダーセット
K28.5
K28.0
K28.0
K28.0
送信側は必ず4byte
Copyright © Lattice Semiconductor 2007Slide Ref -28
Packet0COMPacket1 SKPSKPSKP
SERDES受信データ
クロックトレランス回路からの出力データ(受信側システムクロックが早い場合)
Packet0COMPacket1 SKPSKPSKP
クロックトレランスの実現
SKP
クロックトレランス回路からの出力データ(受信側システムクロックが早い場合)
Packet0COMPacket1 SKPSKP
SKIPオーダーセット : 送信側は必ず4byte
SERDESRx
クロックトレランス(FIFO)
etc
受信側システムクロック
受信側物理層
受信データから再生したクロック(≒送信側のシステムクロック)
Copyright © Lattice Semiconductor 2007Slide Ref -29
リンク・イニシャライゼーション
機能 リセット解除後にTx側はトレーニングシーケンス・オーダーセット(TS1/TS2)を 送信する。受信側はこのトレーニングパターンでCDRを行う。
また、受信側はこのオーダーセットから情報を抽出し、コンフィグレーションを行う。
リンクイニシャライゼーションでは以下の検出および対応処理がおこなわれる。
・差動極性 ・リンクのデータレート(Gen1 : 2.5Gbps, Gen2 : 5.0Gbps) ・リンクのレーン数 ・レーン番号 ・レーン間デスキュー
Copyright © Lattice Semiconductor 2007Slide Ref -30
トレーニングシーケンス・オーダーセット
PCI Express 1.1のTS仕様
Copyright © Lattice Semiconductor 2007Slide Ref -31
リンク・イニシャライゼーション中の処理(1)
データレート・ネゴシエーション 全てのデバイス(Gen1/2)で、初めは2.5Gbpsのトレーニングシーケンスを送信。 Gen2はネゴシエーションが終わってから5.0Gbpsに変更。
差動極性の選択 差動バッファの極性が反転していても、それを自動的に検出し受信側で受信データを 反転させる。
TS1オーダーセットのシンボル6~15の値は常に固定。反転していた場合、8B10B デコードすると全く別の値になる(D10.2ではなくD21.5が検出される)。
トランスミッタ レシーバ
Normal
トランスミッタ レシーバ
Reverse
+- -
+ ++
--
Copyright © Lattice Semiconductor 2007Slide Ref -32
リンク・イニシャライゼーション中の処理(2)
リンクおよびレーンス数検出 PCI Expressではカードスロットのレーン数とカードエッジのレーン数が一致
しなくてもインストールできる。
このため、接続されているデバイス同士で接続情報を確認する必要がある。
レーン番号検出 デバイスによっては接続するとレーンの並び 順がトランスミッタ / レシーバで反転している
こともある。オーダーセットからレーン番号を 抽出し、回路的にレーン番号を切り替える。
トランスミッタ レシーバLane0
Lane1
Lane2
Lane3
Lane3
Lane2
Lane1
Lane0
x4リンクのLane Reverse
Copyright © Lattice Semiconductor 2007Slide Ref -33
リンク・イニシャライゼーション中の処理(3)
レーン間デ・スキュー レシーバ側ではレーン間でデータの受信にスキューが生じる。イニシャライゼーション中に このスキューを吸収する設定を行う。COM(K28.5)キャラクタを基準にそろえる。
Lane0 RxTS1/TS2
Lane1 Rx
Lane2 Rx
Lane3 Rx
Delay
Delay
Delay
Delay
CO
M
TS1/TS2
CO
M
TS1/TS2
CO
M
TS1/TS2
CO
M
TS1/TS2C
OM
CO
MC
OM
CO
M
TS1/TS2
TS1/TS2
TS1/TS2
Copyright © Lattice Semiconductor 2007Slide Ref -34
なぜ必要か? PCI Expressではボード上の配線や接続性の自由度を高めるための
仕様となっている。
このため、接続されているデバイス同士で接続情報を確認する 必要がある。
リンク・イニシャライゼーションの必要性
Copyright © Lattice Semiconductor 2007Slide Ref -35
クロック・データリカバリ
PLLリファレンスクロック(100MHz: カードエッジから供給)
PhaseGen
2.5GHz
Phase0 clock
Phase1 clock
・・・Phase7 clock
1/8サイクル
位相選択回路シリアルデータ(2.5Gbps)
同期化されたシリアルデータ
選択された2.5GHzクロック
回路例:カードエッジから供給される100MHzをPLLで25逓倍し2.5GHzを生成。このクロックからさらに位相のことなる8つのクロックを生成し、もっとも
安定してデータをラッチできるクロックを選択。
Copyright © Lattice Semiconductor 2007Slide Ref -36
ACカップリング
トランスミッタ側に75~200nFのコンデンサを接続する。 これにより、トランスミッタ/レシーバ双方のDCレベルの差を気にせず接続できる。
Copyright © Lattice Semiconductor 2007Slide Ref -37
レシーバ検出
トランスミッタ側にはトレーニングシーケンスを開始する前に、レシーバが接続されているかどうか検出する。 起動時のトランスミッタ・コモン電圧の立ち上がり時間で検出
レシーバが接続されていなければ、ACカップリング用のコンデンサCtxを
充電する必要がないので、トランスミッタのコモン電圧が早く立ち上がる
レシーバが接続されていれば、ACカップリング用のコンデンサCtxを
充電する必要があるので、コモン電圧の立ち上がりが遅くなる
Copyright © Lattice Semiconductor 2007Slide Ref -38
デ・エンファシス
機能 2bit以上同じ極性のデータが連続する場合、2bit目以降のデータの振幅を 抑える(-3.5dB)ことにより、受信側でのジッタを小さくする。
Copyright © Lattice Semiconductor 2007Slide Ref -39
デ・エンファシスの必要性
送信波形
受信波形
送信波形
受信波形
1/1 1/0 0/1 0/0
jitterデ・エンファシス有り
デ・エンファシス無し
なぜ必要か? 伝送距離が長くなると1UI分のデータ送信では、受信側で十分にアイが
開かなくなる。そしてこれがジッタの一因となる。
Copyright © Lattice Semiconductor 2007Slide Ref -40
アジェンダ
◆ PCI Expressの概要とPCIとの違い
◆ PCIからPCI Expressへの移行の必要性およびメリット
◆ 各レイヤの概要
◆ 通信品質を高めるためのPHYレイヤの機能
◆ Lattice FPGAによるPCI Expressソリューション
Copyright © Lattice Semiconductor 2007Slide Ref -41
LatticeECP2Mのご紹介
• 低コスト、LUT ベースの FPGA– 19K~ 95K LUT4– 144 ~ 601 ユーザーI/O
• 自由度の高い sysIOTMバッファ
– LVCMOS 33/25/18/15/12, PCI– SSTL3/2/18、HSTL15、HSTL18– Bus-LVDS, MLVDS, LVPECL & LVDS
• sysDSPTM高性能 演算回路
– 24 ~ 168 個の 18x18 乗算器
• sysMEMTMブロックメモリ容量
– 1.2Mb ~ 5.3Mb• sysCLOCKTM PLL と DLL• コンフィグレーション対応を充実
– SPIフラッシュメモリのサポート
– デュアルブート機能をサポート
• 組み込み SERDES– 大 16 channels– 270Mbps~3.4Gbpsまでをサポート
Copyright © Lattice Semiconductor 2007Slide Ref -42
ECP2M
1156-ball fpBGA (35x35mm) 16/601
35 50 702019244166
1217
8/2SERDES/IO
4/1444/301
67483432711142101
8/2
4/3014/411
96881012254147
8/2
4/2878/387
1452464534
8/2
8/457 16/449
機能100
LUT 数 (K)
パッケージ
9518x18 乗算器数
分散メモリ (Kbits) 202168
EBR メモリ ブロック数 288EBR メモリ総サイズ (Kbits) 5308
PLL数 / DLL数 8/2
256-ball fpBGA (17x17mm)
672-ball fpBGA (27x27mm)484-ball fpBGA (23x23mm)
900-ball fpBGA (31x31mm) 16/457
LatticeECP2Mファミリ ラインアップ
Copyright © Lattice Semiconductor 2007Slide Ref -43
LatticeECP2M SERDESの特徴
Jitter特性 (PRBS 27-1で測定)・Tx Jitter : 0.24UI (Typical @ 2.5 Gbps)・Rx Jitter耐性 : 0.8UI (Typical @ 2.5Gbps)
低消費電力・ チャネル当り90mW (Typical @ 2.5Gbps)
送信プリエンファシス機能(デエンファシスと等価)・4段階設定(0%, 16%, 32%, 48%)
受信イコライザ機能・3段階設定(short, medium, long)
レシーバ検出機能内蔵
Copyright © Lattice Semiconductor 2007Slide Ref -44
内蔵PCSでのPCI Express PHYレイヤサポート
ハードウエアでサポートされる機能・シリアライザ / デシリアライザ
・極性選択・8B10Bエンコード/デコード・クロックトレランス(SKIPオーダーセットの処理)
Copyright © Lattice Semiconductor 2007Slide Ref -45
– 弊社ホームページ…• http://www.latticesemi.co.jp
Thank You!より詳細な情報などは下記を参照下さい