AN 881: DDR4 SDRAMおよびHBM2メモリーを備えた PCI Express* Gen3x16 Avalon® Memory Mapped (Avalon-MM) のリファレンス・デザイン

ID 683291
日付 4/19/2021
Public
ドキュメント目次

3.2. 読み出しスループット

PCI Expressの読み出しに使用するのは、分割トランザクション・モデルです。読み出しトランザクションに含まれる手順は次の通りです。

  1. リクエスターは、Memory Read Requestを送信します。
  2. コンプリーターは、ACK DLLPを送信して、Memory Read Requestを確認します。 
  3. コンプリーターは、Completion with Dataを返します。コンプリーターは、そのCompletionを複数のコンプリーション・パケットに分割できます。

読み出しスループットは通常、書き込みスループットよりも低くなります。これは、読み出しではトランザクションが2回必要なためです。これに対して書き込みでは、データ量が同じ場合、1回です。読み出しスループットは、Application LayerがMemory Read Requestを発行してから、要求されたデータが返されるまでの往復遅延にも依存します。スループットを最大化するには、アプリケーションによって十分な未処理の読み出しリクエストを発行し、この遅延をカバーする必要があります。

コンプリーション・データ・パケットの最大スループットを維持するには、リクエスターは次の設定を最適化する必要があります。

  • RXバッファー内のコンプリーションの数
  • Application Layerによる読み出しリクエストの発行および完了データの処理の割合

読み出しリクエストのサイズ

スループットに影響するもう1つの要因は、読み出しリクエストのサイズです。リクエスターが4 KBのデータを必要とする場合、リクエスターは、1 KB読み出しリクエストを4つ、または4 KB読み出しリクエストを1つ発行できます。この4 KBのリクエストのスループットは、4つの1 KB読み出しよりも高くなります。Device Control レジスターのビット [14:12] の Maximum Read Request Size の値は、読み出しリクエスト・サイズを指定します。

未処理の読み出しリクエスト

スループットに影響する可能性のある最後の要因は、未処理の読み出しリクエストの数です。リクエスターがスループットを向上させるために複数の読み出しリクエストを送信する場合、使用可能なヘッダータグの数により、未処理の読み出しリクエストの数が制限されます。より高いパフォーマンスを実現するには、 インテル® Arria® 10および インテル® Cyclone® 10 GX読み出しDMAで、最大16個のヘッダータグを使用します。 インテル® Stratix® 10読み出しDMAでは、最大32個のヘッダータグを使用できます。