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 Path
  • Cache Coherency Glossary
  • The Shared Course Model
  • Cache Coherency Revision Sheet
  • Why Coherence Exists8
  • States and Protocols12
  • Transactions12
  • Races and Controller Design8
  • Progress and the Fabric16
  • Ordering and Synchronization12
  • Performance and Scalability12
  • Real Protocols12
    • MESI Versus MOESI Trade-Offs
    • CHI and ACE Message Models
      • ACE on the Course Model
      • CHI Nodes and Channels
      • CHI Transaction Walkthroughs
      • Mapping ACE and CHI States
    • TileLink and Custom Coherence Extensions
  • SoC Integration12
  • Power, Clocking and Reliability12
  • Verification12
  • Debug and Bring-up12
  • Interview and Design Review17
  • Capstone: A Coherent Model Lab5
Loading lesson

‹Real Protocols
  1. Topics
  2. Cache Coherency
  3. Real Protocols
  4. CHI and ACE Message Models

Part 8 · Real Protocols · All levels

CHI and ACE Message Models

Read Arm's ACE and CHI coherence protocols through the course model: channels, nodes, transactions, completion messages and cache states.

  • 4topics
  • 4lessons

Parts 1 to 7 used the course's own messages (GetS, GetM, Fwd-GetS, Inv, Data, PutM and the rest). This topic maps two real Arm protocols onto that model, so that a trace you already understand can be read in spec vocabulary. Every rule here is cited from one document and revision: the AMBA AXI and ACE Protocol Specification, Arm IHI 0022, Issue H.c (ACE), and the AMBA 5 CHI Architecture Specification, Arm IHI 0050, Issue E.a (CHI). Where a later issue renames or adds something, check that issue before relying on it. The interface survey lives in the Protocols course; this topic goes into the coherence mechanics.

Lesson

After it you can...

ACE on the Course Model

Map ACE's snoop channels, five states, transactions and CRRESP bits onto the course's dirty read.

CHI Nodes and Channels

Name CHI's node types and four channels, follow TxnID and DBID, and trace a RetryAck and PCrdGrant.

CHI Transaction Walkthroughs

Follow a DCT read, a CleanUnique upgrade and a WriteBackFull, and say what CompAck completes.

Mapping ACE and CHI States

Translate MESI and MOESI states to ACE and CHI names, and handle UCE and UDP, which have no course equivalent.

Suggested order: ACE first (it adds snooping to an interface you may know), then CHI's nodes and channels, its transactions, and finally the state table that ties all three vocabularies together.

Check yourself Is a CHI SnpSharedFwd the same thing as the course's Fwd-GetS?

It plays the same role (H asks the holder to supply a reader and downgrade), but it is not the same message. SnpSharedFwd carries FwdNID and FwdTxnID so the holder can send CompData straight to the requester, and the holder then reports to the home with a snoop response. The course's default Fwd-GetS sends Data back through H, and the direct route is only a variant there. Map roles, not names.

Related topics

  • Shared course model

  • The MSI dirty read these lessons map

  • Message classes (Part 5)

PreviousNext: ACE on the Course Model

Up next

Up nextACE on the Course Model

Sign in to save progress

Practice this lessonReport an error

See also

  • MESI Versus MOESI Trade-Offs
  • TileLink and Custom Coherence Extensions