The Transmeta Crusoe: VLIW Embedded in CISC
Transmeta’s Crusoe microprocessor is a full, system-level implementation of the x86 architecture, comprising a native VLIW microprocessor with an embedded software layer, the Code Morphing Software (CMS). CMS combines an interpreter, dynamic binary translator, optimizer, and run-time system. By moving infrequently-used or complex functionality to CMS, Crusoe achieves a much simpler hardware implementation than would otherwise be possible, while improving flexibility. This makes it attractive for such applications as low-power laptops and notebooks or embedded systems such as printers, while still allowing the use of widely available standard software and development tools.
In its general structure, CMS resembles other binary translation systems described in the literature, but it is unique in several respects. It must robustly handle the full range of x86 workloads, with the performance of a hardware-only implementation as well as full system-level x86 compatibility. This exposes issues that have received little or no attention in the binary translation literature, such as exceptions and interrupts, I/O, DMA, and self-modifying code.
This talk will begin with an overview of the Crusoe system and some observations concerning its unique characteristics. We will then discuss several challenges raised by the issues above, and present some of the techniques developed in Crusoe and CMS to meet those challenges, especially the Crusoe paradigm of aggressive speculation, recovery to a consistent x86 state using unique hardware commit-and-rollback support, and adaptive retranslation when exceptions occur too often to be handled efficiently by interpretation. Finally, we will discuss novel techniques used to test and debug the software embedded in this unusual microprocessor.