Summary and Conclusion
The important features and defining characteristics of the three software based x86 compatibility systems featured in this article, DEC’s FX!32, Transmeta’s CMS, and Intel’s IA-32 EL, are summarized in Table 1. Of the three schemes examined, FX!32 and IA-32 EL are the most similar in purpose and application – to supplement a limited native 64 bit software base with 32 bit x86 applications. Although current IA-64 processors include x86 compatibility in hardware, the use of IA-32 EL is preferable as it provides much higher x86 application performance. In contrast to the supporting role that FX!32 and IA-32 EL play, CMS was expressly created for the novel purpose of competing in the market for x86 compatible MPUs with non-x86 compatible processors. Because of that starring role, many architectural features were included in the host processor to assist it. In terms of operation, CMS and IA-32 EL are the most similar – both collect profile information and perform x86 to native code translation on the fly during program execution. In contrast, FX!32 translates and optimizes x86 programs only after they are run under emulation to completion. The translation is performed in the background and provides for faster subsequent execution of the same program.
Two phase Translator
Relationship to OS
32b and 64b
32b, 64, and 80b
32b, 64b, and 80b
Table 1 – Comparison of FX!32, CMS, and IA-32 EL
Through a quirk of history, and an irresistible combination of the software networking effect and semiconductor manufacturing economies of scale, the x86 instruction set architecture has come to possess the most valuable software base in history. The trail blazed by FX!32, CMS, and IA-32 EL demonstrate that it is possible to exploit the huge x86 software base without enslaving microprocessor architects to this quarter century old CISC ISA’s obsolete conventions, unnecessary inefficiencies, and burdensome irregularity. The emerging technology of software based ISA compatibility through dynamic translation allows us to envision a future where the accumulated software virtues of x86 (i.e. the great application base) live on long after its hardware sins are left behind.
 Baraz, L. et al, “IA-32 Execution Layer: a Two Phase Dynamic Translator Designed to Support IA-32 Applications on Itanium-based Systems”, Proceedings of the 36th International Symposium on Microarchitecture, 2003.
Discuss (18 comments)