 |
|
| |
|
 |
 |
at Global Oneness Community.
Share your dreams and let others help you with the interpretation!
Dream Sharing Forum
|
 |
Binary translation |  | Binary translation: Encyclopedia - Binary translation |  | | In computing, binary translation is the emulation of one instruction set by another through translation of code. Sequences of instructions are translated from the source to the target instruction set.
There is static binary translation, where an entire executable file is translated into an executable of the target architecture. This is very difficult to do correctly, since not all the code can be discovered by the translator. For example, some parts of the executable may be reachable only through ...
|  | | Binary translation, Just-in-time compilation, Virtual machine, Emulator |  | |
|  |  | Binary translation: Encyclopedia - Binary translation
Binary translation
In computing, binary translation is the emulation of one instruction set by another through translation of code. Sequences of instructions are translated from the source to the target instruction set.
There is static binary translation, where an entire executable file is translated into an executable of the target architecture. This is very difficult to do correctly, since not all the code can be discovered by the translator. For example, some parts of the executable may be reachable only through indirect branches, whose value is only known at run-time.
Alternatively, dynamic translation looks at a short sequence of code, typically on the order of a single basic block, translates it and caches the resulting sequence. Code is only translated as it is discovered and when possible, branch instructions are made to point to translated code.
Dynamic binary translation differs from simple emulation by eliminating the emulator's main read-decode-execute loop (a major performance bottleneck), paying for this by large overhead during translation time. This overhead is hopefully amortized as translated code sequences are executed multiple times.
More advanced dynamic translators employ dynamic recompilation: the translated code is instrumented to find out what portions are executed a large number of times, and these portions are optimized aggressively. This technique is reminiscent of a JIT compiler, and in fact such compilers (e.g. Sun's HotSpot technology) can be viewed as dynamic translators from a virtual instruction set (the bytecode) to a real one.
- Apple Computer implemented a dynamic translating emulator for M68K code in their PowerPC line of Macintoshes, which achieved a very high level of reliability, performance and compatibility (see Mac 68K emulator). This allowed Apple to bring the machines to market with only a partially native operating system, and end users could adopt the new, faster architecture without risking their investment in software. Partly because the emulator was so successful, many parts of the operating system remained emulated. A full transition to PowerPC native O/S was not made until the release of Mac OS X (10.0) in 2001, and within this new O/S the "Classic" runtime environment still offers the emulation capability as of 10.3 (10/2003). Also, the Rosetta emulator included in Mac OS 10.4 x86 edition, which is used to ease the transition from the PPC to x86, is an example of dynamic translation.
- DEC achieved similar success with its translation tools to help users migrate from the CISC VAX architecture to the DEC Alpha RISC architecture.
- In January 2000, Transmeta Corporation announced a novel processor design named Crusoe. From the FAQ on their web site, The smart microprocessor consists of a hardware VLIW core as its engine and a software layer called Code Morphing™ software. The Code Morphing software acts as a shell ... morphing or translating x86 instructions to native Crusoe instructions. In addition, the Code Morphing software contains a dynamic compiler and code optimizer ... The result is increased performance at the least amount of power. ... [This] allows Transmeta to evolve the VLIW hardware and Code Morphing software separately without affecting the huge base of software applications. More info at arstechnica, geek.com.
See also
- Just-in-time compilation
- Virtual machine
- Emulator
Other related archivesApple Computer, CISC, DEC, DEC Alpha, Emulator, HotSpot, JIT compiler, Just-in-time compilation, M68K, Mac 68K emulator, Mac OS X, Macintoshes, PowerPC, RISC, Rosetta, Sun, Transmeta, VAX, VLIW, Virtual machine, basic block, bytecode, code, computing, dynamic recompilation, emulation, emulator, executable file, indirect branches, instruction set, instructions, operating system, optimized, x86
 Adapted from the Wikipedia article "Binary translation", under the G.N U Free Docmentation License. Please also see http://en.wikipedia.org/wiki |
|
|
More material related to Binary Translation can be found here:
|
|
« Back
|
Search the Global Oneness web site |
|
|
|
|
 |
Sneak-Peek of Global Oneness Community
Hi friend! The Global Oneness Community, the place for information and sharing about Oneness is not really launched yet (you will see there is still some clean up to do) ...but it is now open for a sneak-peek! And if you wish - please register and become one of the very first members to do so! Jonas
Forum Home,
Articles,
Photo Gallery,
Videos,
News,
Sitemap
...and much more!
|