lunes, mayo 15, 2006

32 y 64 bits

Existe una gran confusión entre la diferencia de los procesadores de 32 bits y los de 64 bits. A lo largo del tiempo me he ido dando cuenta de eso y no es fácil entenderlo, ni tampoco de explicarlo.

Hoy precisamente le he estado explicadno a un amigo en qué consiste y como es la tercera vez que he tenido que hacerlo, es el motivo de que escriba este post.

Se parte de una idea preconcebida que una maquina de 64 bits es el doble de rápida que otra de 32 bits.

Creo que la mejor forma de explicarlo es tirando de un ejemplo sencillo pero con máquinas más pequeñas. Las otras veces que lo he explicado he recurrido a ejemplos de procesadores de 8 y 16 bits para mostrar las diferencias.

Luego se explica que tipo de operaciones suelen hacer los procesadores, tomando como ejemplo la suma. En los procesadores de 8 bits, se tiene una instruccion llamada SUM (A,B) donde A y B son números entre 0 y 255 (2^8 -1) , mientras que los de 16 bits, pueden sumar cantidades más grandes (de 2^16, osea desde 0 a 65535).

El problema surge cuando se quiere sumar un numero grande (2304 + 3210) en un máquina de 8 bits. Simplemente no se puede hacer con el juego de instrucciones que ofrece el procesador, es necesario hacer un algoritmo, en donde troceamos los números grandes en dos partes de 8 bits, y luego cada parte se sume (entre otras cosas). De esa forma, lo que en un máquina de 16 bits era una única operación, para una de 8 bits se convierte en al menos 4 operaciones (son más operaciones pero no hay que entrar en detalles).

Otro ejemplo podria ser tambien tener un calculadora con 8 cifras y otra que tiene una pantalla mas grande con 16 cifras, es evidente que con la de 8 cifras se podria hacer pero tendríamos que utilizar un papel para ir anotando resultados intermedios, ¿no?.

Si esto ocurre para un ejemplo sencillo, imaginar lo que puede pasar para operaciones complejas como multiplicaciones o divisiones es mas bonito :-)

Esto no significa que una máquina de 16 bits sea más rápida, solo que puede manipular cosas más grandes utilizando recursos hardware, sin ninguna emulacion (que es lo que tendria que emplear la maquina de 8 bits en el ejemplo que he puesto) con la consiguiente ventaja de tiempo, independiente de la velocidad del reloj del procesador.

Tampoco resulta evidente que en la informática actual, un usuario medio tiene cubierta sus necesidades con procesadores de 32 bits y que aprovechar los 64 bits se dá en casos específicos.

Desde luego si alguien me pregunta entre cual procesador elegir, tendría que decirle que depende, espero por lo menos que entienda el porqué de mi respuesta.

No hay comentarios:

Publicar un comentario

Cómo utilizar el servicio Secrets Manager para guardar las claves privadas de SSH

Para guardar la clave privada en el servicio Secrets Manager como un secreto en modo texto sin formato, sigue estos pasos Supongamos que la ...