| | |
Summary: This is an update of the paper that appears in the Proceedings of the 5th Workshop on Multithreaded Execution, Architecture, and Compilation,
pages 23-34, Austin TX, December, 2001. It includes minor text changes and revised results.
23
Abstract
We study the dynamic stream of slices (i.e., slice traces) that lead to
branches that foil an existing branch predictor and to loads that
miss and measure whether these slices exhibit locality (i.e., repeti-
tion). We argue that this regularity can be used to dynamically
extract slices for an operation-based predictor that speculatively
pre-computes a load address or branch target (i.e., an outcome)
rather than directly predicting the outcome based upon the history
of outcomes. We study programs from the SPEC2000 suite and find
they exhibit good slice locality for these problem loads and
branches. Moreover, we study the performance of an idealized oper-
ation-based predictor (it can execute slices instantaneously). We
find that it interacts favorably with an existing sophisticated out-
come-based branch predictor, and that slice locality provides good
insight into the fraction of all branch mispredictions it can poten-
tially eliminate. Similar observations hold for operation-based
prefetching of loads that miss. On average slice locality for
|