Issues in the design of store buffers in dynamically scheduled processors

  • Authors:
  • R. Bhargava;L. K. John

  • Affiliations:
  • Lab. for Comput. Archit., Texas Univ., Austin, TX, USA;-

  • Venue:
  • ISPASS '00 Proceedings of the 2000 IEEE International Symposium on Performance Analysis of Systems and Software
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Processor performance can be sensitive to load-store ordering, memory bandwidth, and memory access latency. A store buffer is a mechanism that exists in many current processors to accomplish one or more of the following: store access ordering, latency hiding, and data forwarding. Different policies that govern store buffer behavior can affect overall processor performance. However, the performance impact of various store buffer policies is not clearly analyzed in available literature. In this paper, we look into various store buffer issues such as i) where to place it in the pipeline, ii) when to remove a store entry from the store buffer, iii) when to allow the stores to be retired, and iv) if, when, and how to set the contention priority of memory operations. These issues are explained in detail while design and performance tradeoffs are assessed. Using a variety of C, C++, and Java benchmarks, we establish how these design policies influence performance. We find that the policies for store entry removal and store buffer pipeline placement have a large effect on the overall performance of a microprocessor. In addition, we see that smaller, well-designed store buffers can achieve comparable performance to larger, basic store buffers. Combining these results with an analysis of the benchmarks can help one fully understand the role of the store buffer and the tradeoffs involved.