ANNÉE 2017 THÈSE / UNIVERSITÉ DE RENNES 1 sous le sceau de l’Université Bretagne Loire pour le grade de DOCTEUR DE L’UNIVERSITÉ DE RENNES 1 Mention : Informatique Mathmatiques et Sciences et Technologies de l’Information et de la Communication (MATHSTIC) présentée par Andrea Mondelli préparée à l’unité de recherche INRIA Institut National de Recherche en Informatique et Automatique Université de Rennes 1 Revisiting Thèse soutenue à Rennes le 12 Septembre 2017 Wide devant le jury composé de : Steven Derrien Superscalar Professeur à l’Université de Rennes 1/Président Bernard Goossens Microarchitecture Professeur à l’Université de Perpignan/rapporteur Smail Niar Professeuràl’UniversitédeValenciennes/rapporteur Karine Heydemann Maître de conference/examinateur André Seznec Directeur de recherche, INRIA Rennes/directeur de thèse Pierre Michaud Chargéderecherche,INRIARennes/co-directeurde thèse Dear Mary, do you [know who] will be on the boats? I’m still in Gaza, waiting for you. I will be at the boat to greet you. Stay human. Vik. Vittorio Arrigoni Remerciements Contents Résumé en Français 5 1 Introduction 9 1.1 Purpose of this work . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2 State of the Art 13 2.1 From Pipeline to Superscalar. . . . . . . . . . . . . . . . . . . . . 13 2.2 Performance Technique of Superscalar Processors . . . . . . . . . 16 2.2.1 Instruction Level Parallelism . . . . . . . . . . . . . . . . . 16 2.2.2 The Branch Predictor . . . . . . . . . . . . . . . . . . . . 18 2.2.3 The Register Renaming . . . . . . . . . . . . . . . . . . . 18 2.2.4 Out-of-Order Execution . . . . . . . . . . . . . . . . . . . 20 2.3 Wide-issue complexity . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3.1 Limits of performance scaling . . . . . . . . . . . . . . . . 22 2.3.2 Impact of critical components . . . . . . . . . . . . . . . . 24 2.3.3 Front-end bandwidth . . . . . . . . . . . . . . . . . . . . . 25 2.3.4 Level-one data cache . . . . . . . . . . . . . . . . . . . . . 25 2.3.5 Bypass network paths . . . . . . . . . . . . . . . . . . . . 26 2.3.6 Load/Store queues . . . . . . . . . . . . . . . . . . . . . . 27 2.3.7 Reduce the complexity by limiting pipeline activity . . . . 29 2.4 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.1 Clustered microarchitectures . . . . . . . . . . . . . . . . . 30 2.4.2 Issue Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4.3 Steering . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.4.4 Write Specialization . . . . . . . . . . . . . . . . . . . . . 35 2.4.5 Bypass network and intercluster delay . . . . . . . . . . . 37 2.4.6 Clustering in Commercial Superscalar Processors . . . . . 37 2.4.7 Clustered VLIW/DSP architectures . . . . . . . . . . . . . 39 2.5 Energy saving exploiting loops . . . . . . . . . . . . . . . . . . . . 40 1 2 CONTENTS 2.5.1 Saving loop energy in the front-end . . . . . . . . . . . . . 40 2.5.2 Using a dedicated cache for loops . . . . . . . . . . . . . . 41 2.5.3 Saving loop energy in the back-end . . . . . . . . . . . . . 44 2.5.4 Loop accelerators . . . . . . . . . . . . . . . . . . . . . . . 45 2.5.5 Industrial adoption of loop cache solutions . . . . . . . . . 46 3 Wide Issue Clustered Microarchitecture 47 3.1 A case of increasing single-thread IPC . . . . . . . . . . . . . . . 47 3.2 Experimental Framework . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.1 Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.2 Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.2.3 Baseline Microarchitecture . . . . . . . . . . . . . . . . . . 51 3.3 Potential IPC gains from a more complex superscalar microarchi- tecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.4 Dual-Clustered Configurations . . . . . . . . . . . . . . . . . . . . 55 3.4.1 Dual-Cluster with baseline instruction window size . . . . 57 3.4.2 Dual-cluster with double instruction window . . . . . . . . 57 3.4.3 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.4.4 Possible steps toward the proposed dual-cluster configuration 62 3.5 Energy Considerations . . . . . . . . . . . . . . . . . . . . . . . . 63 3.5.1 Static EPI . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.5.2 Gating intercluster communications for reduced dynamic EPI 64 3.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4 Exploiting loops for reducing energy in a superscalar out-of-order core 67 4.1 Baseline and Experimental Setup . . . . . . . . . . . . . . . . . . 68 4.2 Loop Buffer and Loop Detector . . . . . . . . . . . . . . . . . . . 69 4.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.2.2 Loop buffer size . . . . . . . . . . . . . . . . . . . . . . . . 73 4.2.3 Tuning MinIter . . . . . . . . . . . . . . . . . . . . . . . . 74 4.3 Redundant Micro-Op Removal . . . . . . . . . . . . . . . . . . . . 76 4.3.1 Proposed mechanism . . . . . . . . . . . . . . . . . . . . . 76 4.3.2 Identification of redundant micro-ops . . . . . . . . . . . . 77 4.3.3 Modification of register renaming . . . . . . . . . . . . . . 78 4.3.4 Loads and stores . . . . . . . . . . . . . . . . . . . . . . . 79 4.3.5 Simulation Results . . . . . . . . . . . . . . . . . . . . . . 80 4.3.6 Compiler Optimization impact: a case study . . . . . . . . 82 4.4 Reducing the energy of loads . . . . . . . . . . . . . . . . . . . . . 86 4.4.1 Speculative load execution . . . . . . . . . . . . . . . . . . 86 4.4.2 DL1/STQ gating? . . . . . . . . . . . . . . . . . . . . . . . 88 CONTENTS 3 4.4.3 Store Queue and DL1 gating in Loop Mode . . . . . . . . 90 4.4.4 STQ gating alone . . . . . . . . . . . . . . . . . . . . . . . 91 4.4.5 DL1 gating alone . . . . . . . . . . . . . . . . . . . . . . . 91 4.4.6 STQ gating and DL1 gating combined . . . . . . . . . . . 92 4.4.7 Gating the memory dependence predictor table . . . . . . 94 4.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5 Conclusion 97 5.1 The superscalar architecture of the future . . . . . . . . . . . . . 97 5.2 Exploiting loops for power consumption . . . . . . . . . . . . . . . 99 5.3 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Bibliography 103 Author’s Publications 118 List of Acronyms 123 List of Figures 125
Description: