Cosas curiosas que ocurren en EOL (tema hardware Xbox One)

Mirando en las referencias de este mismo blog donde se me marca quien ha enlazado al blog me encuentro con que en un hilo de EOL se esta hablando de una entrada de este blog:

Captura de pantalla 2015-11-23 a las 15.14.41

Mirando la lista de entradas más visitadas me encuentro con lo siguiente:

Captura de pantalla 2015-11-23 a las 15.15.53

Las dos entradas más visitadas son “Un pajarito me ha dicho que…” que puse ayer pero la segunda es una de hace tiempo… El enlace al blog desde EOL se tiene que estar refiriendo a una de las dos entradas, ¿Cual es mi sorpresa cuando intento acceder a la pagina de EOL desde donde esta el enlace al blog utilizando mi cuenta?

Captura de pantalla 2015-11-23 a las 15.18.59

Es decir, alguien le ha pedido a uno de los moderadores que me pongan en la lista negra, alguien o una serie de alguien y no hace falta ser un lince para darse cuenta que son FLASHBACKMAN y cía, quienes llevan mintiendo con todo el descaro del mundo sobre el hardware de Xbox One y los deje en evidencia en ese mismo foro… Si, el baneo se produjo en ese mismo hilo y cualquier persona que sea fiel a la verdad les habría enviado a tomar viento fresco desde hace mucho tiempo pero parece que uno de los moderadores de EOL o esta compinchado con ellos, o se cree sus mentiras o simplemente me tiene ojeriza personal por algún motivo, las tres sinceramente me importan bien poco.

En todo caso puedo entrar en el hilo y leerlo tranquilamente simplemente cerrando sesión y entrando como invitado y en la misma página ya podemos ver un tufo a mentiras sobre el hardware de Xbox que ya huele mal de entrada, fijaos en la cita a la que hace referencia la primera réplica:

Captura de pantalla 2015-11-23 a las 15.25.55

4GB HBM en el SoC…. Si.. si… Como si eso fuese fisicamente posible.

Jameson

Es decir… según estos “expertos” los 4GB de memoria HBM que AMD ha tenido que poner fuera del Fiji y que son los cuatro chips pequeños alrededor del más grande…

lisa_su_fiji_04

… el cual mide 600mm^2… según ellos los han puesto aquí dentro:

Teardown-Xbox-One-processor-die-2

Es decir… en el SoC de Xbox One, el cual tiene un tamaño según fuentes oficiales de:

XBox_One_SOC

363mm^2… ¿Acaso no ocuparían un espacio muy grande? ¿Acaso Microsoft no sacaría pecho de este hecho? Pero es que además hay un tema que hace que queden aún más en evidencia… No saben que la memoria HBM es un estándar de la JEDEC que requiere un sustrato/interposer para funcionar… Es decir, su diseño no es para funcionar como memoria embebida dentro del chip sino que es embebida dentro del paquete, es decir… Si Microsoft utilizará memoria HBM debería montarse aparte del chip principal y ambos sobre un sustrato/interposer.

El otro punto a tener en cuenta es que le memoria HBM utiliza interconexión TSV tal y como se puede ver en la siguiente diapositiva:

Chipworks-AMD-Fiji-die-shot

¿Vamos a suponer que gente tan serie en el análisis forense de los chips miente como es Chipworks miente?

Pero vamos a darles el beneficio de la duda a los que dicen que Xbox One tiene memoria HBM en su interior, supongamos que no andan desencaminados del todo y llaman bajo el nombre de memoria HBM a otro tipo de memoria TSV pero apilada dentro del chip. Por lo que realmente estaríamos hablando de memoria apilada haciendo uso de interconexión TSV, es decir… una configuración 3DIC en vez de una 2.5DIC:

WideIO25

Por lo que la memoria que habría encima sería del estándar WideIO y no del HBM, ambos utilizan memorias con cableado TSV… ¿Porque es importante? Pues porque el HBM en el chip no existe sino que eso es el estandar WideIO y ambas utilizan TSV para el cableado, es decir… para la trasferencia de datos desde y hacía desde la memoria al procesador. Obviamente para saber si es cierto necesitaríamos una foto como la siguiente:

New Picture (2)

La foto no es del chip de Xbox One sino del de PS Vita, en el tenemos varios chips apilados y uno puede pensar que:

  1. Es memoria apilada como el HBM como el HBM.
  2. Esta dentro del chip y por tanto es memoria embebida.

En realidad ambas afirmaciones son mentira, ya que lo que tenemos delante es un System in Package y los hilos que vemos en realidad son wirebonds que conectan la LPDDR al procesador, no obstante PS Vita utiliza unos 128MB de memoria WideIO de primera generación y esta se conecta vía TSV cuyas interfaces son los puntos blancos especificados. Los cuales en el diagrama de arriba son los llamados “microbumps”.

¿A que viene esto? Sencillo… Si Xbox One utiliza un tipo de memoria con interfaz TSV encima del chip solo necesitaríamos una foto que lo demostrará y que se demostrará que esa foto viene del procesador de Xbox One por lo que les animo directamente a hacer lo siguiente:

  1. Recolectar dinero.
  2. Pagar a Chipworks u otra empresa similar de prestigio haga un estudio sobre el SoC de Xbox One.
  3. Independientemente del resultado publicarlo.

La comunidad de Wii U de NeoGAF lo hizo con el Latte de Wii U… No se como no tardan en hacernos callar la boca a mi y a todos los que decimos que todo lo que dicen son mentiras, lo único que necesitan es demostrarlo con un análisis forense del chip y demostrar obviamente que es de ese mismo chip, es decir… del de Xbox One. No creo que este pidiendo una prueba diabólica en este caso y por quien no sabe lo que es una prueba diabólica es lo siguiente:

La prueba diabólica (en latín, probatio diabolica) o prueba inquisitorial es una expresión del ámbito del Derecho que describe la práctica de exigir por parte del jurado a la defensa una prueba a favor de la no participación del reo en la comisión del delito imputado. En una probatio diabolica el interpelado deberá, por ejemplo, demostrar que algo no ha ocurrido, la inexistencia de algo, o su propia inocencia en un proceso judicial, cuando lo correcto según el Derecho moderno es que la «carga de la prueba» corresponde a quien ha de probar la existencia de algo, o probar la culpabilidad.

No os pido una prueba de que algo no ha ocurrido, sino una prueba de algo físico y tangible. No soy yo quien ha hecho la afirmación extraordinaria y necesita una prueba que la confirme definitivamente. En todo caso llevan tiempo con esta tontería y las demostraciones son cero… Cuando digo que es desde hace tiempo es por algo, mirad esto del año pasado por ejemplo:

Captura de pantalla 2015-11-23 a las 16.19.38

Fui un poco tonto y leí apilado en stock cuando querían decir apilado en SoC aunque escribieron “sock”… Ni tan siquiera lo saben escribir bien. No han bajado del burro desde entonces y seguimos sin una prueba, al menos les he dicho donde pueden conseguir una definitiva.

En fin, perdón por el inciso y sigamos… Es que me he dejado llevar.

¿Que es lo siguiente que llama la atención de la página 1514 del hilo?

Captura de pantalla 2015-11-23 a las 16.09.20

Por fin llegamos al famoso enlace al blog… El cual lleva a esta entrada, la cual tuvo una primera parte donde demostré que PS4 y Xbox One utilizan la misma CPU pero a distintas velocidades de reloj utilizando fuentes primarias venidas de la propia Microsoft. Es decir… El tipo pregunta si es cierto lo que dice la propia Microsoft sobre su consola y me llama “personaje”. Lo segundo me es igual, pero lo primero es bastante…

wtf-is-this-shit_o_168506

Es decir… ¿esta gente esta desacreditando a la propia Microsoft? Leed las entradas y veréis como no hay nada que haya sacado de la manga. En todo caso continuemos a través del hilo que la cosa se pone interesante:

Captura de pantalla 2015-11-23 a las 16.28.08

 

 

Hum…

el pensador

¿Dice que no he hablado jamas de la parte que comunica la CPU con la GPU en Xbox One? En realidad si que lo hice… En una entrada en concreto, la cual voy a citar a continuación:

La construcción que hay alrededor de  la CPU no es la CPU, es el llamado Northbridge/MMU que se encarga de comunicar todos los elementos de la consola entre si y estos con la memoria. La litografía deja muy claro que esa parte es diferente en ambas consolas y los mismos arquitectos en su entrevista a Digital Foundry confirman que han tocado esa parte:

Teardown-Xbox-One-processor-die-2

 

ps4-reverse-engineered-apu

Para los profanos,la parte a la que me refiero es la zona que se encuentra justo entre la CPU y la GPU, en el diagrama de su presentación en el Hotchips es la que recibe el nombre de CPU-Cache-Coherent-Memory Access:

XBox_One_SoC_diagram

En la famosa entrevista a los arquitectos tenemos la respuesta de lo que se trata, por un lado la cita que ya comente en la primera entrada:

Nick Baker: No ha habido ninguna configuración con dos clusters de Jagiar antes que la Xbox One (Nota de Urian: 1 Cluster Jaguar= 4 núcleos, el único procesador con Jaguar fue el AMD Kabini que tenía un solo Cluster, luego vinieron PS4 y Xbox One que utilizan dos tal y como se puede ver en las litografías de los procesadores) así que había cosas que teníamos que realizar para que esto funcionara. Queríamos una mejor coherencia entre la CPU y la GPU y esto es algo que teníamos que hacer, por lo quetocamos la construcción alrededor de la CPU (Nota de Urian: No habla de la CPU en si) y entonces miramos en como los núcleos Jaguar implementaban la virtualización, hicimos algunos cambios, pero nada fundamental a la ISA o añadir instrucciones.

¿Por qué es importante la coherencia entre la CPU y la GPU?

En Xbox One nuestras cargas de trabajo del Kinect están corriendo en la GPU con computación asincrona para todas nuestras cargas de trabajo de proposito general en la GPU y tenemos todos los requerimentos para una computación de ese tipo en terminos de una memoria rápida coherente, tenemos nuestros sistema operativo, el cual nos lleva a nuestro sistema de diseño. Nuestro manager de memoria en la pate de los juegos ha sido completamente re-escrto. Lo hicimos para asegurarnos que el direccionamiento virtual para la CPU y la GPU acabe siendo siempre el mismo estes en el lado que estes. Mantener las mismas direcciones virtuales tanto para la CPU como para la GPU permite a la ambas compartir los punteros.

De que me suena eso… ah si, es lo mismo que el hUMA que hay en PS4 y en PC:

huma_03

La diferencia es que esta vez la solución no es la genérica de AMD como ocurre en PC y PS4 sino que es algo completamente a medida… ¿el motivo? Tablas de paginación sincronizadas entre CPU y GPU, por cierto de la definición de la Wikipedia quedaos con esto:

Las tablas son mantenidas por el sistema operativo y utilizadas por la Unidad de Gestión de Memoria (MMU) para realizar las traducciones. Para evitar un acceso a las tablas de paginación, hay un dispositivo llamado Buffer de Traducción Adelantada (TLBTranslation Lookaside Buffer), acelerando el proceso de traducción.

Ahora vayamos a lo que afirman los arquitectos de la consola acerca del tema de las tablas de paginación:

Tuvimos que ser capaces de hacer que el sistema entero fuese capaz de virtualización, asegurandonos que todo tuviese tablas de paginación.

Nick hablo sobre las tablas de paginación. Algunas de las nuevas cosas que hemos hecho, la GPU tiene dos capas de páginas de tablas para la virtualización. Pienso que es la primera GPU aplicada  consumo que corre virtualizada. Queríamos que la virtualización tuviese ese aislamiento.

Construimos la virtualización de tal manera que no haya una carga en el sobrecoste para los gráficos excepto en las interrupciones. Hemos hecho todo lo posible para evitar las interrupciones… solo dos por fotograma. Hemos tenido que hacer cambios significativos en el hardware y en el software para conseguirlo. Tenemos superposiciones en el hardware donde tenemos dos capas para el título/juego y una capa para el sistema y la capa del sistema y la del juego puede renderizar de forma asincrona y presentar el resultado de forma completamente asincrona a lo que ocurre en el lado del sistema.

Dado que tanto la CPU como la GPU acceden en Xbox One a la memoria principal a través del mismo mecanismo (ver diagrama de más arriba) esto significa que los cambios en ese aspecto se tienen que hacer en esa parte y si miráis la descripción en el diagrama del sistema que he puesto arriba, la parte llamada CPU-Cache-Coherent-Memory Access coincide con esta descripción.

¿Cual es la diferencia con PS4 y PC? Pues que el mecanismo de PS4 esta pensado para múltiples contextos en un mismo sistema mientras que Microsoft necesitaba múltiples contextos en múltiples sistemas y esto les llevo a tocar la parte entre CPU y GPU, es más, lo más lógico y coherente es que la memoria SRAM sea un TLB magnificado para almacenar las tablas de paginación para ser utilizadas por CPU y GPU.

Es decir, el Onion+ no esta en Xbox One por el hecho que utiliza un mecanismo propietario, algo que ya comente en su día y por tanto no he negado jamás que haya una solución a medida que en ese aspecto, coherencia CPU-GPU, fuese mejor. En todo caso so fue una especulación por mi parte y aún espero la prueba que confirme mis sospechas, desgraciadamente desde el momento en que esa parte no es accesible para los programadores no esta documentada en el SDK porque es un proceso ajeno aunque dentro del mismo sistema por lo que tendremos que esperar unos años a que por ingenieria inversa sepamos si tengo razón o no. O simplemente alguien llegue a una conclusión mejor que la mía en lo que es el uso del mecanismo con SRAM entre los dos módulos Jaguar de Xbox One que no se encuentra en PS4.

El problema con el que me enfrento es con lo siguiente, me dio por destapar a cierto personaje como un fraude y lo que he obtenido es la difamación, el silencio y…

iraq-torches_1853664i

… es por ello que he hecho esta entrada en realidad y he pospuesto otras, para que la gente vea que al contrario de lo que esta gente afirma si que puedo sostener mis argumentos en ese aspecto y son ellos los que juegan con el campo de juego manipulado a su antojo. Pero el tema del mecanismo de coherencia CPU-GPU no es la única trampa… Hay una más gorda:

Claro y los schedulers y graphics/command processors específicos para que nombrarlos siquiera ¿verdad?. Si es que  :-|

Ah si… Eso llevo tiempo esperando… La afirmación de que los planificadores/schedulers son especificos de Xbox One. Sobre el procesador de comandos de la GPU no diré nada ya que los propios arquitectos de la consola dijeron que los habían tocado… pero no es la misma pieza el planificador que el procesador de comandos y necesito la prueba tangible de que Microsoft ha tocado esa parte de la GPU. ¿Que quiero decir con eso? Que no puedo hablar de algo que no se si existe o mejor dicho… no se me ha demostrado que existe. Si nos atenemos a la definición pura de Microsoft, la GPU de Xbox One solo tiene una particularidad, un segundo procesador de comandos diseñado por los arquitectos de Microsoft aparte del ya incluido de serie por AMD en la arquitectura pero en ningún lado hablan del planificador/scheduler.

A mi las charlas sobre temas técnicos me encantan, lo que no me gusta nada es que hayan creado un parlamento donde solo hay una idea y donde debido al monopolismo de ideas no se demuestre nada y todo se resuma en una colección de imposibles indemostrables e indemostrados.

En todo caso a los lectores habituales del blog perdón por esta entrada, pero no me gusta que me menten y no me pueda defender en lo que afirmo.

Anuncios