Use an illustrative design study, not a benchmark: extend the C0/C1 workload to many requesters while retaining one home per line. The report says independently written counters share lines, one synchronization X is truly shared, directory sets show replacement pressure, and a strided array maps most addresses to one home. These are four mechanisms, not one generic coherence problem.
Measured mechanism to establish | Candidate change | Evidence against the candidate |
|---|---|---|
Independent fields cause transfers | Separate fields or batch their writers | Transfers do not follow those addresses, or footprint cost dominates. |
One truly shared X dominates updates | Reduce shared update frequency with a defined algorithm | Required semantics forbid aggregation, or merge cost dominates. |
Directory set conflicts cause retirement | Change capacity, associativity or mapping | Pending capacity rather than tagged-entry capacity is full. |
Static home mapping aliases a stride | Evaluate another static mapping | One hot line rather than many addresses creates the demand. |
Start with the two-core microcases before generalizing. They isolate field sharing, one-line contention and static address mapping. Then replay the same logical operations on each candidate. Preserve values and synchronization meaning first; a lower message total with missing updates is disqualified, not a performance win.
Report units: messages, payload bytes, endpoint probes, cycles, occupancy and metadata bits are distinct. In the false-sharing count, 62 versus 4 messages is not 15.5x runtime. In the directory calculation, 66 versus 31 bits per selected entry is not half the complete directory area. In the home example, four/four requests is not equal service time.
Any throughput or waiting-time prediction needs a service model. State finite queue capacities, admission policy, eventual delivery and fair completion assumptions; add upper bounds if promising a cycle limit. Keep the finite-resource dependency graph valid when reallocating buffers to the proposed optimization.
No. It can redistribute different lines. It cannot divide conflicting operations on one line into unrelated coherence orders.