In embedded systems, memory requirement is a great concern. In this paper, we address a method for saving memory of an embedded system by using code compression. Generally, we compress code by encoding method like Huffman encoding with some special methods for high performance. Lin suggested code compression method using multiple operand dependencies in which constant operand dependency is included. Using constant operand dependency, a constant value similar to the last constant value is compressed to be short tag instead of encoded word. We implement constant operand dependency related to registers and new method for predicting constant value used by global pointer value setting. We can achieve additional compression ratio enhancement with little decompress-time penalty comparing to Huffman encoding only based methods. The results show that the proposed method results in average compression ratio 61.3% for MediaBench benchmarks and SPEC2000 benchmarks, compiled for a Alpha processor.
임베디드 시스템에서는 적은 메모리로 인한 제약을 해결하는 것이 큰 관건이다. 이 논문에서는 코드를 압축함으로써 메모리 사용량을 줄이는 방법을 소개한다. 일반적으로, 허프만 인코딩 등과 같은 압축 방법에 특별한 기법을 추가함으로써 압축을 푸는 속도가 빠른 압축 코드를 생성하고 높은 압축률을 얻을 수 있다. 명령어의 종류 별로 나누어서 허프만 인코딩을 적용하고, 메모리 형식 명령어에 대해 상수 피연산자 의존 관계를 이용한 압축 기법을 개선한 기법과 전역 포인터 레지스터의 특성을 이용한 압축 방법을 동시에 이용하여 61.3%의 압축률을 얻었다.