An Analysis of the Performance Impact of Wrong-Path Memory References on Out-of-Order and Runahead Execution Processors
Autor: | David N. Armstrong, Yale N. Patt, Hyesoon Kim, Onur Mutlu |
---|---|
Rok vydání: | 2005 |
Předmět: |
Instruction prefetch
Instructions per cycle Hardware_MEMORYSTRUCTURES Out-of-order execution Memory hierarchy Computer science CPU cache Speculative execution Instruction window Runahead Parallel computing Branch predictor Execution time CAS latency Theoretical Computer Science Instruction set Computational Theory and Mathematics Hardware and Architecture Software |
Zdroj: | IEEE Transactions on Computers. 54:1556-1571 |
ISSN: | 0018-9340 |
Popis: | High-performance, out-of-order execution processors spend a significant portion of their execution time on the incorrect program path even though they employ aggressive branch prediction algorithms. Although memory references generated on the wrong path do not change the architectural state of the processor, they affect the arrangement of data in the memory hierarchy. This paper examines the effects of wrong-path memory references on processor performance. It is shown that these references significantly affect the IPC (instructions per cycle) performance of a processor. Not modeling them leads to errors of up to 10 percent (4 percent on average) in IPC estimates for the SPEC CPU2000 integer benchmarks on an out-of-order processor and errors of up to 63 percent on a runahead-execution processor. In general, the error in the IPC increases with increasing memory latency and instruction window size. We find that wrong-path references are usually beneficial for performance because they prefetch data that is used by later correct-path references. L2 cache pollution is found to be the most significant negative effect of wrong-path references. Code examples are shown to provide insights into how wrong-path references affect performance. We also show that it is crucial to model wrong-path references to accurately estimate the performance improvement provided by runahead execution. |
Databáze: | OpenAIRE |
Externí odkaz: |