BACH: BYU Address Collection Hardware, The Collection of Complete Traces

Trace driven simulation is an important tool for computer systems performance analysis and prediction, but its accuracy decreases when incomplete or inaccurate traces are used for input. Nevertheless, many memory hierarchy simulation studies have been published which rely on such traces. In this paper we describe BACH, a hardware monitor developed to capture long, accurate, and complete traces on a variety of hardware and software platforms. BACH traces are long | traces containing over 200 million contiguous references have been collected to date. BACH traces are accurate | in contrast to other techniques such as inlining they contain almost no time and space dilation e ects. BACH traces are complete | they contain all references generated by the CPU during tracing, including prefetches and demand fetches from user code, system calls, exceptions, interrupts, and other system code. Finally, the traces produced using BACH are available to members of the general research community. In addition, we demonstrate the usefulness of the traces acquired using BACH through a cache simulation study. The miss rates obtained using BACH traces are shown to be as much as 50 times higher than those obtained using other traces. It is also shown that with a memory access time of 30, predictions of e ective access time can be o by as much as a factor of 2 when using inaccurate or incomplete trace data.