A code compression system based on pipelined interpreters

J. Hoogerbrugge, A. Augusteijn, J.J.C. Trum, H.W.J. van de Wiel

Research output: Contribution to journalArticleAcademicpeer-review

46 Citations (Scopus)
5 Downloads (Pure)

Abstract

This paper describes a system for compressed code generation. The code of applications is partioned into time-critical and non-time-critical code. Critical code is compiled to native code, and non-critical code is compiled to a very dense virtual instruction set which is executed on a highly optimized interpreter. The system employs dictionary-based compression by means of superinstructions which correspond to patterns of frequently used base instructions. The code compression system is designed for the Philips TriMedia VLIW processor. The interpreter is pipelined to achieve a high interpretation speed. The pipeline consists of three stages: fetch, decode, and execute. While one instruction is being executed, the next instruction is decoded, and the next one after that is fetched from memory. On a TriMedia VLIW with a load latency of three cycles and a jump latency of four cycles, the interpreter achieves a peak performance of four cycles per instruction and a sustained performance of 6.27 cycles per instruction. Experiments are described that demonstrate the compression quality of the system and the execution speed of the pipelined interpreter; these were found to be about five times more compact than native TriMedia code and a slowdown of about eight times, respectively.
Original languageEnglish
Pages (from-to)1005-1023
Number of pages19
JournalSoftware : Practice and Experience
Volume29
Issue number11
DOIs
Publication statusPublished - 1999

Fingerprint

Dive into the research topics of 'A code compression system based on pipelined interpreters'. Together they form a unique fingerprint.

Cite this