La principal ventaja de una CPU de 64 bits es la capacidad de tener tipos de punteros de 64 bits que permiten rangos de direcciones virtuales de más de 4 GB de tamaño. En una CPU de 32 bits, el tamaño del puntero es (normalmente) de 32 bits de ancho, lo que permite que un puntero haga referencia a una de las 2^32 (4.294.967.296) direcciones discretas. Esto permite que un programa cree una estructura de datos en la memoria de hasta 4 GB de tamaño y resuelva cualquier elemento de datos simplemente desreferenciando un puntero. La realidad es un poco más compleja que esto, pero a los efectos de esta discusión es una buena idea.
Una CPU de 64 bits tiene tipos de puntero de 64 bits que pueden hacer referencia a cualquier dirección con un espacio con 2^64 (18,446,744,073,709,551,616) direcciones discretas, o 16 Exabytes. Un proceso en una CPU como este puede (teóricamente) construir y abordar lógicamente cualquier parte de una estructura de datos de hasta 16 Exabytes de tamaño simplemente descartando un puntero (buscando datos en una dirección que se encuentra en el puntero).
Esto permite que un proceso en una CPU de 64 bits para trabajar con un conjunto mayor de datos (limitado por la memoria física) que un proceso en una CPU de 32 bits podría. Desde el punto de vista de la mayoría de los usuarios de sistemas de 64 bits, la principal ventaja es la capacidad de las aplicaciones para trabajar con conjuntos de datos más grandes en la memoria.
Aparte de eso, puede obtener un tipo entero de 64 bits nativo. Un entero de 64 bits realiza operaciones aritméticas o lógicas utilizando tipos de 64 bits como C long long
más rápido que uno implementado como dos operaciones de 32 bits. La aritmética de coma flotante es poco probable que se vea afectada significativamente, ya que las FPU en la mayoría de las CPU modernas de 32 bits admiten de forma nativa los tipos de coma flotante de double
de 64 bits.
Cualquier otra ventaja de rendimiento o conjunto de características mejoradas son una función de implementaciones de chip específicas, en lugar de algo inherente a un sistema que tiene una ALU de 64 bits.
El bit de no ejecución también existe en las arquitecturas de 32 bits. – flodin
Sí, pero solo funciona a nivel de segmento. La mayoría de los sistemas operativos usan un modelo plano, por lo que no pueden activarlo o no ejecutan todo el espacio de direcciones. Los chips de 64 bits le permiten configurarlo en un nivel de página. Eche un vistazo a http://en.wikipedia.org/wiki/NX_bit para obtener más información. – Sean
Sweet - Nunca supe que antes de –