...

PCI Express - Teledyne LeCroy

by user

on
Category: Documents
17

views

Report

Comments

Transcript

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