El RSX 'Reality Synthesizer ' es una unidad de procesamiento de gráficos (GPU) patentada desarrollada conjuntamente por Nvidia y Sony para la consola de juegos PlayStation 3 . Se basa en el procesador gráfico Nvidia 7800GTX y, según Nvidia, es una arquitectura híbrida G70/G71 (anteriormente conocida como NV47) con algunas modificaciones. El RSX tiene canales separados de sombreado de vértices y píxeles . La GPU utiliza 256 MB de RAM GDDR3 a 650 MHz con una velocidad de transmisión efectiva de 1,3 GHz y hasta 224 MB de memoria principal XDR de 3,2 GHz a través de la CPU (480 MB como máximo). Aunque lleva la mayor parte del procesamiento de gráficos, Cell Broadband Engine , la CPU de la consola , también se utiliza de forma complementaria para algunas cargas computacionales de la consola relacionadas con los gráficos.
A menos que se indique lo contrario, las siguientes especificaciones se basan en un comunicado de prensa de Sony en la conferencia E3 de 2005, [1] diapositivas de la misma conferencia, [2] y diapositivas de una presentación de Sony en la Conferencia de desarrolladores de juegos de 2006 . [ cita necesaria ]
Otras características: Soporte para filtrado de texturas bilineal, trilineal , anisotrópico, quincunx, antialiasing quincunx , hasta 4x MSAA , SSAA , Alpha to Coverage y Alphakill.
90 nm:
65 nm:
40 nm:
Aunque el RSX tiene 256 MB de RAM GDDR3, no toda es utilizable. Los últimos 4 MB están reservados para realizar un seguimiento del estado interno de RSX y de los comandos emitidos. Los 4 MB de datos de GPU contienen RAMIN, RAMHT, RAMFC, objetos DMA, objetos gráficos y el contexto gráfico. El siguiente es un desglose de la dirección dentro de los 256 MB del RSX.
Además de la memoria GDDR3 local, RSX también puede acceder a la memoria XDR principal, que está limitada a:
Ancho de banda del sistema (máximo teórico):
Debido al diseño antes mencionado de la ruta de comunicación entre los diferentes chips, y a las diferencias de latencia y ancho de banda entre los distintos componentes, existen diferentes velocidades de acceso dependiendo de la dirección del acceso en relación con el origen y el destino. El siguiente es un cuadro que muestra la velocidad de lectura y escritura en la memoria GDDR3 y XDR desde el punto de vista del Cell y RSX. Tenga en cuenta que estas son velocidades medidas (en lugar de velocidades calculadas) y deberían ser peores si se trata de acceso RSX y GDDR3 porque estas cifras se midieron cuando el RSX tenía una frecuencia de 550 Mhz y la memoria GDDR3 tenía una frecuencia de 700 Mhz. La PS3 enviada tiene el RSX sincronizado a 500 Mhz (parte delantera y trasera, aunque los sombreadores de píxeles funcionan por separado en el interior a 550 Mhz). Además, la memoria GDDR3 también tenía una velocidad inferior a 650 Mhz.
Debido a la muy lenta velocidad de lectura de celda de la memoria GDDR3 de 256 MB, es más eficiente que Cell funcione en XDR y luego haga que el RSX extraiga datos de XDR y los escriba en GDDR3 para enviarlos a la pantalla HDMI . Es por eso que se incluyeron instrucciones de búsqueda de texturas adicionales en el RSX para permitir cargar datos desde la memoria XDR (a diferencia de la memoria GDDR3 local).
El RSX está dedicado a gráficos 3D y los desarrolladores pueden utilizar diferentes bibliotecas API para acceder a sus funciones. La forma más sencilla es utilizar PSGL de alto nivel, que es básicamente OpenGL|ES con canalización programable agregada; sin embargo, esto no es popular debido a la sobrecarga de rendimiento en una CPU de consola relativamente débil. En un nivel inferior, los desarrolladores pueden utilizar LibGCM , que es una API que crea buffers de comandos RSX en un nivel inferior. (PSGL en realidad se implementa sobre LibGCM). Esto se hace configurando comandos (a través del contexto FIFO) y objetos DMA y enviándolos al RSX a través de llamadas DMA.
El 'Reality Synthesizer' RSX se basa en la arquitectura G70, pero presenta algunos cambios en el núcleo. [6] La mayor diferencia entre los dos chips es la forma en que funciona el ancho de banda de la memoria. El G70 solo admite renderizado en la memoria local , mientras que el RSX puede renderizar tanto en el sistema como en la memoria local. Dado que el procesamiento desde la memoria del sistema tiene una latencia mucho mayor en comparación con el procesamiento desde la memoria local, la arquitectura del chip tuvo que modificarse para evitar una penalización en el rendimiento. Esto se logró ampliando el tamaño del chip para acomodar buffers y cachés más grandes con el fin de mantener lleno el proceso de gráficos . El resultado fue que el RSX sólo tiene el 60% del ancho de banda de la memoria local del G70, lo que hace necesario que los desarrolladores utilicen la memoria del sistema para lograr los objetivos de rendimiento. [6]
Otras características/diferencias de RSX incluyen:
El personal de Sony fue citado en la revista PlayStation diciendo que "RSX comparte muchos mecanismos internos con NVIDIA 7800 , que se basa en la arquitectura G70". [ cita necesaria ] Dado que el G70 es capaz de realizar 136 operaciones de sombreado por ciclo de reloj, se esperaba que el RSX presentara la misma cantidad de canales de sombreado de vértices y píxeles paralelos que el G70, que contiene canales de 24 píxeles y 8 vértices.
El CEO de Nvidia, Jen-Hsun Huang, declaró durante la conferencia de prensa previa a la feria de Sony en el E3 2005 que la RSX es dos veces más potente que la GeForce 6800 Ultra. [2]
En el caso de la PlayStation 3 , la RSX fue fabricada originalmente con el proceso de 90 nm. antes de pasar al proceso de 65 nm , 40 nm y finalmente al proceso de 28 nm . La versión de 90 nm del RSX estaba empaquetada (en el contexto de tensión térmica) con elementos de empaque de matriz incompatibles . Estos factores hacen que el Ball Grid Array (BGA) entre el intercalador del chip y su matriz falle a un ritmo anormalmente rápido.
Algunos de los factores de fracaso incluyen