Virtual processors and patents

Posted by graham, Wed Jan 26 11:56:25 EST 2000

Following the processor theme: Transmeta is out, OpenRisc is delayed for a while (no technical hiccups, just mundane administrative issues). After all the expectation for last week it seems the only processor news relevant to open hardware has been the transfer of Tom Coonan's PIC-alike to the Free-IP web-site. The direct consequences of the Transmeta announcment for open hardware seem to be nil. The indirect consequences might (just might) be bigger.

What details Transmeta have released are on their web site. There's a promise of a developer's pack to come, but it seems that will be geared to OEMs, not the great unwashed. At any rate, Transmeta have been pretty definite they won't release details of the VLIW instruction set, never mind the RTL details of the processor. As a particular design, the Crusoes are more important in their role of nibbling away at the Intel near-monopoly; unfortunately the code-morphing technique is being used to support that ugly x86 instruction set. How much has that hampered the performance of the device? As someone pointed out, if the code being mapped to the VLIW level wasn't x86 code but code for a processor with a decent number of registers (why not the MMIX?) the Crusoes might really fly.
But we can't do that with Crusoe itself - it's a proprietary system. What's left is the principle. There's a nice interview with Linus Torvalds where he compares the Crusoes with the Java Virtual Machine - not that Crusoe has any Java-specific support, but the idea of a Virtual Machine sitting between the compiled code and the real hardware. That does two things - it takes away the need for the development of processor-specific compilers, which would be a big plus for groups developing free processor designs with a tiny initial user-base; and it moves part of the design effort out of hardware and onto the hardware-software border - which you don't need the expensive, proprietary development systems to work on.
The big headache there is going to be Transmeta's patents. Ok, so you can't call the technique 'morphing' - they've got the trademark - but do the patents stop anyone else using the technique? A story on CNET claimed that the purpose of the patents was to 'get around two patents Intel has that handle processes called bounds and limit checking that Intel chips perform in hardware. In fact, Transmeta hold 12 patents in all (you can find them by searching for 'transmeta' on Espacenet. The most general patent seems to be WO98/59292. This is the abstract:

A microprocessor for a host computer designed to execute target application programs including the combination of code morphing software, and morph host hardware designed to execute instructions of a host instruction set, the combination translating a target instruction set into a host instruction set, optimizing the host instruction set speculating upon the occurrence of a condition, determining under control of the code morphing software official state of the target computer, updating state of the target computer from state of the host computer when a set of host instructions executes in accordance with the speculation, detecting failure of the condition during execution, updating state from the state of the target computer when a set of host instruction fails to execute in accordance with the speculation, and translating a new set of host instructions without the speculation when a set of host instructions fails to execute in accordance with the speculation.
That just about covers everything. And would Transmeta would allow free licensing to a free design group? Seems unlikely, since from their point of view its still competition. Or am I reading patent law wrong?