Critical Issues Regarding the Trace Cache Fetch Mechanism

In order to meet the demands of wider issue processors, fetch mechanisms will need to fetch multiple basic blocks per cycle. The trace cache supplies several basic blocks each cycle by storing logically contiguous instructions in physically contiguous storage. When a particular basic block is requested, the trace cache can potentially respond with the requested block along with several blocks that followed it when the block was last encountered. In this technical report, we examine some critical features of a trace cache mechanism designed for a 16-wide issue processor and evaluate their eeects on performance. We examine features such as cache associativity, storage partitioning, branch predictor design, instruction cache design, and ll unit design. We compare the performance of our trace cache mechanism with that of the design presented by Rotenberg et al 19] and show a 23% improvement in performance. In our nal analysis, we compare our trace cache mechanism with an aggressive single basic block fetch mechanism and show that the trace cache mechanism attains a 24% improvement in performance.

[1]  Joseph A. Fisher,et al.  Trace Scheduling: A Technique for Global Microcode Compaction , 1981, IEEE Transactions on Computers.

[2]  Yale N. Patt,et al.  HPS, a new microarchitecture: rationale and introduction , 1985, MICRO 18.

[3]  Robert P. Colwell,et al.  A VLIW architecture for a trace scheduling compiler , 1987, ASPLOS.

[4]  Yale N. Patt,et al.  Hardware Support For Large Atomic Units in Dynamically Scheduled Machines , 1988, [1988] Proceedings of the 21st Annual Workshop on Microprogramming and Microarchitecture - MICRO '21.

[5]  Yale N. Patt,et al.  Performance benefits of large execution atomic units in dynamically scheduled machines , 1989, ICS '89.

[6]  David R. Kaeli,et al.  Branch History Table Prediction of Moving Target Branches due to Subroutine Returns , 1991, ISCA.

[7]  Yale N. Patt,et al.  Author retrospective for increasing the instruction fetch rate via multiple branch prediction and a branch address cache , 2014, ICS 25th Anniversary.

[8]  S. McFarling Combining Branch Predictors , 1993 .

[9]  Yale N. Patt,et al.  Branch classification: a new mechanism for improving branch predictor performance , 1994, MICRO.

[10]  Norman P. Jouppi,et al.  WRL Research Report 93/5: An Enhanced Access and Cycle Time Model for On-chip Caches , 1994 .

[11]  Yale N. Patt,et al.  Facilitating superscalar processing via a combined static/dynamic register renaming scheme , 1994, Proceedings of MICRO-27. The 27th Annual IEEE/ACM International Symposium on Microarchitecture.

[12]  Manoj Franklin,et al.  A fill-unit approach to multiple instruction issue , 1994, Proceedings of MICRO-27. The 27th Annual IEEE/ACM International Symposium on Microarchitecture.

[13]  Improving CISC instruction decoding performance using a fill unit , 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture.

[14]  M. Franklin,et al.  Control flow prediction with tree-like subgraphs for superscalar processors , 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture.

[15]  Burzin A. Patel,et al.  Optimization of instruction fetch mechanisms for high issue rates , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[16]  Pascal Sainrat,et al.  Multiple-block ahead branch predictors , 1996, ASPLOS VII.

[17]  Yale N. Patt,et al.  Improving branch prediction accuracy by reducing pattern history table interference , 1996, Proceedings of the 1996 Conference on Parallel Architectures and Compilation Technique.

[18]  Eric Rotenberg,et al.  Trace cache: a low latency approach to high bandwidth instruction fetching , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[19]  Increasing the instruction fetch rate via block-structured instruction set architectures , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[20]  Robert Yung Design decisions influencing the UltraSPARC's instruction fetch architecture , 1996, MICRO.

[21]  Nader Bagherzadeh,et al.  Multiple branch and block prediction , 1997, Proceedings Third International Symposium on High-Performance Computer Architecture.

[22]  James E. Smith,et al.  A study of branch prediction strategies , 1981, ISCA '98.