Pregunta

Estoy seguro de que todos hemos escuchado los términos de 64 bits y 32 bits lanzados, pero ¿qué significan realmente?

Estoy bastante seguro de que tienen que ver con el tamaño de una dirección de memoria. En una máquina de 64 bits, una referencia a un objeto es de 64 bits. Pero quiero cavar un poco más profundo ...

  1. A menudo se escucha la frase "máquina de 64 bits". ¿Qué parte de la computadora está realmente orientada hacia la cantidad de bits? ¿Procesador? ¿Sistema operativo?

  2. ¿Cuál es la ventaja de tener direcciones de memoria más grandes?

Podría agregar más preguntas, pero creo que breve es mejor.

Gracias chicos: D

¿Fue útil?

Solución

64 bit se refiere al ancho de los registros, el espacio de direccionamiento de memoria, etc. Un beneficio es la capacidad de abordar más de 4 GB de memoria.

Wikipedia tiene Un artículo sobre computación de 64 bits con más detalles.

Editar: el ventajas Para más memoria es que el sistema operativo y los programas tienen más espacio de direccionamiento virtual: 16 exabytes (17.2 mil millones de GB) y, lo que es más importante, que se puede agregar más memoria física a un sistema y abordar, lo que causa menos intercambio de memoria virtual hacia y desde el disco.

La ventaja de los registros y los autobuses de datos más amplios es que es más fácil y más rápido mover la misma cantidad de datos. Una operación que requirió dos o más registros ahora se puede hacer con uno.

Por lo tanto, el rendimiento generalmente aumenta cuando el software se recompensa por 64 bits.

A desventaja es que los datos más amplios pueden significar más espacio tomado por los mismos datos. Por ejemplo, almacenar el número 300 requiere nueve bits. Si se almacena en un entero de 32 bits, se desperdician 23 bits. En 64 bits, ese desperdicio se convierte en 55 bits. Entonces, sin reasentarse, una simple recompilación a 64 bits puede producir un software más rápido, pero un poco más hinchado.

Editar: también hay Páginas de tecnología de 64 bits aquí:

Otros consejos

La diferencia es exactamente 32 bit ;-)

Necesita hardware (procesador) de 64 bits para ejecutar un sistema operativo de 64 bits. Necesita un sistema operativo de 64 bits para ejecutar un software de 64 bits. Estas son las dependencias.

  • En un sistema de 32 bits se limita a abordar la memoria de 4 gibyte (2^32), en un bit de 64 bits hay un límite teórico de 2^64 bytes.
  • El software de 64 bits necesita un poco más de memoria, principalmente para punteros son 8 bytes en lugar de 4
  • En x86_64, los ejecutables de 64 bits necesitan más memoria, ya que hay un código de operación adicional para muchas instrucciones y, por lo tanto, puede ejecutarse más lento
  • En x86_64, el software de 64 bits puede usar más registros y tiene el potencial de funcionar más rápido
  • Los sistemas de 64 bits pueden abordar directamente significativamente más memoria
  • Los sistemas de 64 bits pueden procesar datos en fragmentos dos veces más grandes como 32 bits, lo que ayuda a algunas operaciones a ir más rápidamente

Para algunos programas, como las suites de automatización de oficina, 32 bits vs 64bit marca poca diferencia observable.

Pero para otras aplicaciones, como bases de datos, gráficos/procesamiento de videos o alojamiento de máquinas virtuales, poder alcanzar más memoria física a la vez y poder procesar más información con cada instrucción puede marcar una gran diferencia en el rendimiento.

Tenga en cuenta que hoy, muchos chips de 32 bits tienen funciones de extensión de 64 bits, como muchas Fpu (matemáticas) o Ssmd (vector) Las operaciones ya se realizan en modo de 64 bits.

Ver 32 bits vs. Sistemas de 64 bits: ¿Cuál es la diferencia? para más.

  1. Registros de CPU y direccionamiento de memoria.

  2. El sistema puede hacer referencia (ver) mucha más memoria.

Creo que la mejor respuesta sería una comparación en el ensamblador de x86 bit x64

Cuando su programa X32 Bit registra una variable, por ejemplo, un entero (5), el código es equivalente a esto:

push 5

Para entender mejor las cosas, 'Push X' es un atajo para:

sub esp,4 //substracts esp with 4(4*8=32 bits.That's the size of a pointer in x32 executables) in order to make space for our variable
mov [esp],X //moves variable in @esp

Esos registros son de 32 bits (4 bytes de largo), que es el tamaño de un puntero en cualquier lenguaje de programación de 32 bits.

En el código de 64 bits, sin embargo, el tamaño es dos veces mayor y también lo son los registros. Nuestro registro ESP existe en ejecutables X64, pero no se usa ampliamente como en ejecuciones X32.

En cambio, todos los registros obtienen una "R" frente a su nombre (EAX se convierte en RAX, ESP se convierte en RSP, EDX se convierte en RDX, etc.).

Por lo tanto, nuestro código en X64 Ejecutable no será diferente, excepto que el acceso directo a 'Push X' será

sub esp,8
mov [rsp],X

RSP tiene el doble del tamaño de ESP - 64 bits, 8 bytes.

La conclusión es que los ejecutables de bits X64 usan más memoria que los ejecutables de bits X32.

Volvamos a lo básico.

El 99% de la computadora en estos días se basa en lo que se conoce como el Arquitectura von Neumann. Esencialmente, la computadora está en un ciclo constante de:

  1. Obtener un comando de RAM
  2. Ejecutando el comando en la CPU

alt text
(fuente: wikimedia.org)

Cuando se refiere al sistema de 32/64 bits (o cualquier otro tamaño de bits), esencialmente está hablando de la arquitectura y la implementación de la computadora:

  • Tamaño del espacio de memoria (RAM)
  • Tamaño de los registros de CPU
  • Tamaño del bus (es decir, entre CPU, RAM, E/S, etc ...)

Si tiene un sistema de 64 bits, tiene un espacio de dirección de 2^64. Es por eso que el sistema de 32 bits no puede tener más de 4 GB de RAM. ¿Cómo puede abordar un espacio de memoria que es más grande que 2^32?

Con respecto a las diferencias de rendimiento, no hay una respuesta clara (así como no hay una respuesta clara si la arquitectura CISC o RISC es mejor). Depende enormemente de las aplicaciones que esté utilizando.

Para sumar: una arquitectura de 64 bits es simplemente una forma diferente de construir una computadora. No significa que sea mejor, o peor, o hace las cosas de manera diferente (en un nivel bajo, cada computadora está haciendo Ejecutivo). Es simplemente una forma diferente de implementar una computadora.

Exactamente las referencias de 64 bits o 32 bits justo al ancho del autobús principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top