Optimization of instruction fetch mechanisms for high issue rates
- 1 May 1995
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGARCH Computer Architecture News
- Vol. 23 (2) , 333-344
- https://doi.org/10.1145/225830.224444
Abstract
Recent superscalar processors issue four instructions per cycle. These processors are also powered by highly-parallel superscalar cores. The potential performance can only be exploited when fed by high instruction bandwidth. This task is the responsibility of the instruction fetch unit. Accurate branch prediction and low I-cache miss ratios are essential for the efficient operation of the fetch unit. Several studies on cache design and branch prediction address this problem. However, these techniques are not sufficient. Even in the presence of efficient cache designs and branch prediction, the fetch unit must continuously extract multiple, non-sequential instructions from the instruction cache, realign these in the proper order, and supply them to the decoder. This paper explores solutions to this problem and presents several schemes with varying degrees of performance and cost. The most-general scheme, the collapsing buffer, achieves near-perfect performance and consistently aligns instructions in excess of 90% of the time, over a wide range of issue rates. The performance boost provided by compiler optimization techniques is also investigated. Results show that compiler optimization can significantly enhance performance across all schemes. The collapsing buffer supplemented by compiler techniques remains the best-performing mechanism. The paper closes with recommendations and suggestions for future.Keywords
This publication has 9 references indexed in Scilit:
- Using branch handling hardware to support profile-driven optimizationPublished by Association for Computing Machinery (ACM) ,1994
- Architecture of the Pentium microprocessorIEEE Micro, 1993
- The superblock: An effective technique for VLIW and superscalar compilationThe Journal of Supercomputing, 1993
- Fast instruction cache performance evaluation using compile-time analysisPublished by Association for Computing Machinery (ACM) ,1992
- Using profile information to assist classic code optimizationsSoftware: Practice and Experience, 1991
- The effects of processor architecture on instruction memory trafficACM Transactions on Computer Systems, 1990
- Profile guided code positioningPublished by Association for Computing Machinery (ACM) ,1990
- Program optimization for instruction cachesPublished by Association for Computing Machinery (ACM) ,1989
- Achieving high instruction cache performance with an optimizing compilerPublished by Association for Computing Machinery (ACM) ,1989