インテル® アクセラレーション・スタック (インテル® Xeon® CPU&FPGA対応) コア・キャッシュ・インターフェイス (CCI-P) リファレンス・マニュアル

ID 683193
日付 11/04/2019
Public
ドキュメント目次

1.3.9. マルチキャッシュ・ライン・メモリー・リクエスト

最高のリンク効率を実現するには、メモリーリクエストを大きな転送サイズにパッキングします。これにはマルチCLリクエストを使用します。以下に、マルチCLメモリーリクエストの特性を示します。

  • 4 CLのデータペイロードを使用する場合に、最高のメモリー帯域幅が実現されます。
  • メモリー書き込みリクエストは、かならず最下位アドレスから開始する必要があります。c1_ReqMemHdrのSOP=1は、最初のCLを示します。マルチCLリクエストの後続のヘッダーはすべて、Address[1:0] の増分値を駆動する必要があり、Address[41:2] はドントケアとして扱われます。
  • N CLメモリー書き込みリクエストは、チャネル1でNサイクルかかります。マルチCLリクエストの途中でアイドルサイクルを持つことは正当ですが、1つのリクエストを別のリクエストとインターリーブすることはできません。マルチCL書き込みリクエストのデータペイロード全体を完了せずに新しいリクエストを開始することは不正です。
  • FIUは、マルチCLのVAリクエストを単一のVCで完了することを保証します。
  • メモリー・リクエスト・アドレスは自然にアライメントされている必要があります。2CLリクエストは2-CL境界で開始し、そのCLアドレスは2で割り切れなければなりません。すなわち、address[0] = 1'b0です。4CLリクエストは4-CL境界でアライメントし、そのCLアドレスは4で割り切れなければなりません。すなわち、address[1:0] = 2'b00です。
  • マルチCLバーストは、他のリクエストを発行する前にすべてのワードを送信し、完了している必要があります。これは、単一のマルチCLバースト内では次の特別なメモリー書き込みリクエストをインターリーブできないことを意味します。
    • 書き込みフェンス
    • 割り込み
    • バイト・イネーブル書き込み

次の図は、マルチCLメモリー書き込みリクエストの例です。

図 12. マルチCLメモリーリクエスト

次の図は、メモリー書き込み応答サイクルの例です。アンパッキングされた応答の場合、各CLは順不同で返される場合があります。

図 13. マルチCLメモリー書き込み応答

以下は、メモリー読み出し応答サイクルの例です。読み出し応答は、それ自体の中で並べ替えることができます。すなわち、マルチCL読み出しの各CLの順序は保証されていません。マルチCL応答内のCLはすべて、同じmdataと同じvc_usedを持ちます。マルチCL読み出しのそれぞれのCLは、cl_numフィールドを使用して識別されます。

図 14. マルチCLメモリー読み出し応答