Blog Personal.

Uncategorized

Titania

(Este post es una construcción de rumores, malas lenguas y demás que he oido oyendo acerce de los sistemas de E/S de la siguiente consola de Sony, es un post de especulación informada).

«Titania» vendría a ser el nombre del segundo chip de PlayStation 5, el cual viene a reemplazar el Southbridge de la familia PlayStation 4 heredando su funcionalidad y añadiendo nueva en el proceso de poner dicho componente al día para la siguiente generación, al contrario de sus antecesores (Aeolia y Belize) no dispone de la memoria RAM asignada para el modo Stand-By en un chip de memoria aparte sino que se encuentra en el mismo empaquetado que el mismo Southbridge.

En PS4 el Southbridge tenía una doble funcionalidad, cuando la consola esta funcionando en modo normal se encarga de los periféricos de E/S del sistema, mientras que en modo Stand-By de la consola se activa el núcleo ARM dentro del mismo Southbridge, el cual se encarga de ejecutar un sistema operativo de bajo consumo en el modo Stand-By de la consola. Dado que el Sistema Operativo que ejecuta en el modo Stand-By es una versión de FreeBSD para ARM el Southbridge que incluye un núcleo ARM necesita su propia memoria RAM para funcionar como CPU en dicho modo de consumo.

PlayStation 5 hereda el modo Stand-By de PlayStation 4 donde la consola en modo de muy bajo consumo puede realizar descargas en segundo plano. El modo Stand-By es además el el primero en activarse al encender la consola en el caso de que la consola este completamente apagada, si la consola esta en modo Stand-By se encuentra siempre activo y es el encargado de manejar el arranque de la consol en el modo normal. En modo Stand-By tiene acceso tanto al SSD SLC como al SSD TLC.

¿SSD SLC y SSD TLC?

Tenemos varios tipos de memoria Flash disponibles, la memoria SLC es la más fiable de todas, tiene una vida mucho más larga y almacena un bit por celda, la memoria MLC es menos fiable que la SLC pero almacena 2 bits por celda y la TLC unos 3 bits por celda.

La memoria SLC es utilizada por el sistema y las aplicaciones no tienen acceso a la misma. Es en el Disco Duro SLC donde se encuentra el Sistema Operativo de la consola y no es accesible por los juegos, y las aplicaciones a nivel de usuario. La memoria TLC en cambio se utiliza para la instalación de los juegos y de las aplicaciones a nivel de usuario. La capacidad de almacenamiento de la memoria TLC es tres veces la de la memoria SLC pero a cambio tiene una vida menos útil. El chip de memoria Flash SLC no es reemplazable ni manipulable por el usuario y se encuentra soldado a la placa de la consola mientras que el Disco Duro TLC es reemplazable y sustituible por el usuario.

El Disco SSD del tipo TLC se encuentra disponible de serie con cada PlayStation 5, al no almacenarse el sistema operativo en dicha memoria el reemplazarla por otra de mayor capacidad u otro disco no supone un problema para el funcionamiento del sistema de la misma manera que reemplazar el Disco Duro de la familia PS4 tampoco resuita un problema, pero sin dicho Disco SSD no podemos instalar ni juegos ni aplicaciones ya que estos no tienen acceso al disco SLC del sistema en ningún momento.

Las unidades DMA de Titania

Titania dispone de 4 unidades DMA que le permiten copiar datos desde la memoria flash incorporada en el sistema hacía la RAM del sistema, los cuatro canales son:

  • SLC a RAM (Kernel)
  • RAM (Kernel) a SLC
  • TLC a RAM (Kernel)
  • RAM (Kernel) a TLC

Titania dispone de una memoria embebida donde copia los datos más cercanos y ahorrar el tiempo de búsqueda de los mismos. Cuando Oberon hace la petición a Titania de un dato correspondiente a la memoria Flash lo que hace es marcarle si es el Disco SLC o en el Disco TLC donde esta buscando el dato, Titania no envia ni recibe datos individuales sino que tiene su memoria dividida en bloques de datos regulares y los envía utilizando como cache de estos la memoria embebida que dispone al espacio de la RAM correspondiente al Kernel del sistema, dicho espacio no esta disponible para las aplicaciones y a través de un mecanismo por hardware lo que hace es descomprimir los datos, comprobar que son los que se esperaban y los copia descomprimidos en la RAM que puede ser utilizada por las aplicaciones si el origen es un dato del Disco TLC, en cambio si el dato viene del Disco SLC se queda en el entorno del sistema.

Es decir, Oberon dispone de una unidad DMA y de descompresión para pasar los datos de un espacio de la RAM principal a otro sin problemas cuando se hace una lectura de los datos. En el caso de la escritura de datos el proceso es a la inversa, pero todo bloque de datos es «sellado» por una unidad, si el bloque o conjunto de bloques de datos no dispone del sello correspondiente al sistema entonces el dato se copiara hasta la RAM a la hora de leer, pero si el dato no es el adecuado entonces no se transmitirá el dato a la aplicación y se enviara un mensaje de dato no válido a la misma.

Cuando se realiza una instalación el sistema firma cada uno de estos bloques y hace inutilizables los datos en otros sistemas. Esto en realidad no es nuevo de PlayStation 5 y ya se encontraba en PlayStation 4 pero Sony ha mejorado enormemente la velocidad de descompresión de estos bloques. Obviamente no hace falta que diga que cuando un dato es escrito se hace el proceso al revés y el dato es comprimido y sellado para ser posteriormente almacenado en la memoria Flash correspondiente.

La Sub-CPU en Oberon

Oberon dispone de una Sub-CPU, la cual realmente no es una CPU en si misma pero es la que maneja los accesos a la memoria del sistema, dicha Sub-CPU lo que hace es recibir una petición a memoria por parte de la CPU, GPU o cualquier elemento en el SoC y operar de acorde a quien sea el cliente y la dirección correspondiente.

Por ejemplo, solo el primer núcleo de la CPU tiene acceso al espacio del sistema operativo, es decir, al kernel del mismo así como a la memoria SLC. Cualquier petición a memoria hecha por los otros 7 núcleos se va a encontrar con el acceso completamente denegado. Por otro lado la Sub-CPU es la que le da a todos los componentes la capacidad de acceder a la memoria flash, la cual esta mapeada como si fuese una extensión de la RAM, cuando un procesador busca un dato más allá del espacio de la RAM automáticamente la Sub-CPU se pone en contacto con Titania para que le traiga el bloque de datos correspondiente.

Tanto la CPU, la GPU como el resto de procesadores del SoC no entienden del acceso a la memoria por bloques, en realidad la petición que hacen es a nivel de una dirección de memoria en concreto pero la Sub-CPU traduce dicha petición para Titania en un bloque de un tamaño concreto y envía los datos del bloque entero para evitar accesos continuos a la Flash. Si la dirección de memoria se encuentra en el espacio de la RAM entonces la petición se realiza de manera normal y se transmiten los datos de dicha dirección de memoria.

Titania como Southbridge

Titania se encarga de la E/S del sistema aparte de manejar la memoria flash como hemos visto antes. Aparte de los 2 puertos USB 3.1 del Tipo A y el puerto USB 3.1 del Tipo C con Alt-DP que otorga el SoC principal del sistema añade una serie de interfaces adicionales:

  • El Lector BluRay UHD del Sistema. (SATA)
  • El almacenamiento Flash del Sistema (PCIe)
  • Las interfaces inalámbricas del sistema (WiFi, Bluetooth…)
  • Los puertos USB adicionales, aparte de los entregados por el SoC principal, todos ellos del tipo 3.1.

En realidad no tiene más secreto en ese aspecto ni nada que destacar en especial.

Esto es todo, tenéis el Discord y los comentarios del blog para comentar o por si teneis dudas.

0 0 vote
Article Rating
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Juan

Muy interesante Urian! Entonces crees q el chip de red neuronal forme parte del apu o estará en un chip aparte o hasta quizás dentro de el southbridge?