Los bits de nuestra computadora y demás gadgets, son un mundo que está presente en todos nuestros componentes, no se pueden librar de ellos, son el ADN de los electrónicos. Los encontramos desde siempre, desde los procesadores de arquitecturas de 4 bits (el chip 4004) de hace casi 50 años (47 para ser precisos), hasta las más avanzadas interfaces de memoria RAM de nuestras tarjetas de video, pasando por nuestra tarjeta de sonido y hasta en los colores de nuestro monitor, e incluso los usamos para poder hacer una LAN party pero, ¿porqué esto es la base de todo?
Si eres un usuario reciente de computadoras tal vez te preguntes (o no) cómo o porqué es que los programas que llegas a instalar en tu computadora, muchas veces deben ser compatibles con 64 bits. O bien si eres ya un usuario experimentado recuerdas cuando empezaron a salir los procesadores de 64 bits, y a algunos ya les urgía por comprarse ese Athlon64, o si ya eres de los de la vieja guardia, recordarás toda la evolución de los sistemas de 32 bit; o ya eres Matusalem si te tocó vivir la transición de 16 a 32 bits (compartenos tu experiencia si eres uno de ellos).
A la hora de ir a elegir opciones para comprar una computadora nueva (en caso de ir a una tienda o en una tienda online), siempre nos encontraremos con la descripción «Windows 8 o 10 de 64 bits», o cuando elegimos un procesador nuevo para nuestro ensamble siempre nos preocupamos que sea un procesador de arquitectura de 64bits, muchas veces sin tener claro exactamente qué significa o qué beneficio me daría tener uno de 32 a uno de 64bits.
Para saber de lo que hablamos, necesitamos echar un vistazo a los básicos de todo esto: ¿qué son los bits?, ¿cuánto vale un bit?, ¿cómo se usan?, ¿procesadores de 32 y 64 bits?
Bit: la base de todo
Un bit es la unidad de medida de los datos como los conocemos hoy en día (como la moneda de a peso, pues), el bit podrá expresar únicamente 2 valores, el 0 y 1 (de ahí que se llame sistema binario), donde en electrónica digital 0 es apagado (0v) y 1 es encendido (+5v), si vamos un poco más allá, en la lógica de datos 0 es falso y 1 es verdadero. O como con la moneda de a peso, nos da 2 valores: Águila o Sol (0 y 1).
Byte: Mayor alcance de datos
Ya que un valor sólo de 0 ó 1 no tiene mucho que expresar más que encendido o apagado, los bits se agrupan, para que, en su combinación de 2 valores (0 y 1) nos de algún valor que podamos traducir en algo, entonces es cuando se crea la siguiente medida de datos: el byte, y no es más que un conjunto de 8 bits.
Estos 8 bits, juntos, se podrán combinar en 0s y 1s, siendo 0 el valor mínimo de los 8 bits (todos apagados) y 255 el valor máximo (todos encendidos).
En términos que todos conocemos, 1 byte representará 1 caracter, es decir 1 byte representará una letra, un dígito (número) o un símbolo ASCII del teclado.
Para poder hablar más claro de las arquitecturas de 32 y 64 bits de los procesadores, es necesario saber cómo funciona un byte, que será la base de funcionamiento de prácticamente todo:
Un poco de teoría:
Tenemos entonces 1 byte (8 bits) que son 8 valores que pueden ser 0s o 1s, cada bit tendrá un valor decimal, que se calcula elevando su posición a la potencia que le corresponde, por lo tanto, cada bit encendido se sumará y dará un valor distinto dependiendo las combinaciones que se utilicen, la suma de todos los bits encendidos, nos dará un total de 256 combinaciones (incluyendo 0).
La suma sería:
128 + 64 + 32 + 16 + 8 + 4 +2 + 1 = 255 valores distintos o combinaciones.
En el sistema binario, el 0 cuenta también como un valor a considerar, tenemos entonces un total de 256 valores distintos o combinaciones.
Para que quede un poco más claro en la imagen anterior, se representan los 8 bits y cada uno elevado a la potencia que le corresponde (como es un sistema binario, se toma el número 2 como la representación de la cantidad de dígitos disponibles) y en la parte de abajo su diagrama lógico o electrónico, como todos los bits son 0, el valor es 0 y no se registra ningún movimiento en la gráfica.
En la imagen anterior, se muestran todos los bits encendidos, que sumando los valores para cada bit, da el valor 255, que se traducirá en alguna acción a tomar por parte del programa que lo esté manejando. No olvidemos que el 0 en el sistema binario es un dígito que tiene valor, así que tomándolo en cuenta, tenemos un total de 256 valores.
A continuación representamos con unos ejemplo gráficos cómo es que se hacen las combinaciones entre bits con 0s y 1s para determinar cualquier valor entre 0 y 255 (total de 256):
Si queremos representar el valor decimal 10 en sistema binario, se encenderán los bits que sumados nos den como resultado 10, en este caso, en la imagen serían los bits elevados a la primera y a la tercer potencia, quedando:
10 Dec = 00001010 Bin (bits)
Si queremos representar el valor decimal 177 en sistema binario, se encenderán los bits que sumados nos den como resultado 177, en este caso, en la imagen serían los bits elevados a la primera, cuarta, quinta y a la séptima potencia, quedando:
177 Dec = 10110001 Bin (bits)
Todas estas combinaciones, nos darán unas variaciones que serán interpretadas de manera diferente por el sistema operativo que esté manejando estas variables, por lo que se asignará una letra, un dígito o un símbolo diferente a cada valor.
Aplicaciones del sistema binario para otros componentes.
Pues todo el rollo anterior no fue sólo para desempolvar la calculadora, sino para comprender lo siguiente, que es más divertido:
Profundidad de color (cantidad de colores):
Recordamos las primeras computadoras donde el monitor únicamente era capaz de desplegar 2 colores:
- Blanco y negro (encendido y apagado).
- Verde y negro (encendido y apagado).
Este esquema de colores tenía una profundidad de color de 1 bit, porque únicamente se tenían dos valores de color, ¿porqué?.
Si tenemos un bit para desplegar colores, tenemos que 2 elevado a la potencia 1 (2^1) = 2 valores de color.
Con 2 bits tenemos: 2^2 = 4 colores diferentes:
Con 4 bits tenemos: 2^4 = 16 colores diferentes:
Con 8 bits tenemos: 2^8 = 256 colores diferentes, aquí ya la imagen, por la cantidad de colores que tenemos disponibles ya se aprecia una imagen más cercana a la realidad:
Con 24 bits tenemos: 2^24= +16Millones de colores, esta densidad de colores la conocemos como TrueColor y se obtiene una imagen apegada a la realidad (tomando en cuenta que el ojo humano es capaz de distinguir hasta 10Millones de colores distintos):
Por lo tanto, una foto de alta resolución, pero con poca profundidad de color, resultará en una imagen que no ocupe mucha cantidad de espacio en disco y la imagen resultante puede no ser la mejor. Sin embargo, una foto de alta resolución y de alta densidad de color, seguro que se llevará más espacio y estará llena de información de color.
Calidad de sonido
Para el sonido, los principios son los mismos, ya que la cantidad de bits que se utilicen, harán posibles las combinaciones para producir sonidos.
Tomando en cuenta cómo funcionan los bits en los colores, entre más bits se tengan para representar la señal, más real será el sonido final, es decir, la forma de la gráfica más se parecerá a una onda de sonido (Para formatos PCM).
Por ejemplo: si tomamos 2 bits: 2^2 = 4 variaciones (o amplitud), que en este caso sería la profundidad de bits del sonido, o bien qué tanto rango de sonido es capaz de hacerse con 4 bits.
La gráfica anterior representa el valor de 2 bits por sample, también a este valor se le conoce como resolución del sample (un sample es un valor específico en el tiempo y en el espacio).
Viéndolo de esa manera, entre más bits por sample se tengan en el sonido, mayor será el rango de sonidos que se podrán reproducir (en imágenes sería el equivalente a la profundidad de color).
La cantidad de samples que se deberán mostrar (o reproducir) por segundo, y como todo lo que hemos visto que se mide en «algo por segundo», es medido en hercios, y es por eso que hallaremos valores de audio en Hz (miles de samples por segundo).
Por ejemplo la calidad de un CD muestra 44110 samples por segundo (44.1Khz) y con una profundidad de sonido de 16 bit. (2^16= 65536)
Lo anterior nos lleva a conocer la tasa de bits (bit-rate) por segundo que se necesitan «tocar» (o pasar tantos bits en un período de tiempo, mejor conocido como stream) y reproducir el audio con cierta calidad:
- Bits por sample x samples por segundo = x Kbps.
Para la calidad de un CD, entonces tenemos que:
- 16 (bits por sample) x 44.1 (miles de samples por segundo) = 705.6Kbps (mono).
Si tenemos entonces que lo anterior es para un sonido monoaural (mono), cuando se quiere una calidad estéreo, entonces, el calor se multiplica por dos
705.6 x 2= 1411.2 Kbps: Es el valor del stream de audio en estéreo con calidad de CD.
Redes IP
Los bits son fundamentales para la asignación y segmentación de las redes IP.
Si te has dado cuenta, una dirección IP se forma de una secuencia de 4 números con un punto entre cada uno.
Ej: 192.168.20.21
¿Qué determina esos números? Los bits. Una dirección IP (versión 4) es de 32 bits ya que cada dirección es una combinación de 4 valores de 8 bits (en redes es conocido como octeto), es por eso que en las direcciones IP no vemos valores mayores a 255 (2^8=256).
El direccionamiento IP versión 4, nos permite entonces tener 2^32 = + 4 mil 232 millones de direcciones potenciales.
Existe una versión mejorada de IP, la versión 6, que son direcciones de 128 bits, la cual, resolvió el problema de falta de direcciones IPv4 (sí, se están terminando las direcciones de 32 bits), teniendo millones de millones de direcciones disponibles gracias al aumento de bits desde la base.
Mi procesador, ¿de 32 o de 64 bits?
Bueno, ahora que más o menos intenté ilustrar la importancia de los bits, nos hemos dado cuenta que, entre más bits, es mayor la capacidad de procesar y presentar información para hacer más realista una imagen, mejorar la precisión del sonido o bien para poder identificar nuestra compu en una vasta red.
Pero ¿cómo afecta esto en los procesadores? En este contexto, los bits (32 o 64) corresponden al tamaño del registro del CPU.
El registro es una memoria de alta velocidad y poca capacidad que incluye el CPU, donde se guardan temporalmente valores muy usados generalmente de operaciones matemáticas y funciones específicas de hardware, esta es la manera más rápida que existe en el sistema para almacenar datos (es la memoria más rápida que existe, incluso más rápida que la memoria caché).
El registro se mide en bits que puede almacenar, por ejemplo «un registro de 64 bits» y se agrupan en banco de registros. La asignación de bits se refiere al ancho del registro, 64 bits pueden retener más información que un registro de 32 bits, el cual, a su vez, puede alojar más datos que los registros de 16 y 8 bits.
Las arquitecturas son retrocompatibles, es decir, los 32 bits caben en un registro de 64, pero una instrucción de 64 bits, no cabe en un registro de 32 y por esta razón no podemos instalar un windows, o algún software de 64 bits en un ensamble que tiene un procesador de 32 bits.
Mientras más amplios sean los registros del CPU, mayor información podrá manejar, especialmente en términos de memoria RAM. Por ejemplo para sistemas de 32 bits, el límite de memoria que se puede manejar es de (2^32 = +4294millones), o sea 4 GB de memoria RAM, (a cada proceso se le dan hasta 4 GB de memoria virtual para que la haga como quiera) mientras que el sistema de 64 bits es de (2^64 = +18trillones) hasta 16 Exabytes de memoria (16 millones de Terabytes de memoria utilizables). Claro, ahora no hay un sistema que soporte esta cantidad de memoria, sin embargo, nos podemos dar idea de cuán escalable es tener un sistema u otro…en términos de computo.
Para los procesos, más bits significan que los datos se pueden procesar en bloques más grandes, de manera más precisa (yo lo llamaría mayor resolución en el proceso, igual que con la profundidad de color de una imagen y la profundidad de bits de un audio) y apuntar a una mayor cantidad de memoria RAM.
Lo cual nos beneficia para programas de alta utilización de memoria y uso intensivo del CPU, como programas de simulación y matemáticas (los cálculos que llevan a cabo son más precisos al haber más bits para combinar) o en programas de edición de imágenes y video nos ahorramos muchísimo más tiempo al hacer algún render o a trabajar con imágenes de mayor resolución, al haber más memoria RAM disponible o bien las instrucciones para hacer el render de algún video contienen mayor información para procesar (el doble), haciendo muchísimo más rápida la tarea (en combinación con hardware especializado)
En el gaming, podemos hallar beneficios, por ejemplo, para crear juegos mucho más complejos, que permitan generar más variables de un objeto trabajando simultáneamente, por ejemplo más naves espaciales en escena; un ejército de miles, peleando contra otro similar y cada soldado haciendo daño individualmente, más habitantes viviendo y haciendo cosas distintas en nuestro simulador de ciudades, en un MMO, calcular todos los daños de cada personaje con sus modificadores, sólo por mencionar algunos.
Conclusiones
A pesar de estar entre nosotros desde finales de los años 60, el cómputo de 64 bits nunca ha estado tan presente como hoy día, hasta hace unos años, la gente se seguía cuestionando si valdría la pena actualizar a un sistema de 64 bits, principalmente porque que eran tiempos en los que poca gente tenía más de 4GB de RAM instalada, los códigos de los programas no estaban optimizados o simplemente no existían drivers para los sistemas operativos de 64 bits para nuestra PC. Sin embargo, el cambio y los beneficios que ofrece una arquitectura de 64 bits es enorme cuando comenzamos a aprovechar su potencial, no sólo en el gaming, sino también en los programas de virtualización y de edición, procesamiento de multimedia simuladores matemáticos, etc.
Espero que hayas disfrutado esta entrega y te agradecemos que hayas llegado hasta leer estos renglones.
Déjanos tus comentarios y puntos de vista, si crees que algo nos faltó o quieres que ahondemos en algún tema en específico, no dudes en decirnos.