Title : 
Experiment flows and microbenchmarks for reverse engineering of branch predictor structures
         
        
            Author : 
Vladimir Uzelac;Aleksandar Milenkovic
         
        
            Author_Institution : 
Electrical and Computer Engineering Department, The University of Alabama in Huntsville, USA
         
        
        
        
        
            Abstract : 
Insights into branch predictor organization and operation can be used in architecture-aware compiler optimizations to improve program performance. Unfortunately, such details are rarely publicly disclosed. In this paper we introduce a set of experiment flows and corresponding microbenchmarks for reverse engineering cache-like branch target and outcome predictor structures, indexed by branch address or program path information. The experiment flows are demonstrated on the Intel Pentium M branch predictor. We have been able to determine the size, organization, internal operation, and interactions between various hardware structures used in the Pentium M branch predictor, namely the branch target buffer, indirect branch target buffer, loop branch predictor buffer, global predictor, and bimodal predictor. These findings have been validated using a functional PIN model.
         
        
            Keywords : 
"Reverse engineering","History","Microprocessors","Hardware","Interference","Program processors","Optimizing compilers","Pipelines","Clocks","Hazards"
         
        
        
            Conference_Titel : 
Performance Analysis of Systems and Software, 2009. ISPASS 2009. IEEE International Symposium on
         
        
            Print_ISBN : 
978-1-4244-4184-6
         
        
        
            DOI : 
10.1109/ISPASS.2009.4919652