En esta entrada voy a divagar sobre los diferentes coprocesadores que comparten espacio con CPU y GPU dentro del SoC Ariel, chip principal de PS5.

ISP+Núcleo IA

Una de las funcionalidades de los SoC contemporaneos es el ISP (Image Signal Processor) encargado de leer y procesar las imagenes captadas por la cámara del dispositivo, los cuales ultimamente se han combinado con los núcleos de IA para la interpretación y procesamiento de dichas imagenes.

Sabemos a través de una patente de Sony que comente recientemente en la entrada Wireless VR que vamos a tener un ISP para interpretar a la cámara de cara al tracking Outside-In en la VR…

Esto obviamente se realizará a través de un acelerador conectado al uncore general del sistema al igual que el resto de aceleradores que vamos a comentar en esta larga entrada. Dado que AMD lleva tiempo trabajando con Cadence es muy posible que utiliza los DSP (Digital Signal Processors) que Cadence utiliza para licenciar en diferentes SoCs.

Hace unas entradas comente que era posible que AMD utilizara el NVDLA de Nvidia, pero una investigación exhaustiva me ha dejado bien claro que AMD va a optar por la solución de Cadence, más que nada porque llevan tiempo trabajando con ellos y dentro de lo que tenemos claro que veremos en PS4 es la interpretación y procesamiento de las imagenes capturadas lo que creo que al 100% caera en manos de un procesador dedicado a la IA.

De entre todos lo elementos descritos por Mark Cerny durante la semana pasada acerca de como será PlayStation 5 hay uno del que me sorprende enormemente su omisión y que se haya retirado de la ecuación, me refiero al uso del Deep Learning, siendo lo único que nos comunica con ello son las patentes relacionadas con el futuro del PSVR, especialmente con el tracking desde la cámara.

Existen dos maneras de implementar el Deep Learning en un SoC, el primero de ellos es una unidad de procesamiento aparte para dicha tarea dentro del SoC como un procesador más, el otro es su implementación en la GPU como lo ha hecho Nvidia.

Independientemente de la implementación, estos se basan en Tensor ALUs, estos son una matriz de ALUs interconectadas entre si utilizando una interfaz en malla del tipo NoC. En dicha interfaz cada elemento de la matriz se puede intercomunicar con el resto de manera directa sin utilizar memorias intermedias lo que facilita la posibilidad de hacer operaciones de matrices muy rapidamente.

El tipo de acelerador que muy posiblemente veamos en PS5 sea uno del tipo DCNN ( Deep Convolutional Neural Network) que es el que se ha estandarizado en el mercado.

Las Convolutional neural networks(CNNs) han demostado ser muy efectivas en areas como el reconocimiento de imagen y clásificación como motores de inferencia. los CNN son exitosos en identificar objetos, caras y señales de tráfico así como suplir de visión a robots y coches que se auto-conducen solos.

Dicho de otra forma, este acelerador ha de permitir que la GPU no tenga que hacer más este trabajo y descargarla de semejante tarea, aparte de realizarla en menos tiempo, lo cual es esencial para la experiencia de la VR… Ahora bien… ¿Que tipo de unidad vamos a ver? No creo que veamos algo equivalente a los Tensor Cores de Nvidia de las GPUs, ni tampoco que veamos una unidad FPGA, aunque dada la naturaleza de los FPGAs, estos son ideales para ser reconfigurados como una matriz de Tensor ALUs…

y no en vano es la segunda forma más efectiva de hacer esto después de un procesador dedicado:

Esto hace que muchas soluciones para el Deep Learning se basen en ello, incluso hay una patente de Sony donde esto se menciona e hice referencia en su día. El problema de utilizar un FPGA es el siguiente:

  • Su re-programabilidad hace que ocupe un espacio considerable del chip en comparación con un ASIC.
  • Los FPGA están limitados a menos ancho de banda en comparación con lo ASIC especializados.

Por lo que pienso que en vez de un FPGA vamos a ver un acelerador especializado y dado la buena relación de AMD con Cadence el DNA 100 de esta última es el que creo que vamos a ver implementado en combinación de un ISP también de la propia Cadence.

El DNA100 es un pequeño núcleo escalable que puede ir de los 0.5 TeraMAcs a 100s de TeraMac, si esto os suena a chino os dire que cada MAC es una operación de suma+multiplicación por lo que equivale a 2 operaciones y estaríamos hablando de un minimo de 1 TeraOp o en según que ambitos 1 DL-Teraop hasta cientos de ellos según la aplicación a la que este dirigido, un solo núcleo DNA100 puede dar hata unos 12 TeraMacs. Teniendo en cuenta que la GPU de PS5 funcionaría a 1.8 Ghz y que puede realizar 512 ops/ciclo en Int8 dado que hereda la Compute Unit de Vega…

Esto significa que cada CU de la GPU sin la existencia de este acelerador de la IA puede alcanzar los 0.5 TMACS, por lo que la existencia de un solo núcleo DNA100 puede liberar del trabajo hasta 6 Compute Units para que puedan encargarse de otra tareas acelerando el proceso, especialmente en la VR, obviamente dado que PS4 carece de estas unidades los juegos de PS4 corriendo en PS5 no las podrán utilizar y tendrán que tirar de las Compute Units para interpretar las imagenes de la cámara de cara al tracking para la VR u otra aplicaciones relacionadas.

Multimedia Engine (Video)

Se conoce como Multimedia Engine el grupo de aceleradores encargados de realizar la codificación y la descodificación de video y audio. y aquí tenemos que comentar de entrada algo cuanto menos sorprendente que ocurre con PS4 Pro y es que su descodificador de video no soporta HEVC a resoluciones 4K, siendo este uno de lo motivos por los cuales la consola no soporta UHD BluRay.

Curiosamente mucha gente piensa que la GPU de PS4 Pro es una AMD Polaris que si que soporta dicho formato en esa resolución, tanto en codificación como en descodificación. Siendo la principal ventaja el hecho de poder alcanzar la misma calidad de imagen con la mitad de bitrate dado que el HEVC se ideo realmente para el streaming de internet, en realidad sigue conservando el mismo codificador y el mismo descodificador que PS4.

A partir del Raven Ridge AMD ha unificado el trabajo del codificador y el descodificador de video en un solo acelerador llamado Video Core Next (VCN). ¿Su principal novedad? Aparte de codificar y descodificar MPEG-2, MPEG-4, MPEG-4 AVC (H.264) y HEVC se ha añadido ahora el soporte para codificar y descodificar videos en formato VP9 que es el formato de video de Google, pero realmente lo que nos interesa es de cara a la reproducción de medios desde las diferentes plataformas y es aquí donde entra el tema del DRM.

En el 2013 Mark Cerny afirmo que el Southbridge de PS4 soportaba ARM Trustzone, Gracias a esto se tuvieron las primeras pistas de que el Southbridge de PS4 contenía un núcleo ARM en su interior para funcionar como entrase en modo stand-by en modo bajo consumo y en modo normal para realizar ciertas tareas. La idea no es otra que la de ejecutar un TEE (trusted execution environment) que no es otra cosa que un area segura en la que garantiza que el código y lo datos dentro de la misma será protegida en cuanto a su confidencialidad e integridad. Por lo que el TEE es un entorno que se ejecuta completamente aislado al resto y por tanto se encuentra a un nivel de seguridad por encima del resto.

Y efectivamente, como los hackers de Failoverflow en su día pudieron descubrir, el Southbridge en realidad es un SoC Marvell Armada con una serie de interfaces de E/S asociadas y un puerto PCIe x4 al que se le había añadido para conectarse con el chip principal.

En efecto, tenemos este chip en placa con una pequeña NAND Flash y unos 256MB de memoria asignada.

Ahora bien, dado que PS5 va a ser compatible al 100% con PS4 se ha de tener en cuenta a que se debe la existencia de este chip y en que se diferencia PS4 por ejemplo de Xbox One en este aspecto porque es importante. En realidad Sony con PS4 diferencia dos entornos de ejecución distintos que son: Media y Game, cuyos nombres son muy explicitos y esto es debido a que la capacidad de realizar streaming de juegos desde la GPU entra en conflicto con lo que es el contenido audiovisual comercial porque entonces cualquiera podría coger y empezar a transmitir sus películas directamente desde su PS4 a internet. Es por ello que cuando grabamos un Gameplay en la consola para transmitirlo y/o grabarlo es enviado por dos caminos, el primero es obviamente la interfaz de pantalla, el segundo es el bus PCIe x4 donde esta conectado el Southbridge. Si la aplicación se ejecuta en el Game Mode deja pasar el contenido para su retransmisión y/o almacenamiento y si no es así entonces aplica el DRM de medios.

¿Pero cual es el DRM de medios utilizado por Sony en PS4 y PS4 Pro? Veamos…

This product contains technology subject to certain intellectual property rights of Microsoft. Use or distribution of this technology outside of this product is prohibited without the appropriate license(s) from Microsoft.
Content owners use Microsoft PlayReady content access technology to protect their intellectual property, including copyrighted content. This device uses PlayReady technology to access PlayReady-protected content and/or WMDRM-protected content. If the device fails to properly enforce restrictions on content usage, content owners may require Microsoft to revoke the device’s ability to consume PlayReady-protected content. Revocation should not affect unprotected content or content protected by other content access technologies. Content owners may require you to upgrade PlayReady to access their content. If you decline an upgrade, you will not able to access content that requires the upgrade.

¿Que es PlayReady? Es un mecanismo de DRM creado por Microsoft en el 2007… Se trata de un mecanismo de prevención de copía de Microsoft que incluye el encriptado, la prevención de emisión y/o reproducción no autorizada y el manejo de derechos digitales. Este se ejecuta en el núcleo ARM del Southbridge en un entorno TEE y el mismo Southbridge tiene una interfaz privada con el controlador HDMI para enviar el búfer de imagen una vez ha comprobado que lo puede reproducir, pero el controlador HDMI también esta directamente conectado al chip principal para recibir directamente el búfer de imagen en el Game Mode.

¿Cual es la particularidad para Sony de cara a la reproducción de medios? Pues que viola un principio de seguridad muy importante y es que el camino de datos hacía el HDMI no ha de estar visible a la vista del público y en este caso si que lo esta. En realidad PS4 aplica una versión muy primitiva del PlayReady que es la que se penso para la reproducción BluRay hace poco más de una década, las aspiraciones de Sony con PS4 no pasaban de eso durante su diseño. Pero es que existe un problema añadido y es que ese Southbridge con su RAM y su memoria flash no se puede actualizar jamás, no existen mecanismos de actualización para el Southbridge y esto provoca que el PlayReady 3.0 que es necesario para el UHD BluRay no se pueda implementar, haciendo que PS4 Pro no pueda ejecutar contenido UHD BluRay, en realidad dado que cambiaron el Southbridge deberían ser capaces de haberlo implementado al menos en PS4 Pro, pero no sabemos porque no lo implementaron, bueno… Si que lo sabemos y es que PS4 Pro no puede reproducir HEVC al no tener el codificador/descodificador para ello… ¿Podrían haberlo implementado? Si, pero esto es una demostración más que PS4 Pro no lleva una GPU AMD Polaris.

Microsoft en cambio con Xbox One decidió tomar el camino de utilizar la idea de AMD misma de cara al entorno TEE con el Platform Security Processor de la propia AMD, el cual es un núcleo ARM Cortex-A5 que se encuentra conectado en el Northbridge del SoC principal y por tanto dentro del SoC principal.

PSP es el Platform Security Processor de AMD, os cito algo más de información para poneros al corriente.

Esta es básicamente la versión de AMD de Intel Management Engine. Tiene todos los mismos problemas básicos de seguridad y libertad, aunque la implementación es muy diferente.


El procesador de seguridad de la plataforma (PSP) está integrado en todos los sistemas Family 16h + (básicamente cualquier cosa posterior a 2013) y controla el inicio principal del núcleo x86. El firmware de PSP está firmado criptográficamente con una clave fuerte similar al Intel ME. Si el firmware de la PSP no está presente, o si la clave de firma de AMD no está presente, los núcleos x86 no se liberarán en el inicio, lo que dejará el sistema inutilizable.

¿Que es la familia 16h? Pues la familia del AMD Jaguar y tanto Xbox One como PS4 utilizan núcleos Jaguar. En PS4 y PS4 Pro el problema existente es que su uncore se basa en el de AMD Kaveri donde el AMD Secure Processor aún no estaba implementado, es decir, se implemento en Xbox One pero no en PS4 y en PC por aquellos tiempos. De ahí la necesidad del Southbridge para ejecutar el entorno TEE en la plataforma PS4.

El PSP es un núcleo ARM con tecnología TrustZone, integrado en el die de la CPU principal.

Lo que se traduce en que se encuentra conectado al Northbridge que en AMD desde el lanzamiento de los Opteron y los Athlon64 originales se encuentra en la CPU principal, en los SoC el Northbridge es compartido por CPU y GPU (acceso coherente a memoria).

Como tal, tiene la capacidad de ocultar su propio código de programa, memoria RAM inicial y cualquier información que pueda haber tomado y almacenado de la memoria RAM del sistema x86 con privilegios menores (claves de cifrado del kernel, datos de inicio de sesión, historial de navegación, pulsaciones de teclas, ¡quién sabe! ). Para empeorar las cosas, el PSP teóricamente tiene acceso a todo el espacio de la memoria del sistema (AMD no lo negará o no podrá hacerlo, y parece que se requiere que las “características” de DRM funcionen según lo previsto), lo que significa que tiene como mínimo acceso basado en MMIO a los controladores de red y cualquier otro periférico PCI / PCIe instalado en el sistema.

¿Que significa esto? Pues que el núcleo ARM al encontrarse en el propio Northbridge tiene acceso a la memoria principal y al almacenamiento principal, pero es que además no expone los pines de comunicación. Claro esta que tenemos que tener en cuenta que el PSP de AMD no es algo solo de Xbox One y al igual que su equivalente de Intel tiene una razón de ser.

Para entender el motivo de su existencia hemos de tener en cuenta que en los núcleos x86 existen los anillos de privilegio, cuanto más bajo sea el anillo en el que se ejecute una función más prioridad de cara al hardware tendrá.

El diagrama son los niveles de permisos a nivel de software, pero a nivel de hardware hay una serie de anillos negativos en cuanto a preferencia que son:

  • Ring -1: Disponible para cuando el SO se esta ejecutando encima de otro en modo hypervisor.
  • Ring -2: Modo de Gerencia del Sistema, este es el anillo de mayor privilegio dentro de los x86-64, cualquier cosa que se ejecute aquí va a ejecutarse directamente con todos los privilegios.

El modo de gerencia del sistema, hace que el nivel de seguridad se vea comprometido por completo, porque cualquiera que consiga ejecutar una función o un pequeño programa en ese anillo lo hará con mayores permisos de cara al hardware que cualquier cosa en los anillos superiores. El Ring-2 tiene acceso directo al hardware, incluyendo la unidad MMU y el control de interrupciones por lo que el control es total. ¿Y cuando toma el control? Pues cuando ejecutáis vuestro PC el sistema de arranque se ejecuta desde el Ring-2 para pasarle luego el control al Ring -1 o al Ring 0 dependiendo del caso.

Con tal de solventar este problema se acabo creando un Ring-3 pero su código no se ejecuta en el procesador, se le llama así por tener más privilegios sobre el hardware que otra cosa, es decir, es un mecanismo que se encarga de tener la última palabra acerca de lo que se ejecuta y lo que no. Tanto el Intel Management Unit como el AMD Secure Processor tienen el privilegio más alto al formar parte del Ring-3, el Marvell Armada en el Southbridge de PS4 y PS4 Pro hace lo mismo y el chip T2 en los Macintosh más recientes de los Apple Macintosh también. En el caso de PS4 y los Macintosh estos implementan un arranque del sistema diferente al de un PC convencional.

Si miramos en la lista de dispositivos ID relacionados con el chip «Ariel» veremos que el llamado Cryptographic Processor ha sido movido de estar en el Southbridge externo a formar parte del SoC principal de la consola, esta marcado como Cryptographic Coprocessor.

Pero Microsoft de cara al manejo de derechos digitales tiene una ventaja adicional respecto a Sony donde en PS4 decidieron adoptar FreeBSD con una interfaz WebGL ejecutandose en un navegador webkit. Y es que en efecto, la interfaz de PS4 no es más que un navegador webkit con soporte webgl.

Esto provoca que existan una serie de vulnerabilidades inherentes que han sido varias veces explotadas, el motivo de ello es que con tal de mostrar los menus para el usuario este entorno tiene acceso completo a la GPU y tenemos que en PS4 la GPU tiene un camino de datos directo sin pasar por el entorno TEE, con PS5 este «problema» ha sido eliminado por completo y además esto nos retrotrae al tema del Procesador de Comandos que comente en la entrada de la GPU, basicamente la parte de la GPU asignada al sistema se ejecutará virtualizada y por tanto en su propia sandbox dentro de la memoria sin que tenga acceso a más recursos que los que le son dados.

Este cambio en PS5 es necesario porque todos los proveedores de contenido llegado un momento van a requerir que los sistemas tengan soporte PlayReady 3.0 para la reproducción de medios. Esto en teoría va a permitir que PS5 al igual que Xbox One S y Xbox One X pueda reproducir UHD BluRay que recordemos que no es un formato físico nuevo ya que usa el BluRay de toda la vida por lo que no estamos hablando de un medio de mayor capacidad pero si de un medio que requiere el PlayReady 3.0 y la descodificación HEVC que estará disponible en PS5.

Display Engine

PS5 va a tener cambios importantes en el dispositivo de pantalla, para empezar no solo va a ser capaz de reproducir contenido via HDMI como en PS4 sino también la transferencia a través de un puerto USB 3.1 con DP Alt Mode, el cual ha de servir como cable único de comunicación entre la consola y el eventual PSVR2.

En realidad creo que Sony va a utilizar el Display Port 1.4. ¿Diferencias entre el HDMI 2.1 y el Display Port 1.4? El DisplayPort nos permite obtener lo que buscamos sin tener que consumir tanto ancho de banda y por tanto con una interfaz de comunicaciones más simple.

Cerny no ha especificado que tipo de soporte 8K vamos a ver en el sistema, dudo que veamos juegos a 8K pero no dudo que la consola tenga capacidad de reproducir video a 8K. Por lo que veo posible que Sony utilice internamente el Display Port 1.4 con un conversor a HDMI en medio de la placa para la salida al televisor y con esto PS4 tendría más que suficiente ancho de banda para todas su funcionalidad de cara a enviar los datos a pantalla dado que realmente no vamos a necesitar más que 4K60 y con el DP 1.4 podemos transmitir directamente sin problemas.

Con todo esto podemos asumir que la consola heredará el Display Engine de las AMD Vega.

Curiosamente Xbox One X utiliza el Display Engine de AMD Polaris, lo que le lleva a soportar también Freesync o más conocido como Variable Refresh Rate. Esta es otra de las pruebas que demuestran que mientras que Xbox One X tiene una AMD Polaris como GPU, PS4 Pro no por mucho que se repita el mantra en los foros y en los medios.

Desde que la GPU de PS5 va a estar basada en AMD Navi, la cual esta una generacíón por encima podemos concluir que su Display Engine va a cumplir con los requisitos del DP 1.4 como mínimo. ¿El soporte HDMI 2.1? Ya lo tenemos desde Xbox One X que utiliza el Display Engine de Polaris por lo que podemos dar por concluido el apartado del Display Engine

Multtimedia Engine (Audio)

De cara a la compatibilidad hacía atrás Sony ha de incluir el sistema de audio de PS4 en la nueva consola, este sistema de audio es independiente al del Raytracing Audio de la GPU pero el Raytracing Audio no es independiente de este desde el momento en que no puede generar el audio producido sn

Mientras que el TrueAudioNext utiliza la GPU para generar el audio, en el caso del TrueAudio a secas utiliza una serie de DSPs Tensilica Xtensa de Cadence.

En PS4 se encuentra en el Northbridge de la GPU siendo accesible solamente a través del procesador de comandos de esta. con el nuevo uncore al haber un Northbridge universal para todo el sistema esto significa que se tendrá acceso al procesador de audio no solo desde la GPU sino también desde la CPU. Curiosamente en la familia Xbox One también utiliza los DSP de Tensilica con la diferencia de que se encuentra conectado en el Northbridge de la CPU y por tanto al audio del sistema se accede desde la CPU.

Claro esta que el subsisistema de audio de Xbox One es un poco más complejo que el de PS4 al disponer de un DSP o serie de DSPs especificos creados por la propia Microsoft para el entorno de su consola.

Pero AMD y Sony no van a implementar tal cual el mismo hardware que en PS4 sino uno más avanzado, curiosamente los SoC de AMD desde Raven Ridge han vuelto a tener un subsistema de audio formando parte del Multimedia Engine.

Sabemos que el co-procesador de audio en Raven Ridge es completamente nuevo y AMD se refiere al mismo como «ACP 3.x».

Teniendo en cuenta que el primer ACP es el TrueAudio de Kaveri y Carrizo la conclusión es que el TrueAudio Next vendría a ser el ACP2, lo cual es curioso porque el ACP2 en si mismo no son una serie de DSP de audios sino la capacidad de utilizar parte de la GPU para el procesamiento y reproducción de audio, con la capacidad de poder utilizar las CUs de la GPU para ciertas tareas en concreto como es el Raytracing Audio. Esto lo comente en la entrada de la GPU y dado que el ACP3 es independiente a la GPU al estar en el Multimedia Engine podemos deducir que se trata de un coprocesador de audio tradicional para cuando no se quiera utilizar la GPU para reproducir el audio. Por otro lado tambien puede combinarse con los núcleos IA utilizados por el ISP para mejorar el reconocimiento de voz.

Obviamente el sistema de audio de Ariel ha de ser compatible hacía atrás y todos los Tensilica Xtensa que han ido apareciendo en el mercado son compatibles hacía atrás por lo que a AMD no le costaría adoptar un ACP mucho más avanzado que el de PS4 con mayores capacidades para el audio sin romper la compatibilidad hacía atrás y sin tener que recortar la potencia de la GPU en todo momento ya que no todos los juegos requieren Raytracing Audio.

Con esto acabo la parte relativa a los coprocesadores del sistema y con esta pequeña serie recordad que todo esto es una especulación fundamentada y construida a partir de los datos que tenemos.

Esto es todo, como siempre tenéis el Discord y los comentarios de la misma entrada para comentar el contenido de la misma.