インテルのみ表示可能 — GUID: aan1506275190752
Ixiasoft
インテルのみ表示可能 — GUID: aan1506275190752
Ixiasoft
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リクエストフィールド (address、length、tid) までの便利なマッピングを提供します。
AFUは、MMIO読み出し応答をpck_af2cp_sTx.c2で駆動します。AFUはmmioRdValidをアサートし、応答ヘッダーとデータをそれぞれhdrおよびdataで駆動します。AFUは対応する応答とともに、応答をリクエストに関連付けるために使用したリクエストtidを返すことが予期されます。
- サポートされるデータ長は4バイトおよび8バイトです。
- 応答の長さはリクエストの長さと一致する必要があります。例えば、8バイトのMMIO読み出しリクエストに対して4バイトの応答を2つ返すことは不正です。
- 未処理のMMIO読み出しリクエスト数は、最大64に制限されます。
- 未定義のAFUレジスターに対するMMIO読み出しの場合でも応答を返します。
MMIO書き込み
AFUは、MMIO書き込みリクエストをpck_cp2af_sRx.c0を介して受信します。CCI-PはmmioWrValidをアサートし、MMIO書き込みリクエストヘッダーとデータを、それぞれhdrおよびdataで駆動します。c0_ReqMmioHdr構造は、フラット・ビットベクトルからMMIOリクエストフィールド (address、length、tid) までの便利なマッピングを提供します。MMIO書き込みリクエストはポストされ、AFUからの応答は予期されません。
サポートされるデータ長は、4バイト、8バイト、および64バイトです。
MMIOアクセスを実装する際の注意点
- DFHを実装するには、AFUが8バイトのアクセスをサポートしていることが必須です。
- 4バイトのMMIOアクセスに対するサポートはオプションです。AFUデベロッパーはソフトウェア・アプリケーション・デベロッパーと調整し、4バイトのアクセスを回避してください。
- AFUは、到着したMMIOリクエストを連続して遅延なく受け入れることが可能です。
- アライメントされていないMMIOアクセスは、エラーになります。ソフトウェア・アプリケーション・デベロッパーは、MMIOアドレスがリクエストの長さにアライメントされていることを確認する必要があります。例えば、8バイトのMMIOリクエストのバイトアドレスは、8の倍数である必要があります。つまり、バイトアドレス [2:0] は0でなければなりません。