VC709のPCI Express v3.0を試す(ただしGen2 x8)

XilinxのVC709に搭載されているFPGA XC7VX690TはGen3 Integrated Block for PCIeを内蔵しています.KC705やVC707搭載のコアと違ってGen3 x8まで対応しています.

PCIe Gen2までのコアと違って,FPGA→PCのデータ転送(rc/rq)とPC→FPGAのデータ転送(cc/cq)の2種類のAXI4ストリームでユーザロジックと接続するようになっているのが大きな特徴でしょうか.

そのせいか,2014年8月時点ではAXI-MMに変換して,DMAコントローラや他のコンポーネントと簡単に接続するためのIPコアがXilinxからは,まだ提供されていません.サードパーティ製のIPコアを使うか自分で実装する必要があります.

というわけで,実装して速度を評価してみました…残念ながら評価につかったホストPCのCPUがCore i3だったためGen2 x8での評価なのですけれど.

システムアーキテクチャ

評価のために実装したシステムのアーキテクチャは次の図のようなものです.

dae8bc9cdc7ab8ca2ed2d307f92aec02 (1)

PC→FPGAの経路はxapp1201を参考にしました.どちらかといえば,こちら側のハンドリングの方が面倒なので,大変ありがたいアプリケーションノートです.

結果

リード

ホストPCのデータをFPGAが読み込みボード上のDDR3に読み出す経路の結果は次の通りです.1.85GBpsくらいが上限のようです.

1f093ea4a094fad561e5244602af6231

128kBまでを拡大したものは次の通り.

2d252817474ec1bf59f10a3de6f2c70b

ライト

逆にFPGAがボード上のDDR3上のデータをホストPCのメモリに書き出す経路の結果は次の通りです.こちらは,1.50GBpsくらいが上限.もうちょっとがんばれそうな気もします.

90e7cf11123f72e5789f85b667d41541

128kBまでを拡大したものは次の通り.

a9f0a518073e6e5d834dbe41fbba7653

まとめのような

KC705でPCIeの通信性能を測定してみたで紹介した性能に比べて,「ホスト→FPGA」と「FPGA→ホスト」のスループットが,それぞれ2.1倍と1.4倍とい結果が得られました.アーキテクチャが違うのでGen2 x4→Gen2 x8の違いだけとは言えませんが,まあまあ高速になったと言えそうです.

まだだ、まだ終わらんよ

というわけで,FPGA→ホストは性能向上の伸びしろが大きいようなので,もう少しがんばらねば,ですかね.あ,もちろん,近いうちに,Core i5以上のマシンを用意してGen3 x8での性能評価をしてみよう.

宣伝

VC709のようなVirtex-7 FPGA Gen3 Integrated Block for PCIe 3.0用のIPコアをお探しの方は,是非,弊社までご連絡いただければと思います.

シェアする

  • このエントリーをはてなブックマークに追加

フォローする