Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 7/19/2024
Public
Document Table of Contents

4.1.5. CCU Functional Description

The CCU allows a set of initiator agents and a set of target agents to communicate through transactions. Transactions are classified as either non-coherent or coherent.

A non-coherent transaction directly accesses the data in the corresponding memory location or peripheral device. A coherent transaction may access the data either in the corresponding memory location or in one of the caches in the system. Specifically, a coherent read transaction transfers data values from the most recent copy, either in the memory location or in a cache, while a coherent write transaction transfers data to a memory location and invalidates any other cached copies.

A coherent transaction is further classified as a fully-coherent transaction or an IO-coherent transaction. In a fully-coherent transaction the initiator performing the coherent transaction obtains a copy that is required to remain coherent with respect to coherent transactions from other initiator agents. In case of an IO-coherent transaction, the initiator agent obtains a copy that is not required to remain coherent.

The same memory location may be accessed with transactions that have different access semantics; however, the CCU interconnect does not enforce coherence in these cases and does not provide any ordering between transactions to the same memory location with different access semantics.

An initiator agent is classified by the transactions the agent is capable of issuing:

  • A fully-coherent agent may issue fully-coherent, IO-coherent, and non-coherent transactions.
  • An IO-coherent agent may issue IO-coherent and non-coherent transactions.
  • A non-coherent agent only issues non-coherent transactions.

Collectively, fully-coherent agents and IO-coherent agents are known as coherent agents. Furthermore, fully-coherent agents are also classified as caching agents, which incorporate caches that store coherent copies of data and implement snooping interfaces on which coherence operations are presented.

A target agent is classified by how the agent services access that result from read and write transactions. A memory agent provides access to memory locations, and accesses to the physical addresses serviced by a memory agent have the following properties:

  • A read access returns the last value written, and in particular, multiple read accesses to the same memory location return the same value unless an intervening write access has changed the value at the memory location
  • Read and write accesses do not cause side-effects

The memory locations serviced by a memory agent may be accessed by an initiator agent using coherent or non-coherent transactions, and if those memory locations are accessed with fully-coherent transactions, copies of data from a memory agent can be cached and are kept coherent by the CCU interconnect. To access a memory agent, the CCU interconnect issues memory read transactions and memory write transactions, which perform read accesses and write accesses, respectively.

A non-memory agent provides access to other forms of system functionality, and accesses to the physical addresses serviced by a non-memory agent have the following properties:

  • A read access may not return the last value written, and multiple read accesses to the same memory location may return different values
  • Read and write accesses may cause side-effects, for example, raising an interrupt or initiating a hardware state machine

The system functionality provided by a non-memory agent may be accessed by an initiator agent using non-coherent transactions only. Copies of data from a nonmemory agent are not cached and cannot be kept coherent.