4 ms·
All high-end processors do it, but that doesn't come for free (design/verification effort + silicon area/power). Also, the capacity for this is limited to the
by FullyFunctional 6y ago
All high-end processors do it, but that doesn't come for free (design/verification effort + silicon area/power). Also, the capacity for this is limited to the size of the store buffer so without the needless spills, you can apply all this expensive machinery to more real memory ops.
(A similarly but different debate could be had over all the save/reloads we incur on function entry/exits. 29k and SPARC's register windows were attempts at avoiding those).
- FullyFunctional 6y agoI failed to add that the stores aren't eliminated by this either so we are also incurring increased memory traffic unnecessarily.
- jcranmer 6y agoWe're talking about stores to the stack, which is likely to not be used by other threads/processors, so all of the values are being modified in a cache entry helpfully held in the Modified state and incurring no bus traffic. It will use up the traffic to/from the cache, though.
- FullyFunctional 6y agoYes I did mean cache traffic, poor choice of words, but the point is the same (filling up the store buffers etc).