Un poco de informática

Dado que esto es un foro de infografía, quizá la gente tenga dudas sobre la primera parte de las que nunca se ha atrevido a preguntar, o nunca le ha quedado claro del todo.

Vamos a aprovechar este hilo para formular y contestar a ese tipo de preguntas.

Por ejemplo, la primera, que me ha movido a esta iniciativa a la que invito a todos los preguntones y versados sobre el tema.

A ver, no se estoy algo nublado, todavía sigo sin entender mucho, qué significa 32 bits, y64 eso no lo comprendo mucho.

Comencemos repasando la arquitectura básica de un ordenador. Tenemos la memoria Ram (que podemos visualizar como una pantalla de tetris), el procesador (que podemos visualizar como un procesador) y el bus de datos (que no hace falta que visualicemos, pero podemos hacerlo si es de nuestro agrado).

El procesador no es más que un chisme complicado que recibe una serie de órdenes codificadas en forma de churros de unos y ceros (que podemos visualizar como líneas horizontales de un tetris, por ejemplo) y hace cosas con ella según lo que indique la orden.

Por ejemplo, la orden podría decirle que modificara un valor interno del procesador (algo dentro de la caja negra, no nos interesa de momento), enviar una señal determinada al bus de datos (tampoco nos interesa de momento), o agregar, consultar o eliminar una ficha cualquiera al tablero de tetris.

Imaginad que el área de juego de tetris tiene 10 casillas de alto por 5 casillas de ancho. E imaginad que la línea de órdenes que le llega al procesador tiene cinco casillas. Imaginad que en esa línea de órdenes, usamos la primera casilla para codificar que queremos escribir en memoria, las dos siguientes para decirle en que casilla queremos escribir, y las dos últimas para decirle que queremos escribir en la casilla seleccionada. Algo, así como e4269, indicaría que queremos escribir el valor 69 en la casilla 42 de nuestro tetris (tomando de referencia abajo a la izquierda como el cero, cuarta fila, tercera columna).
¿Hasta aquí bien? Con este modelo de procesador y memoria, no hay ningún problema. Podemos hacer una instrucción que le diga al procesador que busque hasta la casilla 99 de la memoria y, puesto que sólo tenemos 50, seguro que podemos acceder a todas las posiciones de nuestro tablero de tetris.

Ahora imaginad que pasan los años, y cada vez nuestras órdenes necesitan más piezas del tablero de tetris, hasta el punto de que el tablero necesita cuadruplicarse para tener una memoria digna. Ahora nuestro tablero es, por ejemplo, de 40 por 5. Resulta que, por mucho que queramos, nuestro procesador no va a poder leer ni escribir más, allá de la casilla 99, desperdiciando la mitad de espacio de memoria.

El problema real con los procesadores de 32 bits es análogo. Las dirección de memoria más alta que se puede obtener con en una instrucción de 32 casillas de tetris (esta vez suponiendo que en cada casilla sólo puede haber un 1 o un 0) sería 11111111111111111111111111111111 en binario, que en decimal es (232)-1=4294967295 (el es el operador de elevado a). Suponiendo que cada casilla de nuestro tetris permitiera albergar un número de 8 bits (un byte, un valor de 0 a (2 -1=255), obtenemos que el máximo de memoria que nuestro procesador puede manejar es 4294967296*8/1024 = 4194304kb; 4194304kb/1024=4096mb; 4096mb/1024 = 4 Gb.

Esto es, el máximo teórico de Ram útil para nuestro procesador sería de 4 gigas, aunque tuviéramos 8 gigas de Ram, nuestro procesador no podría manejar nunca valores más, allá de la última posición de los 4 gigas.

Ahora bien, el cambio a una arquitectura de 64 bits significa que las instrucciones ahora tienen 64 casillas en las que almacenar la dirección. Esto es, la máxima dirección consultable ahora sería un 1 seguido de 64 ceros en binario (o (264)-1 en decimal). Repitiendo los cálculos anteriores, ahora podemos manejar hasta 137438953472 Gb. La cosa cambia, ¿no? Para los que crean que es un aumento brutal, lo es, igual que 4 Gb lo es para los 640kb que alguien dijo en su día que serían suficientes y hoy en día ya se nos quedan cortos para según qué.

Esta nueva cantidad, no obstante, debería ser suficiente para que aguantara, por lo menos, hasta una versión de Windows más después del Windows Vista.

Y por eso, niños, es por lo que se está realizando actualmente la migración a sistemas de 64 bits. Como un procesador no sirve para nada sin programas, antes hay que ir rehaciendo todos esos programas (o creando nuevos) para que tengan en cuenta que sus instrucciones tendrán que ser de 64 casillas, en lugar de las de 32 que tenían hasta ahora.

Posdata: en realidad, todo es un poco más complejo, pero si queréis saber más, mejor os matriculais en ingeniería informática. A efectos prácticos, la explicación anterior cuenta lo que realmente os interesa.

Bon profit.

Ver más sobre el tema y los comentarios en el foro