Comments
Description
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