Twenty Two NX

Durante muchas de las entradas acerca de la especulación de NX he comentado un problema que no es otro que el encaje de la retrocompatibilidad o más bien la forma de colocar el IBM Espresso para la compatibilidad hacía atrás con Wii U en lo lo que sería NX. ¿El motivo por el cual creo que habrá compatibilidad hacía atrás? Simple observación de la política de la empresa a la hora de diseñar sus sistemas de sobremesa desde que Iwata llego a la presidencia y aunque con su reciente fallecimiento la empresa ha cambiado de manos el proyecto NX ya estaba ciertamente bastante avanzado.

Esto en principio no debería ser un problema si no fuese porque están separados por el hecho que son dos procesadores que han sido diseñados para fabricarse bajo procesos de fabricación distintos, cuando Wii U empezó su diseño tanto IBM como Renesas estaban en activo e IBM suele diseñar sus chips utilizando un método de fabricación llamado SOI. En realidad no es un proceso nada raro en el mundo de las consolas de videojuegos ya que dicho proceso ha sido utilizado para:

  • Las CPU de GameCube, Wii y Wii U.
  • La CPU de Xbox 360 y la CGPU/SoC de Xbox 360 Slim.
  • El Cell Broadband Engine de PS3.

En el caso del mundo del PC todas las CPUs y APUs, pero no GPUs puras,  de AMD previos a la llegada de los 28nm utilizan el proceso SOI. ¿Pero que es el SOI? La Wikipedia tiene una buena explicación que complementare con un dibujo:

smartcut-610x374

Silicon on insulator (SOI) es una tecnología de fabricación microelectrónica en la que se sustituye el sustrato tradicional de fabricación de obleas de silicio monocristalino, por un sándwich de capas de semiconductor-aislante-semiconductor.

Esta técnica reduce las capacidades parásitas de los circuitos fabricados, reduce el riesgo de latch-up en los circuitos lógicos CMOS, y mejora la escalabilidad de los circuitos integrados. El aislanteempleado suele ser típicamente dióxido de silicio o, en aplicaciones en las que se busca resistencia frente a la radiación, zafiro.

Las láminas de semiconductor suelen ser de silicio, aunque se buscan nuevas alternativas para mejorar las prestaciones de los dispositivos introduciendo nuevos materiales semiconductores como silicio tenso y aleaciones de silicio/germanio.

Dependiendo del espesor de la lámina de silicio sobre el aislante se distinguen dos tipos de tecnología SOI. Si la lámina de silicio se encuentra completamente deplexionada de portadores móviles (electrones o huecos) se habla de FD-SOI (Fully-Depleted SOI); si está parcialmente deplexionada PD-SOI (Partially-Depleted SOI). La tecnología FD-SOI es muy prometedora para la miniaturización de los dispositivos electrónicos, mientras que la PD-SOI muestra sus ventajas en la fabricación de transistores que deban operar a altas frecuencias (como en microprocesadores) así como en la fabricación de memorias de un solo transistor (1T-DRAM).

El uso de SOI tiene la ventaja de no requerir apenas cambios en el proceso de fabricación de los circuitos integrados más allá de utilizar obleas SOI distintas de las tradicionales. Su principal inconveniente es el coste: las obleas SOI son significativamente más caras que las ordinarias.

Por si lo preguntáis, el utilizado por los chips arriba mencionados es el PD-SOI, pero en fin, al grano… ¿Que ocurre cuando un chip esta fabricado utilizando un método de fabricación distinto a otro? Pues que simplemente no los puedes integrar en un solo chip y que se fabrican en una misma oblea sino que los tienes que separar. ¿Y cual es el proceso de fabricación del Latte de Wii U? 40nm Bulk, y no SOI, es decir… dos diseños distintos para dos métodos de fabricación distintos.

Este es el motivo por el cual en Wii U en vez de tener un SoC tenemos esto:

MCM_WiiU

Pero hay dos incentivos para unificarlos en un solo chip, el primero de ellos es que dos chips son dos proveedores que han de cobrar, un solo chip es uno solo (propiedades intelectuales de los chips aparte), ademas que necesitan ahorrarse el coste del interposer y es que en un sistema como el de Wii U si una de las tres piezas (Espresso, Latte e Interposer) no funcionan entonces el resto fallan también y esto por no contar los costes añadidos asociados. Es decir… desde la perspectiva económica existe un interés en convertir el MCM de Wii U en un SoC.

El segundo incentivo es el tema de la memoria, lo he comentado varias veces pero no me importa hacerlo de nuevo, esto es muy importante:

wiiudie_blocks

La parte donde pone GP I/O es parte que se comunica con la CPU, tened en cuenta el espacio ocupado por la DDR3 I/O y pensad por un momento que ocurriría si la CPU estuviese dentro del procesador. Obviamente lo que ocurriría es que la DDR3 I/O tendría un espacio mucho mayor y habría un mayor ancho de banda para la consola y una cantidad mayor de chips de memoria. Es decir… sería posible una configuración DDR3 de 128 bits a 25.6 GB/seg y unos 4GB de memoria, pero lo que nos interesa es la integración del Expresso+Latte en un solo chip para la compatibilidad hacía atrás… ¿como lo hacemos y que consecuencias puede tener?

el pensador

De los dos proveedores de Nintendo que son IBM y Renesas solo una de ello se bajo del carro, obviamente sin el Latte no se puede construir Wii U y obviamente necesitamos el Espresso para la compatibilidad hacía atrás pero no podemos unir los chips por la discrepancia en la fabricación y es aquí donde nuestra linea de pensamiento lógico hace entrar otra posibilidad completamente distinta a las que he planteado hasta ahora… Tengo varias cartas sobre la mesa para pensar que esta puede ser la elección de Nintendo y es precisamente la que más hemos ido ignorando todo este tiempo pero a veces… es bueno volcar la mesa.

630x

Recientemente Global Foundries le compro las fábricas a IBM para que esta se convirtiese en diseñador fabless de procesadores. Es decir, al contrario de lo que ocurrió con Renesas no ha habido desmantelación y es aquí donde la cosa se pone realmente interesante ya que el último proceso PD-SOI derivado de la tecnología de IBM que vimos en el mercado doméstico fue el de 32nm, el cual fue utilizado para las APU de AMD de primera y segunda generación  (Llano y Trinity/Richland) y es aquí donde viene lo interesante de nuestro caso, IBM desarrollo un proceso adicional de 22nm PD-SOI que es utilizado para la fabricación del Power8.

openpower-foundation-overview-12-638

No, no estoy hablando del Power8 en la siguiente consola de Nintendo, sino del proceso de fabricación… 22nm SOI (PD-SOI), un SoC bajo dicho proceso permitiría la integración del PowerPC Espresso dentro del chip, pero es que hay un añadido adicional que es la eDRAM, Nintendo esta muy obsesionada en integrar la eDRAM en sus sistemas y la perdida de Renesas suponía tres soluciones distintas de cara al futuro:

  1. Adopción de la memoria HBM o en su defecto adopción de memoria embebida en paquete con memoria fuera del chip pero conectada a la CPU a través de un interposer.
  2. Adopción de SRAM embebida en vez de DRAM embebida, lo que supone el aumento del tamaño del chip y por tanto que el ratio de chips defectuosos aumente y con ello el coste.
  3. Adopción de eDRAM en el procesador, la solución clásica de Nintendo.

Si optamos por la opción 3 solo nos queda un proveedor que es I… este, Global Foundries utilizando el nodo que le compraron a IBM. Obviamente la eDRAM de IBM al estar a un nodo más pequeño que el de Renesas en Wii U (40nm) y el de IBM en la misma consola (45nm) entonces la cantidad de eDRAM que podremos colocar en el chip será mucho más grande pero lo que primero nos interesa es el hecho de poder colocar el Espresso dentro del SoC, recordad que en Wii U esta 45nm y es un chip ya muy pequeño, el salto de 45 a 22nm es un salto 4X en cuanto a la densidad por lo que el chip de Wii U ocuparía muy poco en el nuevo SoC.

El otro tema es la eDRAM, en Wii U teníamos:

  • 3MB de eDRAM en la CPU.
  • 34 MB de eDRAM en la GPU, 2MB para el modo Wii y 32MB para el modo Wii U. Los 2MB primeros desaparecerían.

Por lo que en total tendríamos que colocar unos 35MB como mínimo en el nuevo SoC. Ahora bien, recordemos el proceso de Renesas y la densidad de su eDRAM:

necele_08

El tamaño de la eDRAM de Renesas a 40nm es de 0.06μm2, la de IBM es de 0.026μm2 a 22nm, por lo que el area que ocuparían esos 35MB de eDRAM sería mucho menor que el área que ocupan en Wii U… ¿Pero que ocurre con la GPU? Eso es harina de otro costal y es aquí donde las cosas se ponen interesantes… No se si os acordaréis del AMD Llano, la primera APU lanzada por AMD al mercado de PC, pues en el artículo sobre la arquitectura de dicho procesador en RWT hay una cosa que me ha llamado mucho la atención:

El chip es de 228mm^2 y ha sido fabricado en Global Foundries utilizando el proceso 32nm high-k/metal gate, el cual utiliza una tecnica tipo gate first (no me preguntéis porque me suena a chino). Es la primera vez que AMD ha implementado un procesador de gráficos de PC en SOI.

¿Cual es la GPU utilizada por Llano?

La GPU se basa en Cypress… Los Shaders programables en Cypress son del viejo diseño VLIW5.

El viejo diseño VLIW5 es el de los Shaders de Wii U, es decir… la GPU de Llano utiliza el mismo tipo de Shader que Wii U, el diagrama de la GPU es el siguiente:

AMD-Llano-Presentation-48

La GPU forma parte de la familia Evergreen, la cual fue lanzada como la serie HD 5xx0 en PC y es una evolución de la serie R700 añadiendo funcionalidades DX11 a la GPU. Se que no es tan avanzada como la arquitectura GCN pero tiene dos particularidades:

  • Al tener una version PD-SOI esta se puede integrar en el SoC 22nm SOI de IBM.
  • Es compatible 100% con la API GX2 de Wii U por lo que podría correr nítidamente los juegos de Wii U sin problemas.
  • Dado el segundo punto Nintendo no tendría que realizar un proceso de adaptación de sus medios de producción de juegos a una nueva arquitectura.

El otro motivo por el cual esto es importante lo encontramos en un artículo de failoverflow de Wii U respecto al Café OS, el SO de Wii U, donde hacen la siguiente referencia:

Como resulta, el firmware del Cafe Os esta lleno de referencias al R6xx. Sin embego, el R6xx y el R7xx son casi idénticos, ATI incluso a publicado una documentación abierta de sus motores 3D juntas en un solo documento y las únicas diferencias son algunos detalles en los shaders.

El documento habla de la ISA (conjunto de instrucciones del R6xx), el cual es común para las series R6xx, R7xx y Evergreen. Aquí hay otro documento bastante técnico donde explica los puntos en común, no lo voy a explicar solo quiero que entendáis que colocando una GPU de la serie Evergreen en el nuevo sistema se gana:

  • Soporte para APIs más avanzadas y la capacidad de uso de Compute Shaders.
  • Nintendo no tiene que cambiar nada del SO de Wii U, ni las herramientas, ni controladores internos… nada de nada y aún así gana una GPU mucho mejor en cuanto a especificaciones.

Obviamente hay una ventaja adicional y con ello me gustaría volver al artículo de RWT, recordad que la GPU dentro de llano utiliza el proceso SOI de 32nm y de lo que estamos hablando es del proceso SOI de 22nm… el cual debería permitir un chip de las mismas especificaciones pero con la mitad del tamaño. Pues bien, sobre el Sumo/Redwood en Llano se nos dice lo siguiente:

La GPU ocupa el 35% del area total, casi unos 80mm^2

A 22nm ocuparían un tamaño cercano a los 40mm^2 pero no podemos olvidar que la arquitectura puede escalar en cuanto al número de unidades dentro de la GPU. Recordad que la GPU de Wii U es de unos 160 Stream Processors y maneja un total de 192 hilos distintos para mostrar gráficos a 720p30 por lo que solo con incluir el Sumo/Redwood sin cambios sería un salto pero hay un margen considerable para colocar una configuración de 800 Stream Processors y 16 ROPS, sobretodo por la presencia de la eDRAM en el último caso. Esto significaría que a igualdad de velocidad de reloj tendríamos un salto 5x… No me veo a Nintendo ejecutando sus juegos a 4K ni apostando por la Realidad Virtual pero si que veo margen para los 1080p60… Es decir… para el nivel visual (valores de producción de Wii U) a 1080p60 y para ello se necesita una GPU que como mínimo sea 4,5 veces más potente y la configuración de 800 Stream Processors lo permite.

Aunque con esto ya os he planteado la idea general de esta especulación, por el momento lo dejamos aquí, la siguiente entrada ira sobre el uncore y la CPU en esta solución.

Anuncios