An instruction set architecture based code compression scheme for embedded processors

Summary form only given. We propose a general purpose code compression scheme for embedded systems, based on the instruction set architecture and report results on the Intel StrongARM, a low-cost, low-power RISC architecture and TI TMS320C62x, a widely used VLIW architecture. Fast decompression techniques are explored to improve the decompression overhead of the compression scheme. Compression ratios ranging from 68% to 75% were obtained for TMS320C62x and 69% to 78% for the StrongARM processor. The basic idea of the compression scheme is to divide the instructions into different logical classes and to build multiple dictionaries for them. The size and the number of multiple dictionaries are fixed for a given processor and are determined by the partitioning algorithm which works over the instruction set architecture supplied as input. Frequently occurring unique instruction segments are inserted into the dictionaries and the instructions are encoded as pointers to the respective entries. An opcode, which helps in fast decompression, is attached to an instruction segment to identify its logical class and the dictionary to be accessed.