Transitive demo’s ARM, MIPS, PPC, x86 binary translation
Oct 16, 2001 — by Rick Lehrbaum — from the LinuxDevices Archive — 45 viewsTransitive Technologies Ltd. is demonstrating their Dynamite “CPU morphing” software this week at the Microprocessor Forum in San Jose, CA. The technology enables code written for one type of CPU to run on another type of CPU without being recompiled.
Three demonstrations of Transitive's Dynamite technology are being given this week in a private suite at San Jose's Fairmont Hotel, including a virtual 1+ GHz PowerPC CPU running on an 1.4 GHz AMD Athlon processor . . .
- ARM-to-MIPS — in this demo, Alchemy Semiconductor's 400MHz AU1000 MIPS processor runs an MPEG player compiled for an ARM processor. The code runs on the MIPS-based AU1000 at a rate equivalent to that of a 220 MHz ARM processor. Eventually, 300 MHz equivalent ARM performance is anticipated on the 400 MHz AU1000.
- x86-to-MIPS — in this demo, a 350 MHz MIPS-based processor made by QED (on a “Malta” board) runs the Linux Macromedia flash player browser plugin for x86 PCs.
- PowerPC-to-x86 — in this demo, two versions of a drystone benchmark compiled, for PowerPC and for x86, are both run on a PC motherboard having an AMD 1.4GHz Athlon processor. According to the drystone benchmark, the PowerPC code runs at the equivalent speed of a 1.2GHz PowerPC following 10 million repetitions of the benchmark. A second demo on this system consisted of an MPEG2 media player compiled for PowerPC running on the x86 system.
The current implementations of Dynamite run on various versions of Linux.
How does it do that?
Rawsthorne says Dynamite can, for example, “take ARM compatible instructions and execute them on non-ARM CPUs with complete transparency to both the system and the user.” But in addition to translating instruction set binaries, Dynamite “dynamically accelerates object code without recompilation,” thereby minimizing the usual performance degradation associated with instruction set emulation.
Rawsthorne says the Dynamite technology typically requires around 500KB of added memory for the translator itself, depending on the specific CPU architecture translation being implemented, plus about 20% of the size of the application for instruction set translation caching. That's because 90% of a program's execution time is spent in just 10% of the code, so Dynamite only dynamically generates static (reusable) code for about 10% of a given application, explains Rawsthorne.
Transitive's Dynamite technology was developed over the past five years at the University of Manchester, England, and is the subject of six patent applications. The company claims to be “the exclusive worldwide licensee of all Dynamite technology, with the perpetual right to develop, sub-license, and sell the technology in any form.” Transitive's model for licensing CPU-specific implementations of Dynamite involves an up-front licensing fee, followed by per-unit royalties.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.