Foundationপ্রথম নীতি থেকে
LEVEL 11 · Advanced Architecture & Performance

Inclusive Cache

ইনক্লুসিভ ক্যাশ

একটা multi-level hierarchy-তে outer level (L2/L3) সবসময় inner level-এর (L1/L2) সব line-এর copy ধরে রাখে — capacity নষ্ট হয়, কিন্তু coherence snoop checking সহজ হয়।

also: exclusive cache, cache inclusion policy

তিনটা সম্ভাব্য নীতি একটা multi-level cache hierarchy-তে:

নীতিনিয়মসুবিধাদাম
InclusiveL1 ⊆ L2 ⊆ L3coherence-এ শুধু L3 চেক করলেই যথেষ্টcapacity duplicate, তাই নষ্ট
Exclusiveপ্রতিটা line ঠিক এক level-এপূর্ণ capacity কার্যকরeviction-এ move করতে হয়, জটিল
Non-inclusiveকোনো গ্যারান্টি নেইকিছুটা capacity বাঁচেআলাদা snoop filter লাগে

কেন coherence-এ গুরুত্বপূর্ণ: যদি L3 inclusive হয়, “X L3-তে নেই” থেকে সরাসরি বলা যায় “X কোনো core-এর L1/L2-তেও নেই” — broadcast snoop এড়ানো যায়। প্রতি L3 line-এ presence bits রাখলে (কোন core-এর কাছে কপি আছে) targeted invalidate পাঠানো যায়, সবাইকে জিজ্ঞেস না করে।

দাম উদাহরণ: ৮ core, প্রতিটার L2 = ১ MB, L3 = ৩২ MB। Inclusive-এ worst-case L3-এর কার্যকর অনন্য capacity মাত্র ২৪ MB (৮ MB duplicate)। Exclusive-এ মোট usable = ১ + ৩২ = ৪০ MB — ৮ MB বেশি, একই hardware আকারে।

দাম-এর আরেক দিক: inclusive L3 evict করলে সব core-এর L1/L2-তে সেই line-ও back-invalidate হতে বাধ্য, এমনকি সক্রিয়ভাবে ব্যবহৃত হলেও।

বাস্তবে: Intel client CPU (Sandy Bridge-Skylake) inclusive ব্যবহার করেছে বহু বছর, coherence-সরলতার জন্য। Intel server (Skylake-SP+) non-inclusive-এ সরে গেছে (core সংখ্যা বেশি হলে duplication-এর দাম অসহনীয়)। AMD Zen mostly-exclusive/victim ধাঁচের L2/L3 রাখে, 3D V-Cache-এর পূর্ণ সুবিধা পেতে।