Title :
Branch penalty reduction on IBM Cell SPUs via software branch hinting
Author :
Lu, Jing ; Kim, Yooseong ; Shrivastava, Aviral ; Huang, Chuan
Author_Institution :
Compiler Microarchit. Lab., Arizona State Univ., Tempe, AZ, USA
Abstract :
As power-efficiency becomes paramount concern in processor design, architectures are coming up that completely do away with hardware branch prediction, and rely solely on software branch hinting. A popular example is the Synergistic Processing Unit (SPU) in the IBM Cell processor. To be able to minimize the branch penalty using branch hint instructions, in addition to estimating the branch probabilities (which has been looked at before [6, 25, 24]), it is important to carefully insert branch hints. Towards this, in this paper, we i) construct a branch penalty model for compiler, ii) formulate the problem of minimizing branch penalty using branch hinting and iii) propose a heuristic to solve this problem. The heuristic is based on three basic techniques that we introduce in this paper: NOP padding, hint pipelining, and nested loop restructuring. Experimental results on several benchmarks show that our solution can reduce the branch penalty as much as 35.4% over the previous approach.
Keywords :
multiprocessing systems; pipeline processing; program compilers; IBM cell SPU; IBM cell processor; NOP padding; branch hint instructions; branch penalty model; branch penalty reduction; branch probability; compiler; hardware branch prediction; hint pipelining; nested loop restructuring; processor design; software branch hinting; synergistic processing unit; Benchmark testing; Computer architecture; Hardware; Microprocessors; Pipeline processing; Pipelines; Software; Branch hint; Cell processor; Compiler optimization;
Conference_Titel :
Hardware/Software Codesign and System Synthesis (CODES+ISSS), 2011 Proceedings of the 9th International Conference on
Conference_Location :
Taipei
Print_ISBN :
978-1-4503-0715-4