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への移行の必要性およびメリット ◆ Transaction Layerの機能 ◆ Data Link Layerの機能 ◆ 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への移行の必要性およびメリット ◆ Transaction Layerの機能 ◆ Data Link Layerの機能 ◆ Lattice FPGAによるPCI Expressソリューション Copyright © Lattice Semiconductor 2007 Slide Ref -12 PCI Express トランザクションレイヤ概要 トランザクションレイヤの主な機能 ・ソフトウエアレイヤからの要求に応じてTLP(Transaction Layer Packet)を生成。 データリンクレイヤに渡す(送信側) ・データリンクレイヤから受け取ったデータを解析し、コマンドタイプに応じてデータを ソフトウエアレイヤに渡す(受信側) ・コンフィグレーションレジスタの管理 ・バーチャル・チャネルの管理 ソフトウエアレイヤ ペイロード ・・・・・ VC0 VC1 ・・・・・ VC7 トランザクションレイヤ コンフィグレーションレジスタ TLP Header内にコマンドタイプやアドレス等が格納される。 TLP データリンクレイヤ Copyright © Lattice Semiconductor 2007 Slide Ref -13 TLP – リクエストとコンプリージョン ・メモリやI/Oのリード/ライト処理ごとに、リクエストと処理の終了を示す コンプリージョンの2種類がある。 ・リード・リクエストに対するコンプリージョンにはリード・データが着いてくる。 ・コンプリージョンを必要とするリクエストと必要としないリクエストがある。 ・コンプリージョンを必要とする処理をNon-Posted、必要としない処理を Postedという。 Copyright © Lattice Semiconductor 2007 Slide Ref -14 TLP の種類 ・メモリ・トランザクション リード・リクエストとコンプリージョン ライト・リクエスト ・I/Oトランザクション リード・リクエストとコンプリージョン ライト・リクエストとコンプリージョン ・コンフィグレーション・トランザクション リード・リクエストとコンプリージョン ライト・リクエストとコンプリージョン ・メッセージ・トランザクション イベントの通知 Copyright © Lattice Semiconductor 2007 Slide Ref -15 TLP ヘッダフォーマット 初めの4byteのみが各TLPで共通。 FmtおよびTypeの値で、どのようなTLPかが決まる。 ヘッダだけのTLPもある。 Copyright © Lattice Semiconductor 2007 Slide Ref -16 リクエストとコンプリージョン リクエストTLPは、ヘッダにどのデバイスからのリスエストかを示す“Requester ID”と、 リクエスト固有の“Tag”を含む(コンプリージョンが必要ないリクエストでの処理は未定義)。 処理の完了通知であるコンプリージョンは、処理を行ったデバイスを示す“Completer ID”と リクエスト元を示す“Requester ID”および完了させたリクエストの“Tag”を含む。 これによりリクエスタは、どのリクエストに対するコンプリージョンなのかを知ることが出来る。 リクエストTLPヘッダ コンプリージョンTLPヘッダ コンプリージョンは“Status”でリクエストの処理結果を通知する。 Copyright © Lattice Semiconductor 2007 Slide Ref -17 TLP のECRC TLPヘッダの“TD”が‘1’の場合のみ、TLPの末尾4byteにCRCが付加される。 ただし、CRCの付加はオプション。 例えば、Root complexとEndpoint間の通信で、間にSwitchがあったとしても、 Switch内でこのCRCが再計算されることはない。 これによりデータの信頼性を高める。 ただし、システムとしてみた場合、このCRC分のスループットが下がる。 Copyright © Lattice Semiconductor 2007 Slide Ref -18 Virtual Channel トランザクション・レイヤは、ソフトウエア・レイヤとのインターフェイスとして Virtual Channel(以下VC)を持つ。 VCはVC0~VC7まで最大8つまで実装できる。デフォルトでVC0は必ず実装/使用される。 各VCごとに独立したバッファを持つ。 VCのバッファには、以下の種類がある。 PH PD NPH NPD CPLH CPLD : Postedリクエストのヘッダ : Postedリクエストのデータ : Non-Postedリクエストのヘッダ : Non-Postedリクエストのデータ : コンプリージョンのヘッダ : コンプリージョンのデータ ※各VCの残りバッファ容量を確認しながら送受信が行われる(フローコントロール)。 リンクの両端で、データの送受信を行うのは同じVC。 VC0 VC1 Copyright © Lattice Semiconductor 2007 Slide Ref -19 リンク VC0 VC1 Virtual ChannelとTraffic Class TLPがどのVirtual Channelのパケットかは、TLP内のTC(Traffic Class)の 値で知ることが出来る。 TCは3bitで表され、TC0~TC7までがある。 TCとVCの対応は、コンフィグレーション・レジスタ(TC/VC Mapレジスタ[7:0])に設定される。 TC/VC Mapレジスタは各VCごとに用意されている。 TC/VC Mapレジスタの各bitはTC[7:0]に 対応しており‘1’が設定されたTCがそのVCに割り当てられる。 例 : VC1のTC/VC Mapレジスタ[7:0] = “0000 1100” : VC1にTC2/TC3を割り当て 一つのVCに複数のTCを割り当てることが出来る。 一つのTCを複数のVCで使用することは出来ない。 Linkの両端で、TC/VCの対応は一致していなければならない。 VC0には必ずTC0が割り当てられる。後は任意。VC0にTC0以外を割り当てることも出来る。 Copyright © Lattice Semiconductor 2007 Slide Ref -20 割り込み PCI Expressでは2種類の割り込みをサポート。 ・MSI(Message Signaled Interrupt) -- 特殊なフォーマットによるメモリ・ライト ・INTx Emulation -- Message TLPによる割り込み MSIはメッセージTLPではなく、特定アドレスへのメモリライトTLP。使用されるアドレスは コンフィグレーションレジスタに設定される。 INITx messageは、PCI/PCI-Xでのサイドバンドによる割り込みのエミュレーション。 PCI/PCI-Xとソフトウエアの互換性がある。 Message TLPヘッダ・フォーマット Assert INTA INTA Copyright © Lattice Semiconductor 2007 Slide Ref -21 割り込みのメッセージ・コード De-assert INTA エラー・ハンドリング PCI ExpressではエラーもMessage TLPで通知される。 エラーはいくつかに分類される。 ・Correctable Error : ハードウエアで対処可能なエラー ・Uncorrectable Error : ハードウエアで対処不可能なエラー --Non Fatal Error : パケットは破棄 / ソフトウエアでエラーリカバリ --Fatal Error : パケットは破棄 / ソフトウエアでリセット Copyright © Lattice Semiconductor 2007 Slide Ref -22 アジェンダ ◆ PCI Expressの概要とPCIとの違い ◆ PCIからPCI Expressへの移行の必要性およびメリット ◆ Transaction Layerの機能 ◆ Data Link Layerの機能 ◆ Lattice FPGAによるPCI Expressソリューション Copyright © Lattice Semiconductor 2007 Slide Ref -23 PCI Express データリンクレイヤ概要 データリンクレイヤの主な機能 ・トランザクションレイヤから受け取ったパケット(TLP)にシーケンスナンバーと LCRCを付けてPHYレイヤに渡す(送信側)。 ・PHYレイヤから受け取ったパケットのシーケンスナンバーとLCRCの確認(受信側)。 ・DLLP(Data Link Layer Packet)を生成し、以下の処理を行う ・フローコントロール。 ・TLPの送達確認。 ・パワーマネージメント。 ・リトライ(再送信)に備えてデータをバッファリング。 PHYレイヤへ データリンクレイヤでのパケット生成 Copyright © Lattice Semiconductor 2007 Slide Ref -24 送信側のTLP処理 Transactionレイヤから受け取ったTLPの先頭に12bitのシーケンス番号、 末尾に32bitのLCRCを付加して、PHYレイヤに渡す。 シーケンス番号はTLP送信ごとにインクリメントされ、送達確認およびリトライのために 必要。 Copyright © Lattice Semiconductor 2007 Slide Ref -25 受信側のTLP処理 PHYレイヤから受け取ったパケットのシーケンス番号とCRCを計算。 シーケンス番号が正しく、受信側で計算したCRCと受信したCRCが一致すれば “ACK” DLPを生成して該当するシーケンス番号のTLPまでを正常に受信した ことを、送信側に通知。 想定外のシーケンス番号を受信、もしくは受信したLCRCが計算したCRCと一致 しなかった場合は、“NAK”DLPを生成して、送信側に該当するTLPの再送信を 要求。 Copyright © Lattice Semiconductor 2007 Slide Ref -26 DLLPフォーマットおよび種類 DLLP(Data Link Layer Packet)は、すべて6byteで構成される。 DLLPタイプ Copyright © Lattice Semiconductor 2007 Slide Ref -27 DLLPを使用して実現する機能(1) 送達確認 TLPの受信側が、正常に受信できたTLPおよび正常に受信できなかったTLPの シーケンス番号を専用のDLPで送信側に通知する。 正常に受信できなかったTLPは再送される。 一定時間内に正常に受信できたことが通知されなかったTLPは再送される。 Copyright © Lattice Semiconductor 2007 Slide Ref -28 送達確認のためのDLLP(1) -- Ack Ack “Ack”はTLPを正常に受信できたことを示すDLLP. “Ack”DLPはシーケンス番号を含み、これはシーケンス番号のTLPまでが正常に 受信されたことを表す。 TLPごとにAckを送信する必要は無い。受信したAckに含まれるシーケンス番号のまでの すべてのTLPが正常に受信されたことを表す。ただし、ためすぎると送信側がタイムアウトを 起こし、自動的に再送信を始める。 リトライ・バッファ 7 6 5 4 3 Ack 5 Copyright © Lattice Semiconductor 2007 Slide Ref -29 Ack/Nak Generatot 3 4 5 OK OK OK 送達確認のためのDLLP(2) -- Nak Nak “Nak”は正常に受信できなかったTLPがあることを示すDLLP. “Nak”DLPはシーケンス番号を含み、これはシーケンス番号のTLPまでが正常に 受信され、次のTLPが正常に受信できなかったことを表す。 Nakを受信したTLPの送信側デバイスは、Nakのシーケンス番号以降のTLPを 再送信。 リトライ・バッファ 7 6 5 4 3 Nak 5 TLP6/7が再送信される Copyright © Lattice Semiconductor 2007 Slide Ref -30 Ack/Nak Generatot 3 4 5 6 OK OK OK NG DLLPを使用して実現する機能(2) フロー・コントロール PCI Expressでは、事前に受信側バッファの空き容量を確認し、 十分な空き容量が確保できている場合のみ、パケットを送信する。 フローコントロールはV.C.ごとに行われる。 フローコントロールは、ヘッダ/データ別々に行われる。 フローコントロールは、TLPタイプ(Posted, Non-posted, Completion)ごとに行われる。 空き容量の確認は、専用のDLLPで行われる。 Copyright © Lattice Semiconductor 2007 Slide Ref -31 フロー・コントロールの必要性 一般的には、“とりあえず送っておいて受信側で問題が発生したら再送要求する“ 方法がとられている。事前確認はオーバーヘッドが生じる。 ではなぜPCI Expressでは事前確認をおこなうのか? PCI Expressでは複数V.C.の実装を前提にしている。あるV.C.から問題が発生するかも しれないパケットを送信するより、確実に送受信できる他のV.C.からのパケットを送信した 方が、システムとしてみたオーバーヘッドは小さくなる。 Copyright © Lattice Semiconductor 2007 Slide Ref -32 フロー・コントロールのためのDLLP フローコントロール用DLLPフォーマット Hdr FC/Data FCの値から、バッファがどれくらい余っているかを知ることが出来る。 下位3bitはV.C.を表す Copyright © Lattice Semiconductor 2007 Slide Ref -33 フロー・コントロール用DLLPの使用方法 クレジット値情報初期化 InitFC1-*/InitFC2-*を使用。 リセット解除後に必ずV.C.0の初期化を行う。 V.C.[7:1]はソフトウエアからイネーブル設定された場合に初期化。 初期化手順 ・まずInitFC1を双方で送受信。 ・受信したInitFC1内のクレジット値を内部のクレジットカウンタにセットしたら InitFC2を送信。 ・双方がInitFC2を送受信したら初期化完了。 クレジット値のアップデート UpdateFC-*を使用。 クレジット値が更新(TLPを受信)され次第、可能な限り早く送信する。 ※ InitFC*およびUpdate*は-P/-NP/-Cplが必ず1セット。 Copyright © Lattice Semiconductor 2007 Slide Ref -34 アジェンダ ◆ PCI Expressの概要とPCIとの違い ◆ PCIからPCI Expressへの移行の必要性およびメリット ◆ Transaction Layerの機能 ◆ Data Link Layerの機能 ◆ Lattice FPGAによるPCI Expressソリューション Copyright © Lattice Semiconductor 2007 Slide Ref -35 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 -36 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 -37 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 -38 内蔵PCSでのPCI Express PHYレイヤサポート ハードウエアでサポートされる機能 ・シリアライザ / デシリアライザ ・極性選択 ・8B10Bエンコード/デコード ・クロックトレランス(SKIPオーダーセットの処理) Copyright © Lattice Semiconductor 2007 Slide Ref -39 Thank You! より詳細な情報などは下記を参照下さい – 弊社ホームページ… • http://www.latticesemi.co.jp Copyright © Lattice Semiconductor 2007 Slide Ref -40 Copyright © Lattice Semiconductor 2007 Slide Ref -41 Copyright © Lattice Semiconductor 2007 Slide Ref -42 Copyright © Lattice Semiconductor 2007 Slide Ref -43
© Copyright 2026 Paperzz