DocumentCode :
2704923
Title :
Compiler managed dynamic instruction placement in a low-power code cache
Author :
Ravindran, Rajiv A. ; Nagarkar, Pracheeti D. ; Dasika, Ganesh S. ; Marsman, Eric D. ; Senger, Robert M. ; Mahlke, Scott A. ; Brown, Richard B.
Author_Institution :
Dept. of EECS, Michigan Univ., Ann Arbor, MI, USA
fYear :
2005
fDate :
20-23 March 2005
Firstpage :
179
Lastpage :
190
Abstract :
Modern embedded microprocessors use low power on-chip memories called scratch-pad memories to store frequently executed instructions and data. Unlike traditional caches, scratch-pad memories lack the complex tag checking and comparison logic, thereby proving to be efficient in area and power. In this work, we focus on exploiting scratch-pad memories for storing hot code segments within an application. Static placement techniques focus on placing the most frequently executed portions of programs into the scratch-pad. However, static schemes are inherently limited by not allowing the contents of the scratch-pad memory to change at run time. In a large fraction of applications, the instruction memory footprints exceed the scratch-pad memory size, thereby limiting the usefulness of the scratch-pad. We propose a compiler managed dynamic placement algorithm, wherein multiple hot code sequences, or traces, are overlapped with each other in the scratch-pad memory at different points in time during execution. Special copy instructions are provided to copy the traces into the scratch-pad memory at run-time. Using a power estimate, the compiler initially selects the most frequent traces in an application for relocation into the scratch-pad memory. Through iterative code motion and redundancy elimination, copy instructions are inserted in infrequently executed regions of the code. For a 64-byte code cache, the compiler managed dynamic placement achieves an average of 64% energy improvement over the static solution in a low-power embedded microcontroller.
Keywords :
cache storage; optimising compilers; program control structures; reduced instruction set computing; comparison logic; compiler managed dynamic instruction placement; complex tag checking; copy instruction; embedded microprocessors; iterative code motion; low power on-chip memories; low-power code cache; redundancy elimination; scratch-pad memories; Data engineering; Dynamic compiler; Educational institutions; Energy consumption; Energy management; Hardware; Microprocessors; Power engineering and energy; Software maintenance; Switches;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Code Generation and Optimization, 2005. CGO 2005. International Symposium on
Print_ISBN :
0-7695-2298-X
Type :
conf
DOI :
10.1109/CGO.2005.13
Filename :
1402087
Link To Document :
بازگشت