DocumentCode :
2404017
Title :
Hardware support for control transfers in code caches
Author :
Kim, Ho-Seop ; Smith, James E.
Author_Institution :
Dept. of Electr. & Comput. Eng., Wisconsin Univ., Madison, WI, USA
fYear :
2003
fDate :
3-5 Dec. 2003
Firstpage :
253
Lastpage :
264
Abstract :
Many dynamic optimization and/or binary translation systems hold optimize/translated superblocks in a code cache. Conventional code caching systems suffer from overheads when control is transferred form one cached superblock to another, especially via register-indirect jumps. The basic problem is that instruction addresses in the code cache are different from those in the original program binary. Therefore, performance for register-indirect jumps depends on the ability to translate efficiently from source binary PC values to code cache PC values. We analyze several key aspects of superblock chaining and find that a conventional baseline code cache with software jump target prediction results in 14.6% IPC loss versus the original binary. We identify the inability to use a conventional return address stack as the most significant performance limiter in code cache systems. We introduce a modified software prediction technique that reduces the IPC loss to 11.4%. This technique is based on a technique used in threaded code interpreters. A number of hardware mechanisms, including a specialized return address stack and a hardware cache for translated jump target addresses, are studied for efficiently supporting register-indirect jumps. Once all the chaining overheads are removed by these support mechanisms, a superblock-based code cache improves performance due to a better branch prediction rate, improved I-cache locality, and increased chances of straight-line fetches. Simulation results show a 7.7% IPC improvement over a current generation 4-way superscalar processor.
Keywords :
cache storage; instruction sets; optimisation; parallel architectures; performance evaluation; binary translation systems; branch prediction; code caching systems; control transfers; dynamic optimization; hardware support; register-indirect jumps; return address stack; software jump target prediction; software prediction; superblock chaining; superscalar processor; Binary codes; Control systems; Hardware; Instruction sets; Java; Optimization methods; Performance gain; Performance loss; Runtime; Sun;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Microarchitecture, 2003. MICRO-36. Proceedings. 36th Annual IEEE/ACM International Symposium on
Print_ISBN :
0-7695-2043-X
Type :
conf
DOI :
10.1109/MICRO.2003.1253200
Filename :
1253200
Link To Document :
بازگشت