Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Paths
  • Concept Map
  • How to Read the Diagrams
  • Part 0: What Is a Protocol?10
  • Part 1: Timing and Clocking11
  • Part 2: Encoding and Framing12
  • Part 3: Handshakes13
  • Part 4: Flow Control17
  • Part 5: Transactions19
    • Reads and Writes Are Not Symmetric
    • The Request/Response Model
    • Address Maps and Decoding
    • Register Semantics
    • Combined and Split Transactions
    • Independent Channels
    • Posted and Non-Posted Writes
    • Bursts
    • Alignment, Strobes and Narrow Transfers
    • Boundary Rules
    • Width and Endianness Conversion
    • Transaction Attributes
    • Atomics
    • Sideband or In-Band
    • Interrupts and Notification
    • Descriptors, Rings and Doorbells
    • Bridges and Protocol Conversion
    • Protocols Compared: Transactions
    • Drills: Transactions
  • Part 6: Concurrency and Performance17
  • Part 7: Ordering13
  • Part 8: Sharing and Arbitration12
  • Part 9: Deadlock and Liveness13
  • Part 10: Reliability and Recovery20
  • Part 11: Bring-Up and Link Management10
  • Part 12: Power8
  • Part 13: Shared State and Coherence9
  • Part 14: Security and Isolation7
  • Part 15: Specifying and Verifying11
  • Part 16: Protocols Dissected17
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹Part 5: Transactions
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 5: Transactions
  4. Transaction Attributes

Part 5 · Transactions · Senior (S)

Transaction Attributes

Cacheable, bufferable, privileged, secure, priority: why a transaction carries a description of itself, who reads each attribute along the way, and what goes wrong when attributes are set carelessly.

On this page

    Note

    Level: Senior (S) · Answers: What exactly is being asked?

    Before this: The Request/Response Model

    A write buffer in the interconnect speeds up memory writes by accepting them at once and finishing them later. Someone points the same buffer at a peripheral: a write to its "start" register is accepted at once, and the driver's next instruction, which assumes the peripheral has started, runs before the write arrives. The buffer did nothing wrong. It had no way to know that this write, unlike the memory writes, must not be delayed.

    Why does a transaction carry information about itself beyond its address and data, and who uses it?

    The obvious answer, and why it breaks

    The obvious view is that the target knows what it is, so the address says everything: a memory address may be cached and buffered, a peripheral address may not. But the agents that cache, buffer, reorder, check permissions and prioritise are between the requester and the target. They see the address but not the target's nature, and looking it up in a central table at every hop would be slow and fragile. So the requester, which does know (its page tables and its privilege level tell it), attaches a description to every transaction.

    The idea: attributes travel with the transaction

    Attribute

    Says

    Who uses it

    Bufferable

    The write may be acknowledged before it reaches the target

    Write buffers, interconnect: may answer early (lesson 7.4)

    Cacheable / modifiable

    The transaction may be cached, merged, split or prefetched

    Caches, interconnect: may merge writes or read more than asked

    Allocate hints

    Whether a cache should keep the line after a miss

    Caches

    Privileged

    The requester was running in a privileged mode

    Targets and firewalls: protect control registers from user code

    Secure / non-secure

    Which security world the requester belongs to

    Firewalls and secure memory: block non-secure access to secure regions (Part 14)

    Instruction / data

    Whether this is an instruction fetch

    Protection units: forbid executing from data regions

    Priority (QoS)

    How urgent the request is

    Arbiters and memory controllers (Part 8)

    The pattern is always the same: the requester knows something about the request that agents along the path cannot work out from the address, so it says so, and each agent reads only the attributes it cares about.

    Why attributes matter for correctness

    • Device registers must be non-bufferable and non-modifiable. A read that is merged, prefetched or repeated can pop a FIFO or clear a status bit (lesson 5.4); a write that is delayed or merged can start a device at the wrong time.

    • Memory should be cacheable and bufferable. Marking normal memory as device memory is safe but slow: every access goes all the way to the target.

    • Security attributes must be set by trusted hardware, not by the software that the check is meant to restrict. Otherwise the check is a suggestion.

    How real protocols chose

    Protocol

    Attributes

    AXI

    AxCACHE (bufferable, modifiable and allocate hints), AxPROT (privileged, secure or non-secure, instruction or data), and from AXI4 AxQOS (a 4-bit priority) and AxREGION.

    APB

    PPROT (from APB4): privileged, secure, instruction or data.

    PCI Express

    Attribute bits in the packet header, such as Relaxed Ordering and No Snoop, and a traffic class for priority (Part 7).

    What breaks

    The opening story: the peripheral's address range was marked bufferable in the processor's memory attributes, so the interconnect acknowledged the "start" write immediately. The fix was to mark the range as device memory, non-bufferable, so the write was acknowledged only by the peripheral itself. A related bug (illustrative) marked a FIFO's data register as modifiable: the interconnect turned two narrow reads into one wide read, popping two entries, and returned half of the data to nobody.

    Why this matters

    Senior lens. Attributes are a contract between the requester's memory map and every agent on the path. Check that device regions are non-bufferable and non-modifiable end to end, that security and privilege attributes come from hardware the restricted software cannot change, and that every converter and bridge (lesson 5.17) carries each attribute across or explicitly maps it.

    Interview

    Asked: "Why does an AXI transaction carry cache attributes?"

    Weak answer: So the target knows if it's a cache.

    Strong answer: Because the agents that buffer, cache, merge or prefetch sit between the requester and the target and can't tell from the address what kind of target it is. The requester knows from its memory attributes, so it marks each transaction: bufferable means a write may be acknowledged early, modifiable means it may be merged or split, plus allocate hints for caches. Device registers must be neither, or a buffered or merged access can start a device too early or pop a FIFO twice.

    Follow-ups: (1) What does the privileged bit protect? (2) Who must be trusted to set the security attribute?

    Check yourself Why must a UART's receive-data register be accessed as non-modifiable?

    Reading it pops a byte; an agent allowed to merge, split or prefetch could read it more or fewer times than software asked, losing data.

    Check yourself What is the cost of marking normal memory as device memory?

    Every access goes to the target unmerged and unbuffered: correct but slow, with no caching or write buffering.

    Key takeaways

    • A transaction carries attributes because agents along the path cannot tell from the address how it may be handled.

    • Bufferable and modifiable allow early acknowledgement and merging; device registers must allow neither.

    • Privilege and security attributes must be set by trusted hardware and carried across every bridge.

    Keep going

    Next: Lesson 5.13, Atomics. Read-modify-write without interference: locks, exclusive pairs and far atomics.

    Related topics

    • Part 5 overview: Transactions

    Previous

    79 / 234

    Next: Atomics

    Up next

    Up nextAtomics

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Reads and Writes Are Not Symmetric
    • The Request/Response Model
    • Address Maps and Decoding