Traduction binaire

Dans le calculant , la traduction binaire est l'émulation d'un ensemble d'instruction par des autres par la traduction du code . Des ordres des instructions sont traduits de la source de à l'ensemble d'instruction de la cible de .

Il y a traduction binaire statique du , où un dossier exécutable entier est traduit en exécutable de l'architecture cible. Il est très difficile faire ce correctement, puisque non tout le code peut être découvert par le traducteur. Par exemple, quelques parties de l'exécutable peuvent être accessibles seulement par les branches indirectes dont la valeur est seulement connue à d'exécution.

Alternativement, la traduction dynamique du regarde un ordre court de code, typiquement sur l'ordre d'un bloc de base simple, le traduit et cache l'ordre en résultant. Le code est seulement traduit pendant qu'on le découvre et si possible, des instructions de branchement sont faits pour indiquer le code traduit.

La traduction binaire dynamique diffère de l'émulation simple éliminant la force de l'émulateur lire-décoder-exécutent la boucle (un goulot important d'exécution), payant ceci par de grands frais généraux pendant le temps de traduction. Ces frais généraux sont si tout va bien amortis pendant que des ordres traduits de code sont exécutés des périodes multiples.

Des traducteurs dynamiques plus avancés utilisent la recompilation dynamique : le code traduit est équipé pour découvrir quelles parties sont exécutées un grand nombre de fois, et ces parties sont optimisés par agressivement. Cette technique est réminiscente d'un compilateur du JIT, et en fait de tels compilateurs (par exemple technologie de point névralgique de s de Sun ') peuvent être regardés en tant que traducteurs dynamiques d'un ensemble d'instruction virtuel (le Bytecode ) à vrai.
l'ordinateur Apple De de

a mis en application un émule de traduction dynamique pour le code du M68K dans leur ligne de PowerPC de Macintoshes , qui a réalisé très un à niveau élevé de la fiabilité, exécution et la compatibilité (voir l'émulateur de Mac 68K de ). Ceci a permis à Apple d'apporter les machines pour lancer sur le marché avec seulement un partiellement indigène du système d'exploitation, et les utilisateurs pourraient adopter la nouvelle, plus rapide architecture sans risquer leur investissement dans le logiciel. En partie parce que l'émulateur était si réussi, beaucoup de parties du du système d'exploitation resté émulé. Une pleine transition à un indigène du système d'exploitation (OS) de PowerPC n'a pas été faite jusqu'au dégagement du Mac de OS x (10.0) en 2001, et dans ce nouvel OS le " ; " classique du ; l'environnement d'exécution offre toujours les possibilités d'émulation sur des impers de PowerPC. En outre, la couche de traduction de Rosetta incluse dans les dégagements d'OS 10.4 de Mac pour les impers Intel-basés, qui est employé pour soulager la transition du PPC à x86, est un exemple de traduction dynamique. Développé pour Apple par le transitif, le logiciel de Rosetta est une exécution de solution transitive de QuickTransit , qui peut être employée pour traduire dynamiquement entre les plates-formes qui incluent le SPARC, le PowerPC, MIPS, l'Itanium et le x86.
le DEC a réalisé le succès semblable avec ses outils de traduction pour aider des utilisateurs à émigrer de l'architecture de VAX de CISC de à l'alpha architecture du RISC du DEC.
le DEC a créé le FX ! traducteur binaire de 32 pour convertir des applications d'unité centrale de traitement du X86 en de alpha applications du DEC.
Le Intel de

en mars 2006 avait annoncé des plans pour soutenir le traducteur binaire transitif du sur leur future unité centrale de traitement d'Itanium et de Xeon.
le Sun de

et le IBM utilise également QuickTransit par transitif. Le de → de SPARC X86 dans le cas de Sun et le de x86→ actionnent l'architecture à IBM. Ce dernier s'appelle l'avenue du système p de .

en janvier 2000, société de Transmeta a annoncé une conception originale de processeur appelée Crusoe . Du FAQ sur leur site Web, le le microprocesseur intelligent se compose d'un noyau du VLIW de matériel en tant que son moteur et d'une couche de logiciel appelée le logiciel de Code Morphing™. Le logiciel Morphing de code agit en tant que coquille… morphing ou traduisant des instructions du X86 aux instructions indigènes de Crusoe. En outre, le logiciel Morphing de code contient un compilateur dynamique et l'optimiseur de code… le résultat est plus grande quantité d'exécution au moins de puissance. … permet à Transmeta d'évoluer le matériel de VLIW et de coder le logiciel Morphing séparément sans affecter la base énorme des applications de logiciel. plus d'information à l'arstechnica, geek.

Voir également

Compilation juste à temps
Machine virtuelle
Émulateur
Comparaison de des machines virtuelles

.

Random links:Yarmouth du nord, Maine | Liste de gouverneurs coloniaux en 1723 | Charles Russell, baron Russell de Killowen | Bjørn Wirkola | Kenneth Tomlinson | Traducción_binaria