Optimization of Storage-Referencing Gestures

We describe techniques for identifying and optimizing memory-accessing instruction sequences. We capture a sequence of such instructions, with the goal of sending the sequence as a single instruction from the CPU to a smart memory subsystem (IRA M or PIM). With a soft ware/hardware codesign, the memory-accessing gestures can be rewritt en as succinct superoperator instructions, and the gestures themselves could vary at runtime. As a result, the CPU executes fewer instructions and the CPU-memory bus is charged less oft en, resulting in lower power consumption. Reduction in power can be crucial for constrained, embedded systems. We discover gestures using a static and a dynamic approach, and we present data showing the presence of such gestures in real benchmarks ( Java and C). We have shown the gesture-minimization problem to be NPComplete, so we offe r in this paper a heuristic approach the effe ctiveness of which we evaluate with experiments. ... Read complete abstract on page 2.

[1]  Lucas M. Fox Memory-Accessing Optimization Via Gestures , 2003 .

[2]  Christopher W. Fraser,et al.  Bytecode compression via profiled grammar rewriting , 2001, PLDI '01.

[3]  Martin R. Linenweber A Study in Java ByteCode Engineering with PCESjava , 2003 .

[4]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[5]  Tilman Wolf,et al.  CommBench-a telecommunications benchmark for network processors , 2000, 2000 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS (Cat. No.00EX422).

[6]  Todd A. Proebsting Optimizing an ANSI C interpreter with superoperators , 1995, POPL '95.

[7]  Christopher R. Hill Static Analysis of Memory-Accessing Gestures in Java , 2004 .

[8]  Andrew A. Chien,et al.  An automatic object inlining optimization and its evaluation , 2000, PLDI '00.