Sintetizador RSX Reality - RSX Reality Synthesizer

El RSX 'Reality Synthesizer' en una placa base de PlayStation 3

El RSX 'Reality Synthesizer' es una unidad de procesamiento de gráficos (GPU) patentada desarrollada en código por Nvidia y Sony para la consola de juegos PlayStation 3 . Es una GPU basada 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 vertex y pixel shader separados tuberías . La GPU utiliza 256 MB de RAM GDDR3 con una frecuencia de 650 MHz con una velocidad de transmisión efectiva de 1,3 GHz y hasta 224 MB de la memoria principal XDR de 3,2 GHz a través de la CPU (480 MB máx.). Aunque lleva la mayor parte del procesamiento de gráficos, Cell Broadband Engine , la CPU de la consola , también se usa de forma complementaria para algunas cargas computacionales de la consola relacionadas con los gráficos.

Especificaciones

Longitud del chip en la parte inferior: 4,28 cm

A menos que se indique lo contrario, las siguientes especificaciones se basan en un comunicado de prensa de Sony en la conferencia E3 2005, diapositivas de la misma conferencia y diapositivas de una presentación de Sony en la Conferencia de desarrolladores de juegos de 2006 .

  • Reloj de sombreado de píxeles de 550 MHz / reloj de sombreado de vértices de 500 MHz en proceso de 90 nm (reducido a 65 nm en 2008 y a 40 nm en 2010), más de 300 millones de transistores
  • Basado en NV47 ( arquitectura Nvidia GeForce 7800 )
  • Little Endian
  • 24 unidades de filtrado de textura (TF) y 8 unidades de direccionamiento de textura de vértice (TA)
    • 24 muestras filtradas por reloj
    • Tasa de relleno máxima de Texel: 13,2 Gigatexels por segundo (24 texturas * 550 MHz)
    • 32 muestras de textura sin filtrar por reloj (8 TA * 4 muestras de textura)
    • 8 unidades de salida de renderizado (ROP) / canalizaciones de renderizado de píxeles
      • Tasa de relleno de píxeles máxima (teórica): 4,4 gigapíxeles por segundo
      • Frecuencia máxima de muestreo de almacenamiento en búfer Z : 8,8 Gigamuestras por segundo (2 muestras Z * 8 ROP * 550 MHz)
    • Operaciones máximas de productos punto: 51 mil millones por segundo (combinado con la CPU celular)
    • La precisión de píxeles de 128 bits ofrece una representación de alto rango dinámico
  • 256 MB de RAM GDDR3 a 650 MHz
    • Ancho del bus de memoria de 128 bits
    • 20,8 GB / s de ancho de banda de lectura y escritura
  • Interfaz de bus Cell FlexIO
    • Ancho del bus de la interfaz de memoria Rambus XDR : 56 bits de 64 bits (serie)
    • 20 GB / s de lectura en la memoria Cell y XDR
    • 15 GB / s de escritura en la memoria Cell y XDR
  • Caché de texturas de 576 KB (96 KB por cada cuatro de canalizaciones de píxeles)
  • Soporte para PSGL (OpenGL ES 1.1 + Nvidia Cg )
  • Soporte para compresión de textura S3

Otras características: Soporte para filtrado de textura bilineal, trilineal , anisotrópico, quincunx , antialiasing quincunx, hasta 4x MSAA , SSAA , Alpha to Coverage y Alphakill.

Números de modelo

90 nm:

  • CXD2971AGB
  • CXD2971DGB
  • CXD2971GB
  • CXD2971-1GB
  • CXD297BGB

65 nm:

  • CXD2982
  • CXD2982GB
  • CXD2991GB
  • CXD2991BGB
  • CXD2991GGB
  • CXD2991CGB
  • CXD2991EGB

40 nm:

  • CXD5300AGB
  • CXD5300A1GB
  • CXD5301DGB
  • CXD5302DGB
  • CXD5302A1GB

Estructura de memoria física local GDDR3

  • Memoria total 256 MB
  • 2 particiones (128 MB)
  • Bus de 64 bits por partición
  • 8 bancos por partición (16 MB)
  • 4096 páginas por banco (4 KB) -> Dirección de fila de 12 bits
  • Bloque de memoria en una página -> Dirección de columna de 9 bits
  • Granularidad de acceso mínima = 8 bytes -> igual que el ancho de bus entre RSX <> GDDR

Mapa de memoria RSX

Aunque el RSX tiene 256 MB de RAM GDDR3, no todo es utilizable. Los últimos 4 MB están reservados para realizar un seguimiento del estado interno de RSX y 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.

Rango de direcciones Talla Comentario
0000000-FBFFFFF 252 MB Framebuffer
FC00000-FFFFFFF 4 MB Datos de GPU
FF80000-FFFFFFF 512 KB RAMIN: memoria de instancia
FF90000-FF93FFF 16 KB RAMHT: Tabla hash
FFA0000-FFA0FFF 4 KB RAMFC: contexto FIFO
FFC0000-FFCFFFF 64 KB Objetos DMA
FFD0000-FFDFFFF 64 KB Objetos gráficos
FFE0000-FFFFFFF 128 KB GRÁFICO: Contexto gráfico

Además de la memoria GDDR3 local, RSX también puede acceder a la memoria XDR principal, que está limitada a:

  • 0 MB - 256 MB (0x00000000 - 0x0FFFFFFF)
-o-
  • 0 MB - 512 MB (0x00000000 - 0x1FFFFFFF)

Velocidad, ancho de banda y latencia

Ancho de banda del sistema (máximo teórico):

  • Celda a / desde 256 MB XDR: 25,6 GB / s
  • Celda a RSX (IOIFO): 20GB / s (práctico: 15.8GB / s @ packetsize 128B)
  • Celda de RSX (IOIFI): 15GB / s (práctico: 11.9GB / s @ packetsize 128B)
  • RSX a / desde 256 MB GDDR3: 20,8 GB / s (@ 650 MHz)

Debido al diseño mencionado anteriormente de la ruta de comunicación entre los diferentes chips y las diferencias de latencia y ancho de banda entre los diversos componentes, existen diferentes velocidades de acceso dependiendo de la dirección del acceso en relación con la fuente y el destino. El siguiente es un gráfico que muestra la velocidad de lectura y escritura en la memoria GDDR3 y XDR desde el punto de vista de Cell y RSX. Tenga en cuenta que estas son velocidades medidas (en lugar de velocidades calculadas) y deberían ser peores si el acceso a RSX y GDDR3 está involucrado porque estas cifras se midieron cuando el RSX se registró a 550 Mhz y la memoria GDDR3 a 700 Mhz. La PS3 enviada tiene el RSX sincronizado a 500Mhz (frontal y posterior, aunque los sombreadores de píxeles se ejecutan por separado en el interior a 550Mhz). Además, la memoria GDDR3 también se redujo a 650Mhz.

Tabla de velocidad

Procesador 256 MB de XDR 256 MB de GDDR3
Lectura de celda 16,8 GB / s 16 MB / s (15,6 MB / sa 650 MHz)
Escritura de celda 24,9 GB / s 4 GB / s
Lectura RSX 15,5 GB / s 22,4 GB / s (20,8 GB / sa 650 MHz)
Escritura RSX 10,6 GB / s 22,4 GB / s (20,8 GB / sa 650 MHz)

Debido a la velocidad de lectura de celda muy lenta de la memoria GDDR3 de 256 MB, es más eficiente para la celda trabajar en XDR y luego hacer que RSX extraiga datos de XDR y escriba en GDDR3 para enviarlos a la pantalla HDMI . Esta es la razón por la que se incluyeron instrucciones de búsqueda de textura adicionales en el RSX para permitir la carga de datos desde la memoria XDR (a diferencia de la memoria GDDR3 local).

Bibliotecas RSX

El RSX está dedicado a los gráficos 3D y los desarrolladores pueden utilizar diferentes bibliotecas API para acceder a sus funciones. La forma más fácil es usar PSGL de alto nivel, que es básicamente OpenGL | ES con canalización programable agregado, sin embargo, esto es impopular debido a la sobrecarga de rendimiento en una CPU de consola relativamente débil. En un nivel inferior, los desarrolladores pueden usar LibGCM , que es una API que crea búferes de comandos RSX en un nivel inferior. (PSGL se implementa en realidad 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.

Diferencias con la arquitectura G70

El 'Reality Synthesizer' de RSX se basa en la arquitectura G70, pero presenta algunos cambios en el núcleo. La mayor diferencia entre los dos chips es la forma en que funciona el ancho de banda de la memoria. El G70 solo admite el renderizado en la memoria local , mientras que el RSX puede renderizar tanto en el sistema como en la memoria local. Dado que el renderizado desde la memoria del sistema tiene una latencia mucho mayor en comparación con el renderizado desde la memoria local, la arquitectura del chip tuvo que modificarse para evitar una penalización del rendimiento. Esto se logró ampliando el tamaño del chip para acomodar búferes y cachés más grandes con el fin de mantener la canalización de gráficos llena. El resultado fue que RSX solo tiene el 60% del ancho de banda de la memoria local del G70, por lo que es necesario que los desarrolladores utilicen la memoria del sistema para lograr los objetivos de rendimiento.

Diferencia RSX nVidia 7800GTX
Bus de memoria GDDR3 128 bits 256 bits
ROP 8 dieciséis
Caché de iluminación y transformación posterior 63 vértices máximos 45 vértices máximos
Caché de textura total por cuádruple de tuberías de píxeles (L1 y L2) 96kB 48kB
Interfaz de la CPU FlexIO PCI-Express 16x
Tecnología 28 nm / 40 nm / 65 nm / 90 nm 110 nm

Otras características / diferencias de RSX incluyen:

  • Más instrucciones de sombreado
  • Lógica de búsqueda de textura adicional (ayuda a RSX a transportar datos desde XDR)
  • Normalizar vector rápido

Comunicados de prensa

El personal de Sony fue citado en PlayStation Magazine diciendo que "RSX comparte muchas funciones internas con NVIDIA 7800, que se basa en la arquitectura G70". Dado que el G70 es capaz de realizar 136 operaciones de sombreado por ciclo de reloj, se esperaba que el RSX presentara el mismo número de líneas paralelas de sombreado de vértices y píxeles que el G70, que contiene 24 píxeles y 8 líneas de vértice.

El CEO de Nvidia, Jen-Hsun Huang, declaró durante la conferencia de prensa previa al show de Sony en el E3 2005 que la RSX es dos veces más poderosa que la GeForce 6800 Ultra.

Ver también

Referencias