demonstrated its CPU morphing software which allows code written for one CPU to run efficiently on a different CPU, at the Embedded Processor Forum, San Jose, CA. This, in itself, is not new; however, the speed at which Transitive’s product, called Dynamite, can run translated applications is far faster than previous translators.
Previous CPU morphing schemes like IBM’s DAISY and Hewlett Packard’s Dynamo were able to translate code effectively, but at a significant performance penalty. John Graham, President and CEO of Transitive, says that Dynamite’s performance opens the door for viable practical implementations of code morphing technology.
Dynamite works by dynamically translating binaries compiled for one CPU into binaries usable by a different CPU. It is possible to, say, run an application compiled for an X86 processor on a PowerPC processor. But, Dynamite does more than that.
“The word translator does not fully encapsulate what we do,” Graham told MacCentral. “We accelerate binaries as well as translate them.”
Generally, an application only uses about ten percent of the code that comprises it. Dynamite dynamically translates only what it needs to translate. Then it uses a run-time acceleration of those binaries to make the most efficient use of available hardware.
Dynamite can be deployed above or below the OS. The Dynamite kernel uses a top layer to communicate between the original application and the kernel, and the kernel translates binaries between the two CPUs’ ISAs (Instruction Set Architectures) and optimizes those binaries. Below the Dynamite kernel is a layer that either communicates between the kernel and the OS or the kernel and the CPU. If Dynamite is running below the OS, it translates and optimizes both the OS and the applications that it runs invisibly to the OS and the CPU.
For example, I could run X86 Linux applications on a MIPS processor running Linux using Dynamite. More ambitiously, I could run Windows and its applications, all compiled for X86 processors, on a MIPS based processor with Dynamite running below the OS, translating the OS’ calls to the different hardware. Most importantly, once Dynamite’s kernel, front-end and back-end, have been worked out for a particular match of OS and CPUs, it is not necessary to revise Dynamite for the specific applications running on that OS.
In Transitive’s demonstration, an X86 version of XMaze was run head to head with a MIPS version of XMaze. Both machines were Cobalt XServers running Linux. Dynamite was translating the X86 version of XMaze to run on the MIPS processor. As the programs began running, the translated X86 XMaze ran more slowly. However, as the translator optimized its translation it began to catch up and eventually exceeded the performance of the native XMaze.
“There is an early penalty while Dynamite makes its initial translation,” said Graham. This penalty depends on the complexity of the code and the available memory and cache on the CPU. Over time, the translations are optimized and the translated application runs more and more efficiently. In the case of simple applications, the optimization task can sometimes provide performance over 100% of the performance of the application compared to its native performance.
Transitive is a new intellectual property company that has operations in Manchester, England and San Diego, CA. The basic ideas for Dynamite are based upon conclusions made by Transitive’s CTO and founder Alasdair Rawsthorne while teaching at the University of Manchester. Graham told MacCentral that the current state of Dynamite represents over 20 programmer-years of work. Unlike Transmeta, which worked in secret for three years before their code morphing Carusoe chip was released, Transitive intends to implement its software a little more openly. More importantly, there is no hardware component to Dynamite, all of its translation is handled in software.
Transitive’s first market is the embedded space where changes in CPUs can wreck havoc upon legacy code. For example, if a handheld uses a specific code base and applications, changing CPUs can render all of that code unusable. Graham believes that Dynamite can make such a change relatively easily and maintain all of the legacy code. In the embedded market, the price and relative performance of processors is far more dynamic that in the desktop processor market. Dynamite will hopefully allow embedded system designers to have more freedom in selecting processors for their products, and vendors will not be as readily tied to a single core because of legacy software issues.
In terms of the Mac OS, Transitive’s officers were reluctant to comment. However, Graham did say that there have been no formal talks between Transitive and Apple. However, there are clear benefits to using a sophisticated code morphing technology on the Mac OS. For instance, applications like Virtual PC routinely have performance complaints against them, and a translator could address this issue. More importantly, if Apple ever considered switching processors, a translator would be essential to support its legacy code base — both 68K code and PPC code — and a translator could make this task relatively easy. Finally, porting applications between other OSes and the Mac OS could be made far easier with an effective translator.