Code Compression to Reduce Cache Accesses
Code compression has been shown to be an effective technique to reduce code size in memory constrained embedded systems. It has also been used as a way to increase cache hits, thus reducing power consumption and improving performance. This report proposes a simple dictionary-based technique for code compression. It describes an approach to mix static/dynamic instruction profiling so as to trade-off compression ratio for performance. Compressed instructions are stored as variable-size indices into fixed-size codewords, thus reducing dictionary entry superpositions and compressed code misalignments simultaneously. Moreover, a decompressor buffering scheme is proposed that considerably decreases cache lookups. Experimental results, using the LEON SparcV8 processor and a program mix from MiBench and Mediabench, show that our approach halves the number of cache accesses while produce compression ratios as low as 56\%.
2003