211service.com
La pregunta de 64 bits
¿Es una computadora de 64 bits en su futuro?
Con todo el revuelo que rodea a los procesadores de 64 bits, probablemente asuma que mi respuesta sería un sí inequívoco, ¡y muy pronto también! Pero deje de lado las fanfarronadas de marketing sobre chips como el Athlon64 de AMD; de hecho, tener 64 bits importa mucho menos de lo que la industria informática le haría pensar. De hecho, a menos que sea un usuario de Macintosh, es posible que no se encuentre comprando una computadora de 64 bits durante otra década, si es que alguna vez compra una.
Primero, un poco de historia. Los procesadores de la gran mayoría de las computadoras portátiles y de escritorio actuales son chips de 32 bits. La mayoría de ellos se basan en la arquitectura IA32 increíblemente exitosa de Intel, también conocida como x86 (como en 286, 386, 486). Las máquinas Intel Celeron y Pentium son todas IA32, al igual que los chips Athlon de AMD.
Pero, de repente, las máquinas de 64 bits tienen una especie de caché. Durante dos años, AMD ha estado vendiendo procesadores que pueden ejecutar código de 32 y 64 bits al mismo tiempo; Las computadoras construidas con estos chips pueden ejecutar Linux o una versión especial de 64 bits de Windows XP que Microsoft lanzó a principios de este año. Apple, mientras tanto, envía todas sus computadoras Power Mac con el microprocesador G5, un cerebro de 64 bits creado por IBM. Y de alguna manera, todos estos sistemas de escritorio se están poniendo al día: Nintendo hizo la transición de 64 bits en 1996 cuando lanzó su consola de juegos Nintendo64.
Para comprender por qué todo esto es importante, primero debe comprender que la frase 32 bits es una especie de taquigrafía que usan los diseñadores de computadoras. Este número se refiere a dos cosas dentro de la arquitectura de la computadora. Primero, significa cuántos bits usan estas computadoras cuando especifican la ubicación en la memoria donde se almacena un fragmento de información. En segundo lugar, indica el tamaño de los registros dentro del microprocesador que se utilizan para hacer matemáticas. Cada bit puede ser un 1 o un 0, por lo que se pueden usar 32 bits para representar 232 o 4,294,967,296 valores diferentes. Por lo tanto, la diferencia obvia entre las máquinas de 32 bits y las de 64 bits es que los sistemas de 64 bits son máquinas mucho más grandes: pueden utilizar más memoria y pueden hacer cálculos con números más grandes.
Pero más no significa necesariamente mejor, depende de lo que esté obteniendo más.
Por el carril de la memoria
El paso de 32 bits a 64 bits es lo más importante cuando se trata de la capacidad de estas computadoras para direccionar la memoria. Un programa que se ejecuta en una computadora de 32 bits puede abordar fácilmente 4 gigabytes de recuperación de memoria, 232 es aproximadamente 4,3 mil millones. Por otro lado, un programa que se ejecuta en una máquina de 64 bits puede abordar 264, es decir, 4 mil millones de veces 4 mil millones de bytes, un número asombrosamente grande. Simplemente haga los números y está claro que hay mucho más margen en un sistema de 64 bits. Pero estos dos hechos son en realidad responsables de mucha confusión, como veremos.
La computadora personal original de IBM usaba el microprocesador Intel 8088, un pequeño chip divertido que estaba lleno de extraños compromisos de ingeniería. En esencia, el 8088 era un procesador de 16 bits: tenía registros matemáticos de 16 bits, lo que le permitía representar fácilmente números entre 0 y 65,535 (o entre -32,768 y 32,767) y registros de direcciones de 16 bits, lo que le permitía comunicarse fácilmente con 64 kilobytes de memoria principal. Ahora, 64K no era suficiente para hacer casi nada, incluso en 1981 cuando se envió la PC por primera vez, por lo que el 8088 tenía un conjunto de registros de segmento que se desplazaron a los 4 bits de la izquierda y se agregaron al registro de direcciones antes de que las direcciones de memoria fueran realmente. leído o escrito. Como resultado, el 8088 podría acceder fácilmente hasta un megabyte de memoria. Un megabyte era una gran cantidad de RAM en 1981. De hecho, los diseñadores de computadoras en ese entonces no podían imaginar que un usuario doméstico o comercial típico necesitaría tanta memoria, y mucho menos poder pagarla, durante muchos años. Así que los diseñadores de IBM trazaron una línea en el mapa de memoria de la computadora y colocaron la memoria para la pantalla de video justo en el medio de la mitad superior, limitando efectivamente las primeras PC a no más de 640 kilobytes de RAM. Esta fue la génesis del límite de 640K que fue impuesto por la computadora de IBM en su sistema operativo DOS.
Unos años más tarde, Intel introdujo su siguiente microprocesador, el 80286. (El 80186 nunca llegó a ser una computadora personal). El 286 fue la base del PC / AT de IBM. Tenía un modo de emulación (llamado modo real) que permitía que el 286 ejecutara el mismo software que el 8088, pero también tenía un modo avanzado protegido que le permitía funcionar con hasta 16 megabytes de RAM. La gran mayoría de estas máquinas se operaron en modo real para que pudieran ejecutar DOS de Microsoft y todos los demás programas que se escribieron para la PC IBM original. De hecho, el 286 era mucho más popular para ejecutar el software 8088 que el 8088, porque el 286 era mucho más rápido. Cuando nos ponemos manos a la obra, muy pocos chips 286 se ejecutaron en su modo protegido.
En 1985 Intel introdujo el chip 80386, el primer procesador de 32 bits de la familia x86. Una vez más, este microprocesador tenía un modo llamado real para que pudiera ejecutar DOS y el resto de la base de software 8088. Estas máquinas podían girar alrededor del 8088 original, no porque fueran máquinas de 32 bits, sino porque tenían velocidades de reloj más rápidas y un diseño interno más sofisticado. También había varias empresas que vendían extensores de DOS que permitían que los programas cargados en DOS aprovecharan el espacio completo de direcciones de 32 bits. Estos extensores voltearon la computadora al modo de 32 bits para las matemáticas, pero devolvieron la máquina al modo de 16 bits cada vez que el programa necesitaba acceder al disco duro de la computadora. Sin embargo, los programas de 32 bits que se ejecutan en estos procesadores de 32 bits fueron la excepción, no la regla.
No fue hasta que las máquinas de 32 bits en el campo superaron ampliamente en número a las de 16 bits que Microsoft comenzó a comercializar su primer sistema operativo real de 32 bits: Windows 95. Para entonces, Intel había sacado dos generaciones más de sistemas basados en x86. máquinas: el 80486 y el Pentium. Sí, Microsoft podría haber entregado un sistema operativo de 32 bits años antes de que se enviara Windows 95. Pero hacerlo probablemente habría sido un error: ¿por qué vender un sistema operativo que no funciona en la mayoría de las PC del mercado?
Toda esta historia es repentinamente relevante una vez más cuando consideramos el próximo gran salto en la arquitectura de PC: el cambio de la computación de 32 bits a la de 64 bits. Pero mientras que la recompensa al pasar de un espacio de direcciones de 16 bits (o 20 bits, si considera la arquitectura segmentada del 8088) a 32 bits fue enorme, la mayoría de los usuarios de computadoras apenas notarán el cambio de 32 bits a 64 bits. La razón es que 32 bits son lo suficientemente grandes para resolver la gran mayoría de las tareas informáticas, no solo las de hoy, sino también las de mañana.
Es poco probable que el paso de 32 bits a 64 traiga el mismo tipo de salto cuántico en velocidad o capacidades que obtuvimos al pasar de 16 bits a 32. Sí, 64 bits de dirección es realmente descomunal, pero 32 bits no es nada despreciable.
Hoy en día existen pocas aplicaciones que realmente necesiten más de 4 gigabytes de memoria. Si lo que está haciendo es procesamiento de texto, hojas de cálculo, correo electrónico y navegación web, 32 bits proporcionarán suficiente espacio de direcciones para el futuro imaginable. Mi computadora de escritorio con Windows es un acaparador de memoria: su copia de Internet Explorer aumenta habitualmente hasta 64 megabytes. Pero eso sigue siendo un sesenta cuartos del tamaño del mapa de memoria de 4 gigabytes de la máquina. No puedo imaginar que pudiera ejecutar un navegador web que requiriera un mapa de memoria de 4 gigabytes: ¡tomaría casi 10 horas descargar tanta información a través de mi línea DSL!
Podría pensar que la multitarea con otras aplicaciones de tamaño similar causaría una presión de memoria cada vez mayor, hasta el punto en que uno lo hace preocuparse por el uso del espacio de direcciones. Pero ese no es el caso. Windows, Unix y otros sistemas operativos modernos utilizan una técnica llamada memoria virtual para dar a cada programa su propio mapa de memoria aislado. En una computadora de 32 bits, esto significa que cada programa en ejecución tiene sus propios 4 gigabytes de memoria virtual para jugar. Entonces, mientras que una sola instancia de un programa en ejecución no puede acceder a más de 4 gigabytes, una máquina de 32 bits que ejecute Windows XP con 10 o 20 gigabytes de memoria no tendría problemas para compartir esa memoria entre un navegador inflado, una copia inflada de Word. 2003 y una copia inflada de Access.
Donde ese espacio de direcciones de 64 bits marca la gran diferencia es cuando un solo programa necesita acceder a más de 4 gigabytes de memoria a la vez. Por ejemplo, si está ejecutando un almacén de datos para una corporación multinacional con 10 terabytes de almacenamiento en línea, su servidor de base de datos podría beneficiarse seriamente al tener 10 o 20 gigabytes de archivos de índice almacenados en la memoria. Una simulación a gran escala podría beneficiarse de manera similar al tener mucha RAM a disposición para hacer cosas como modelar el clima para pasado mañana.
Con empresas como Dell que envían computadoras para el hogar con 512 megabytes de RAM y las computadoras con Windows XP que utilizan habitualmente 1,5 gigabytes de memoria para almacenar todos sus programas, los especialistas en marketing que impulsan la computación de 64 bits dirán que se necesita una máquina de 64 bits. para superar el límite de 4 gigabytes que se acerca rápidamente. No lo crea. De hecho, Dell ya vende computadoras de 32 bits con 8, 16 y 32 gigabytes de RAM. Los especialistas en marketing quieren que compre máquinas de 64 bits porque estos sistemas cuestan más.
La otra forma en que las máquinas de 64 bits superan a los sistemas de 32 bits actuales es cuando se trata de hacer matemáticas. Mientras que las máquinas actuales de 32 bits tienen procesadores que pueden representar cualquier número entero entre 0 y 4,294,967,295 (eso es 232-1), una máquina de 64 bits puede representar números enteros entre 0 y 18,446,744,073,709,551,615 (264-1).
Una vez más, poder hacer matemáticas con estos enormes números en una sola instrucción puede ser una gran ventaja en un pequeño número de aplicaciones científicas. Pero resulta que para la mayoría de las tareas de oficina diarias, las matemáticas enteras de 64 bits no son tan útiles. Para empezar, eso se debe a que ya tenemos máquinas que pueden hacer 64 bits: las máquinas de hoy simplemente lo hacen con unidades de procesamiento de punto flotante de propósito especial, o lo hacen con múltiples instrucciones de 32 bits. Para la mayoría de las operaciones, simplemente no se necesita hardware matemático especial de 64 bits.
No es necesario que confíe en mi palabra. Basta con mirar la historia de otras arquitecturas de 64 bits. Si bien 64 bits es nuevo en el mundo de x86, otros microprocesadores hicieron la transición a 64 bits en la década de 1990. Alpha, MIPS64 y Sparc64 son máquinas de 64 bits. Sin embargo, la mayoría de los programas que se ejecutan en estas computadoras ignoran efectivamente los 32 bits superiores de cada número, eso se debe a que esos dígitos son invariablemente 0.
La verdadera recompensa de 64 bits: diseños más nuevos
Sin embargo, todos estos argumentos en contra de las máquinas de 64 bits se funden en la madera cuando te sientas frente a la nueva computadora G5 de Apple: no importa si estás editando videos o simplemente navegando por la Web, la máquina se siente dramáticamente más rápida que la de 32 bits. Primos G4. Entonces, ¿qué da?
Con la notable excepción del procesador Itanium de Intel, las máquinas de 64 bits de hoy en día generalmente ejecutan código de 32 bits más rápido que sus primos de 32 bits por la misma razón que el Intel 80386 de 32 bits ejecutó código de 16 bits más rápido que el 8088 y el 80286. La razón es que las CPU de 64 bits son simplemente dispositivos más modernos. Estos chips están hechos con procesos de silicio más avanzados, tienen velocidades de reloj más altas y contienen más transistores. Athlon64 de AMD y G5 de IBM no solo tienen registros más amplios: también tienen más unidades funcionales dentro de sus cerebros de silicio. Estos chips hacen un mejor trabajo en cosas como ejecutar múltiples instrucciones al mismo tiempo, ejecución fuera de orden y predicción de bifurcaciones. Ese PowerMac G5 de 64 bits que se ejecuta en Apple Store está ejecutando en gran medida un código de 32 bits. La impresionante velocidad de la máquina proviene de la combinación de dos procesadores, velocidades de reloj más rápidas, una caché más grande y un mejor bus de memoria.
Sí, AMD e IBM podrían haber puesto esa misma tecnología en un nuevo diseño de 32 bits. Pero en estos días, diseñar un nuevo chip cuesta miles de millones de dólares. Un procesador de 64 bits puede tener un precio más alto que una CPU de 32 bits, por lo que a estas empresas les conviene poner su última y mejor tecnología en sus productos de 64 bits.
De cara al futuro, la informática de 64 bits realmente se pondrá de moda porque las máquinas de 64 bits harán un mejor trabajo al ejecutar el código de 32 bits actual que los procesadores de 32 bits actuales. Pero el mercado podría evolucionar fácilmente en otra dirección. Esos 32 bits adicionales consumen mucha energía, por lo que las empresas que fabrican CPU para portátiles y dispositivos de mano podrían simplemente incorporar los trucos desarrollados para máquinas de 64 bits en sus dispositivos de 32 bits.
Lo mismo ha sucedido en las videoconsolas. Aunque hubo mucho entusiasmo hace unos años cuando Nintendo decidió usar el procesador R4300i de 64 bits para su sistema Nintendo 64, los jugadores de videojuegos no se beneficiaron realmente de los 32 bits adicionales de dirección o matemáticas. El R4300i era un chip rápido en ese momento porque implementó muchas otras técnicas de vanguardia para acelerar la ejecución de programas. Podría haber proporcionado el mismo nivel de rendimiento si esos trucos se hubieran aplicado a un procesador de 32 bits. Fueron los trucos los que trajeron la velocidad, no los bits.
¿Vinculado a 128 bits?
Habiendo vivido el salto de 8 a 16 bits, luego de 16 a 32, y ahora de 32 a 64, es natural pensar que en algún momento en un futuro lejano estaremos haciendo la transición de sistemas de 64 bits a 128 bits. No contenga la respiración.
Lo importante a recordar aquí es que los bits son exponenciales. Un sistema de 32 bits puede abordar 65 mil veces más memoria que un sistema de 16 bits, mientras que un sistema de 64 bits tiene un espacio de dirección de memoria teórico 4000000000 veces más grande que el de un sistema de 32 bits. De hecho, podría construir un único sistema de memoria que contenga 264 bytes de almacenamiento con el hardware actual, pero necesitaría usar más de 200 millones de discos duros, cada uno con 256 gigabytes de información. Eso es más almacenamiento del que ofreció toda la industria mundial de discos duros en 2003. Por lo tanto, si bien es concebible que pueda construir un sistema de memoria con 264 bytes de almacenamiento hoy, probablemente tenga que usar todas las computadoras del mundo que estén conectadas a Internet. .
Aunque es posible imaginar un futuro en el que las computadoras accedan a bases de datos de 264 bytes, es difícil concebir un solo problema que requiera que un programa tenga tanta memoria accesible en un solo espacio de direcciones. Una razón por la que un sistema tan increíblemente grande no tiene sentido es que no construiría un sistema de este tipo con un solo procesador y un solo espacio de direcciones unificado: en su lugar, usaría millones o miles de millones de elementos de procesamiento, todos con memoria superpuesta y responsabilidad. De esa forma, si un procesador o un bloque de memoria falla, los otros sistemas se harán cargo sin problemas.
Dados estos argumentos, es bastante irrazonable imaginar que necesitaría 2128 bits de almacenamiento, no durante nuestra vida, ni en la vida de nadie.
Por otro lado, podría estar completamente equivocado en todo esto: 64 bits podrían ser lo ideal para hacer realidad virtual de cuerpo completo con capacidades de transformación de mente y mente. O más probablemente, empresas como Dell podrían optar por seguir el ejemplo de Apple y dejar de vender máquinas de gama baja con procesadores de 32 bits, en lugar de confiar en la publicidad exagerada de las máquinas de 64 bits para justificar los mayores márgenes de beneficio.
Pero recuerde, siempre hay espacio en la parte inferior. Y dado que es probable que las máquinas de 32 bits sean útiles durante al menos una década, si no más, me sorprendería ver a Dell ceder este mercado a otra empresa. Solo mire a Apple: si bien todas las máquinas de escritorio PowerMac que vende Apple vienen con procesadores G5, la compañía todavía usa G4 en sus computadoras iMac, eMac y PowerBook.
Personalmente, creo que los sistemas de 32 bits estarán con nosotros durante mucho tiempo.