Two-Level Dictionary Code Compression: A New Scheme to Improve Instruction Code Density of Embedded Applications

  • Authors:
  • Mikael Collin;Mats Brorsson

  • Affiliations:
  • -;-

  • Venue:
  • Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dictionary code compression is a technique which has been studied as a method to reduce the energy consumed in the instruction fetch path of processors. Instructions or instruction sequences in the code are replaced with short code words. These code words are later used to index a dictionary which contains the original uncompressed instruction or an entire sequence. In this paper, we present a new method which improves on code density compared to previously published dictionary methods. It uses a two-level dictionary design and is capable of handling compression of both individual instructions and code sequences of 2-16 instructions. The two dictionaries are in separate pipeline stages and work together to decompress sequences and instructions. The impact on storage size for the dictionaries is rather small as the sequences in the dictionary are stored as individually compressed instructions, instead of normal instructions. Compared to previous dictionary code compression methods we achieve improved dynamic compression rate, potential for better performance with reasonable static compression rate and with still small dictionary size suitable for context switching.