  Modern societies have developed insatiable demands for more computation
capabilities. Exploiting implicit parallelism to provide automatic performance
improvement remains a central goal in engineering future general-purpose
computing systems. One approach is to use a separate thread context to perform
continuous look-ahead to improve the data and instruction supply to the main
pipeline. Such a decoupled look-ahead (DLA) architecture can be quite effective
in accelerating a broad range of applications in a relatively straightforward
implementation. It also has broad design flexibility as the look-ahead agent
need not be concerned with correctness constraints. In this paper, we explore a
number of optimizations that make the look-ahead agent more efficient and yet
extract more utility from it. With these optimizations, a DLA architecture can
achieve an average speedup of 1.4 over a state-of-the-art microarchitecture for
a broad set of benchmark suites, making it a powerful tool to enhance
single-thread performance.
