equivalencia de ejecución del procesador de 64 bits frente a 32 bits [cerrado]

-2

No estoy seguro de estar en el buen sitio, pero esta es mi pregunta:

Me estaba cuestionando qué sería comparable (velocidad de ejecución) entre un procesador de 32 bits y 64 bits. Como lo que sería la velocidad de reloj de un procesador de 32 bits para que tenga la misma velocidad que un procesador de 64 bits.

Ps: el inglés no es mi primer idioma.

Madera

    
pregunta Wood

2 respuestas

3

Suponiendo que está hablando de los conjuntos de instrucciones x86 y x64, no hay mucha diferencia, ya que el conjunto x64 es compatible con x86, lo que significa que un sistema operativo de 32 bits se ejecutará fácilmente en hardware de 64 bits . Sin embargo, al estar diseñado alrededor de 32 bits, solo podrá acceder a 2 ^ 32 bytes = 4GB de RAM, aunque podría haber más instalados. En esa comparación, las velocidades de reloj son casi idénticas debido a la compatibilidad.

En casi todos los casos, e incluso en el anterior, en cierta medida, simplemente no puedes comparar las velocidades de reloj porque los conjuntos de instrucciones son muy diferentes. Uno puede tener una instrucción super-duper que toma un ciclo de reloj para realizar una tarea específica que ocurre a menudo en el trabajo para el que fue diseñada, mientras que otra puede requerir muchas instrucciones para hacer lo mismo. Para ese trabajo específico, el primero tendrá un mejor desempeño con menos tiempo que el segundo con más.

Esto es especialmente cierto en el software integrado. A diferencia de las PC, que tienen casi todas estandarizadas ahora en el conjunto de instrucciones x86 o x64, cada fabricante de dispositivos integrados tiene su propio conjunto de instrucciones incompatibles, lo que dificulta la medición de niveles de rendimiento relativos que son inferiores a un orden de magnitud.

Por supuesto, todo esto supone que la tasa de instrucción es el factor limitante. En la mayoría de los diseños incrustados, es, en todo caso. En PC, sin embargo, el problema suele ser la memoria. La CPU pasa la mayor parte de su tiempo esperando a que la RAM o el disco duro relativamente lentos logren devolver los datos que necesita. Esta es la razón por la que desea un gran caché, mucha memoria RAM y una conexión rápida entre ellos.

    
respondido por el AaronD
0

A menos que el código maneje valores mayores que 2 ^ 32, es poco probable que haya una diferencia mensurable para una Arquitectura de conjunto de instrucciones (ISA) similar, con una memoria caché y una interfaz de memoria similares.

Sin embargo, los procesadores de 32 bits generalmente tienen un caché más pequeño que un procesador de 64 bits, solo por la generación de tecnología o los objetivos de diseño de los productos. Por lo tanto, las diferencias son más acerca de la implementación que de las ventajas inherentes de 32 bits en lugar de 64 bits.

Donde se puede medir fácilmente una diferencia es una aritmética pesada de punto flotante de doble precisión, que son valores de 64 bits. La diferencia puede provenir de la CPU a los accesos a la memoria y la implementación de la unidad de procesamiento de punto flotante (FPU). Es plausible que la diferencia de velocidad de reloj entre 32 bits y 64 bits sea más cercana a 2 veces. Sin embargo, incluso aquí es probable que una diferencia mayor en el rendimiento sea el tamaño de la memoria caché, la velocidad del bus de memoria y la implementación de la FPU, en lugar de 32 bits frente a 64 bits.

La otra diferencia principal es la incapacidad de un procesador de 32 bits para ajustar la mayor cantidad de datos en la RAM (por lo general, el tamaño del código del programa es mucho menos que los 4GB).

Un procesador 'ordinario' de 32 bits solo puede acceder directamente a un espacio de direcciones de 32 bits, 4 GB. Un procesador de 64 bits tiene un espacio de direcciones teórico de \ $ 2 ^ {64}, o 18 \ cdot10 ^ {18} \ $, es decir, 18 exabytes. Esto no suele ser implementado. Sin embargo, es posible tener más de un orden de magnitud más memoria en un procesador de 64 bits.

Es muy difícil estimar el impacto de ajustar todos los datos en la memoria frente a la lectura desde el almacenamiento externo. Puede ser un factor de más de un millón, o muy pequeño. Necesitarías hacer algunos puntos de referencia para averiguarlo. Además, al comprender los patrones de acceso a los datos, podría ser factible reducir las diferencias, incluso para conjuntos de datos bastante grandes, a menos de 2x.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas