Please register or login. There are 0 registered and 1924 anonymous users currently online. Current bandwidth usage: 326.30 kbit/s October 25 - 12:40am EDT 
Hardware Analysis
Forums Product Prices

  Latest Topics 

More >>


  Transmeta's Crusoe, HotRod or Performance Hog? 
  May 11, 2001, 06:00am EDT 

Code Morphing

By: Sander Sassen

The Code Morphing software is fundamentally a dynamic translation system; a program that compiles instructions for one instruction-set architecture into its own instruction set.

The entire Code Morphing software is implemented in flash ROM and is the first program to start on boot. Therefore the Crusoe processor, running its Code Morphing software, is indistinguishable from a 'normal' x86 processor, as the only thing any x86 code sees is the Code Morphing software, acting and operating just like any other x86 processor. The only program written especially for the Crusoe's VLIW engine is the Code Morphing software itself.

Because of the Code Morphing software, all x86 programs, but also a PC's BIOS and operating systems, are insulated from the hardware engine's native instruction set. Therefore the native instruction set can be changed arbitrarily without affecting any x86 software at all. The only program that needs to be changed is the Code Morphing software.

One other big advantage is that it solves a problem that has hampered acceptance of VLIW processors. A traditional VLIW processor exposes details of the processor pipeline to the compiler; as a result, any change to that pipeline would require all existing binaries to be re-compiled to make them compatible with the changed pipeline. In other words, any modification to the processor's hardware would require all programs that run on it to be re-compiled.

We've all seen the difficulties of changing a processor's hardware; just think of MMX, SSE and 3DNow! instructions, all hardware implementations for which the software has to be re-compiled. This, however, is not a problem with the Crusoe processor, since, in effect, the Code Morphing software always transparently 're-compiles' the x86 code it is running.

This translation of one instruction set's instructions into another's comes at a price, though; the processor has to dedicate some of its processing power to running Code Morphing, which a conventional x86 processor could have used to execute application code. And although Transmeta has undoubtedly designed the Code Morphing software for maximum efficiency and low overhead, it will never perform on par with a x86 CPU of the same configuration and clockspeed, simply because it has to execute the Code Morphing software before it can actually process an x86 instruction.

1. Introduction
2. Code Morphing
3. Execution, Decoding, Scheduling
4. Caching and Optimization
5. Power Management
6. Conclusion

Discuss This Article (1 Comments) - If you have any questions, comments or suggestions about the article and/or its contents please leave your comments here and we'll do our best to address any concerns.



  Related Articles 

A weekly newsletter featuring an editorial and a roundup of the latest articles, news and other interesting topics.

Please enter your email address below and click Subscribe.