Tengo entendido que las dos características se llaman 'arquitectura de la CPU', pero en qué se diferencian, qué es cada cosa? Es posible que lo primero sea el set de instrucciones que utiliza la CPU y lo segundo la estructura interna? Gracias.
Por delante decir que no he estudiado ingeniería de procesadores ni nada parecido (si pudiera volver atrás en el tiempo....), pero sí que llevo metido toda la vida en este mundillo. Quiero decir con esto que si digo alguna burrada y alguien me quiere corregir estaré encantado.
Cuando se habla de la arquitectura de un procesador en cuanto a si es Intel x86, AMD 64, ARM, PowerPC... lo que nos estamos refieriendo es al
juego de instrucciones que utiliza, no a cómo está diseñado internamente. El juego de instrucciones que use un procesador define entre otras cosas los programas que puede ejecutar*.
De esta forma, si tenemos un procesador IBM PowerPC , como el que llevaban los ordenadores de Apple antes de utilizar los procesadores Intel, este ordenador podrá ejecutar software diseñado y/o compilado para este tipo de procesadores, pero no podrá correr software creado para otra arquitectura. Siguiendo el ejemplo, un ordenador de Apple de aquellos que usaban proceadores PowerPC no podía correr los S.O Windows de la época, y un PC basado en x86 de entonces tampoco podía ejecutar ni el S.O de los Mac ni sus programas.
Cuando Apple dejó de usar los procesadores IBM PowerPC y se pasó a Intel, los nuevos equipos Apple ya no podían usar el S.O. de Apple de aquellos MAC con PowerPC ni los programas creados para él. Apple tuvo que crear un nuevo sistema operativo orientado a la arquitectura x86 de Intel. Una consecuencia de esto es que esos equipos pueden usar Windows sin problemas, de hecho Apple ofrece soporte para instalarlo (a muchos os sonará eso del bootcamp).
Análogamente a ésto, al dar Apple este cambio, de manera casi automática, nacieron los Hackintosh, que no eran más que PCs basados en arquitectura x86 que corrían el sistema operativo nuevo de Apple. Esto era y es posible gracias a que la arquitectura para la que estaba diseñado entonces el S.O de Apple era la misma que usaban los PCs con Windows.
Es más, aprovechándonos de esto, era incluso correr el S.O. de Apple en procesadores AMD, aprovechando que a pesar de ser procesadores diferentes a los Intel, eran compatibles a nivel de arquitectura entendida como de juego de instrucciones. Y algunos aquí diréis "Si, pero montar un hackintosh con un AMD es más problemático, son menos compatibles". Y sí, esto es cierto, pero no porque la arquitectura sea diferente, sino porque Apple creaba sus sistemas operativos pensando en Intel y solo en Intel, no brindando drivers orientados a plataformas AMD, de ahí los posibles problemas con AMD.
Ahora Apple de nuevo cambia de arquitectura de CPUs en sus equipos, abandonando la de Intel y apostando por sus propios procesodores que usan arquitectura ARM. Obviamente, este nuevo cambio supone que estos ordenadores Apple nuevos ya no podrán usar Windows como ocurría con los basados en Intel, y tampoco podremos montar hackintosh con un PC usando el nuevo S.O de Apple y sus aplicaciones.
Si lo pensamos, la arquitectura entendida como "juego de instrucciones" es como el idioma que entiende una CPU, si tenemos un S.O. y programas creados para una arquitectura, podrán funcionar perfectamente en procesadores que sean diferentes pero que compartan ese "idioma". Aquí vemos entonces el procesador como una caja negra con entradas y salidas. El procesador recoge unas instrucciones y las procesa, pero nosotros vemos solo que hace el trabajo, pero no cómo lo hace.
Si entramos en la x86 y la x64 como comentas, tu sabes que la arquitectura x86 es de 32 bits, lo que quiere decir que opera instrucciones de 32 bits. A más "bits" tenga un procesador en general es mas rápido porque las instrucciones son más complejas. Pero la arquitectura de Intel no siempre fue de 32 bits, sino que el juego de instrucciones como tal nació con los Intel 386 (ya ha llovido), y fué en su día una extensión de la arquitectura de 16 bits que nació con los Intel 286, la cual fué también una extensión de los 8 bits usados anteriormente en los 8086 y 8088.
Cuando se dice "es una extensión" quiere decir que Intel con el x86 tomó los 16 bits usados en los 286 y los amplió, haciendo que los 386 fuesen de 32 bits, pero a la vez fuesen capaces de ejecutar software creado para la anterior arquitectura de 16 bits de los 286
sin necesitar emulación. Y esto fué muy importante porque en un mercado donde había un parque ENORME de aplicaciones 16 bits posibilitó hacer una transición gradual de sistemas operativos y de aplicaciones desde los 16 bits a los 32. Podías comprar un nuevo y flamante 386 y seguir usando el MS-DOS o un Windows de 16 bits aprovechando la potencia de tu procesador al ejecutarlo todo de forma nativa. Lo bueno era que más adelante cuando se estandarizase el software de 32 bits, pues lo usabas también, aprovechando aún más tu equipo.
Lo mismo fue aplicable al pasar de los 8 bits a los 16 bits de los intel 286.
Lo que pasó con los 64 bits de AMD es simplemente que aquí fue AMD quien tomó la existente arquitectura x86 de 32 bits de Intel y creó su AMD64 basándose en la de Intel. Esto hacía que los Athlon 64 pudieran ejecutar todo el software de 32 bits sin emulación, nativamente. No fué hasta años después que todo el software ya era de 64 bits.
Esta retrocompatibilidad que se ha llevado históricamente es a la vez la gran ventaja y la gran debilidad de los PCs actuales basados en AMD64, pues si bien era un punto a favor muy importante el poder seguir ejecutando todo el software actual cuando aparecía una arquitectura nueva, esto conllevaba un precio a pagar, y es que la potencia y la eficiencia se veía comprometida al tener que mantener compatibilidad con arquitecturas que tenían tantísimos años.
De hecho, Intel lanzó su arquitectura Itanium de 64 bits bastante tiempo antes de que AMD sacase sus Athlon 64. Intel con Itanium lo que hizo fue borrón y cuenta nueva y crear un diseño propietario nuevo que se libraba de esas "yugos de compatibilidad", teniendo procesadores de 64 bits creados desde cero. Eran más potentes que los Pentium 3 y Pentium 4 de entonces, pero no eran compatibles, necesitaban un sistema operativo creado para ellos y las aplicaciones lo mismo. Por eso Intel orientó estas CPUs a servidores y ofrecía compatibilidad con el software actual diseñado para Intel x86 pero con emulación, con la obvia caída de rendimiento (muy grande).
La idea de Intel era que con el tiempo se llegase a estandarizar en los PCs domésticos esta arquitectura, teniendo así más potencia y de paso quitándose de un plumazo a AMD, pues ésta no tendría licencia para fabricar CPUs basadas en Itanium. El problema para Intel es que AMD sorprendió con los Athlon 64, unos procesadores realmente revolucionarios que supusieron lo que es en mi humilde opinión la base de los procesadores actuales de PC.
Los Athlon 64 no solo eran procesadores de 64 bits retrocompatibles con los 32 bits (que esto solo ya habría sido algo histórico), sino que traían importantes cambios que rompían con todo lo establecido como:
-El abandono del tracicional FSB a favor de un bus dedicado de alta velocidad que multiplicó por 10 o 20 la velocidad de las operaciones de entrada/salida (Hypertransport, heredado de los procesadores Alpha),
-El controlador de memoria integrado en la propia CPU, en lugar de estar en el northbridge del chipset (de hecho con los Athlon 64 se acabó el concepto de northbridge y southbridge en las placas base, el northbridge prácticamente se integró en la CPU, pasando las placas a ser más simples y a tener solo el southbridge)
-Primeros procesadores x86 multinúcleo con los Athlon 64 x2 bajo el socket 939.
Estas mejoras tardó Intel en adoptardas, de hecho no fue hasta los primeros Nehalem que Intel abandonó el FSB pasándose al Intel CSI (Common System Interface) finalmente llamado QuickPath y usó por primera vez controlador de memoria integrado.
Quiero decir con esto que AMD aquí jugó muy bien sus cartas, abriendo una nueva era de los procesadores x86 y en cierto modo y en mi humilde opinión, aprovechandose de la gran baza de la retrocompatibilidad y frustrando la idea de Intel de forzar con el tiempo el paso a Itanium a costa de abandonar el desarrollo de los procesadores x86.
Intel al ver el movimiento de AMD quiso sacar sus propias extensiones de 64 bits y crear "los 64 bits de Intel" en x86. Intel veía como una vergüenza adaptar sus CPUs al diseño de AMD. Pero Microsoft le dijo básicamente "hemos creado un Windows para ti para tus procesadores Itanium de 64 bits y ahora hemos creado otro Windows para los 64 bits de AMD. Si quieres tener procesadores x86 de 64 bits usa el juego de instrucciones de AMD, no vengas a tocar los huevos con otros 64 bits".
En fin, me voy demasiado por las ramas. Todo esto para explicarte que la arquitectura vista como juego de instrucciones es como ya he dicho que una CPU sea compatible con cierto software, independientemente de cómo funciona el CPU "por dentro".
Y aquí no voy a entrar, pero sí que quiero mencionar que el hablar de Intel x86 y AMD x64 es una simplificación irreal, no es tan simple porque desde hace muchísimos años existen juegos de instrucciones específicos para ciertas tareas que amplian la funcionalidad del juego de instrucciones original. Intel comenzó con el MMX en los primeros Pentium MMX y después con los Pentium 3 tuvimos el SSE. Al mismo tiempo AMD desarrolló los brillantes AMD 3D Now, Advanced 3D Now y Professional 3D Now, que fueron abandonados y dejados de usar en la arquitectura Bulldozer porque no llegaron a tener el apoyo de los programadores y no se aprovechaban, a pesar de que eran iguales de buenos o mejores que los de Intel. Para entonces AMD ya había adoptado el MMX y los diferentes SSE de Intel, que si no me equivoco son 3, SSE, SSE2 y SSE3.
A día de hoy tenemos además los AVX (AVX, AVX2, AVX512), que si no me equivoco son de Intel pero AMD ya es compatible con AVX y AVX2.
Creo que ya ha quedado claro que un Athlon 64, un Pentium 4 que incluya el AMD64 (existieron Pentium 4 de 64 bits), un Core de Intel, Un AMD Phenom, un AMD Bulldozer, un Nehalem de Intel y derivados (desde la serie Intel core 2 hasta la 10), un Rocket Lake (serie 11 de Intel) o un Golden Cove (los núcleos P de los actuales serie 12) o cualquier Ryzen son todos procesadores que comparten arquitectura (concretamente la arquitectura AMD x64), y sin embargo, a pesar de ser compatibles entre sí, internamente pueden ser MUY diferentes.
Es decir, a pesar de poder usar el mismo software en todos ellos, internamente son muy diferentes, hacen lo mismo pero lo hacen todos ellos de diferente manera.
Y aquí es donde entra el concepto de "arquitectura" como "diseño interno de CPU". Analizando los ejemplos que pones, Zen y Alder Lake, tenemos que AMD con los primeros Ryzen estrenó una arquitectura nueva, abandonando la anterior de los Athlon FX (que por cierto usaban un diseño CMT, siendo hasta ahora los únicos procesadores x86 con este tipo de diseño).
Estos nuevos Zen usaban un diseño SMT de dos vías, al igual que Ios Intel, y hasta el momento seguimos con Zen3, que son una evolución de los primeros Ryzen 1000. De hecho, los Ryzen son mucho más parecidos a un Intel Skylake (cualquier Intel serie 6-10) que a un AMD FX.
En el lado de Intel, hablar de arquitectura Alder Lake no es del todo correcto, aunque Intel en su propia web hable de "arquitectura Alder Lake" con fines comerciales. En realidad Intel con estos procesadores usa en el mundillo x86 por primera vez procesadores con núcleos heterogéneos, en los que usa los Golden Cove, que dan vida a los núcleos P y los Gracemont, que dan vida a los E Cores.
Los Golden Cove usan una arquitectura bastante novedosa y que por fin ofrece un avance importante sobre la anterior Skylake. Es cierto que los Rocket Lake de la serie 11 NO son Skylake tampoco, pero el hecho de que primeramente fuesen pensados para los 10nm y finalmente se adaptasen a los 14nm (con las limitaciones que ello conllevó) hizo que la serie 11 fuese una serie de CPUs para olvidar.
En cuanto a los núcleos E, los Gracemont, hasta donde yo sé están basados en los Skylake que tanto tiempo nos vendió Intel, pero obviamente "portados" a los 10nm y con un diseño que se centra en tener el mejor rendimiento posible usando el menor espacio en el silicio que se pueda (cuatro núcleos Gracemont ocupan el mismo espacio que un núcleo Golden Cove). Por lo tanto, Intel actualmente con los Alder Lake mezcla procesadores de su nueva arquitectura Golden Cove con unos de arquitectura Gracemont que toman claramente como base los Skylake de antes.
Y ya mirando un poco a futuro, Intel este año sacará su serie 13, en los que debutarán los núcleos Raptor Lake como P Cores, siendo éstos una evolución de los Golden Cove, y como núcleos eficientes la verdad que no sé que mejoras traen (si alguien las conoce que lo diga), pero sí que sabemos que pasará de ofrecer un máximo de 8 núcleos de bajo consumo a tener 16, teniendo así el 13900k 8 núcleos de alto consumo (con 16 hilos) y 16 núcleos de bajo consumo (con 16 hilos también pues como ya sabemos no tienen SMT**).
En cuanto a AMD, los Zen4 que se supone salen este año se basan en Zen3 pero son una importante mejora que trae un gran aumento de IPC (se habla de un 30% e incluso más). Estas CPUs solo tendrán un tipo de núcleo por CPU, o sea, los AMD con Zen4 traerán solo núcleos Zen4, no como los Alder Lake que combinan dos tipos de núcleos.
Sin embargo, AMD lanzará para servidores los Bergamo, basados en una versión recortada de Zen4 (el recorte se traduce principalmente en menos caché), pensada para maximizar el rendimiento multinúcleo y la eficiencia energética. Estas CPUs serán unos monstruos x86 en cuanto a potencia multicore, ofreciendo Epycs de hasta 128 núcleos. Cada uno de estos núcleos Zen4 "recortados", que se llamaran Zen4D (La D hace alusión a "Denso" porque cabrán muchos de estos núcleos Zen4 en un chiplet) y por supuesto tendrán menos potencia que los Zen4, pero estarán mas o menos al nivel de los núcleos Zen3 actuales de los 5800x, 5900x y 5950x.
¿Te suena a algo esto de coger un diseño y hacer una versión recortada orientada a que quepan más en un mismo chip? Pues si, es lo mismo que ha hecho Intel con los núcleos Gracemont que tenemos en los Alder Lake como núcleos de bajo consumo.
De hecho, y aquí es donde viene lo más interesante, después de Zen4 AMD traerá Zen5, que de nuevo promete importantes mejoras respecto a Zen4.
Y con estos Zen5 será cuando AMD saque sus procesadores híbridos, copiando la estrategia de Intel, en este caso los procesadores AMD que tengamos entonces combinarán núcleos Zen5 y núcleos Zen4D en un mismo chip (seguramente en chiplets diferentes).
Un saludo
*Cuando hablo de que una CPU ejecute un programa me refiero por supuesto de forma nativa, sin necesidad de emuladores. Los emuladores permiten ejecutar programas compilados para una arquitectura en otra diferente, pero tiene un altísimo costo en cuanto a recursos de CPU y potencia necesaria.
**SMT es una tecnología que permite ejecutar al mismo tiempo dos hilos de procesamiento (o más) en un único procesador físico, aprovechando asi los tiempos muertos en las diferentes etapas del pipeline de un procesadores ocasionadas por un "pipeline bubble", para ver información sobre qué es el pipeline puedes hacer click aqui. Intel sacó los primeros procesadores x86 con SMT cuando los pentium 4, bautizando a su implementación de esta tecnología como "Hyperthreading". Más tarde con los core la abandonó alegando que no tenía sentido en un procesador de pipeline "corto" como eran éstos, en contraposición a la arquitectura Netburst de los Pentium 4 que es una arquitecutura de pipeline largo. Sin embargo, con los Nehalem (Intel Core serie 2000), volvió a usar Hyperthreading a pesar de que el pipeline no eran tan largo como el de los Pentium 4.
Los primeros procesadores de AMD con SMT fueron los primeros Ryzen. AMD no pusó ningún nombre comercial a su implementación del SMT.