The Impact of Instruction Compression on I-cache Performance

I-Cheng K. Chen, Peter L. Bird, Trevor Mudge · 1997

In this paper we present a straightforward technique for compressing the instruction stream for programs that overcomes some of the limitations of earlier proposals. After code generation, the instruction stream is analysed for frequently used sequences of instructions from within the program's basic blocks. These patterns of multiple instructions are then mapped into single byte opcodes. This constitutes a compression of multiple, multi-byte operations onto a single byte. When compressed opcodes are detected during the instruction fetch cycle of program execution, they are expanded within the CPU into the original (multi-cycle) sequence of instructions. We only examine patterns within a program's basic block, so branch instructions and their targets are unaffected by this technique allowing compression to be decoupled from compilation. 1. Introduction Compilers are universally used for program development, due to the complexity of managing the large applications developed today. How...

Read the paper · More papers on PaperTik