Prefacio de la redacción: El pasado 30 de Septiembre comentamos un artículo de The Inquirer sobre la teóricamente supremacía de AMD sobre Apple cuando se trata de chips de arquitectura de 64 Bits.
Como arquitectura que sólo ahora está tomando carácter de conocimiento público, la situación cambia cada semana. Aunque la implementación que la propia AMD describe en sus páginas es ambigua (parece hablar más bien de un chip de arquitectura de 32 bits modificado para entender instrucciones de 64 bits que al revés), nuestra superficial cultura de los microprocesadores nos ha hecho volvernos hacia alguien que de verdad pueda explicar el «status quo» de la situación. Y eso es lo que os ofrecemos hoy. Esperamos que ayude a clarificar la situación.
A partir de diferentes artículos publicados en ArsTechnica, y un tendencioso artículo de la web The Enquirer, desgranamos el significado de la computación de 64 bits, y las diferencias fundamentales en la forma de soportarla de los procesadores PowerPC 970 y los procesadores con arquitectura AMD64.
El mencionado artículo, titulado «AMD beats Apple to a real 64-bit PC», se afirma que AMD es la primera empresa que saca un ordenador personal de 64 bits, basándose en un silogismo que, de seguirlo, niega la mayor: AMD no fabrica ordenadores personales.
Pero centrémonos en la tesis: el que AMD permita que se creen auténticos ordenadores de 64 bits se debe a que el Mac OS X no soporta 64 bits… Veremos que eso no es del todo correcto, y que además existen sistemas operativos nativos de 64 bits que corren sobre los G5, de modo que sí son los primeros ordenadores personales montados por un fabricante basados en tecnología de 64 bits.
¿Qué es un procesador de 64 bits?
Esta pregunta es sencilla: un procesador de 64 bits es aquel que tiene registros de direcciones y datos de 64 bits, y además puede realizar operaciones con enteros de 64 bits con una única instrucción no emulada.
Bajo esta definición, existe un buen número de procesadores de 64 bits por ahí: Alpha de Digital (viviendo el sueño de los justos tras la adquisición de Digital por parte Compaq); UltraSPARC III, de Sun Microsystems; Itanium, de Intel; PA-RISC de HP; PowerPC 620 de IBM; AMD64 (Athlon 64 y Opteron); y PowerPC 970… y me estaré dejando algunos.
Quizá sorprenda el PowerPC 620, que viene a ser una especie de PowerPC 604e ampliado a 64 bits, mientras que el PowerPC 970 es mucho más que una versión de 64 bits del PowerPC 74xx, alias G4… Luego veremos qué significa la existencia de este hermano perdido de los PowerPC.
¿Por qué es bueno utilizar 64 bits en lugar de 32?
Porque si cuento de uno en uno, tardaré más de 4.000.000.000 (sí, cuatro mil millones) de veces en sobrepasar la capacidad de los registros que antes.
Porque si quiero multiplicar dos cifras de 64 bits, lo puedo hacer en un único paso, en lugar de tener que hacerlo en cuatro pasos, llevar acumuladores de cada uno de ellos, y después ajustar los resultados.
Y porque si utilizo direcciones de 64 bits, también puedo llegar a manejar más de cuatro mil millones de veces la memoria actual; recordemos que el cambio de 16 a 32 bits sólo multiplicó por 65.000 la capacidad de memoria de aquellos procesadores… y nos hemos comido esa diferencia en unos diez años.
¿Cómo se pasa de 32 a 64 bits?
Respuesta corta: se aumenta el tamaño de los registros de 32 a 64 bits, y el de todos los caminos internos y externos de comunicaciones en el chip. También se modifica la unidad de cálculo —la Unidad Artimético-Lógica, que se llama— para que pueda ejecutar las operaciones de 64 bits en el mismo tiempo que antes se realizaban las de 32.
Respuesta larga: Dependiendo de la arquitectura del procesador, es necesario cambiar el sistema operativo para que haga uso de las nuevas capacidades, algo que puede llevar una cantidad de tiempo más o menos grande.
Respuesta aún más larga: la arquitectura PowerPC comenzó como una versión de 32 bits de la arquitectura POWER original de IBM, que ya era de 64 bits, y esa herencia ha estado siempre con la familia PowerPC, como lo demuestra el PowerPC 620, una especie de «G2» de 64 bits. Eso hizo que la arquitectura POWER4 no sea tan diferente de la POWER, y que no haya tantas diferencias.
De otra parte, los PowerPC son procesadores RISC en cuanto a su concepción, con lo que ello significa: tamaño uniforme de las instrucciones, gran conjunto de registros (de hecho, se llama «register file», o archivo de registros, al conjunto disponible), y direccionamiento directo de los registros en dichas instrucciones. Así, un PowerPC G3 contiene 32 registros de datos y/o direcciones de 32 bits, 32 registros de coma flotante de 64 bits; un PowerPC G4 contiene, además, otros 32 registros de 128 bits, utilizados para las operaciones vectoriales. Y un PowerPC G5 contiene el mismo número de registros que un G4, con la diferencia de que los 32 registros de datos y/o direcciones son de 64 bits.
(Aburrida) Historia familiar
La arquitectura de 64 bits de AMD ha sufrido una génesis diferente: no existía una arquitectura «maestra» —como sí existía en el caso de los 680×0— que guiara la evolución de la plataforma, sino que se ha ido evolucionando «a saltos»: la arquitectura de 32 bits de los procesadores 386, 486 y los diferentes Pentium viene de la ampliación de una enrevesada arquitectura de 16 bits, que era la evolución de una simple pero efectiva arquitectura de 8 bits.
El 8080, ancestro de todos los procesadores IA32 y compatibles, disponía de 8 registros de 8 bits: A, F, B, C, D, E, H y L, algunos de los cuales podían agruparse en pares de 16 bits: BC, DE, HL. Tenía 16 líneas de direccionamiento, que le permitían manejar a la vez, como máximo, 64KB.
El 8086 ampliaba los registros a 16 bits: AX, BX, CX, DX, SI, DI, BP, SP. Pero los cuatro primeros podían realizar operaciones que no estaban disponibles para los otros. Además existían otros cuatro registros, llamados registros de segmento: CS, DS, ES y SS, de propósito muy específico. El 8086 y el 80286 utilizaban estos últimos registros para, en combinación con SI, DI, BP y SP, conseguir hasta 20 bits de direccionamiento. Si hacéis las cuentas, dos registros superpuestos de 16 bits deberían dar 32 bits, pero gracias al genio de Intel los registros CS, DS, ES y SS se convirtieron en el pánico de los programadores.
Cuando Intel pasó a 32 bits con el 80386, sí hizo algo más tradicional: convirtió todos los registros a 32 bits, pasando a llamarse entonces registros extendidos: EAX, EBX, ECX… y dejó el direccionamiento en 32 bits, con lo cual nuestros famosos registros de segmento, ya de 32 bits, se combinan con otros 32 bits del resto de registros (preferentemente, ESI, EDI, ESP y EBP)… para dar 32 bits. El caso es que al final había 8 registros con los que se podía hacer más o menos cualquier cosa, y otros cuatro registros de segmento que normalmente se quedaban quietecitos —en realidad, es responsabilidad del sistema operativo, no de los programas, el toquetearlos—.
Os he mencionado que los registros de segmento eran una pesadilla para los programadores, y una pista de por qué. Digamos que también eran una pesadilla para los propios ingenieros de Intel, pues cada procesador tenía que soportar las diferentes utilidades que habían ido teniendo esos registros, entre ellas la más exótica, como el modo virtual 8086.
Llegamos a AMD64
Para evitar lastrar la ejecución del código de 64 bits, AMD ha creado dos modos: un modo 32 bits, en el cual el AMD no es más que un Athlon de 32 bits con una arquitectura típica, que soporta todas las idiosincrasias de la arquitectura IA32; y un modo 64 bits que tiene dos submodos: uno en el que se soporta código de 32/16 bits pero no modos de ejecución exóticos, como el mencionado modo virtual 8086; y otro totalmente 64 bits, que no permite ejecución de código de 32 bits [sospechosa, de todas formas, la existencia de esos dos modos de 64 bits; si no hay problema con el código de 32 bits, ¿para qué implementar dos submodos diferentes?]. De paso, se aumenta el número de registros de datos o direcciones, que pasa de 8 a 16; y los registros de 128 bits para MMX2/SSE2/3DNow! (versión de Altivec para la arquitectura Intel, sin muchas de sus ventajas) también se doblan, y pasar a ser 16. Todos estos nuevos registros son invisibles a las aplicaciones de 32 bits que corren en el modo de 64 bits.
La ventaja del PowerPC
Comparemos todo esto con la simplicidad y potencia del PowerPC: el G5 añade, sobre el G4, registros, manipulación de datos y direcciones de 64 bits; una potente unidad de predicción de saltos —algo necesario cuando se quiere subir de ciclos de reloj— que le da miles vueltas en sofisticación a la del G4, y sólo unas pocas decenas de vueltas a la de los bichos «Intelianos»; un bus mucho más rápido, capaz de interconectarse con otros procesadores mediante HyperTransport (una tecnología de AMD, por cierto); y mayores velocidades de reloj.
No hay ningún «modo» que tenga que configurarse durante el arranque: realmente, no existen aplicaciones de 32 bits para el PowerPC 970, sino que hay aplicaciones que no saben que pueden aprovechar 32 bits más de ancho, hasta los 64, porque no hay un conjunto de instrucciones de 64 bits diferente de las instrucciones de 32. Pero incluso esas, si se escribieron bien en su momento, haciendo uso de las bibliotecas de funciones del sistema, pueden resultar aceleradas.
¿Por qué decimos entonces que ni Jaguar ni Panther son de 64 bits?
Porque cuando Jaguar o Panther le prestan memoria a una aplicación, como mucho le pasarán un trozo direccionable de 32 bits. Lo bueno es que, aunque ni Panther ni Jaguar sepan del PowerPC 970, ya contaban con el sistema de memoria virtual de los PowerPC, que permitía un espacio virtual de 52 bits, y por eso aunque PhotoShop no pueda manejar más de 2GB de memoria de golpe hasta que se actualice el sistema, puede convivir perfectamente con hasta cuatro hambrientas aplicaciones similares en un G5 a tope de RAM…
La situación, en realidad, es muy parecida a la que se vivió cuando aparecieron los primeros Mac con procesadores 68020. La arquitectura 68000 siempre fue una arquitectura de 32 bits: 8 registros de datos de 32 bits, y 8 registros de direcciones, casi totalmente intercambiables. Sin embargo, a la hora de manejar la memoria, el 68000 sólo podía utilizar 24 bits externamente, lo que permitía un espacio máximo de direcciones de 16MB, pero por el diseño del Mac eso quedaba en 8MB (para el 68008 el límite se quedaba en 1MB, al disponer sólo de 20 bits).
¿Qué provocaba esto? Que algunos programadores (y entre ellos, alguna gente de Apple) utilizara los 8 bits restantes de los registros de dirección para «sus cosas»… y cuando llegaron los procesadores que sí utilizaban los 32 bits al completo para manejar memoria, esos 8 bits «molestaban», y producían cuelgues de la aplicación. De ahí que fuera necesario primero una extensión del sistema, llamada Mode32, para poder manejar más de 8MB en esos equipos, y luego simplemente una nueva versión del sistema operativo, lo que llamaban «versiones 32 bits limpias».
Con los PowerPC G5 nos pasa algo parecido. El equivalente a un hipotético «Mode64» viene instalado en el sistema desde la versión 10.2.7, con bibliotecas de funciones disponibles para acelerar muchas funciones. Lo único que nos hace falta es una «versión 64 bits limpia», que seguramente no estará muy distante, puesto que hasta la aparición del propio G5 no había 32 bits superiores que utilizar 😉
Una última similitud con el paso de 24 a 32 bits: pese a que los registros son de 64 bits… el PowerPC 970 es capaz de direccionar físicamente, en su encarnación actual, un máximo de 42 bits… o unos 4096GB (4TB). Las implementaciones actuales de la arquitectura AMD64 no pueden manejar direcciones de más de 40 bits… o 1024GB (1TB)… y tienen un espacio de memoria virtual de 52 bits… ¡inferior al ancho de sus registros, e igual a cualquier PowerPC pre-G5!
Conclusión
Citando del «Whitepaper» de AMD sobre la arquitectura AMD64: Es necesario un sistema operativo escrito para AMD64 para que se puedan ejecutar aplicaciones de 64 bits junto a las de 32 bits. Este no es el caso del PowerPC 970: no existen modos del procesador, y todas las instrucciones están disponibles en cualquier momento, de modo que una recompilación de un módulo lo acelera. Y la actualización del sistema operativo a 64 bits no será ni costosa ni traumática.
En el frente AMD, actualmente SUSE vende una distribución de Linux para AMD64 que puede correr código de 64 y 32 bits. El resto de sistemas operativos sólo podrá correr en el modo de 32 bits, de modo que no podrán acceder a ninguno de los recursos adicionales del procesador, más allá de los anchos adicionales de bus para la recogida y envío de información.
Epílogo
Queda para otro momento analizar qué arquitectura es más escalable, y cuáles pueden ser los caminos de la evolución del PowerPC 970 y de la competencia en el mercado de los «compatibles» de 64 bits…
Bibliografía
ArsTechnica: Technodia: CPU & Chipset Guide
ArsTechnica: An Introduction to 64-bit Computing & x86-64
IBM: PowerPC 64-32 bit Programming Manual
AMD: The AMD64 Computing Platform Arquitecture
Juan de Dios Santander Vela
Excelente articulo.
Un saludo!
Chapeau 😉
Un saludo.
Lo que mas claro me ha quedado es que el hasta hace poco maravilloso G4, era y es una autentica patata, ejem.
Bravo 😉
coño, que clarito lo habeis puesto..
Parece arstechnica faq-mac XD
Esto mas a menudo, no vendria mal 😉
Weno, poss un aplauso y animo..
Queremos otro!!
Para tu información Portillo
QuasiModo64, el G4 es un gran chip, pero con poco recorrido en megahercios. De hecho, la mayor parte del rendimiento que le va a sacar la NASA a los G5 viene del Altivec… que gracias a IBM ahora puede correr a mucha más frecuencia.
tan parcial como el artículo de TheInquirer :p
creo que la respuesta a las dudas finales es sencilla. AMD hizo un procesador para un mercado muy amplio donde quien manda es el S.O. que se utilice, IBM armó un procesador ideal para un S.O. específico como el MacOS que bien preparado estaba para la tarea.
Dos conceptos distintos que no son comparables ni compatibles, es como querer comparar agua con aceite, la eterna lucha entre mac vs x86, conceptos tan distintos que ni se pueden comparar.
Con respecto a la info técnica, es tan parcial como las notas de INQ, parece que el procesador de IBM es la joya del procesamiento, pero en el resultado final, cuando se testea rendimiento, no sucede. Ahí es donde se desmorona la cuestión.
Ninguno tiene realmente el mejor procesador ya que hoy en día no sólo se depende del hardware sino del software. Por algo se compran super servidores con AMD Opteron y no con IBM PowerPC970, no sólo por precio, sino por costo/beneficio.
Ah Fabio, ¿y qué pasa con los «super servidores» de IBM con el venerable aunque aun funcional power4? ¿Esas máquinas no se venden a ese segmento de mercado?
Genial, simplemente.
Gracias y seguid así.
Por fin me he enterado un poco de que va todo esto de los 32 y 64. Gracias
Por fin me he enterado un poco de que va todo esto de los 32 y 64. Gracias
Fabio, el rendimiento por ciclo de reloj y por watio es indudable, y lo ha puesto de manifiesto todo el mundo. Y en cuanto a la existencia de servidores con PowerPC 970… tienes el supercomputador de Virginia Tech, y tienes muchas ofertas de IBM de XSeries con Linux sobre PowerPC (venerables G3, nada menos)…
De todas formas, la cuestión es que hay que dar el salto a 64 bits, y que gracias a una decisión tomada hace más de 7 años, el salto será más fácil en un Mac… y Panther no es más que el primer paso en ese camino.
Y si quieres un Mac nuevo que procese fotos, video, o lo que sea como churros, un G5 es una maravilla. Punto.
Muy buena ilustracion sobre las arquitecturas mac y x86, me informo muy analiticamente. Aunque siempre los paradigmas MAC y x86 , ,estaran en franca competencia, muy saludable por cierto.
Seguid asi juan
Xo ke N.A.S.A ni ke workstations ni pollas, va a caer un Itanium2 pa mi casa pa reproducir músika, ya vereis komo va a tirar el buscaminas XDDDD, kien se apunta? O = me paso al Opteron de AMD, ke la funcion hipertriding no me convence mucho contra el hecho de AMD del doble microprocesadores… Enga va una en serio: esto ke sistema de refrigeraacion lleva? refrigeracion de nitrógeno líquido por lo menos??? porque el Athlon64 2.2Ghz en verano kasi ke no,no? saludotes an mei de fors güiz llu XD-
muy buen articulo y eso que ya paso algo de timepo pero nunca es demasiado tarde para aumentar nuesra cultura.
La capacidad máxima de direccionamiento de la memoria en los procesadores actuales de 32 bits es de 4 GB. Los procesadores Athlon™ de 64 bits permiten en cambio un espacio físico de memoria de hasta 1 terabyte y un espacio virtual de direccionamiento de la memoria de 512 terabytes. De este modo, los sistemas de 64 bits ponen al alcance de los PCs tradicionales tecnologías hasta ahora imposibles de implementar debido al excesivo tiempo de cálculo requerido. Asimismo, los ordenadores de 64 bits disponen de cachés mayores y una eficaz conexión de memoria que incrementa la velocidad del sistema. Un ejemplo: un ordenador con un procesador AMD Athlon™ 64 de 1,8 GHz es más rápido que un ordenador de 32 bits con un Pentium™ 4 de 3,2 GHz.
Comentarios: toda la tecnologia que AMD pueda generar estara directamente relacionada con el HARDWARE que esta pueda concebir, no tomar en cuenta la placa madre para generar una comparacion seria no ser justo, por exelencia APPLE posee el liderazgo, el punto es ue posee ambas tecnologias en mi lugar de trabajo, poseeo un AMD y un G5 la verdad es que la estabilidad proporcionada por APPLE se gana toda mi confianza, el proceso se hace lento en el AMD cuando se aplican Megacalculos de Mascaras osea efectos especiales en escenas de peliculas, la introduccion del comienzo es solo para demostrar que los numeros de los procesadores son solo algo de marketing, que por demas funcionan muy bien, la otra maquina que anda bien en 64 bit son las maquinas de SUN pero el complejo sistema operativo lo hace ser no un amigable computador para los trabajadores de efectos visuales, en fin el G5 posee todas las cualidades que un profesional, estudiante y cualquier persona desee en una maquina ademas su preci anda muy bien con las conraindicaciones del mercado de AMD, si bien los AMD son mas baratos el costo del sistema, los cuelgues y pegadas de procesos son un factor determinante que SUN y APPLE ya han casi erradicado de sus sistemas, mi voto es para el G5 el primer procesador de verdad de 64 bit y no una emulacion de la interpretacion de 32 a 64, sabian que los AMD corren de la misma manera los programas de 32 bits, no es mas que una adaptacion por eso al trabajar con volumenes de calculo megatonicos estos procesadores se caen.
Pablo b.
es un tema interesante el gran paso d elos 32 a los 64, inclusive estoy haciendo un intento d etesis sobre este gransalto y me gustaria que publicaran ma sarticulos de este tema.
No se a mi sigue sin quedarme claro que procesador es el mas rápido, ¿que ordenador rinde mas?. Estoy pensando en coprarme un g5, soy tradicional usuario de pc, pero no se si será comprar una máquina mas lenta por mas dinero
Si alguno me lo puede aclarar de forma objetiva, insisto sin favoritismos para apple o AMD sería un gran favor
ozcyosb@yahoo.es
La pregunta de «qué ordenador rinde más» no es una pregunta «cerrada», y tiene muchas respuestas.
En un doble G5 a 2,5GHz, tienes buses dedicados _a cada procesador_ de 1,25GHz —el más rápido en cualquier ordenador personal—, y puedes llegar a tener una potencia de proceso, en coma flotante, de hasta 40GFlops. (20GFlops por procesador)
Los doble procesador de PC, hasta ahora, han estado compartiendo el bus, y hasta hace poco, iban a 800MHz (0,8GHz), y la potencia máxima en coma flotante es de 14.4GFlops por procesador (a 3.6GHz, máximo de los Xeon).
Además, el Mac OS X, como Unix que es, está diseñado para repartir la carga entre los diferentes procesadores, y el gran ancho de banda de entrada y salida permite una gran velocidad en el proceso de gran número de canales de entrada y salida. En concreto, Core Audio es un subsistema con latencia inapreciable para el procesado de datos de audio en tiempo real.
De todas formas, si tienes una tarea concreta en mente, es mejor que la comentes, para que podamos indicarte información específica para ese sector. Y habrá que ver cuál es el rendimiento de Windows XP 64bits con aplicaciones de 32 bits…
Te voy a ser sincero no he usado una G5 cuando la use te digo, pero la G4 si y no es ni la sombra de mi AMD64 y eso que la mia es una de las mas sencillas 3200+ tira 2 gigas algo mas y trabajo video y he visto los mismos programas en mac y en pc y no uso WinXp64 porque es una basura uso WinXPSP2Eng Normal como todos e inclusive esta pc es mas rápida que una Dual Procesador de Intel 3.06 de DELL pero pronto iré a ver una G5 y te daré mi comentario acerca de la G5 lo que si estoy de acuerdo con alguno de tus lectores y contigo es el precio. Para que gastar mucha palta en una G5 no se cuanto cuesta probablemente 5,000 dólares alado de una AMD FX o AMD64 para los mas modestos como yo que no tenemos 1000 dólares para comprar un procesador que tiene mas patillas que un 100 pies. con relacion al comentario de que que tipo de ventilador uso pues mira amigo eso de nitrogeno liquido la votastes man tas pasado uso un abanico normal y estoy en Panamá donde la temperatura siempre oscila entre los 32 y 38 grados y la humedad llega a 85% osea un sauna natural y mi procesador esta tranquilo ayi trabajando.
Apple no es mejor que AMD64, y preguntenselo a George Lucas;
Definitivamente LucasArt desidió reemplazar sus Apple/Mac G5 por soluciones AMD64 Opeterons, gracias a ello pudieron crear escenas con ambientes enormes (StarWars Episodio III) que antes con lo que ofrecia Apple PowerPC G5 no podian, puesto que a la hora de renderizar los pobres MAC se llevaban dias y con la solución AMD solo le tomaban horas, por primera vez AMD le permitió a George crear en tiempo real y ver los resultados instantaneamente (dejando volar su imaginación)…
Definitivamente Apple se está quedando atrás y es tanto así que ahora está migrando de RISC a CISC(x86), por si no lo sabian Apple hizo convenios para montar procesadores x86 de intel)…
Hoy por hoy, x86 está renovado completamente de la mano de AMD… hay x86 para rato señores… olvidense de cuentos de camino…
Además está comprobado que AMD64/x86-64 en sofware 64Bit es superior a la copia que trató de hacer intel y que ahora llama EM64T…
no se puede negar que RISC es bueno, pero actualmente está estancado diria yo, o por lo menos en la realidad está siendo superado por AMD64, indistintamente de que el Dual powerPC tenga bus de 1.25GHz independientes, esto no le es sufienciente igualmente a intel con FSB 1066MHz tampoco le es suficiente, AMD corre Optimamente aprovechando al 100% Hypertransport.
Cuando se hable de x86, no se puede meter a intel y AMD en el mismo costal, porque en la actualidad dan soporte a lo mismo pero tecnológicamente son completamente diferentes (uno lee de derecha a izquierda y el otro de izquierda a derecha) inclusive en tecnología Dual Core AMD64 es muy muy superior a Intel…
Apple consciente de que se está quedando en el aparato fue a aliarse con intel por razones económicas para que este le respalde con sus procesadores x86,(golpe bajo para los fans de MAC que se la pasan hablando mal de x86) inclusive está previsto que el MacOS X Tiger se escriba para x86… Osea, por primera vez se verá un sistema operativo estable para x86 (no se trata de que PowerPC sea mas estable, pues, la estabilidad la da el codigo limpio con que el que se programa el SO y APPLE es un experto en eso)…
Saludos Camaradas y x86 para Rato
no solo Suse.. aparte eso no depende de una distribucion sino mas bien.. de el Kernel del sistema como este configurado.