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
    • 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

‹Cache Coherency
  1. Topics
  2. Cache Coherency
  3. Real Protocols

Part 8 · Real Protocols · All levels

Real Protocols

Map the course's generic protocol onto MOESI and MESIF trade-offs, AMBA ACE and CHI, and TileLink, and judge custom extensions.

  • 3topics
  • 12lessons

Topics in this section

  1. 1MESI Versus MOESI Trade-Offs4 lessons
    • When the Owned State Pays
    • MESIF and the Forward State
    • Comparing Protocol Traffic
    • Choosing a Protocol
  2. 2CHI and ACE Message Models4 lessons
    • ACE on the Course Model
    • CHI Nodes and Channels
    • CHI Transaction Walkthroughs
    • Mapping ACE and CHI States
  3. 3TileLink and Custom Coherence Extensions4 lessons
    • TileLink Permissions
    • TileLink Transactions
    • Custom Extensions and Their Risks
    • Protocol Comparison Sheet

Parts 1 to 7 used one generic protocol on purpose: GetS, GetM, Fwd-GetS, Fwd-GetM, Inv, Inv-Ack, Data, the Put messages and Put-Ack. Real interfaces use their own names, add states the course did not need, and make different choices about where data comes from and how completion is signalled. This part maps each of them back onto the course model, so you can read a specification by asking the same questions the earlier parts asked: who serializes the line, who may supply data, when memory is stale, and which message tells the home that a transaction is complete.

Learning path through the three Real Protocols topics.
Suggested order: the state-level trade-offs first, then the two AMBA interfaces, then TileLink and the risks of extending any protocol.

Twelve lessons

Lesson

After it you can...

When the Owned State Pays

Count the memory writes O saves and the duties it adds.

MESIF and the Forward State

Explain how one clean sharer answers reads instead of memory.

Comparing Protocol Traffic

Run one trace under MSI, MESI and MOESI and compare the counts.

Choosing a Protocol

Pick a state set from the sharing pattern and costs.

ACE on the Course Model

Map ACE channels, states and transactions to the generic protocol.

CHI Nodes and Channels

Name CHI node types and why its four channels are separate.

CHI Transaction Walkthroughs

Follow CHI reads, upgrades and writebacks against course traces.

Mapping ACE and CHI States

Translate between course, ACE and CHI state names.

TileLink Permissions

Relate TileLink channels and permissions to course states.

TileLink Transactions

Map Acquire, Probe and Release flows to course messages.

Custom Extensions and Their Risks

Evaluate a protocol extension before adopting it.

Protocol Comparison Sheet

Compare the generic model, ACE, CHI and TileLink side by side.

Specification details are cited by document and revision in each lesson: AMBA AXI and ACE (Arm IHI 0022, Issue H.c), AMBA 5 CHI (Arm IHI 0050, Issue E.a) and the SiFive TileLink specification (version 1.8.1). The lessons map each interface onto the course model and do not describe any particular implementation.

Check yourself A specification calls its home node by another name and sends completion from the requester. Which course questions still apply?

All of them. Find the serialization point for a line (the home, whatever its name), which agents may supply data and when memory is stale, which message ends the requester's transaction, and which message tells the home it may start the next conflicting transaction. The names change; the questions do not.

Related topics

  • Shared course model

  • Line states and transitions

  • Forwarding versus memory sourcing

  • Message classes and deadlock

PreviousNext: MESI Versus MOESI Trade-Offs

Up next

Up nextMESI Versus MOESI Trade-Offs

Sign in to save progress

Practice this lessonReport an error

See also

  • How to Use This Course
  • Reading Path
  • Cache Coherency Glossary