64 bits

64 bits es un adjetivo usado en:

  • Desde la perspectiva de software, la computación de 64 bits significa el uso de código con direcciones de memoria virtuales de 64-bits.

Microarquitectura

Visión general

Los microprocesadores de 64 bits han existido en las supercomputadoras desde 1960 y en servidores y estaciones de trabajo basadas en RISC desde mediados de los años 1990. En 2003 empezaron a ser introducidos masivamente en las computadoras personales (previamente de 32 bits) con las arquitecturas x86-64 y los procesadores PowerPC G5.

Aunque una CPU puede ser internamente de 64 bits, su bus de datos o bus de direcciones externos pueden tener un tamaño diferente, más grande o más pequeño y el término se utiliza habitualmente para describir también el tamaño de estos buses. Por ejemplo, muchas máquinas actuales con procesadores de 32 bits usan buses de 64 bits (p.ej. el Pentium original y las CPUs posteriores) y pueden ocasionalmente ser conocidas como "64 bits" por esta razón. El término también se puede referir al tamaño de las instrucciones dentro del conjunto de instrucciones o a cualquier otro elemento de datos (p.ej. las cantidades de 64 bits de coma flotante de doble precisión son comunes). Sin más calificaciones, sin embargo, la arquitectura de las computadoras de 64 bits tiene integrados registros que son de 64 bits, que permite procesar (interna y externamente) datos de 64 bits.

Implicaciones de arquitectura

Los registros en un procesador se dividen generalmente en tres grupos: enteros, coma flotantes ( números decimales ) y otros. En todos los procesadores de propósito general, sólo los registros enteros pueden almacenar punteros (una dirección de algún dato en memoria). Los registros que no son de enteros no se pueden utilizar para almacenar punteros para leer o escribir memoria y por tanto no se pueden utilizar para evitar cualesquiera restricciones impuestas por el tamaño de los registros enteros.

Casi todos los procesadores de propósito general (con la notable excepción de muchos ARM e implementaciones MIPS de 32 bits) han integrado hardware de coma flotante, que puede o no utilizar registros de 64 bits para transportar datos con el fin de procesarlos. Por ejemplo, la arquitectura X86 incluye instrucciones de coma flotante del x87 que utiliza 8 registros de 80 bits en una configuración en forma de pila; revisiones posteriores del x86 y la arquitectura x86-64 también incluyen instrucciones SSE que utilizan 8 registros de 128 bits (16 registros en el x86-64). En contraste, el procesador de 64 bits de la familia DEC Alpha define 32 registros de coma flotante de 64 bits además de sus 32 registros de enteros de 64 bits.

Debería notarse que la velocidad no es el único factor por considerar en una comparación de procesadores de 32 bits y 64 bits. Usos como la multitarea, las pruebas de carga y el clustering (para computación de alto rendimiento) pueden ser más idóneos para una arquitectura de 64 bits teniendo en cuenta un desarrollo correcto. Los clusters de 64 bits han sido ampliamente usados en grandes organizaciones como IBM, Vodafone, HP y Microsoft, por esta razón.

Mientras las arquitecturas de 64 bits incontestablemente hacen más sencillo el trabajar con grandes conjuntos de datos en aplicaciones como el vídeo digital, computación científica y grandes bases de datos, ha habido un debate considerable sobre si los modos de compatibilidad con 32 bits serán más rápidos que los sistemas de 32 bits del mismo precio para otras tareas. En las arquitecturas x86-64 (AMD64 y EM64T, IA-32e), la mayoría de los sistemas operativos de 32 bits y aplicaciones pueden ejecutarse sin problemas en el hardware de 64 bits.

Limitaciones de memoria

Los procesadores de 64 bits pueden direccionar teóricamente hasta 16 exabytes de memoria, mientras que los procesadores de 32 bits sólo pueden direccionar 4 Gb de memoria RAM.[1]

Muchas CPU (en 2009) están diseñadas para que los contenidos de un único registro puedan almacenar la dirección de memoria de cualquier dato en la memoria virtual. Por tanto, el número total de direcciones en memoria virtual — la suma total de datos que la computadora puede mantener en su área de trabajo — es determinado por el ancho de estos registros. Empezando en los años 1960 con el IBM S/360, luego (entre muchos otros) la computadora VAX de DEC en los años 1970 y luego con el Intel 80386 a mediados de los años 1980, un consenso de facto instauró que 32 bits era un tamaño conveniente de registro. Un registro de 32 bits significa que se puede referenciar 232 direcciones o 4 gigabytes de RAM. En el momento en que estas arquitecturas fueron concebidas, 4 gigabytes de memoria estaban muy lejos de las cantidades disponibles en instalaciones que se consideraban suficiente "espacio" para direccionamiento. Las direcciones de 4 gigabytes se consideraban un tamaño apropiado con el que trabajar por otra importante razón: 4 mil millones de enteros son suficientes para asignar referencias únicas a la mayoría de cosas físicamente contables en aplicaciones como bases de datos.

No obstante, con el paso del tiempo y las continuas reducciones en el coste de la memoria (véase la Ley de Moore), al comienzo de los años 1990, comenzaron a aparecer instalaciones con cantidades de RAM próximas a los 4 gigabytes, y comenzó a ser deseable el uso de espacios de memoria virtual que superaban el límite de 4 gigabytes para manejar ciertos tipos de problemas. Como respuesta, varias empresas empezaron a lanzar nuevas familias de chips con arquitecturas de 64 bits, inicialmente para supercomputadoras, estaciones de trabajo de grandes prestaciones y servidores. Las computadoras de 64 bits se han ido moviendo hacia la computadora personal, comenzando en 2003 con la innovadora tecnología AMD64 (denominada genéricamente x86-64 por su completa compatibilidad inversa con los sistemas x86), los AMD's K8 (Athlon 64) y la arquitectura PowerPC de Macintosh de Apple Computer con los procesadores PowerPC 970 G5 Antares, y a procesadores EM64T en 2006, basadas también en tecnología x86-64, llegando a ser comunes en PC de gama alta. La aparición de la arquitectura de 64 bits efectivamente incrementa el límite a 264 direcciones, equivalente a 17 179 869 184 gigabytes o 16 exabytes de RAM. Para poner esto en perspectiva, en los días en que 4 MB de memoria principal eran comunes, el límite máximo de memoria de 232 direcciones era unas 1000 veces mayor que la configuración típica de memoria. En 2007, cuando 1GB de memoria principal es común, el límite de 264 es unos diez mil millones de veces superior, es decir diez millones de veces más de espacio.

Muchos PC de 64 bits del mercado tienen actualmente un límite artificial en la cantidad de memoria que pueden reconocer, pues las limitaciones físicas hacen muy poco probable que se vaya a necesitar soporte para los 16 exabytes de capacidad total. El Mac Pro de Apple, por ejemplo, puede configurarse físicamente con hasta 32 gigabytes de memoria, y por ello no hay necesidad de soportar más allá de esa cantidad. Un núcleo linux reciente (versión 2.6.16) puede ser compilado con soporte para hasta 64 gigabytes de memoria. Según Apple la nueva versión de su sistema operativo teóricamente direcciona 16 Terabytes de memoria.[2]

Sistemas operativos

En Windows, la más importante diferencia entre las versiones 32 y 64 bits es que el primero admite hasta 4 Gb. de RAM, de los cuales aprovechará tan sólo 3.25 Gb. En el caso de los sistemas operativos de 64 bits estos admiten hasta 192 Gb. de RAM.[1]

Algo a tener en cuenta es la compatibilidad del software de usuario, es decir los programas, y los controladores encargados de hacer funcionar el hardware. Es sumamente importante que antes de dar el salto estemos bien seguros de que todo nuestro hardware como cámaras, escáners, impresoras y todo lo demás cuenten con una versión de 64 bits de sus controladores o bien que cuenten con controladores genéricos en dichos sistemas.[1]

Otra cosa que tenemos que tener en cuenta es que si queremos migrar a una arquitectura de 64 bits a partir de una versión de Windows de 32 bits, no se podrá hacer mediante una actualización o parche, tendremos que comprar una versión específica para esa arquitectura. Si utilizamos un sistema operativo libre como Debian o sus derivados como Ubuntu, la migración no será problema.[1]

Arquitecturas de microprocesador de 64 bits actuales

Las arquitecturas de microprocesador de 64 bits ( a fecha de 2006) comprenden:

  • La arquitectura DEC Alpha (véase la cronología de Digital Alpha)
  • La arquitectura IA-64 de Intel (usada en las CPUs Itanium de Intel)
  • La arquitectura AMD64 de AMD (previamente conocida como x86-64), una versión de 64 bits de la arquitectura x86 (usada en las CPUs Athlon 64, Opteron, Sempron y Turion 64).
    • Intel usa ahora el mismo conjunto de instrucciones en los procesadores Pentium 4 y Xeon nuevos y en los procesadores Core 2 Duo, llamándola Intel 64 (previamente conocida como EM64T, originalmente IA-32e). Los fabricantes de software Microsoft y Sun Microsystems llaman a este conjunto de instrucciones "x64".
  • La arquitectura SPARC (de 64 bits desde SPARC V9)
    • La arquitectura UltraSPARC de Sun
    • La arquitectura SPARC64 de Fujitsu
  • La arquitectura POWER de IBM (de 64 bits desde POWER3 y las variantes RS64)
  • La arquitectura PowerPC de IBM/Motorola (el PowerPC 620 de 64 bits y las variantes PowerPC 970)
  • La arquitectura z/Architecture de IBM, usada por los mainframes zSeries y System z9, una versión de 64 bits de la arquitectura ESA/390
  • Las arquitecturas MIPS IV, MIPS V, y MIPS64 de MIPS Technologies
  • La familia PA-RISC de HP (de 64 bits desde el PA-RISC 2.0)

Muchas arquitecturas de procesador de 64 bits pueden ejecutar nativamente código de la versión de 32 bits de la arquitectura sin ninguna penalización en el rendimiento. Este tipo de soporte se conoce frecuentemente como soporte biarquitectura o más generalmente como soporte multiarquitectura.

Historia

Cronología del procesador de 64 bits

  • 1961: IBM lanzó la supercomputadora IBM 7030 Stretch. Este utilizaba palabras de 64 bits e instrucciones de 32 o 64 bits.
  • 1974: Control Data Corporation lanzó la supercomputadora vectorial CDC Star-100, que utiliza una arquitectura de palabras de 64 bits (los sistemas previos de CDC estaban basados en arquitecturas de 60 bits).
  • 1976: Cray Research lanzó la primera computadora Cray-1. Este estaba basado en una arquitectura de palabras de 64 bits, que sentó las bases para los posteriores supercomputadoras vectoriales de Cray.
  • 1983: Elxsi lanzó la mini supercomputadora Elxsi 6400 paralelo. La arquitectura Elxsi tenía registros de datos de 64 bits pero un espacio de direcciones de 32 bits.
  • 1991: MIPS Technologies produjo el primer microprocesador de 64 bits, como la tercera revisión de la arquitectura RISC MIPS, el R4000. La CPU fue utilizada en las estaciones de trabajo de Silicon Graphics empezando con el IRIS Crimson. Sin embargo, el soporte de 64 bits para el R4000 no se incluyó en el sistema operativo IRIX hasta la versión IRIX 6.2 en 1996.
  • 1993: DEC lanzó los sistemas operativos de 64 bits estilo UNIX Tru64 y el OpenVMS para Sistemas Alpha.
  • 1994: Intel anunció sus planes para la arquitectura IA-64 de 64 bits (desarrollada conjuntamente con HP) como sucesor de su procesador de 32 bits IA-32. SGI lanzó el IRIX 6.0 con soporte de 64 bits para las CPUs R8000.
  • 1995: Sun lanzó un procesador SPARC de 64 bits, el UltraSPARC. HAL Computer Systems propiedad de Fujitsu lanzó estaciones de trabajo basadas en una CPU de 64 bits, HAL independientemente diseñó la primera generación de SPARC64. IBM lanzó los sistemas AS/400 de 64 bits, con la posibilidad de actualizar el sistema operativo, las bases de datos y las aplicaciones. DEC lanzó el OpenVMS Alpha 7.0, la primera versión completa de 64 bits de OpenVMS para Alpha.
  • 1996: HP lanzó una implementación de 64 bits, la versión 2.0 de su arquitectura de procesador PA-RISC, el PA-8000. Nintendo introdujo la consola de videojuegos Nintendo 64, construida con una variante de bajo coste del MIPS R4000.
  • 1997: IBM lanzó su RS64 equipado con procesadores PowerPC de 64 bits.
  • 1998: IBM lanzó su procesador POWER3 completamente de 64 bits de la familia PowerPC/ POWER. Sun lanzó Solaris 7, con soporte completo para UltraSPARC de 64 bits.
  • 1999: Intel publicó el conjunto de instrucciones para la arquitectura IA-64. Primera revelación pública del juego de extensiones de 64 bits al IA-32 de AMD (posteriormente renombrado como AMD64).
  • 2000: IBM estrenó su primer mainframe de 64 bits, el z900 y su nuevo sistema operativo, el Z/OS  — culminando el mayor desarrollo de la historia de investigación de un procesador de 64 bits e instantáneamente borrando la compatibilidad con las máquinas de 31 bits de sus competidores Fujitsu/ Amdahl e Hitachi. Un Linux para zSeries de 64 bits apareció casi inmediatamente.
  • 2001: Intel finalmente lanzó su línea de procesadores de 64-bit, con la marca Itanium, teniendo como objetivo servidores de gama alta. No cumplió las expectativas debido a los repetidos retrasos del lanzamiento del IA-64 al mercado y se convirtió en un fracaso. Linux fue el primer sistema operativo en esta versión de procesador.
  • 2002: Intel introdujo el Itanium 2 como sucesor del Itanium.
  • 2003: AMD sacó a la luz sus líneas de procesadores con arquitectura AMD64 Opteron y Athlon 64. Apple lanzó también sus CPUs PowerPC 970 "G5" de 64 bits por cortesía de IBM, junto con una actualización de su sistema operativo Mac OS X, que añadió soporte parcial para el modo de 64 bits. Se publicaron varias distribuciones Linux con soporte para AMD64. Microsoft anunció que crearía una versión de su sistema operativo Windows para esos chips AMD. Intel sostuvo que sus chips Itanium serían sus únicos procesadores de 64 bits.
  • 2004: Intel, reaccionando al éxito de mercado de AMD, admitió que había estado desarrollando un clon de las extensiones AMD64, al que llamó IA-32e y posteriormente renombró como EM64T. Se lanzaron versiones actualizadas de sus familias de procesadores Xeon y Pentium 4 que soportaban las nuevas instrucciones. Freescale anuncia su núcleo e700, sucesor de su familia PowerPC G4.
  • 2005: El 31 de enero, Sun lanzó Solaris 10 con soporte para los procesadores AMD64 y EM64T. En marzo, Intel anunció que sus primeros procesadores EM64T de doble núcleo se pondrían a la venta en el segundo cuatrimestre de 2005 con la publicación de su Pentium Extreme Edition 840 y los nuevos chips Pentium D. El 30 de abril, Microsoft lanzó públicamente su Windows XP Professional x64 Edition para procesadores AMD64 y EM64T. En mayo, AMD introdujo sus primeros procesadores para servidores Opteron AMD64 de doble núcleo y anunció su versión de escritorio, llamada Athlon 64 X2. Los primeros procesadores Athlon 64 X2 (Toledo) contaban con dos núcleos con una memoria caché L2 de 1MB y consistían de aproximadamente 233,2 millones de transistores. Tenían un tamaño de 199 mm2. En julio, IBM anunció sus nuevos procesadores PowerPC 970MP (cuyo nombre en código era Antares) de doble núcleo y 64 bits usados por IBM y Apple. Microsoft lanzó la consola Xbox 360 que usaba el procesador PowerPC de 64 bits Xenon, fabricado por IBM.

Más allá de los 64 bits

A fecha de 2007, las palabras de 64 bits parecen ser suficientes para la mayoría de usos prácticos. Aun así, debería mencionarse que el System/370 de IBM usa números de coma flotante de 128 bits, y muchos procesadores modernos incluyen registros de coma flotante de 128 bits. Sin embargo, el System/370 era notable, en que también usaba números decimales de longitud variable de hasta 16 bytes de longitud (es decir, de 128 bits).

Other Languages
العربية: 64-بت
català: 64 bits
čeština: 64bitový
italiano: 64 bit
日本語: 64ビット
한국어: 64비트
latviešu: 64 biti
Bahasa Melayu: 64-bit
português: 64 bits
русский: 64 бита
slovenčina: 64-bit
Tiếng Việt: 64-bit
中文: 64位元