Store Vulnerability Window (SVW): A Filter and Potential Replacement for Load Re-Execution.
Amir Roth · 2006
Load scheduling and execution are performance critical aspects of dynamically-scheduled processing. Several techniques employ speculation on loads with respect to older stores to improve some aspect of load processing. Speculative scheduling and speculative indexed store-load forwarding are two examples. Speculative actions require verification. One simple mechanism that can verify any load speculation is in-order re-execution prior to commit. The drawback of load re-execution is data cache bandwidth consumption. If a given technique requires a sufficient fraction of the loads to re-execute, the resulting contention can severely compromise the intended benefit. Store Vulnerability Window (SVW) is an address-based filtering mechanism that significantly reduces the number of loads that must re-execute to verify a given speculative technique. The high-level idea is that a load need not re-execute if the address it reads has not been written to in a long time. SVW realizes this idea using a store sequence numbering scheme and an adaptation of Bloom filtering. An SVW implementation with a 1KB filter can reduce re-executions by a factor of 200 and virtually eliminate the overhead of re-execution based verification. The same SVW implementation can be used as a complete replacement for re-execution with only 3 % overhead.