Stash ¡Directory: ¡ ¡ A ¡Scalable ¡Directory ¡for ¡Many-‑Core ¡Coherence � Socrates ¡Demetriades ¡ ¡ and ¡Sangyeun ¡Cho ¡ 20 th ¡Interna+onal ¡Symposium ¡On ¡High ¡Performance ¡Computer ¡Architecture ¡(HPCA). ¡ Orlando, ¡FL, ¡February ¡2014 ¡
Directory ¡ • Chip ¡mul+processors ¡ ¡with ¡many ¡cores. ¡ ¡ ¡ ¡ ¡ • Coherence ¡is ¡needed ¡across ¡private ¡Caches ¡ • Directory ¡for ¡scalable ¡coherence ¡solu+ons. ¡ ¡ Shared LLC Directory L2 L2 L2 L2 Cache Cache Cache Cache Core 0 Core 1 Core 2 Core N
Directory: ¡Energy ¡VS ¡Area ¡ Duplicate-‑Tags ¡ ¡ ¡[e.g., ¡Piranha, ¡NiagraT2] ¡ Directory ¡ Sparse ¡ ¡[e.g., ¡AMD ¡Opteron] ¡ L2 L2 L2 L2 Cache Cache Cache Cache Core 0 Core 1 Core 2 Core N
Directory: ¡Energy ¡VS ¡Area ¡ Duplicate-‑Tags ¡ ¡[e.g., ¡Piranha, ¡NiagraT2] ¡ Energy ¡inefficient ¡ ¡ Directory ¡ Ways Sparse ¡ ¡[e.g., ¡AMD ¡Opteron] ¡ (L2 assoc. x N-Cores L2 Tags Core 0 Core 1 Core 1 Core 2 Core 2 Core N Core N Core 0
Directory: ¡Energy ¡VS ¡Area ¡ Duplicate-‑Tags ¡ Energy ¡inefficient ¡ ¡ How big is Directory ¡ enough? 2x-4x over-provision Sparse ¡ ¡[e.g., ¡AMD ¡Opteron] ¡ Area ¡Inefficient ¡ L2 Tags Core 0 Core 1 Core 1 Core 2 Core 2 Core N Core N Core 0
Sparse-‑based ¡Directories ¡ • Conven+onal ¡Sparse ¡ ¡(2-‑4x) ¡ ¡[Gupta:isca90, ¡Conway:micro10] ¡ ¡ • Clever ¡hashing ¡ ¡(1.5x) ¡ How big is Area ¡efficiency ¡ ¡[Ferdman:hpca’11, ¡Sanchez:hpca’12] ¡ enough? • Course-‑grain ¡set ¡indexing ¡ [Alisafaee:micro12] ¡ • Disabling ¡coherence ¡for ¡private ¡pages ¡ [Cuesta:isca11] ¡ • Stash ¡Directory ¡
Stash ¡Directory ¡ • Stash ¡is ¡allowed ¡to ¡not ¡track ¡all ¡cached ¡tags. ¡ ¡ – Entries ¡that ¡track ¡private ¡blocks ¡can ¡be ¡silently ¡removed ¡from ¡directory. ¡ ¡ – LLC ¡and ¡the ¡coherence ¡protocol ¡are ¡involved ¡to ¡discover ¡unregistered ¡blocks. ¡ ¡ • Contribu+on: ¡ ¡ Power ¡Efficient ¡ (low ¡associa+vely) ¡ Space ¡Efficient ¡ (as ¡small ¡as ¡0.25x ¡provisioning ¡size ¡without ¡performance ¡impact) ¡ ¡ Transparent ¡(no ¡OS ¡support, ¡simple ¡design). ¡ ¡ Scalable ¡ (largely ¡independent ¡to ¡core ¡count). ¡ ¡
Outline ¡ Introduc+on ¡ Directory-‑Induced ¡Invalida+ons ¡ ¡ Stash ¡Directory ¡ Evalua+on ¡ Conclusion ¡ 8
Directory-‑Induced ¡Invalida+ons ¡ Insert Dir Entry Directory Forces Eviction Invalidation L2 Miss Core 1 Core 2 Core N Core 0
Conflict ¡Rate ¡ ¡Cache ¡Miss ¡Rate ¡ 1 ¡ 3 ¡ 2.5 ¡ 0.8 ¡ DIR ¡Conflict ¡Rate ¡ Cache ¡Miss ¡Rate ¡ 2 ¡ 0.6 ¡ 1.5 ¡ 0.4 ¡ 1 ¡ 0.2 ¡ 0.5 ¡ 0 ¡ 0 ¡ Directory ¡Size ¡ Directory ¡Size ¡ [Benchmark: ¡fluidanimte] ¡
Forcing ¡Invalida+on ¡on ¡Private ¡Blocks ¡ Insert Dir Entry Eviction HOT Private Block Core 1 Core 2 Core N Core 0
(1) ¡Invalida+on ¡of ¡Hot ¡Blocks ¡ MRU LRU Eviction MRU LRU Core 1 Core 2 Core N Core 0
(2) ¡Causing ¡(unnecessary) ¡Addi+onal ¡Misses ¡ MRU LRU L2 Miss MRU LRU Core 1 Core 2 Core N Core 0
(3) ¡‘Pollu+ng’ ¡the ¡Directory ¡Set ¡ MRU LRU L2 Miss MRU LRU Core 1 Core 2 Core N Core 0
Forcing ¡Invalida+on ¡on ¡Private ¡Blocks ¡ • PARSEC ¡and ¡SPLASH2 ¡Workloads ¡ • 1/4x ¡Directory ¡Size ¡Provisioning ¡ On ¡average: ¡ 72% ¡ ¡ of ¡directory-‑induced ¡invalida+ons ¡target ¡Private ¡blocks ¡ 80% ¡of ¡invalidated ¡blocks ¡will ¡be ¡re-‑loaded, ¡causing ¡misses. ¡
Outline ¡ Introduc+on ¡ Directory-‑Induced ¡Invalida+ons ¡ ¡ Stash ¡Directory ¡ Evalua+on ¡ Conclusion ¡ 16
Stash ¡Directory: ¡Overview ¡ • Directory ¡knows ¡if ¡an ¡entry ¡is ¡tracking ¡a ¡private ¡block. ¡ ¡ • If ¡evicted ¡entry ¡is ¡private, ¡then ¡do ¡not ¡enforce ¡invalida+on. ¡ • Private ¡blocks ¡remain ¡hidden ¡from ¡the ¡directory. ¡ • LLC ¡and ¡the ¡coherence ¡protocol ¡are ¡involved ¡to ¡discover ¡hidden ¡ blocks ¡if ¡necessary. ¡ ¡
Stash ¡Directory: ¡Silent ¡Evic+on ¡ ¡ Mark as Stash-hidden Block Shared LLC Dir Directory Eviction P Do not enforce invalidation L2 Cache Core 1 Core 2 Core N Core 0
Stash ¡Directory: ¡Handling ¡False ¡Misses ¡ Marked Stash-hidden Shared LLC (False) Directory Dir Miss L2 Miss Core 1 Core 2 Core N Core 0
Stash ¡Directory: ¡Handling ¡False ¡Misses ¡ Unmark Shared LLC Found L2 Miss Core 1 Core 2 Core N Core 0
Outline ¡ Introduc+on ¡ Directory-‑Induced ¡Invalida+ons ¡ ¡ Stash ¡Directory ¡ Evalua+on ¡ Conclusion ¡ 21
Evalua+on ¡Methodology ¡ • Workloads ¡ – Mul+threaded ¡benchmarks ¡from ¡SPLAS2 ¡and ¡PARSEC.2.1. ¡ • Trace ¡ – x86 ¡traces ¡generated ¡using ¡PIN. ¡ – Feed ¡into ¡cache/NoC ¡cycle ¡detailed ¡model ¡ – 1-‑IPC ¡in-‑order ¡core ¡model. ¡ ¡ ¡ • Simulated ¡Machine ¡Configura+on ¡ – 16-‑core ¡+led ¡based ¡CMP. ¡ ¡ – Distributed ¡shared ¡LLC ¡16MB, ¡ ¡ – L1/L2 ¡private ¡caches, ¡inclusive. ¡4-‑way/8-‑way ¡ – 4x4 ¡mesh ¡NoC. ¡ ¡ ¡ ¡ – Distributed ¡directory ¡(same ¡associa+vity ¡as ¡L2). ¡Varying ¡Size. ¡ ¡
Comparison ¡Schemes. ¡ ¡ 1. Sparse : ¡ ¡ Conven+onal ¡Sparse ¡Directory. ¡ ¡ 2. PDC: ¡ Deac+va+ng ¡Coherence ¡for ¡Private ¡blocks ¡[Cuesta:isca11]. ¡ – course-‑grain ¡classifica+on ¡of ¡blocks ¡into ¡private/shared ¡(page ¡granularity). ¡ – If ¡miss ¡on ¡a ¡private ¡block, ¡do ¡not ¡invoke ¡coherence ¡protocol. ¡ ¡ ¡ ¡=> ¡private ¡blocks ¡are ¡not ¡tracked ¡by ¡the ¡directory. ¡ ¡ – Recover ¡mechanism ¡when ¡page ¡goes ¡from ¡private ¡to ¡shared. ¡ ¡ – OS-‑supported ¡technique. ¡ ¡ • All ¡schemes ¡use ¡the ¡same ¡sharer-‑vector ¡encoding. ¡ ¡ • All ¡schemes ¡use ¡the ¡same ¡associa+vely ¡(same ¡as ¡L2). ¡ ¡
Cache ¡Size ¡VS ¡Miss ¡Rate ¡ ocean ¡ 220 ¡ 180 ¡ % ¡Miss ¡Rate ¡Change ¡ 140 ¡ Sparse ¡ 100 ¡ PDC ¡ 60 ¡ Stash ¡ 20 ¡ -‑20 ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡ Directory ¡Provisioning ¡RaKo ¡
Cache ¡Size ¡VS ¡Miss ¡Rate ¡ bodytrack ¡ 200 ¡ % ¡Miss ¡Rate ¡Change ¡ 160 ¡ 120 ¡ Sparse ¡ 80 ¡ PDC ¡ 40 ¡ Stash ¡ 0 ¡ -‑40 ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡ Directory ¡Provisioning ¡RaKo ¡
Cache ¡Size ¡VS ¡Miss ¡Rate ¡ canneal ¡ 220 ¡ 180 ¡ % ¡Miss ¡Rate ¡Change ¡ 140 ¡ Sparse ¡ 100 ¡ PDC ¡ 60 ¡ Stash ¡ 20 ¡ -‑20 ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/8x ¡ 1/16x ¡ Directory ¡Provisioning ¡RaKo ¡
Cache ¡Performance ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 2 ¡ Miss ¡Rate ¡(Normalized) ¡ 1.8 ¡ 1.6 ¡ 1.4 ¡ 1.2 ¡ 1 ¡ 0.8 ¡ 0.6 ¡
Cache ¡Performance ¡ 2x ¡ 1x ¡ 1/2x ¡ 1/4x ¡ 1/4x ¡STASH ¡ 2 ¡ Miss ¡Rate ¡(Normalized) ¡ 1.8 ¡ 1.6 ¡ 1.4 ¡ 1.2 ¡ 1 ¡ 0.8 ¡ 0.6 ¡ • For ¡1/4x ¡Directory ¡Size, ¡improve ¡execu+on ¡+me ¡by ¡16% ¡on ¡average. ¡ ¡ ¡ ¡ ¡ • Similar ¡in ¡performance ¡to ¡Sparse-‑2x, ¡while ¡being ¡8 ¡+mes ¡smaller. ¡ • False ¡misses ¡are ¡few ¡(<6% ¡of ¡directory ¡misses). ¡ ¡
Scalability ¡ Area: ¡ Bandwidth: ¡ Can ¡Stash ¡remain ¡small? ¡(1/4x) ¡ ¡ Can ¡Stash ¡remain ¡bandwidth ¡ efficient? ¡ ¡ ¡ 1.5 ¡ 1.6 ¡ Bandwidth ¡(Normalized) ¡ Miss ¡Rate ¡(Normalized) ¡ 1.4 ¡ 1.4 ¡ Sparse ¡ 1.3 ¡ PDC ¡ 1.2 ¡ Stash ¡ 1.0 ¡ 1.2 ¡ 1.1 ¡ 0.8 ¡ 0.6 ¡ 1.0 ¡ 0.4 ¡ 0.9 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡ 256 ¡ 512 ¡ 1024 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡ 256 ¡ 512 ¡ 1024 ¡ Core ¡Count ¡ Core ¡Count ¡
Recommend
More recommend