製品情報>Kintex-7 PCIe Express光ボード「Cosmo-K」>性能と評価>PCI Express DMA

PCI Express DMA

PCI Express DMAの性能について

Cosmo-KのPCI Expressは、Gen2 x4のため、最大で2GBytes/secの帯域ですが、
パケットのオーバーヘッドなどのため、実効速度は1.6~1.7GBytes程度となります。

 

DMAの速度は、OSの32bit/64bit構成とBARの構成などによって変わります。

  FPGA PCIe構成
OS 32bit BAR 64bit BAR
Windows10 64bit ※1 1.0GB/sec 1.6GB/sec
Windows8 64bit ※2 未調査 1.7GB/sec
Windows7 32bit 未調査 未調査
Linux (Scientific Linux CERN6) 未調査 未調査

 ※1・・・Core-i7マシン

 ※2・・・Core-i5マシン

以下の表に示す速度は、ユーザアプリケーション上で測ったものです。DLLの呼び出しやDeviceIoControlによるドライバ呼び出しなど、すべての時間を含んでいます。

FPGAのBAR構成を64bitにし、OSも64bitにすると、OSのメモリ管理方法が改善されるため理想的な速度を出すことができるようになります。

FPGA内部の波形

DMA Write実行時

DMA(WR)実行時の波形を見てみます。

Dmawr_64

拡大してみてみると、256ns転送して32ns休むというサイクルになっています。

Dmawr_64_mag

したがって、256/(256+32) * 2GB = 1.7GBとなります。

実際に、XILINXのXDMAコアが出すAXIの最高速度はこの程度です。

DMA Read実行時

次に、DMA RDの波形を見てみます。2.4usくらいのサイクルの間に2.1usくらいの転送が行われているので、やはり1.7GBくらいとなります。

PCI Expressの先にあるAXIの速度が1.7GBで、Windowsのアプリケーションで測った速度が1.6GBなので、ほぼフルの速度が出ていると考えてよいともいます。

 

DMAを使用しない場合の速度

DMAを使用しない場合、Combined Writeの場合で100MByte/s、PIO Readで7MBytes/sの速度しか出ません。

Combined Writeが遅いのは、XILINXのIPコアがPCI ExpressのパケットをAXIに変換する際にFIFOに一定量溜めてから出すなどの処理をしているためではないかと推測しています。

 

 


© 2017 TokushuDenshiKairo Inc. All rights reserved