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
    • LLC Data and Directory Policies
      • Inclusive, Exclusive and Non-Inclusive
      • Back-Invalidation
      • The LLC as Directory
      • Policy Trade-Offs
    • Devices and DMA
    • The Memory-Controller Boundary
  • Power, Clocking and Reliability12
  • Verification12
  • Debug and Bring-up12
  • Interview and Design Review17
  • Capstone: A Coherent Model Lab5
Loading lesson

‹LLC Data and Directory Policies
  1. Topics
  2. Cache Coherency
  3. SoC Integration
  4. LLC Data and Directory Policies
  5. Inclusive, Exclusive and Non-Inclusive

Part 9 · SoC Integration · All levels

Inclusive, Exclusive and Non-Inclusive

Where a line goes on a miss, on a private eviction and on an LLC eviction under each policy.

On this page

    Where does a line live under each policy?

    These examples use the Part 9 LLC model: the LLC sits at H, a PutM writes the LLC line, and memory is written only when the LLC evicts a dirty line. An inclusive LLC holds every line any private cache holds. An exclusive LLC holds a line only while no private cache does. A non-inclusive, non-exclusive (NINE) LLC follows neither rule. The three differ in four events:

    Policy

    Fill from memory goes to

    Private eviction goes to

    LLC hit does

    LLC eviction does

    Inclusive

    The LLC and the private cache: the LLC allocates on every fill

    Dirty PutM writes the LLC copy, which is always present. Clean PutS or PutE is dataless and the LLC copy stays

    Supplies the data, keeps the LLC copy and sets the requester's presence bit

    Back-invalidates every private copy, then writes the line to memory if dirty

    Exclusive

    The private cache only

    The LLC, clean evictions too: the LLC is a victim cache. This needs a data-carrying clean eviction, unlike the course's dataless PutS and PutE

    Moves the line up to the private cache and deallocates it from the LLC

    Writes the line to memory if dirty. No private copy exists to invalidate

    NINE

    The LLC and the private cache, as in inclusive

    Dirty PutM writes the LLC line, allocating it if absent. Clean PutS or PutE is dataless

    Supplies the data and keeps the LLC copy: filling the private cache does not deallocate it

    Writes the line to memory if dirty. Private copies are not invalidated

    "Exclusive" here is a relation between two storage levels, not the MESI E state, and not a ban on two private S copies. The course's clean evictions (PutS and PutE) carry no data, which is fine for inclusive and NINE because memory or the LLC already has the clean value. An exclusive LLC has no copy of a privately held line, so a clean eviction must carry the data down or the line leaves the cache hierarchy.

    On a miss, inclusive and NINE fill both levels and exclusive fills only the private cache. On a private eviction, exclusive always moves the data into the LLC, while inclusive and NINE write the LLC only for a dirty line. On an LLC eviction, only inclusive back-invalidates private copies.
    The same three events end in different places under each policy.

    One line, three policies

    From X = 0 uncached, C0's GetM misses everywhere, memory supplies 0 and C0 stores 1. Later C0 evicts X with PutM. Each row is an independent case.

    Case

    C0 state / value

    C1 state / value

    H directory

    LLC: tag / value / dirty

    Memory

    Newest data

    Inclusive, after C0's fill and store

    M / 1

    I / -

    exclusive(C0) (presence bits in LLC tag)

    X / 0 / clean

    0

    C0: 1

    Inclusive, after C0's PutM

    I / -

    I / -

    U (presence bits in LLC tag)

    X / 1 / dirty

    0

    LLC: 1

    Exclusive, after C0's fill and store

    M / 1

    I / -

    exclusive(C0) (snoop filter)

    no tag

    0

    C0: 1

    Exclusive, after C0's PutM

    I / -

    I / -

    U (snoop filter)

    X / 1 / dirty

    0

    LLC: 1

    NINE, after C0's fill and store

    M / 1

    I / -

    exclusive(C0) (snoop filter)

    X / 0 / clean

    0

    C0: 1

    NINE, the LLC then evicts its clean X

    M / 1

    I / -

    exclusive(C0) (snoop filter)

    no tag

    0

    C0: 1

    The inclusive and NINE LLCs hold a stale 0 while C0 holds M / 1, so an LLC value is never the answer while a private exclusive holder exists. The exclusive LLC has no tag at all, so the separate snoop filter is the only record of C0. In the last row the NINE LLC dropped a clean line without touching C0, which an inclusive LLC could not do. Had C0 evicted E / 0 instead, the exclusive LLC would still need X / 0: that is the data-carrying clean eviction.

    Common pitfall

    Answering a GetS from the LLC's value while a private cache holds X in E or M. In the inclusive and NINE rows above the LLC holds 0 and C0 holds 1.

    Interview

    Give the four-event table: fill, private eviction, LLC hit, LLC eviction. Then say which policy needs a separate snoop filter (exclusive and NINE) and which needs data on clean evictions (exclusive).

    Check yourself Can private C0 E / 0 coexist with an LLC copy in an inclusive hierarchy?

    Yes, and inclusion requires it; the LLC copy may become stale after a silent E-to-M store.

    Related topics

    • Shared course model

    • Part 9 LLC model

    • Silent E-to-M store

    • Dataless clean eviction

    Previous

    98 / 167

    Next: Back-Invalidation

    Up next

    Up nextBack-Invalidation

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • The LLC as Directory
    • Policy Trade-Offs