La patente del dispositivo suplementario de Nintendo (II)

Dado que en los comentarios hay una enorme confusión respecto a la explicación de la patente he decidido escribir de nuevo dicha entrada, perdón a la gente por dar vueltas sobre el mismo tema pero me da la sensación de que la gente no ha entendido absolutamente nada.

¿De que habla la patente?

La patente habla de un periférico externo que sirve para dar potencia suplementaria a una consola a la que se encuentra conectada.

Captura de pantalla 2015-12-05 a las 12.56.00

Como se puede ver en el diagrama y como se describe en la descripción de la patente dicho dispositivo:

  • Carece de puerto de alimentación por lo que ha de ser alimentado por la consola principal.
  • No tiene ningún mecanismo de de almacenamiento interno ni tampoco externo, es decir… No puede cargar sus propios programas y tampoco tiene su propio sistema operativo. Es decir, no es un add-on con sus propios juegos y por tanto no es comparable al clásico add-on.
  • No tiene salida de video propia, por lo que como salida de video utiliza la de la consola principal.
  • La única comunicación que tiene con el exterior es la comunicación directa con la consola a la que esta conectada y una comunicación inalámbrica con dispositivos remotos.

Pero en cambio sabemos que es un procesador con una memoria asignada, sobre el tipo de procesador entrare más adelante.

¿Como funciona?

El poseedor de la consola puede asignar la potencia que quiera del dispositivo de computación suplementaria a la consola y dejar el resto para otras plataformas que se encuentren de forma remota.

Captura de pantalla 2015-12-05 a las 16.16.54

Dependiendo de la forma de conexión la utilidad es una u otra. Si la conectividad es con la consola a la que el periférico esta conectado entonces:

 En términos de la distancia de red un dispositivo cercano… puede ser utilizado para proveer servicios a casi tiempo real (por ejemplo el procesamiento de gráficos a tiempo real y los efectos de sonido).

En cambio con los dispositivos que están alejados:

…mientras que los dispositivos que están relativamente más lejos pueden ser utilizados para proveer apoyo asíncrono o suplementario a los eventos ocurridos en la consola (por ejemplo: climatología de los juegos, inteligencia artificial, etc.).

En el primer caso para poder ayudar en gráficos y en sonido ha de ser una GPU secundaria y lo del sonido viene porque la que tiene más número es AMD quienes han añadido un DSP para el sonido en sus GPUs desde hace relativamente poco.

AMD-TrueAudio-Presentation-28_575px

La idea de tener una GPU secundaria no es la hacer que la gente tenga que comprar la consola por piezas sino la de permitir una mayor fidelidad visual para la gente que sea más exigente en ese aspecto. Es decir, es posible que si esto se hace realidad veamos los juegos de NX con dos modos gráficos distintos y esto es algo que ya vimos en el pasado en Nintendo64 con el Expansión Pack de dicha consola.

SONY DSC

El expansion pack era una expansión de memoria para la consola que permitía ciertos modos gráficos en los juegos como más resolución. No obstante el tema del que estamos hablando en este caso es de un sistema de procesador adicional+memoria, en mi caso pienso que es una GPU secundaria conectada a través de un puerto Crossfire o similar, la diferencia es que esta GPU se encontraría un dispositivo externo y se conectaría a través de un puerto externo a la consola principal. ¿La forma en la que se comunicaría con el SoC principal de la consola? A través de un mecanismo llamado XDMA, lo cual son las siglas para el “Cross”Fire Direct Memory Access.

En el PC cuando tenemos dos GPUs conectadas estas se comunican entre si a través de un canal Crossfire pero ambas al mismo tiempo han de estar conectadas a la CPU a través de un puerto PCI Express, tened en cuenta que lo que hace una GPU es recibir las listas de comandos que crea la CPU y las ejecuta. Una GPU no puede estar conectada a otra GPU de manera concatenada porque la primera no puede generar listas de instrucciones para la segunda. El tema es que las Radeon se pueden comunicar entre si utilizando el puerto PCI-Express en PC pero la cosa cambia en los SoC ya que la comunicación existente entre la CPU y la GPU es la siguiente:

AMDUncore

¿Que ocurre cuando añadimos una GPU externa? Pues que tenemos que conectarla con el SoC principal a través de un puerto PCI Express por lo que el diagrama quedaría de la siguiente manera en lo que al SoC principal se refiere.

export

Mientras que la GPU secundaria tendría el siguiente diagrama, el cual seria el mismo que cualquier tarjeta gráfica de PC convencional.

export-1

Aunque también podría ser un diagrama más o menos de la siguiente manera:

export-2

Dicha GPU secundaria en combinación con la primera GPU se puede utilizar de muchas maneras.

  1. Para el renderizado de fotogramas intercalados con la primera GPU.
  2. Para tareas asíncronas de computación (físicas, detección de colisiones…) en una GPU mientras la otra renderiza la escena.
  3. Realización de efectos de post-procesado sobre la imagen generada por la GPU1.
  4. Renderizar la escena en conjunto.

En todo caso dudo que los juegos exijan el uso de este dispositivo para ejecutarse pero si que pueden obtener mejoras visuales a través de su uso. Personalmente tengo una hipótesis un poco alocada sobre cual es el motivo que puede llevar a Nintendo a hacer esto de cara al futuro… Es decir, lo que voy a decir ahora no es algo oficial sino una especulación de mi parte. ¿Os acordáis cuando dije que un trabajador de Nintendo había dicho en su linkedin que había trabajado con dispositivos HMD?

Mueller Mueller2

Para quien no lo sepa un dispositivo HMD es algo como esto:

Oculus_vs_Morpheus

Pues bien, una de las soluciones que se proponen es el renderizado de la escena de cada ojo de forma paralela utilizando dos GPUs diferentes pero de la misma potencia por lo que la imagen a renderizar se dividiría. La otra opción para lo mismo es el uso de la potencia adicional de la segunda GPU para renderizar  a una mayor tasa de fotogramas por segundo. Aunque tened en cuenta que esto es solo es una posibilidad hipotética para un futuro uso de esta segunda GPU.

Otra opción hipotética sería la de evitar un salto a media generación cuando la consola tuviese menos años de vida que PS4 y Xbox One, para ello se le ofrecería a los usuarios de NX la posibilidad de comprar un añadido que aumentase la potencia de NX para convertirla en el nuevo sistema. Esto sería muy parecido a lo que la 3DO Company tenía inicialmente planeado con el salto de 3DO a la 3DO M2, hacer con un add-on aunque al final no salió porque la 3DO M2 tampoco vio la luz.

Captura de pantalla 2015-12-05 a las 16.07.19Por lo que estaríamos hablando de un dispositivo externo que transmitiría sus datos a través de un puerto de expansión basado en la tecnología PCI Express. 
 ¿Como pueden tomar la potencia de la GPU lo dispositivos remotos?

En primer lugar, dicha potencia no seria para el renderizado de gráficos a tiempo real como he explicado antes sino que tendría más que ver con la computación de propósito general desde la GPU. La idea es dejar que cada usuario pueda prestar de forma remota parte de la potencia del dispositivo

En realidad es un concepto muy parecido al de la computación en la nube pero pero funciona diferente, ya que lo que hace es enviar pequeños programas que se resuelven en poco tiempo y cuyos resultados son enviados de vuelta al sistema que ha realizado la petición. La gente erroneamente ha llamado esto “Cloud Computing” a nivel local en los foros cuando es algo distinto cuando realmente es Grid Computing, en el Grid Compiuting lo que se hace es coger una tarea muy pesada y dividirla en pequeñas tareas que se repartirán entre un gran número de procesadores distintos y es aquí donde las GPUs entran en juego ya que son ideales para este tipo de computación.

cloud-and-grid-computing-9-638

La idea detrás de ello no es solo dar potencia a los dispositivos conectados en una red inalámbrica local sino tener una infraestructura alrededor del mundo a través de internet donde podemos ceder potencia de nuestros sistemas para la infraestructura global por un lado…

nintendo-nx-patent-452x640

… y por el otro se pueden añadir servidores para servicios remotos. ¿En que consisten dichos servicios remotos? Como veis en el diagrama son una cosa aparte de la comunidad de usuarios y la confusión de la gente con el tema del Cloud Gaming, dice así:

En algunas instancias, el servicio remoto 116 puede suplementar a la ejecución de los juegos en las consolas de videojuegos (utilizando las aplicaciones de juegos almacenadas en el servicio 116).

En realidad esto es algo que hace tiempo que existe pero Nintendo en su lucha contra el online no había hecho hasta ahora. Se trata de servicios online para los juegos como ahora:

  • Almacenamiento de partidas en la nube.
  • Servicios de logros y matchmaking.
  • Servicios de comunicación entre los usuarios.
  • Servicios de compra de contenido y nuevos juegos.

Además de:

  • Informar que recursos asignados para terceros puede otorgar cada usuario al sistema.

Pero estas funcionalidades son aparte de la comunidad de Dispositivos de Computación Suplementaria, es más en el diagrama de arriba la patente los separa en dos grupos distintos porque se trata de dos tipos de redes remotas a las que la consola puede acceder.

Volviendo al uso de los Dispositivos de Computación Suplementaria de la comunidad ¿Que utilidad tiene esto? Imaginad por un momento en que estáis jugando a un MMO al estilo World of Warcraft.

wow_corrupted_blood_plague

Tenemos miles de jugadores, esto son miles de hilos de ejecución que hay que mover y que acaban saturando cada consola por lo que estos son ejecutados remotamente, claro esta que en el caso de WoW Blizzard cobra del uso de esos servidores para el juego. Ahora apliquemos esto a lo que hemos explicado antes, al Grid Computing a través de la potencia prestada por los dispositivos de computación suplementarios de la comunidad, entonces al proveedor no le hace falta montar una infraestructura compleja ya que el juego puede utilizar dicha potencia.

¿Se puede aplicar en un juego tipo sandbox off-line? Por supuesto y de la misma manera, imaginad por ejemplo un juego al estilo GTA…

GTAV-gameplay-Trevor-drivingdowntheroad-desert-rearsideview

… donde lo que es el sistema de tráfico del juego y por donde se van moviendo los diferentes habitantes de la ciudad virtual es gestionado por la comunidad de dispositivos suplementarios. ¿Otras aplicaciones aparte de un MMO y/o un sandbox? ¿Que os parece en un juego de gestión como Sim City para simular la vida de la ciudad?

simcity_2013_09

Supongo que con esta entrada el concepto se entiende mejor que con la anterior ya que era mucho más técnica y menos pulida que esta.

Anuncios