Especulación sobre el hardware de Xbox One S (No Scorpio)

Después de meses escuchando a cierta gente echando mierda sobre Sony por los rumores de la PS “Neo” resulta que en el E3 lo que han presentado de la PS4 mejorada es:


Precisamente no es Sony la que anda escocida por haber perdido la generación a nivel comercial y porque sus ingenieros hayan diseñado un mejor sistema sino Sony. Aunque lo sorprendente aquí es que uno no esperaba que la Xbox One S fuese una consola con una mejora en potencia sino una versión slim de la primera Xbox One pero resulta que es una versión mejorada, y esto o me lo invento:

Gears of War 4 emplea un sistema de resolución dinámica que manipula la resolución de rendering del juego tanto en el modo de un jugador como en el multijugador pra mantener la tasa de fotogramas en cada modo (30 y 60 fotogramas por segundo, respectivamente). De acuerdo con Fergusson, la Xbox One S tiene potencia bruta adicional de CPU y GPU en comparación con la Xbox One, y los ingenieros de Coalition han sido capaces de tomar ventaja para reducir la frecuencia de la tasa de fotogramas o las penalizaciones de resolución en las partes más demandantes del juego.

En realidad no debería sorprendernos, al fin y al cabo esto es el fin de Xbox como consola convencional, el hecho de tener una plataforma con varias configuraciones de hardware supone que elementos como la resolución y la tasa de fotogramas pasan a ser completamente dinámicos. Pero tal y como decís en uno de los comentarios sorprende la existencia de la Xbox One S teniendo Project Scorpio a la vuelta de la esquina:

RIP Xbox one slim 2016-2016.

Yo todavia no me explico como microsoft se atreve a anunciar la xbox one slim y luego anuncia la ultra xbox one, la consola muerta antes de salir. vaya vaya!

A no ser claro esta que Microsoft piense que la superioridad de PS4 a nivel técnico resulte en un handicap lo suficientemente importante para la Xbox One original que se necesite una versión más potente… ¿pero cuanto de potente? Esta claro que dicha versión no puede ser una versión 4K nativa, pero esta claro que su GPU tiene que basarse en Polaris y seguramente si digo Polaris 11 acierto. ¿Y que es Polaris 11? Pues la versión con 16 ROPS (4 RB) de la arquitectura Polaris, es decir, la hermana pequeña de la GPU que se va utilizar en “Project Scorpio” y “PS Neo”, las especificaciones de Polaris 11 se desconocen pero si tomamos como referencia la RX 480/Polaris 10 con 32 ROPS/8 RBs que tiene 36 CUs entonces nos podemos esperar unos 18 CUs como posible configuración máxima que es la misma cifra que PS4.  Lo de la resolución dinámica ya se vio en Halo 5 donde el juego alcanzaba resoluciones dispares para mantener la tasa de fotogramas por lo que no es fácil sacar una conclusión de lo que nos podemos esperar a través de una simple regla de tres. Es decir, si estuviesemos hablando de escalar de X resolución a Y resolución de manera estática sería fácil predecir la potencia que tiene realmente la Xbox One S y el salto respecto a la Xbox One estándar por lo que realmente no se puede saber cual es la configuración ya que Microsoft puede optar por una versión recortada del Polaris 11 de la misma manera que opto por una versión recortada de Bonaire para la Xbox One estándar.

La siguiente pregunta que viene a la mente es… ¿Como lo harán para hacer compatibles los juegos para todas las familias de Xbox One? Lo digo por esto que dijo uno de los desarrolladores del Trials de Ubi Soft en Beyond3D:

Mirad algunas de las presentaciones de la GDC y el SIGGRAPH (en los últimos tres años). Se mencionan optimizaciones a medida de la ESRAM por varios equipos. Y estoy seguroque cada juego AAA utiliza fuertemente la ESRAM hoy en día y tiene montones de código para esta. Sin la ESRAM el ancho de banda total de la Xbox One es de 68 GB/seg. Incluso los juegos Indie se están volviendo tan gráficamente intensivos que perder 2/3 del ancho de banda total ya no es una elección realista.
Necesitas dirigir manualmente tu uso de la ESRAM y políticas de localización de esta, mover los datos hacía dentro/fuera y escribir/leer datos hacía/desde la ESRAM utilizando la ESRAM y los Compute Shaders. La ESRAM de Xbox One no es una cache automática, esta es una memoria scratchpad completamente manual. La cache eDRAM L4 de Intel (en algunos  modelos Broadwell y Skylake) por el otro lado es una cache automática. Las caches necesitan un espacio considerable en el chip para los tags de la cache y el hardware coherente. Microsoft (AMD)  probablemente decidieron que una cache manual era más adecuada para una consola, debido a que el código a medida será escrito para la consola de todos modos. Intel por otro lado escogio implementar una cache eDRAM de 64MB/128MB completamente automatizada porque en el software de PC casi nunca se optimiza para una sola arquitectura.
La arquitectura de memoria UMA de las consolas modernas (Xbox 360, Xbox One, PS4) hacen dificil emular juegos en una plataforma con una GPU dedicada (como es el PC). Los juegos de estudios internos de los fabricantes pueden utilizar algoritmos donde la CPU y la GPU estén colaborando estrechamente. Este nivel de (baja latencia) cooperación no es posible en un PC con una GPU dedicada. En general ninguna consola con la que he trabajado ha sido diseñada para ser completamente compatible hacía adelante (he trabajado con 7 consolas). Es siempre un sacrificio hacer la consola anterior completamente compatible hacía atrás. Mientras los desarrolladores tengan permiso para acceder al hardware a bajo nivel, la compatilidad 100% a lo fácil no ocurrira.
La cosa esta en que si Microsoft o Sony no permitieran acceso al hardware a bajo nivel, pero su competidor lo permitiera, los juegos se verían y se moverían con un framerate más suave en la consola del competidor. A nadie le gustaría esto, ni a los clientes y tampoco a los fabricantes. Es mejor dejar a los desarrolladores utilizar el hardware al completo ya que resulta en los mejores juegos.
Sabemos que Microsoft pretende integrar Xbox en Windows y universalizar la plataforma en diferentes dispositivos, pero una cosa es una familia ascendente de consolas Xbox que permite unas configuraciones hacía adelante con versiones progresivas de un mismo hardware y otra cosa distinta es meter al PC en medio con una enorme disparidad de hardware y en este caso estamos hablando de un nuevo modelo de Xbox One que va a tener si o si los mismos elementos que la Xbox One original incluyendo los Move Engine/DMEs y la ESRAM. En realidad incluso con el nuevo uncore (Onion3) no es dificil la integración, digamos que hemos pasado de:
XboxOneArchitecture
A esto:
XboxOneSArchitecture
Aunque los cambios en el uncore resulten cuanto menos leves son importantes en lo que es la configuración interna del chip, en primer lugar hemos de tener en cuenta que Xbox One estándar mantiene las diferencias en lo que es el espacio de memoria coherente y el no-coherente. Es decir, si no tenemos en cuenta la ESRAM que esta pensada para uso exclusivo de la GPU la DDR3 pese a ser un único pozo de memoria esta compartimentada:
NonFullHSA
El hecho de cambiar el uncore por el del Onion3 supone que la organización de la memoria cambia por completo:
FullHSA
Esto afecta a los Move Engines, los cuales se encuentran también en PS4 y PC y se encargan de trasladar datos desde la parte coherente a la no-coherente, pero en el caso concreto de esos sistemas solo hay 2. En el caso del PC la parte coherente es la RAM del sistema a la que se accede a través del bus PCI Express, en el caso de PS4 hay un espacio coherente y otro no-coherente por lo que ambos se comunican a través de un dispositivo DMA.
AMDACE_575px
Pero la GPU de Xbox One tiene cuatro unidades de este tipo bajo el nombre de Swizzle Copy en el diagrama:
2535461-7489900361-gqyaZ
Hay unas cuatro unidades porque son para:
  1. Acceso No-Coherente a la ESRAM.
  2. Acceso Coherente a la ESRAM.
  3. Acceso Coherente a la DDR3
  4. Acceso No-Coherente a la DDR3.

Ahora todos los accesos a la RAM del sistema son coherentes y lo más seguro es que los accesos a la ESRAM también… La ESRAM no esta pensada para ser accedida por la CPU pero esto no significa que para ciertas tareas no tenga que tener coherencia por lo que la cosa quedaría de la siguiente manera:

  1. Acceso No-Coherente a la ESRAM.
  2. Acceso Coherente a la ESRAM.
  3. Acceso Coherente a la DDR3
  4. Acceso No-Coherente a la DDR3.
El número de Move Engines pasa de dos a cuatro con ello.
Ya sin salir de la memoria hemos de tener en cuenta que:
  • Una subida de la velocidad de reloj de la CPU supone que el ancho de banda de la memoria que utiliza es más grande, lo mismo ocurre con la GPU.
  • La configuración máxima de la DDR3 es la de 2133Mhz, esto significa que si el ancho de banda de la memoria es superior la Xbox One S tiene que hacer uso de una configuración de memoria más rápida.
  • Si hay 16 ROPS (4 RBs) esto se traduce en un bus de 128 bits GDDR5 o un bus DDR4-2400 como mínimo.

¿Es posible que Microsoft use GDDR5 en la Xbox One S? Las memorias DDRn tienen un bus de 16 bits por chip y si se necesitan unos 16 chips entonces los costes se disparan (bus de 256 bits) en cambio con la GDDR5 solo necesitan unos 8 chips en total en modo clamshell (dos chips por canal) por lo que en costes es mucho mejor. Por otro lado aunque el número de pines de la GDDR5 a igualdad de bits de ancho de banda es superior, los pines de una configuración GDDR5 de 128 bits es menor aunque no os esperéis un ancho de banda como el de PS4 ya que esta usa GDDR5 de 256 bits.

En todo caso aún faltan unos dos meses a que la consola salga a la venta y podamos salir de dudas sobre su configuración.

Anuncios