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
  • SoC Integration12
  • Power, Clocking and Reliability12
    • Power State Transitions and Cache State Safety
      • Flushing Before Power-Down
      • Leaving and Rejoining the Domain
      • Retention States
      • A Power-Down Race
    • Clocking and CDC on Coherence Channels
    • ECC, Poison and Recovery
  • Verification12
  • Debug and Bring-up12
  • Interview and Design Review17
  • Capstone: A Coherent Model Lab5
Loading lesson

‹Power, Clocking and Reliability
  1. Topics
  2. Cache Coherency
  3. Power, Clocking and Reliability
  4. Power State Transitions and Cache State Safety

Part 10 · Power, Clocking and Reliability · All levels

Power State Transitions and Cache State Safety

Power a cache down and back up without losing dirty data or leaving the home waiting for an answer that never comes.

  • 4topics
  • 4lessons

A cache that is about to lose power holds two kinds of obligation: dirty data that exists nowhere else, and permissions that H has recorded and will act on. Turning the supply off breaks both at once: the data vanishes, and H's next Inv or Fwd goes to a controller that can never reply. This topic turns power-down into a coherence transaction with a defined completion, then looks at retention and at the race between powering down and an incoming forward.

Course-model extension for this topic: C0's cache can be powered down. A powered-off or retained controller answers nothing, not even 'I do not have it'. The topic adds four course-defined messages, Leave, Leave-Ack, Join and Join-Ack, for leaving and rejoining the coherence domain; they are not messages of any named protocol. Everything else follows the course model.

Lesson

After it you can...

Flushing Before Power-Down

List what must be cleaned, invalidated and completed before a cache may lose power, and name the completion predicate.

Leaving and Rejoining the Domain

Order stop, drain, flush, leave and power-off, and the rejoin steps, and say what breaks if two steps swap.

Retention States

Explain why kept bits are not a coherent copy, and choose between power-off, retention with flush and wake-on-snoop.

A Power-Down Race

Trace a Fwd-GetM crossing C0's PutM during power-down, and show which shortcuts lose data or hang.

Read in order. The lessons build on Dirty Writeback, Writeback Buffers and Eviction Versus Intervention.

Check yourself C0's cache holds only clean S lines. May it simply power off?

Not while H still records it as a sharer. The data is safe, because memory is current, but the next GetM from C1 makes H send Inv to C0 and wait for an Inv-Ack that a powered-off cache cannot send. C0 must first send PutS for each line (or a bulk Leave) and wait for the acknowledgements.

Related topics

  • Shared course model

  • Prerequisite: the PutM sequence

  • Prerequisite: eviction versus intervention

PreviousNext: Flushing Before Power-Down

Up next

Up nextFlushing Before Power-Down

Sign in to save progress

Practice this lessonReport an error

See also

  • Clocking and CDC on Coherence Channels
  • ECC, Poison and Recovery