Tutorials

Protocols

Learn More

Classic AXI4 learning often treats a request as read or write plus attributes. Issue L AXI5 is richer: a request also carries an opcode. The opcode tells the Subordinate what kind of operation is being requested, such as ordinary no-snoop access, shareable/cache-related access, cache maintenance, stash, prefetch, translation hint, special write, exclusive access, atomic access, or DVM completion.

AXI uses two opcode signals. AWSNOOP belongs to the AW/write request channel, and ARSNOOP belongs to the AR/read request channel. This split is important because some operations that sound like “hints”, such as Prefetch, StashOnce*, StashTranslation, UnstashTranslation, and InvalidateHint, are encoded on the write request side in this specification. Atomic operations are also write-request based, but the atomic operation itself is selected by AWATOP while AWSNOOP remains at the atomic/default encoding.

Opcode signaling

SignalApplies toMain opcode groupsImportant companion signals
AWSNOOPAW/write request channelWriteNoSnoop, WriteUniquePtl, full-line writes, CMO, WritePtlCMO, WriteFullCMO, stash, Prefetch, WriteZero, WriteDeferrable, UnstashTranslation, InvalidateHintAWDOMAIN, AWATOP, AWLOCK, AWCMO, AWACTV
ARSNOOPAR/read request channelReadNoSnoop, ReadOnce, ReadShared, ReadClean, deallocation reads, read-side CMO, DVM CompleteARDOMAIN, ARLOCK, ARACTV

The same opcode value can mean different things depending on the Domain. For example, the default write opcode value can represent WriteNoSnoop, WriteUniquePtl, Atomic, WriteExclusive, or WriteACT depending on the request domain and companion signals. Unlisted opcode and domain combinations are illegal.

Opcode support is feature-controlled. If a feature such as WriteZero, WriteDeferrable, CMO, cache stash, prefetch, untranslated transactions, or DVM support is disabled, the corresponding opcode must not be generated by a Manager and must not be assumed to be accepted by a Subordinate. A robust AXI checker should therefore validate the opcode together with Domain, Size, Length, feature properties, and the companion control signals.

 

AWSNOOP encodings

AWSNOOP identifies the write-side request operation. It distinguishes ordinary writes, shareable writes, full cache-line writes, exclusive writes, atomic requests, cache maintenance on write, stash/prefetch-style data-less requests, WriteZero, WriteDeferrable, translation unstash, and invalidate hints. Some of these encodings require extra signals to say exactly what operation is meant. For example, atomic requests use nonzero AWATOP, write-side CMO requests use AWCMO, exclusive writes use AWLOCK, and ACT writes use AWACTV.

ARSNOOP encodings

ARSNOOP identifies the read-side request operation. It distinguishes ordinary reads, shareable reads, exclusive reads, deallocation-style reads, read-side cache maintenance operations, DVM Complete, and ACT reads. DVM Complete is carried on the AR/R path even though the original DVM request uses the snoop AC/CR channels.