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

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

1.3.5. I/OメモリーへのMMIOアクセス

CCI-Pは、AFUレジスターファイルにアクセスするためのMMIO読み出しおよび書き込みリクエストを定義します。MMIOリクエストは、単一のPCIeチャネルを介してCPUからAFUへルーティングされます。

MMIO読み出し

AFUは、pck_cp2af_sRx.c0を介してMMIO読み出しリクエストを受信します。CCI-Pは、mmioRdValidをアサートし、MMIO読み出しリクエストをhdrで駆動します。c0_ReqMmioHdr構造は、フラット・ビットベクトルからMMIOリクエストフィールド (addresslengthtid) までの便利なマッピングを提供します。

AFUは、MMIO読み出し応答をpck_af2cp_sTx.c2で駆動します。AFUmmioRdValidをアサートし、応答ヘッダーとデータをそれぞれhdrおよびdataで駆動します。AFUは対応する応答とともに、応答をリクエストに関連付けるために使用したリクエストtidを返すことが予期されます。

次に、CCI-P MMIO読み出しリクエストの主要な属性を説明します。
  • サポートされるデータ長は4バイトおよび8バイトです。
  • 応答の長さはリクエストの長さと一致する必要があります。例えば、8バイトのMMIO読み出しリクエストに対して4バイトの応答を2つ返すことは不正です。
  • 未処理のMMIO読み出しリクエスト数は、最大64に制限されます。
  • 未定義のAFUレジスターに対するMMIO読み出しの場合でも応答を返します。

MMIO書き込み

AFUは、MMIO書き込みリクエストをpck_cp2af_sRx.c0を介して受信します。CCI-PmmioWrValidをアサートし、MMIO書き込みリクエストヘッダーとデータを、それぞれhdrおよびdataで駆動します。c0_ReqMmioHdr構造は、フラット・ビットベクトルからMMIOリクエストフィールド (addresslengthtid) までの便利なマッピングを提供します。MMIO書き込みリクエストはポストされ、AFUからの応答は予期されません。

サポートされるデータ長は、4バイト、8バイト、および64バイトです。

注: インテル® Xeon® プラットフォームすべてでサポートされているわけではありません。

MMIOアクセスを実装する際の注意点

以下は、AFU MMIOレジスターファイルをデザインする際に考慮すべき重要な内容です。
  • DFHを実装するには、AFUが8バイトのアクセスをサポートしていることが必須です。
  • 4バイトのMMIOアクセスに対するサポートはオプションです。AFUデベロッパーはソフトウェア・アプリケーション・デベロッパーと調整し、4バイトのアクセスを回避してください。
  • AFUは、到着したMMIOリクエストを連続して遅延なく受け入れることが可能です。
  • アライメントされていないMMIOアクセスは、エラーになります。ソフトウェア・アプリケーション・デベロッパーは、MMIOアドレスがリクエストの長さにアライメントされていることを確認する必要があります。例えば、8バイトのMMIOリクエストのバイトアドレスは、8の倍数である必要があります。つまり、バイトアドレス [2:0] は0でなければなりません。