Intel Acceleration Stack for Intel® Xeon® CPU with FPGAs Core Cache Interface (CCI-P) Reference Manual

ID 683193
Date 11/04/2019
Public
Document Table of Contents

1.3.13.1. Memory Requests

The CCI-P memory consistency model is different from the PCIe consistency model. The CCI-P implements a “relaxed” memory consistency model.

It relaxes ordering requirements for requests to:
  • Same address
  • Different addresses

Table 33 defines the ordering relationship between two memory requests on CCI-P. The same rules apply for requests to the same address or different addresses. The table entries are defined as follows:

  • Yes: Requests from first column may pass request from first row.
  • No: Requests from first column cannot pass request from first row.
Table 33.  Ordering Rules for Upstream Requests from AFU
Row Bypass Column? Read Write WrFence Interrupt
Read Yes Yes Yes Yes
Write Yes Yes No Yes
WrFence Yes No No No
Interrupt Yes Yes No Yes

You can interpret the table:

  • All operations, except reads, are ordered with regards to WrFences.
  • All other operations are unordered.

Intra-VC Write Observability

Upon receiving a memory write response, the write has reached a local observability point.

Note: VA is not a physical channel and there are no such guarantees for requests to VA.
  • All future reads from AFU to the same physical channel receive the new data.
  • All future writes on the same physical channel replace the data.

Inter-VC Write Observability

A memory write response does NOT mean the data are globally observable across channels. A subsequent read on a different channel may return old data and a subsequent write on a different channel may retire ahead of the original write. WrFence to VA invokes a protocol that is guaranteed to synchronize across VCs. A WrFence VA performs a broadcast operation across all channels.

  • All writes preceding a write fence are pushed to a global observability point.
  • Upon receiving a WrFence response, all future reads from an AFU receive the latest copy of data written, previously, to the write fence being issued.