Two-Level Dictionary Code Compression: a New Scheme to Improve Instruction Code Density of Embedded Applications
2009 (English)In: CGO 2009: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, PROCEEDINGS, LOS ALAMITOS: IEEE COMPUTER SOC , 2009, 231-242 p.Conference paper (Refereed)
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.
Place, publisher, year, edition, pages
LOS ALAMITOS: IEEE COMPUTER SOC , 2009. 231-242 p.
Dictionary code compression, code density-optimization, code generation
Computer and Information Science
IdentifiersURN: urn:nbn:se:kth:diva-30143DOI: 10.1109/CGO.2009.16ISI: 000275712400022ScopusID: 2-s2.0-67650566219ISBN: 978-0-7695-3576-0OAI: oai:DiVA.org:kth-30143DiVA: diva2:401863
7th International Symposium on Code Generation and Optimization Seattle, WA, MAR 22-25, 2009