Algunos pensamientos sobre el evento Apple del 20 de abril de 2021.

Los nuevos y coloridos iMac basados en M1. Cortesía Apple Newsroom.

Bueno, pues ya tenemos las últimas actualizaciones de producto de Apple, presentadas en el evento del 20 de abril:

Aparte de estar encantado con el retorno de la diversión al hardware de Apple, más allá de la pureza estética, encarnada tanto en el haber recuperado interacciones del iPod, como en haber recuperado los colores, hay un par de cosas más que me han llamado la atención en este nuevo evento, y tiene que ver más con algunas elecciones tecnológicas que con los productos en sí.

¿Cómo es posible tener mejores cámaras en iPad Pro que en iMac?

Esta ha sido una cosa de las que más me ha sorprendido: que haya espacio en un iPad Pro para instalar una cámara de 12 megapixel con gran angular… pero no se haya incluido en un iMac.

Si lo pensamos bien, esa cámara cabe en el frontal justamente porque se trata de un gran angular: la distancia focal de la lente es menor, y por lo tanto no necesita de tanto espacio físico.

Sin embargo, si tu cámara frontal es un gran angular, significa que en la mayor parte de las situaciones la persona aparentaría estar mucho más lejos del dispositivo, y además ocuparía muy poco espacio en la imagen.

Aquí es donde entra la función Center Stage (la han traducido como Encuadre Centrado en español, lo que pierde la idea de ser el centro escenario… 🤷🏻‍♂️): se utiliza la capacidad de procesamiento de imágenes del M1, y la capacidad de ejecutar modelos de inferencia de inteligencia artificial del Neural Engine que también ofrece el M1, para detectar donde están las caras, y recortar dinámicamente la imagen para centrar siempre a las personas, mientras que también se minimizan los movimientos de cámara.

La pregunta es, si el procesador es exactamente el mismo en el iMac que en el iPad Pro… ¿por qué no puede ofrecer Encuadre Centrado en el iMac?

Me da la sensación de que se trata de una función que ha sido implementada en iPadOS utilizando frameworks que por ahora son exclusivos de ese sistema operativo, y que quizá pasen a formar parte de macOS 12. Es muy posible que cuando tengamos esa versión del sistema operativo, los siguientes iMacs mejoren aún más en su sistema de cámaras.

También hay que tener en cuenta que los iPad Pro no tienen una actualización tan regular como los iPhone, por lo que es posible que esa ventaja de los iPad Pro quizá no desaparezca tan pronto, sino que la veamos consolidarse con el tiempo.

¿Para cuándo iMacs, o MacBook Pro, con 5G?

Una de las razones por las cuales Apple no introducía 3G o 4G en los Macs es porque no era tan sencillo incluir ese soporte: se trataba de circuitería adicional, proporcionada por terceros, y que podía ser difícil de adaptar a los chasis Unibody de los productos de Apple.

Ahora, Apple produce sus propios chips para 5G, y el soporte está incluido dentro de los procesadores de serie A. Los Macs M1 de noviembre de 2020 no incluyen, ninguno, circuitería para 5G. Pero está claro que la diferencia de peso entre los iPad Pro con y sin soporte para 5G (unos 4 gramos) corresponden más a la inclusión de antenas que a una diferencia en el procesador M1. Así que es muy probable que el chip M1 incluya, en sí mismo, la circuitería de modulación y demodulación para 5G.

No tengo claro cuál es el material de la trasera los nuevos iMac M1, pero da la sensación de que es mucho más fácil incluir ventanas radio-transparentes en este nuevo chasis que en los anteriores.

Otra razón que se aducía es que las patentes sobre tecnología 3G/4G/5G muchas veces requieren del pago de regalías que son proporcionales al precio del equipo. Pero con un iPad Pro de 12 pulgadas, 2TB, y 5G llegamos a un precio de 2600 euros… muy por encima del precio de entrada de los iMac M1. Así que esa tampoco puede ser la razón.

La única razón, por ahora, es que Apple considera que los iMac son equipos fijos que no necesitan el esfuerzo de ingeniería necesario para habilitar 5G.

Sin embargo, creo que esa justificación se pierde con los equipos portátiles. Es muy posible que veamos, finalmente, MacBooks o MacBooks Pro con futuros procesadores de la serie M y 5G.

Cadencia de los procesadores M1, y la hoja de ruta de la serie M

Después de la presentación de los primeros Macs con M1 en Noviembre de 2020, creo que podemos descartar que haya una revisión del M1 hasta al menos el otoño boreal de 2021.

Y es que tiene toda la pinta de que los procesadores de la serie M van a tener una cadencia similar a la de los procesadores para iPhone e iPad, y no veremos un M2 hasta que los nuevos iPhone debuten con el A15. De esa forma, Apple tiene más tiempo de evolucionar la microarquitectura de los M1, y tratar de conseguir que más dispositivos migren a Apple Silicon.

Y a finales de 2022 esperaríamos los M3, que quizá sean los primeros procesadores de Apple en implementar la arquitectura ARM-v9. Actualmente todos los procesadores de la serie An desde del A7, y los M1 utilizan la arquitectura ARM-v8, que fue la que permitió el salto a Apple a los 64 bits en sus dispositivos iOS.

(Nota: un M3 basado en ARM-v9 compartirá arquitectura y microarquitectura con el procesador que se vaya a instalar en los iPhone con A16… eso puede suponer un auténtico disparo en el rendimiento de esos procesadores; claro que también Apple puede decidir que el próximo iPhone esté basado en M1… dejando ahora el Mac y los iPad como los que lideran la carga en cuanto a rendimiento.)

Curiosamente, el énfasis de ARM en ARM-v9 son tres cosas que le vienen bastante bien a Apple: seguridad/privacidad, rendimiento en operaciones de procesamiento de señal digital, inteligencia artificial en chip con operaciones matriciales, y mejora en las instrucciones de procesamiento de vectores.

El regreso de Altivec, con un ancho de banda bestial

Los procesadores basados en la arquitectura ARM-v8 tienen un conjunto de instrucciones llamado Scalable Vector Extensions (Extensiones Vectoriales Escalables, SVE), que permiten aplicar la misma operación a un gran conjunto de datos. En ARM-v9 ese conjunto se mejora con las SVE2, lo que permitirá un mayor rendimiento en esa clase de operaciones.

Si recordáis lo que fue el paso de los PowerPC G3 a los PowerPC G4 — y el famoso anuncio en el que se consideraba al PowerMacintosh G4 como armamento, por su capacidad de supercomputación —, ese rendimiento se obtenía a pesar de que la velocidad del procesador era mucho más lenta que la velocidad de acceso a memoria.

En el caso de los futuros M2 y M3, la arquitectura de memoria unificada se mantendrá, con lo que habrá una “manguera” con muchísima capacidad de mantener alimentadas a las unidades de ejecución vectoriales.

Eso también puede hacer que Rosetta 2 cambie para incluir mayor capacidad de emulación de instrucciones de los procesadores Xeon, lo que permitiría mantener un mejor rendimiento en código emulado en el que los iMac Pro y Mac Pro con Intel aún destacan…

Y aparte de vectores, matrices…

Además, las operaciones matriciales y sensoriales también forman parte de ARM-v9, por lo que muchas aplicaciones de inteligencia artificial que tienen que ver con esa clase de cálculos ya no necesitarán el Neural Engine que proporciona Apple, sino que podrán pasar a ser parte de las unidades de ejecución de la CPU.

Es probable que Apple adapte su Neural Engine a la nueva arquitectura, o bien que se mantenga como un recurso separado, aparte del soporte nativo de la CPU para operaciones matriciales.

¿Menos bloques propietarios de Apple en los futuros procesadores?

En la sección anterior vimos que ARM-v9 incluirá soporte para operaciones matriciales, que es parte de lo que el Neural Engine proporciona actualmente desde el A12 Bionic, y en los M1.

Otro bloque común a los procesadores de la serie A desde hace tiempo es el Image Signal Processor (Procesador de Señal de Imágenes, ISP). ARM-v9 ahora también incluirá instrucciones específicas para proceso digital de señal, lo que permitiría a Apple reimplementar el ISP como parte de las capacidades del procesador.

Claro que siempre es posible, dado que Apple controla el software de sus equipos, que decida que la compatibilidad con esas extensiones de ARM-v9 no es importante…

Arquitectura de Computación Confidencial

Pero probablemente la parte más interesante para todos los usuarios, independientemente del rendimiento de computación que necesiten, es la nueva arquitectura de seguridad en ARM-v9, la Arquitectura de Computación Confidencia (Confidential Computing Architecture, CCA).

Si seguís las noticias tecnológicas —altamente probable si leéis este blog—, puede que os resulten familiares las vulnerabilidades Meltdown o Spectre. En esas vulnerabilidades, la forma en la que los procesadores tienen muchas instrucciones en ejecución a la vez, porque están intentando predecir el futuro, se utiliza para obtener información acerca del contenido que puede existir en otras direcciones de memoria. Y por la forma en que los procesadores modernos funcionan —los A14 tienen hasta 314 instrucciones en vuelo, y los M1 aún más—, no es posible mitigarlas, especialmente Spectre.

La respuesta de ARM a esa clase de vulnerabilidades es desconfiar incluso del hipervisor y del sistema operativo. Se crean reinos (realms en inglés) dentro del procesador, que se gestionan con un componente llamado gerente del reinorealm manager en inglés—. Como a los reyes españoles los ayudaban los validos en la gestión del reino, voy a llamarlo valido real 😉.

Un reino es un entorno contenido de ejecución que es opaco al sistema operativo, y también al hipervisor del sistema operativo. El hipervisor deja de tener funciones de gestión directa de recursos de computación, y queda sólo con la responsabilidad de decidir cuándo y en qué reino se ejecuta el software. En cada reino, el hardware asociado lo gestionará el valido real, y como tiene menos responsabilidades, se espera que sea mucho más pequeño que un hipervisor.

El valido real tendrá también otra capacidad, y es que las aplicaciones que se ejecutan en cada reino podrán determinar si el valido es confiable — por ejemplo, que corresponda a un valido conocido.

Aún no está claro cómo se implementa la separación —la frontera— entre los reinos, pero parece que se utilizará soporte en hardware para asignar espacios de direcciones a cada reino, de forma que no puedan interactuar entre ellos. Recordemos que con 64 bits podemos acceder a 2⁶⁴ direcciones… o 16 exabytes, más de 17 mil millones de gigabytes… así que se puede dividir un procesador en 256 reinos… y cada uno podría acceder a 64 millones de gigabytes.

Un posible uso de los reinos sería asegurar la parte del sistema operativo que se comunica con el Enclave Seguro. Pero también ayuda a mantener las barreras de seguridad que iOS erige alrededor de cada aplicación que se ejecuta en nuestros dispositivos.

Además, ARM-v9 consolida una extensión que se introdujo de forma relativamente reciente a ARM-v8, (en v8.5), las Extensiones de Etiquetado de Memoria (Memory Tagging Extensions, MTE). Con MTE se puede etiquetar punteros en el momento de preparar memoria para ellos, y después comprobar si el puntero utilizado es el correcto, con lo que se puede intentar minimizar los fallos de seguridad que tienen que ver con el uso de memoria tras liberarla, o con el uso de memoria que va más allá de la originalmente reservada (buffer overflow).

El futuro de iPadOS… en WWDC2021

Los iPad Pro con M1 son tanto más potentes que no puedo creer que no vaya a haber una actualización de iPadOS que proporcione aún más capacidades… pero no tengo claro cómo exponerlas. ¿Lo veremos en WWDC2021?

Agradecimientos

Gran parte del contenido de este artículo —en la sección relativa a ARM-v9— está basado en el estupendo análisis de Anandtech sobre ARM-v9 a partir de los anuncios preliminares de ARM… seguiremos informando 😉

Descubre más desde Memoria de Acceso Aleatorio

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo