You are on page 1of 14

30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura

Página 1 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
De los 32 a los 64 bits: ventajas y desafíos de la transición de una
arquitectura
comentarios 134
Este año hemos vivido la entrada del mundo móvil a los 64 bits, y esperamos que de cara a 2014
llegue la implantación masiva de esta tecnología. Una evolución que ya conocemos en sistemas de
escritorio y, por tanto, podemos echar la mirada atrás para recordar lo que ocurrió por aquél 2003.
¿Qué son los 64 bits y qué implicaciones conllevan? ¿En qué medida afectan al rendimiento?
Hoy entenderemos qué significan esos 64 bits, explicaremos lo que representan y los beneficios
que podemos llegar a obtener.
¿Qué son esos 64 bits?
Antes de entrar en materia es necesario repasar algunos conceptos fundamentales. El primero, ¿qué
es un bit?
Según DRAE:
bit.
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 2 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
(Del ingl. bit, acrón. de binary digit ‘dígito binario’).
1. m. Inform. Unidad de medida de información equivalente a la elección entre dos
posibilidades igualmente probables.
Un bit es la esencia de la informática
En informática un bit es la unidad mínima de información y puede tomar dos valores,
generalmente 0 o 1. Un bit es cero o es uno, sin otras posibilidades. Otra forma de decir lo mismo es
hablar de falso o verdadero; un bit puede ser falso (generalmente asignado como valor 0) o verdadero
(valor 1).
Cuando hablamos de 64 bits nos referimos a que existen 64 elementos que pueden ser 0 o 1 cada una
de ellos. Con esto, una cadena de 64 bits de ejemplo sería la siguiente:
0010101010110101101101011010110110100110111011100011101011101101
Que se trata de un número en representación binaria. Si lo convertimos a decimal nos encontraremos
con el 3077565677812202221. Un número exageradamente grande, sí. Como referencia, una cadena
de 64 bits puede contener números entre 0 y 2^(64)-1, aproximadamente 1,18!(10^19). Nos puede
servir para representar información numérica, pero también otro tipo de información: una cadena de
bits está generalmente asociada al tamaño de los registros o a las direcciones de memoria.
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 3 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
Esto último es importante, y lo trataremos más adelante.
Los alumnos
¿Qué usos puede tener una cadena de 64 bits como la anterior? Si pensamos en la vida real podemos
plantear la siguiente problemática: tenemos 64 alumnos de un colegio y queremos almacenar cuál es el
género de cada uno de ellos para tenerlo disponible en nuestro ordenador.
Con esto, lo primero que debemos hacer es ordenar alfabéticamente a todos los niños, por ejemplo con
el primero de sus apellidos. Tras ello podemos utilizar el siguiente código:
Si es un niño, se le asignará un 0
Si es una niña, se le asignará un 1
Ahora recordemos los primeros cinco dígitos de la cadena anteriormente utilizada: 00101[…].
Rápidamente se puede concluir que los dos primeros alumnos de nuestra lista ordenada por apellido
serán niños, irán seguidos por una niña, otro niño y una niña más. Algo así:
Alonso, Felipe
Álvarez, Juan
Benitez, Beatriz
Castillo, Pablo
Canales, Lourdes
[…]
Y seguiríamos hasta el niño número 64 que, por cierto, sería una niña (Alba Zamora, quizá).
Evidentemente este es un ejemplo muy sencillo pero que nos sirve a la perfección para entender la base
de funcionamiento. El siguiente paso que debemos dar es cambiar nuestro registro de 64 bits por uno
de 32.
Pasémonos a los 32 bits
Si tenemos 64 niños podríamos haber almacenado toda la información del género en una única cadena
cuya longitud sería, precisamente, 64 bits. ¿Qué ocurre si en vez de 64 bits utilizamos 32 bits?
A priori la medida es tan simple como acortar el tamaño que utilizamos, y hacer uso de tantos registros
de 32 bits como sean necesarios en vez de los de 64.
Con 32 bits, nuestros 64 alumnos tendrían que utilizar dos cadenas en vez de una. Serían, justamente,
las dos siguientes:
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 4 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
00101010101101011011010110101101
10100110111011100011101011101101
Guardamos la misma información en el mismo orden. ¿El mismo orden? ¿Seguro? Parece que sí, pero
¿y si por algún error cambiamos las dos filas de 32 bits?
10100110111011100011101011101101
00101010101101011011010110101101
Con este cambio tan sencillo nos hemos cargado toda la mecánica, pues ahora Felipe Alonso será una
niña y Lourdes Canales un niño.
Para solucionar esta problemática podemos hacer uso de lo que generalmente se denomina cabecera
de datos. Los 32 bits (y antes los 64 bits) no se usan por completo para almacenar la información que
nosotros queramos, si no que se guarda un espacio para poder obtener cierta información
fundamental. En este caso sería interesante guardar un bit para determinar el orden: cuál de las
dos cadenas binarias es la primera, y cuál es la segunda. Por ejemplo, podemos asignarle el valor 0 a la
primera cadena, y 1 a la segunda:
0-00101010101101011011010110101101
1-10100110111011100011101011101101
Sin embargo, si os fijáis bien, nos hemos salido de los 32 bits, ya que ahora utilizamos 33: 1 dígito para
determinar la posición de la fila de bits junto con otros 32 dígitos para los alumnos. 33+33 = 66. Si
utilizásemos cadenas de 32 bits necesitaríamos un total de tres, que podemos determinar reubicando
ciertos bits (alumnos); en nuestro caso el último de cada fila lo añadimos al principio de la siguiente
fila:
0-0010101010110101101101011010110
1-1101001101110111000111010111011
X-01
Esa X es un nuevo problema que nos encontramos. Un bit sólo puede registrar 0 o 1, con lo que si
añadimos una nueva fila (la tercera) deberíamos asignarle el siguiente valor al 1, que en binario sería
10. Esto son dos bits y es necesario almacenar otro bit en la cabecera para así ahora poder tener tres
cadenas de bits:
00-0010101010110101101101011010110
01-1101001101110111000111010111011
10-01
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 5 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
Hemos añadido un nuevo bit en nuestra cabecera y ahora ya tenemos claro el orden de cada cadena.
¿Lo malo? Que nos hemos vuelto a pasar y almacenamos más de los 32 bits permitidos: 2+31=33 bits
en cada cadena. Tenemos que volver a desplazar y mover ciertos alumnos (en nuestro caso los últimos)
para reasignarlos en la siguiente cadena:
00-001010101011010110110101101011
01-011010011011101110001110101110
10-1101
Por ahora ya hemos terminado con este sencillo ejemplo. Los lectores más avanzados habrán
observado que utilizando 2 bits para determinar la posición de la fila podemos tener un total de 4 filas
ordenadas, definidas por 00, 01, 10 y 11 que, en formato decimal, indican 0, 1, 2 y 3. Dado que
estemos permitiendo un total de 30 bits para los alumnos, podríamos tener hasta 120 (30!4) alumnos
almacenados mediante este sistema. ¿Y si queremos almacenar 121 alumnos? ¿O 125? La respuesta
tendrá que pensarla cada uno.
Conclusión
Inicialmente hemos planteado un único problema: tenemos 64 alumnos y queremos almacenar su
género. Para ello podemos ordenarlos alfabéticamente a todos según el apellido, y asignarle un 0 a los
niños y un 1 a las niñas.
Con registros de 64 bits la implicación es directa: un bit para cada alumno. Tendremos una única
cadena y no necesitamos más información.
Con registros de 32 bits podemos pensar que inicialmente necesitamos dos de ellos, cuando en
realidad necesitamos, al menos, tres: es necesario determinar el orden, algo que puede parecer nimio
pero que es vital, pues como no tengamos esas cadenas bien ordenadas la información almacenada
será incorrecta.
¿Dónde utilizamos los ‘bits’? Las arquitecturas de 64 bits
Cuando hablamos de 64 bits nos referimos, generalmente, al tamaño de cualquier estructura de
datos que, en este caso, permite almacenar 64 bits de ‘algo’. Puede ser el género de un alumno, su
edad o su estatura. En estos dos últimos casos debemos tener en cuenta que cada alumno ocupa más
de un bit, ya que la información no puede ser representada sólo con 0 o 1.
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 6 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
Cortex-A57, uno de los primeros ARM 64 bits que saldrán al mercado
En las últimas semanas se ha hablado mucho sobre arquitectura de 64 bits con el lanzamiento del
iPhone 5S que es considerado el primer smartphone con esos 64 bits. ¿Qué significan esos ’64 bits’?
Decimos que un procesador tiene una arquitectura de 64 bits cuando sus registros tienen
espacio para almacenar 64 bits. ‘Registro’ es una palabra que silenciosamente hemos utilizado
anteriormente, y que técnicamente se refiere a un pequeño espacio de almacenamiento físico dentro de
los procesadores donde se pueden guardar 64 0 o 1. Existen registros por prácticamente cualquier
componente, ya sean de 64 bits o de otro tamaño.
La mejor y más sencilla representación para un registro de 64 bits sería, simplemente, 64 huecos
numerados (del 0 al 63), con espacio para almacenar ceros o unos. De forma homóloga, un
procesador con arquitectura de 32 bits maneja registros de 32 bits.
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 7 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
Cuatro registros de 4 bits
cada uno, cortesía de Ikea
Un
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 8 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
montón de registros en una oficina de USPS (vía Wikipedia)
Un procesador de 64 bits puede gestionar mayor cantidad de información que uno de 32
bits, ya que sus registros son de mayor tamaño. Pero claro, que un procesador tenga registros de 64
bits no implica directamente que vaya a aprovechar todos ellos al máximo: como es habitual, es
necesario que el sistema operativo sea compatible y que el software pueda sacarle partido a los
nuevos tamaños.
Si nos ceñimos al iPhone 5S, incorpora una versión específica de iOS 7 compatible con 64 bits. Esta
compatibilidad es necesaria para que el sistema pueda tratar y operar con registros de 64 bits, en vez
de los 32 más habituales. Volviendo a un ejemplo real podemos imaginar una bandeja con 64 huecos
donde ponemos elementos (por ejemplo patatas y cebollas para hacer una tortilla) que más adelante
cortará un robot. Si ese robot tiene 64 brazos y es capaz de gestionar todos los elementos a la vez,
perfecto; si sólo tiene 32 brazos tendremos que realizar dos pasadas, e incluso si no está preparado
para gestionar esas dos pasadas es posible que la mitad de los elementos no lleguen a manipularse
nunca y, por tanto, nuestro sistema será inválido.
Los 64 bits son importantes para un componente fundamental de los sistemas operativos: el
direccionamiento de memoria. El microprocesador de un computador (sobremesa, portátil,
smartphone, cualquiera) está continuamente determinando dónde leer y escribir información dentro
del dispositivo de almacenamiento, y estas operaciones se realizan a través de cadenas de bits que
guardan cierta información (en la cabecera) para evitar errores, colisiones, etc. Un breve resumen
sobre el funcionamiento del direccionamiento de memoria en Intel x86 de 64 bits (denominado x86-
64) puede encontrarse en Wikipedia, aunque las referencias oficiales las tiene Intel en su página web
en un enorme manual de unos cuantos miles de páginas.
Repercusiones en nuestros móviles
iPhone 5S es el primero en llegar a la meta de los 64 bits en smartphones, pero no será el único. ARM
está preparando los Cortex-A53 y A57 de 64 bits que previsiblemente llegarán al mercado de cara al
próximo año. Los sistemas operativos tendrán que actualizarse para ofrecer la compatibilidad con los
nuevos tamaños de los registros, por supuesto.
Dado que se amplían los registros el
procesador es capaz de hacer más
en menos tiempo, utilizando menos
ciclos de reloj
Que un sistema sea de 64 o de 32 bits es algo completamente transparente al usuario, y
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 9 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
las mejoras que pueden producirse serían a nivel de funcionamiento interno del sistema. Dado que se
amplían los registros, el procesador es capaz de hacer más en menos tiempo, utilizando menos ciclos
de reloj y, por tanto, consumiendo menos energía. Si estos conceptos os suenan extraños podéis
echarle un vistazo a nuestro especial CISC frente a RISC, donde los explicamos junto al genial
algoritmo de la tortilla de patata.
Si bien la teoría dicta lo que hemos expuesto en el párrafo anterior, la práctica es mucho más compleja.
Un smartphone suele operar muchas pequeñas cadenas de datos al tener multitud de pequeños
procesos ejecutándose en segundo plano. Además, si nos centramos en el consumo energético, tiene
otros componentes que afectan de forma mucho más notable a la autonomía del smartphone como la
pantalla y su luminosidad. El salto a los 64 bits es una evolución natural que repercutirá en una
cierta mayor rapidez a la hora de procesar información (por ejemplo al añadir un filtro a una
fotografía), pero que en el uso cotidiano apenas aportará diferencias respecto de lo que conocemos,
pues salvo alguna excepción el software más convencional no requiere de esta evolución.
Si nos fijamos en el rendimiento podemos acudir a los siempre geniales análisis de AnandTech, donde
en esta ocasión hablan de la ejecución de varios algoritmos en sus versiones de 32 y 64 bits. La
mejora obtenida depende enormemente del tipo de algoritmo que se utilice, aunque sí puede
concluirse que en general se obtendrá una diferencia bastante significativa en torno al 30%,
excluyendo algunas pruebas en las que se obtienen cifras superiores al 800%.
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 10 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
Pero esto son algoritmos teóricos y pruebas puntuales, los denominados benchmarks. En aplicaciones
de uso general las cosas cambian radicalmente, ya que el software de uso diario está lejos de ser
tan exigente. Aún es necesario que muchos desarrolladores actualicen sus respectivas aplicaciones a
los 64 bits, con lo que todavía no podemos determinar el porcentaje de mejora debido al salto de los 32
a 64 bits. También hay que sumar otro problema, y es que iPhone 5S no sólo realiza la evolución a los
64 bits, si no que también utiliza un procesador renovado Apple A7 con diferentes núcleos y un nuevo
juego de instrucciones respecto del A6 anterior.
Un vistazo al pasado: esto ya ocurrió hace diez años
La evolución de los 32 a los 64 bits no es nueva. Los 64 bits ya llegaron a los procesadores de PC
en 2003.
A pesar de que Intel es la principal desarrolladora de la arquitectura x86, fue AMD quien en 1999
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 11 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
empezó a desarrollar una extensión de 64 bits sobre la IA32 de Intel. La finalizaron en agosto del año
2000 y pusieron el primer procesador compatible AMD ‘Opteron’ en 2003. Poco después llegó
la primera CPU doméstica preparada para 64 bits, AMD Athlon 64 3200+ de un núcleo a 2.0 GHz.,
proceso de manufactura de 130 nanómetros.
AMD Athlon 64
3200+, según el análisis del 2003 de XbitLabs
En 2003, uno de los problemas más
comunes fue la compatibilidad del
software y el sistema operativo
A pesar de que el hardware ya estaba preparado, el software aún llevaba un par de años de desventaja.
Microsoft lanzó Windows XP 64 bit Edition en 2005, cuatro años más tarde del original de 32
bits de 2001 y con dos de retraso respecto de los Athlon 64. Uno de los problemas más comunes era la
compatibilidad del software con el sistema operativo, pues en el sistema de 32 bits no podías instalar
programas de 64 (lógico), pero… en el sistema de 64 bits no se podían utilizar programas de 32 bits.
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 12 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
Por entonces prácticamente todo eran versiones de 32 bits, con lo que aquel Windows XP 64 bits
quedó en una anécdota más que en algo útil. Más tarde Microsoft lanzó Windows Vista y las sucesivas
versiones que solucionaron este problema de incompatibilidad.
La intención de AMD y otros con aquellos lanzamientos de 2003 y años posteriores no era buscar una
mejora importante en el rendimiento, si no utilizar de forma más óptima el direccionamiento
de la memoria del que hablábamos antes. Un sistema de 32 bits permite utilizar un registro de
32 posiciones para gestionar la memoria RAM. Hasta 2^32 posibilidades, esto son 4294967296 bits: 4
GB, que es la mayor cantidad con la que puede operar un sistema de 32 bits. Si bien por aquella época
lo habitual era encontrar ordenadores con 512 MB, 1 o 2 GB de RAM, ya había algunos usuarios que
buscaban llegar más allá de los 4 GB y, por tanto, la evolución a los 64 bits era necesaria.
La mejora producida ha sido quizá un tanto exagerada. De los 4 GB máximo admitidos en los 32 bits
hemos pasado a 64 posiciones permitidas, en total 2^64 = 1,8x10^19, unos 16 exbibytes en los
sistemas de 64 bits, aproximadamente 16.000.000 Terabytes. En la actualidad Windows 8 limita la
cantidad a 192 o 512 GB, según versión. Parece que no tendremos problemas de direccionamiento de
memoria por un tiempo.
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 13 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
Módulos de memoria RAM LPDDR2 para smartphones, de Samsung
Es necesario comentar que los smartphones aún están lejos de alcanzar ese límite de 4 GB.
La mayoría de modelos optan por 1 o 2 GB, con alguno que llega hasta los 3. No parece que sea
necesaria más cantidad de memoria durante un tiempo y por tanto los 64 bits no serán un requisito
indispensable hasta dentro de unos años, si bien es cierto que es muy interesante ir evolucionando
para que los desarrolladores de software tengan el tiempo suficiente para adaptar sus programas. El
salto de los 32 a los 64 bits no será instantáneo y durará varios meses, incluso años, con lo que
adelantarse a ese momento puede considerarse una decisión muy sabia. Seguramente estudiaron lo
que ocurrió en el mundo PC hace una década y han sabido rectificar a tiempo.
¿Qué cambiará con esos 64 bits en smartphones?
Conclusiones
Lo que a priori es un gran cambio (duplicamos los 32 bits anteriores) es realmente una evolución
más de la tecnología. Doblar el tamaño de registro puede dar lugar a pensar que estamos
30/01/14 18:47 De los 32 a los 64 bits: ventajas y desafíos de la transición de una arquitectura
Página 14 de 14 http://www.xataka.com/otros/de-los-32-a-los-64-bits-ventajas-y-desafios-de-la-transicion-de-una-arquitectura
duplicando el rendimiento, cuando en realidad estamos muy lejos de llegar a esa afirmación.
Los 64 bits repercutirán en un mayor
rendimiento en algunas tareas,
aunque en aplicaciones generales no
tendrán gran impacto.
Las repercusiones de implementar una arquitectura de 64 bits son reales y podrán notarse,
pero de forma mucho más tenue de como muchos piensan. Ampliar el tamaño de las operaciones
admitidas por el procesador es de gran importancia en ciertas tareas, como por ejemplo la codificación
y decodificación de algoritmos como SHA o AES, aunque en aplicaciones generales no tendrá un
gran impacto.
Si nos centramos en alguna característica palpable esa es, sin duda alguna, la memoria RAM. Pasar de
32 a 64 bits implica poder direccionar más de 4 GB de memoria RAM, algo que es posible hoy
en día no sea necesario pero que no tardaremos muchos años en utilizar.
Ya por último los 64 bits son, a día de hoy, una exclusividad de Apple y su iPhone 5S en el mercado,
pero pronto llegarán al resto de plataformas. ARM está preparando nuevos núcleos Cortex-A50
que pretenden llegar al mercado de cara al próximo 2014, inicialmente en las gamas más altas. Con
estos nuevos procesadores también tendrán que llegar actualizaciones de los sistemas operativos que
añadan el soporte al renovado hardware, algo que no debería tardar mucho tiempo en producirse.
En definitiva, estamos ante una evolución natural del hardware y, con él, también del software.
Algo que ya vivimos hace una década en equipos de sobremesa, y de lo que hemos aprendido para no
cometer los mismos errores. Será una evolución completamente transparente para el usuario con la
que lo único malo que podemos obtener es una mejora en el rendimiento menor de la que muchos
prevén.