Exploiting Basic Block Value Locality with Block Reuse
نویسندگان
چکیده
Value prediction at the instruction level has been introduced to allow more aggressive speculation and reuse than previous techniques. We investigate the input and output values of basic blocks and find that these values can be quite regular and predictable, suggesting that using compiler support to extend value prediction and reuse to a coarser granularity may have substantial performance benefits. For the SPEC benchmark programs evaluated, 90% of the basic blocks have fewer than 4 register inputs, 5 live register outputs, 4 memory inputs and 2 memory outputs. About 16% to 41% of all the basic blocks are simply repeating earlier calculations when the programs are compiled with the -O2 optimization level in the GCC compiler. We evaluate the potential benefit of basic block reuse using a novel mechanism called a block history buffer. This mechanism records input and live output values of basic blocks to provide value prediction and reuse at the basic block level. Simulation results show that using a reasonably-sized block history buffer to provide basic block reuse in a 4-way issue superscalar processor can improve execution time for the tested SPEC programs by 1% to 14% with an overall average of 9%.
منابع مشابه
Improving Processor Performance Through Compiler-Assisted Block Reuse
Superscalar microprocessors currently power the majority of computing machines. These processors are capable of executing multiple independent instructions in each clock cycle by exploiting the Instruction-Level Parallelism (ILP) available in programs. Theoretically, there is a considerable amount of ILP available in most programs. However, the actual amount of exploitable ILP within a fixed in...
متن کاملExtending Value Reuse to Basic Blocks with Compiler Support
Speculative execution and instruction reuse are two important strategies that have been investigated for improving processor performance. Value prediction at the instruction level has been introduced to allow even more aggressive speculation and reuse than previous techniques. This study suggests that using compiler support to extend value reuse to a coarser granularity than a single instructio...
متن کاملCompiler-Assisted Sub-Block Reuse
The fact that instructions in programs often produce repetitive results has motivated researchers to explore various alternatives to exploit this value locality, such as value prediction and value reuse. Value prediction improves the available Instruction-Level Parallelism (ILP) by allowing dependent instructions to be executed speculatively after predicting the values of their operands. Value ...
متن کاملBalancing Reuse Opportunities and Performance Gains with Subblock Value Reuse
The fact that instructions in programs often produce repetitive results has motivated researchers to explore various techniques, such as value prediction and value reuse, to exploit this behavior. Value prediction improves the available Instruction-Level Parallelism (ILP) in superscalar processors by allowing dependent instructions to be executed speculatively after predicting the values of the...
متن کاملA Comparison Study of Data Cache Schemes Exploiting Reuse Information in Multiprocessor Systems
Recent cache research has mainly focused on designs for splitting the first-level data cache. Although the underlying goal of all cache schemes is to exploit data localities, the means to this end vary widely between different schemes. One important set of schemes appearing in the open literature makes use of the reuse information. Performance results presented in the open literature are usuall...
متن کامل