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
    • Transient States and Races
      • Why Transient States Exist
      • Simultaneous Upgrades
      • Racing Requests at the Home
      • Eviction Versus Intervention
    • Controller Resources
  • Progress and the Fabric16
  • Ordering and Synchronization12
  • Performance and Scalability12
  • Real Protocols12
  • SoC Integration12
  • Power, Clocking and Reliability12
  • Verification12
  • Debug and Bring-up12
  • Interview and Design Review17
  • Capstone: A Coherent Model Lab5
Loading lesson

‹Races and Controller Design
  1. Topics
  2. Cache Coherency
  3. Races and Controller Design
  4. Transient States and Races

Part 4 · Races and Controller Design · All levels

Transient States and Races

Extend serialized transactions to competing requests while preserving permission and dirty-data obligations.

  • 4topics
  • 4lessons

Overlapping requests do not require overlapping write permission. H chooses a per-line order, controllers keep track of pending work, and a requester may have to give up its retained bytes before receiving its own grant. These examples state their queueing policy explicitly.

Lesson

After it you can...

Why Transient States Exist

Separate a permission request from usable permission and outstanding work.

Simultaneous Upgrades

Handle an invalidation while a local store is waiting.

Racing Requests at the Home

Choose an order, deliver one grant before revoking it, and handle an Inv or Fwd that arrives before Data.

Eviction Versus Intervention

Resolve both arrival orders without dropping buffered dirty data.

Read in order after Transactions. Requests carry the labels A, B, R and W so the tables can say which transaction a message belongs to. A queued request is not a granted permission.

Check yourself Why can a queued upgrade eventually need data as well as permission?

Another winning transaction can invalidate the requester's S copy while it waits. Its original intent is still to acquire write permission, but it can no longer finish with a permission-only response.

Related topics

  • Shared course model

  • Prerequisite: Transactions

PreviousNext: Why Transient States Exist

Up next

Up nextWhy Transient States Exist

Sign in to save progress

Practice this lessonReport an error

See also

  • Controller Resources