Transmeta TMS5xxx Reverse Engineered
Richard W.M. Jones writes "This fascinating article, published anonymously, dissects the Transmeta TMS5xxx architecture, revealing how to
access and modify the code-morphing code,
how the instruction set works, and tells why
you won't be able to run Linux directly on this
chip."
The author asserts that transmetas CMS and microprocessors bear striking similarities to an IBM research project named DAISY. I quote:
While I will not give a full analysis here, it appears that much of Transmeta's work was actually invented by IBM Research in the early 1990s. IBM's Daisy (Dynamically Architected Instruction Set from Yorktown) project [6] is essentially CMS for the PowerPC architecture, and uses a strikingly similar design and implementation, including: * Designing the morph host microarchitecture with the same semantics as the target instruction set (in IBM's case, PowerPC rather than x86) * Translated page cache, using a T-bit buffer to track which user pages are dirty and need re-translation * Explicit memory alias handling, using protected loads and checked stores * Extensive profiling logic to aid in further optimization * Handling of speculatively reordered loads and stores to I/O space
I wonder if this was just a question of similar approaches to similar problems, movement of engineers from IBM research to TMTA or something else.
He also states that CMS appears to have been compiled with a hacked up version of gcc and binutils. Isn't failure to release modifications to GPLed code against the license, or am I missing something? I doubt transmeta would've failed to foresee that, so perhaps they're using a different toolchain. Very interesting, all in all!
"The slave who knows his master's will and does not get ready...will be be beaten with many blows."Luke 12:47-48
until someone comes out with a code morphing solution that turns the crusoe into a sparc/alpha/(insert favourite processor here).
It's likely to be quite hard. Firstly you've got to work out how to do code morphing. Remember it took Transmeta 2 years or so to develop the hardware and software.
Secondly, and more importantly, the TMS5xxx has an architecture which is very closely tied to the x86 architecture. eg - there is a common mapping of registers, and certain instructions in TMS are designed to make it easy to run specifically x86 code. Consider how hard it would be to run 64 bit big endian[1] code, for instance, on a processor designed primarily to run 32 bit little endian code. That's only the start of your problems ...
There are some quite interesting applications if this could be done ... eg: perhaps have
multiple architecture OSes running at the
same time? Have multiple processes running
in a single OS which were compiled for
different architectures?
Rich.
[1] Hope I got my endianness the right way round ...
libguestfs - tools for accessing and modifying virtual machine disk images
"Where are the modern fanless low power fast processors?"
Why, they're in Transmeta-powered laptops.
An x86 laptop like Toshiba makes gets about 1.5 - 2 hours of battery life. 3 if you only use things like Word, which let Speedstep and the like kick in. A 17" TiBook gets about 3-4 hours, again dependant on load.
Practically every Transmeta-based x86 laptop gets 5 hours, up to 7 if you're using Word. That is nothing to sneeze at. Fujitsu has an optional battery pack for their laptops which nets you 7 to 9 hours of battery life on their Lifestyle series. True x86 laptops are a joke in comparison.
Naturally, trolls ignore these facts when trolling. If you repeat a lie often enough, some moderators will believe it true enough to mod you up...
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.