Accueil Logiciel Qu'est-ce que l'émulation de processeur? - définition de techopedia

Qu'est-ce que l'émulation de processeur? - définition de techopedia

Table des matières:

Anonim

Définition - Que signifie l'émulation de processeur?

L'émulation de processeur est un processus et une technologie de virtualisation qui permettent à un logiciel qui a été compilé pour un processeur ou un système d'exploitation (OS) spécifique de s'exécuter sur un système différent qui a un processeur et un OS différents. Cela se fait en traduisant dynamiquement les instructions du processeur et tous les appels de système d'exploitation associés d'un programme dans les instructions du processeur et du système d'exploitation sur lequel il s'exécute.

Techopedia explique l'émulation du processeur

L'émulation de processeur permet l'exécution de programmes écrits pour un processeur à exécuter sur un processeur différent avec une architecture et un jeu d'instructions différents. Un bon exemple de base est un émulateur de console de jeu, qui permet aux utilisateurs de jouer à des jeux sur console tels que Nintendo Entertainment System et des jeux PlayStation sur leur PC. Le processeur utilisé par une console de jeu est très différent de celui d'un PC, donc pour pouvoir jouer à des jeux de console sur un PC, le processeur de la console de jeu doit être émulé.

L'idée de base est que chaque action et comportement individuel du programme qui doit être exécuté doit être converti en un jeu d'instructions équivalent et / ou des appels du système d'exploitation du système hôte. L'objectif principal est d'exécuter du code qui modifie les états du processeur et interagit avec le matériel, et cela doit être fait pour chaque instruction du programme en cours d'exécution.

Manières de gérer l'émulation du processeur:

  • Recompilation dynamique - Une liste d'opérations est créée en exécutant le code, et lorsqu'une instruction de branche est atteinte, la liste est compilée dans le code d'instruction de la plate-forme hôte. Il est ensuite mis en cache pour une utilisation future. Alternativement, chaque code pourrait simplement être compilé à la volée, mais cette approche est difficile à optimiser.
  • Recompilation statique - Ceci est également connu sous le nom de traduction binaire statique où le code est d'abord converti en code de la machine ou de l'architecture cible sans exécuter le code, comme cela se fait dans la recompilation dynamique. Des problèmes peuvent survenir, cependant, car tous les codes cibles ne peuvent pas être déterminés par le traducteur pendant la compilation, car certains d'entre eux ne peuvent être trouvés que dans des branches indirectes, qui, à leur tour, ne peuvent être déterminées qu'au moment de l'exécution.
  • Interprétation - Chaque code est lu à partir de la mémoire à l'aide du pointeur d'instructions, puis exécuté conformément au jeu d'instructions CPU de l'ordinateur hôte. En d'autres termes, les instructions sont traduites une à une puis exécutées nativement. Le plus gros inconvénient ici est la performance.
Qu'est-ce que l'émulation de processeur? - définition de techopedia