¿Por qué hay una pérdida de potencia del procesador al emular programas de 32 bits en un sistema de 64 bits?

¿Por qué hay una pérdida de potencia del procesador al emular programas de 32 bits en un sistema de 64 bits?

Puede que sea una pregunta estúpida pero no encuentro una respuesta clara.

CPU del host = CPU emulada

Pentium Pro 200 MHz = 286 6 MHz

Pentium II 350 MHz = 386SX 25 MHz

Pentium III 1,0 GHz = 486 66 MHz

Pentium 4 3,0 GHz = Pentium 133 MHz

Núcleo 2 Duo 3,3 GHz = Pentium II 300 MHz

Núcleo i5 4xxx 4,0 GHz = Pentium III 500 GHz

de acuerdo aesto aqui

Respuesta1

Todo esto depende del emulador que estés utilizando. Pero el punto principal es que un emulador utiliza software para hacer el trabajo del hardware, es decir, no ejecuta el código ensamblador directamente en el hardware, lo hace en software.

En otras palabras, no se trata simplemente de ejecutar código de 32 bits en un sistema de 64 bits (que en realidad no tiene una sobrecarga), sino que en realidad es software que pretende ser hardware, que se abstrae del hardware real).

Respuesta2

La emulación requiere la creación de una computadora en software. Esto incluye una CPU, memoria y todo el hardware auxiliar necesario para crear una computadora que se acerque lo más posible al hardware real.

Cada instrucción de la CPU se examina y se convierte al lenguaje utilizado por la CPU emulada antes de ejecutarse en la CPU host. Esno es lo mismo que ejecutar código directamente en la CPU del hostporque la CPU es una construcción de software que está completamente aislada de la CPU host.

Ese aislamiento lo hace adecuado para mover la computadora emulada a cualquier otro sistema, incluso con un tipo de CPU completamente diferente, porque es independiente de la CPU host y depende únicamente del software de emulación. La CPU host y las máquinas emuladas pueden tener CPU muy diferentes.

Esta no es "sólo" una máquina de 64 bits que actúa como una máquina de 32 bits, es una máquina de 64 bits que ejecuta una CPU completa.en softwareencima de una CPU real.

La alternativa a la emulación es la virtualización. En la virtualización, el software emula sólo el hardware y las interfaces relacionadas alrededor de la CPU y no la CPU en sí. El código se ejecuta directamente en la CPU del host, lo que genera velocidades casi nativas a costa de requerir la misma arquitectura de CPU en la máquina host y invitada.

información relacionada