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