Loading [MathJax]/extensions/MathMenu.js
Store buffer design in first-level multibanked data caches | IEEE Conference Publication | IEEE Xplore

Store buffer design in first-level multibanked data caches


Abstract:

This paper focuses on how to design a store buffer (STB) well suited to first-level multibanked data caches. Our goal is to forward data from in-flight stores to dependen...Show More

Abstract:

This paper focuses on how to design a store buffer (STB) well suited to first-level multibanked data caches. Our goal is to forward data from in-flight stores to dependent loads with the latency of a cache bank. For that we propose a particular two-level STB design in which forwarding is done speculatively from a distributed first-level STB made of extremely small banks, while a centralized, second-level STB enforces correct store-load ordering a few cycles later. To that end we have identified several important design decisions: i) delaying allocation of first-level STB entries until stores execute; ii) deallocating first-level STB entries before stores commit; and iii) selecting a recovery policy well-matched to data forwarding misspeculations. Moreover, the two-level STB admits two enhancements that simplify the design leaving performance almost unchanged: i) removing the data forwarding capability from the second-level STB; and ii) not checking instruction age in first-level STB prior to forwarding data to loads. Following our guidelines and running SPECint-2K over an 8-way out-of-order processor, a two-level STB (first level with four STB banks of 8 entries each) performs similarly to an ideal, single-level STB with 128-entry banks working at the first-level cache latency.
Date of Conference: 04-08 June 2005
Date Added to IEEE Xplore: 20 June 2005
Print ISBN:0-7695-2270-X
Print ISSN: 1063-6897
Conference Location: Madison, WI, USA

Contact IEEE to Subscribe

References

References is not available for this document.