au sommaire
On parle d'émulation lorsqu'on désigne le processus d'imitation d'un programme ou d'une plateforme matérielle comme un ancien ordinateur. Comme leur nom l'indique, les émulateurs reproduisent les fonctions d'un système sur un autre. Le système hôte utilise ainsi une partie de sa puissance de calcul pour se comporter comme le système ciblé en essayant de reproduire les mêmes comportements du code et du matériel.
Comment l'émulation fonctionne-t-elle ?
En résumé, un émulateur est un logiciel qui agit comme du matériel ou comme un autre logiciel (souvent plus ancien). Les composants émulés doivent fonctionner sans bugsbugs dans le logiciel qui en découle, sans quoi l'émulation ne se fera pas correctement. La difficulté de transformer du matériel en logiciels fonctionnels explique les temps de développement long de projets open-source comme les émulateurs de consoles de jeux à partir de la sixième génération. Le matériel moderne est assez complexe et demande énormément de rétro-ingénierie pour parvenir à être reproduit.
Dans le cas de la Playstation, par exemple, un émulateur doit imiter une puce sonore spéciale, une carte graphique, un processeur et bien d'autres composants sans même envisager l'émulation de périphériques comme les pilotes du lecteur CDCD. De loin la partie du matériel la plus difficile à émulerémuler, le processeurprocesseur est au centre de n'importe quel ordinateur, smartphone ou console. Tous les composants communique avec le processeur, ce qui lui vaut parfois l'appellation d'unité centrale.
Tous les processeurs sont fait différemment. Le plus gros facteur de différenciation entre les processeurs est leur jeu d'instruction. Derrière ce nom se cache l'ensemble des instructions de base pouvant être exécutées par un ordinateur. L'intérêt d'un émulateur est de reproduire un jeu d'instruction différent de celui de la machine hôte. Par exemple, le processeur de la PlayStation utilise un jeu d'instructions connu sous le nom de MIPS, qui est différent de celui d'un ordinateur de bureau ou d'un ordinateur portable qui utilisent généralement le jeu d'instruction x86x86 ou ARMARM.