a hamming distance based vliw/epic code compression technique
This paper presents and reports on a VLIW code compression technique based on vector Hamming distances. It investigates the appropriate selection of dictionary vectors such that all program vectors are at most a specified maximum Hamming distance from a dictionary vector. Bit toggling information is used to restore the original vector.A dictionary vector selection method which considered both vector frequency as well as maximum coverage achieved better results than just considering vector frequency or vector coverage independently. This method was found to outperform standard dictionary compression on TI TMS320C6x program code by an average of 8\%, giving compression ratios of 72.1\% to 80.3\% when applied to the smallest compiler builds. The most favorable results were achieved with a Hamming distance upper limit of 3.An investigation into parallel compression showed that dividing the program into 32-bit parallel streams returned an average compression ratio of 79.4\% for files larger than 200kb. This approach enables parallel decompression of instruction streams within a VLIW instruction word. Suggestions for further work include compiler/compression integration, more sophisticated dictionary selection methods and better codeword allocation.
hamming distance vliw code compression