La Skylake que colmó el vaso…
Próximamente me gustaría lanzar un artículo específico de algunos bugs que se han detectado a lo largo de la historia en varios microprocesadores, las consecuencias que tuvieron en su momento, y la cantidad de recursos (temporales y económicos) que se invierten durante el diseño de una microarquitectura a detectar problemas…
Pero en este artículo me voy a centrar en una noticia reciente sobre el cambio de Apple hacia sus propios chips basados en ARM. Por tanto, después de haber pasado por otras familias, como el Motorola 68k de Lisa o el MOS 6502 del Apple II, se asentó en su alianza AIM (Apple-IBM-Motorola) con los PowerPC para adoptar los chips x86 de Intel y terminar pasando a los ARM.
Esto por un lado representa un hito en cuanto a la maduración de las microarquitecturas ARM, ya que hace unos años jamás alguien imaginaría que llegarían a ser un procesador apto para el escritorio, y mucho menos que llegasen al puesto nº1 de la lista de supercomputadoras Top500 con el japonés Fogaku. Decir que un supercomputador con chips ARM lideraría la lista de rendimiento hubiera producido carcajadas inmensas…
Esto me da también buenas sensaciones sobre el proyecto EPI para la no dependencia de Europa, que también se basará en ARM y aceleradores RISC-V.
Bien, pero independientemente de todo eso, lo que me gustaría exponer en este artículo es el porqué de ese paso final, en el que no ha tenido tanto que ver el rendimiento y eficiencia de ARM como los problemas de Intel….
ÍNDICE:
Retorno al pasado reciente…
Aún recuerdo las palabras de Linus Torvalds, en un correo de LKML, cuando salieron las primeras vulnerabilidades (Meltdown y Spectre) de Intel. Esas serían solo la primera brisa que avecinaba tornados, ya que han seguido detectándose numerosas vulnerabilidades tras esas.
Puedes acusar a Linus por la forma en la que se expresaba, por su actitud, o por lo que quieras, pero no puedes negar que hablar con claridad:
¿Intel realmente está planeando hacer esta mierda arquitectónica? ¿Alguien ha hablado con ellos y les ha dicho que están enloquecidos? Por favor, cualquier ingeniero de Intel aquí, hable con sus gerentes.
¿Por qué todo esto se tiene sin opciones de configuración? Un ingeniero de la CPU competente arreglaría esto asegurándose de que la especulación no pase a través de dominios de protección. […]
Creo que Intel necesita echar un vistazo a sus CPUs, y realmente admitir que tienen problemas en lugar de escribir una palabrería de relaciones públicas diciendo que todo funciona como lo diseñaron.
…y eso realmente significa que todos esos parches para mitigar el problema deberían ser escritos con un «no todos los CPUs son basura» en mente.
¿O está Intel básicamente diciendo ‘estamos comprometidos a venderte mierda por siempre y para siempre, sin arreglar nada nunca’?
[…] Porque si es el caso, tal vez deberíamos comenzar a mirar más hacia el lado de la gente de ARM64 (En referencia a si Intel va o no a resolver el problema o seguirá vendiendo productos problemáticos). Por favor, hablen con administración. Porque yo realmente veo exactamente dos posibilidades:
- Intel no pretende arreglar nada nunca.
- O estas soluciones tienen una forma de desactivarse.
[…] ¿Has mirado los parches de los que estás hablando? Deberías haberlo hecho, varios de ellos llevan tu nombre.
Los parches hacen cosas como añadir la basura que MSR escribe a los puntos de entrada/salida del kernel. Eso es una locura. Eso dice «estamos tratando de proteger el núcleo». Ya tenemos Retpoline allí, con menos sobrecarga.
Así que alguien no está diciendo la verdad aquí. Alguien está empujando toda la basura por razones poco claras. Siento tener que señalarlo. […] Tal como está la cosa, los parches son una absoluta y completa basura.
Hacen literalmente locuras. Hacen cosas que no tienen sentido. Eso hace que todos sus argumentos sean cuestionables y sospechosos. Los parches hacen cosas que no están en su sano juicio.
Está mal diseñado por dos razones principales:
La razón «la interfaz implica que Intel nunca lo arreglará».
Véase la diferencia entre IBRS_ ALL y RDCL_ NO. Una implica que Intel arreglará algo. El otro no. ¿Realmente crees que eso es aceptable?El «no hay indicador de rendimiento».
El objetivo de tener CPUID y banderas de la microarquitectura es que podamos usarlas para tomar decisiones.Pero como ya sabemos que la sobrecarga de IBRS es ‘enorme’ en el hardware existente, todos esos bits de capacidad de hardware son sólo absoluta y completa basura. Nadie cuerdo los usará, ya que el coste es demasiado alto. Así que acabas teniendo que pensar «qué paso de CPU es este» de todos modos. Creo que necesitamos algo mejor que esta basura.
Caso Apple – Skylake
¿Y todo eso qué tiene que ver con Skylake? Bien, no sé si conoces a François Piednoël, este franco-americano fue empleado de Intel y artífice de algunas microarquitecturas como la del Pentium 4 Extreme Edition (Gallatin), Core 2 (Conroe) y la plataforma Intel Skulltrail. Aunque ahora trabaja para Mercedes-Benz, aún sigue hablando de su ex empresa en su cuenta de Twitter o en entrevistas como la que ha concedido a PC Gamer:
El control de calidad de Skylake fue más que un problema. Era anormalmente malo. Estábamos recibiendo muchas citas sobre pequeñas cosas dentro de Skylake. Nuestros compañeros en Apple se convirtieron en los que más fallos en la arquitectura reportaban. Y eso fue muy, muy malo.
Cuando tus clientes empiezan a encontrar tantos bugs como tú mismo, no estás dirigiéndote al lugar correcto.
Para mí, esto fue el punto de inflexión. Es cuando Apple, que llevaban tiempo contemplando la posibilidad de hacer la migración, vieron la situación y dijeron: ‘bueno, creo que es hora de hacerlo’. En definitiva, el pésimo control de calidad de Skylake fue el detonante para que dejen la plataforma.
Repaso a la historia arquitectónica de Apple
Apple ha ido dando ‘bandazos’ de unos brazos a otros en cuanto a familias que ha venido usando a lo largo de la historia en sus equipos Mac…
Modelos clásicos
- Apple I y II: usaban los populares MOS 6502, unos chips cuya historia es digna de contar en otro artículo…
- Apple III: usaba también un Synertek 6502B, una segunda fuente de fabricación de los 6502 como lo fue AMD con Intel en el pasado, y tantos otros casos…
- Apple Lisa: hubo un cambio importante, aunque frecuente en las líneas de computadores de esta época. Pasaron a usar los Motorola 68000 (68k).
- Macintosh: esta línea fue usando diversos Motorola 68000 a distintas frecuencias, hasta llegar al Classic que usó la versión 68030 de Motorola.
Era PPC
El Power Macintosh fue el primero en usar PPC, concretamente un Power 603, y producto de la alianza AIM (fraguada en 1991). Con ella se crearía un estándar unificado basado en POWER ISA y el estándar de plataforma de hardware CHRP (Common Hardware Reference Platform).
Toda una sorpresa, ya que el enemigo de Apple, IBM, se sentó a estrechar la mano con ellos. Y es que IBM tenía intención de llevar el sistema operativo de los de Cupertino a su empresa y los de Apple en usar chips PPC. Algo que fue visto en la época como una alianza para hacer frente a Wintel (la dupla monopolista Microsoft+Intel).
Además, en esa época pensaron, acertadamente, que los CISC de Intel eran un callejón sin salida, y que el futuro era RISC. Y así es como comenzó la travesía que terminaría en 2005, y durante la que trabajaron mano a mano en unos laboratorios conjuntos llamados Somerset Design Center en Austin (Texas).
Esto sentaría las bases de la POWER ISA y dejaría un legado mucho más extenso que los productos de Apple, ya que esa ISA se usa para otras muchas aplicaciones en la actualidad.
El PowerPC G5 cambia todas las reglas. Este coche de carreras de 64-bit y es el corazón de nuestro Power Mac G5, ahora es la computadora de escritorio más rápida del mundo. […] IBM ofrece la experiencia de diseño y fabricación de procesadores más avanzada del mundo, y esto es solo el comienzo de una relación larga y productiva.
Steve Jobs – 2003
Era x86
Algo ocurrió para que ese amor se tornara en desprecio, y tras el anuncio de 2005 para abandonar PPC y un duro trabajo de adaptación para portar el sistema operativo y demás software, se lanza los primeros productos con chips x86 de Intel.
Steve Jobs atribuyó el cambio a un roadmap más ambicioso, así como por la incapacidad de fabricar los productos PPC previstos por Apple. Pero había algo más, como las disputas de precios, o el deseo de Apple de tener un equipo capaz de ejecutar Microsoft Windows, algo que también influiría en la decisión.
Mirando hacia el futuro, Intel tiene la hoja de ruta de procesadores más sólida con diferencia. […] Han pasado diez años desde nuestra transición al PowerPC, y creemos que la tecnología de Intel nos ayudará a crear las mejores computadoras personales para los próximos diez años.
Steve Jobs – 2005
En cuanto a los precios, un ex empleado de IBM aseguraba que las disputas IBM-Apple eran numerosas porque desde Apple querían pagar primas más bajas por el silicio. Para IBM la relación con Apple no era un buen negocio, sino un sumidero económico al obtener poco y tener que invertir grandes cantidades de dinero en el desarrollo de chips, compiladores y tecnologías de soporte.
Y todo por una pequeña cuota de mercado para PCs, ya que la mayor parte la tenían los x86. A eso hay que sumarle la insistencia de Apple por que hubiera una segunda fuente de abastecimiento, por tanto, el suministro de chips no era monopolizado por IBM, también estaba Motorola (o sus ex-fábricas Freescale).
Apple no quería pagar más, a pesar de tener un chip RISC superior y optó por las economías de escala de Intel, que además de precios suculentos les ofrecía algo más:
- Otra de las razones era el rendimiento/vatio para sus equipos portátiles, algo en el que Intel llevaba ventaja y por la que rechazaron a AMD…
- IBM estaba concentrando los esfuerzos en diseños mononúcleo y aumentando el IPC y la frecuencia de reloj de sus chips para aumentar el rendimiento. Su objetivo era llegar a los 3Ghz. En cambio, Intel tenía marcada una hoja de ruta con chips multinúcleo. Y aunque IBM mostró diseños multinúcleo a Apple, no eran iguales a los diseños que proponía Intel. Me estoy refiriendo al famoso Cell, que luego IBM intentaría rentabilizar ante el rechazo de Apple con productos como los chips para Sony PlayStation, Roadrunner, y otros productos con estos chips.
Apple Silicon (ARM)
En 2020 se hizo realidad un rumor que llevaba tiempo pululando. Apple dejaba a Intel y comenzaría a diseñar sus propios chips basados en ARM (o Arm, con el cambio de marca que han hecho recientemente sin mayúsculas), como ya hace con sus A-Series para dispositivos móviles.
¡Ojo! No serán núcleos IP ARM Cortex licenciados como usan otros, serán diseños creados por la propia compañía de Cupertino basados en la ISA ARM. Es algo muy diferente… Algo así como lo que usa Fujitsu A64FX (del Fogaku anteriormente citado), cores de diseño propio con ISA ARMv8.
¿Mi opinión? Con ARM tienen la herramienta para trabajar, pero veremos cómo le va a Apple en solitario para crear sus propios diseños de chips para sus productos de escritorio. En el sector móvil lo han hecho francamente bien, compitiendo y superando a gigantes como Qualcomm, Samsung, etc., pero no sé por qué me da la sensación de que lo tendrán un poco más complicado aquí. En este segmento también hay dura competencia (en términos de rendimiento), y llegará más competencia próximamente…
Pingback: Los mayores desastres de la historia de los microprocesadores |