RSX Reality Synthesizer - RSX Reality Synthesizer

O RSX 'Reality Synthesizer' em uma placa-mãe PlayStation 3

O RSX 'Reality Synthesizer' é uma unidade de processamento gráfico proprietária (GPU) desenvolvida pela Nvidia e pela Sony para o console de jogos PlayStation 3 . É uma GPU baseada no processador gráfico Nvidia 7800GTX e, de acordo com a Nvidia, é uma arquitetura híbrida G70 / G71 (anteriormente conhecida como NV47) com algumas modificações. O RSX possui pipelines de sombreador de pixel e vértice separados . A GPU usa 256 MB de RAM GDDR3 com clock de 650 MHz com uma taxa de transmissão efetiva de 1,3 GHz e até 224 MB da memória principal XDR de 3,2 GHz através da CPU (480 MB no máximo). Embora carregue a maior parte do processamento gráfico, o Cell Broadband Engine , a CPU do console , também é usado complementarmente para algumas cargas computacionais relacionadas a gráficos do console.

Especificações

Comprimento do chip na parte inferior: 4,28 cm

Salvo indicação em contrário, as especificações a seguir são baseadas em um comunicado à imprensa da Sony na conferência E3 2005, slides da mesma conferência e slides de uma apresentação da Sony na Conferência de desenvolvedores de jogos de 2006 .

  • Clock de sombreador de pixel de 550 MHz / clock de sombreador de vértice de 500 MHz em processo de 90 nm (reduzido para 65 nm em 2008 e para 40 nm em 2010), mais de 300 milhões de transistores
  • Baseado em NV47 ( arquitetura Nvidia GeForce 7800 )
  • Pequeno endian
  • 24 unidades de filtragem de textura (TF) e 8 unidades de endereçamento de textura de vértice (TA)
    • 24 amostras filtradas por relógio
    • Taxa de preenchimento máxima de Texel: 13,2 Gigatexels por segundo (24 texturas * 550 MHz)
    • 32 amostras de textura não filtrada por relógio (8 TA * 4 amostras de textura)
    • 8 unidades de saída de renderização (ROPs) / pipelines de renderização de pixel
      • Taxa de preenchimento de pixel de pico (teórica): 4,4 Gigapixel por segundo
      • Taxa de amostragem de buffer Z máxima : 8,8 Gigasamples por segundo (2 amostras Z * 8 ROPs * 550 MHz)
    • Operações máximas de produto escalar: 51 bilhões por segundo (combinado com Cell CPU)
    • A precisão de pixel de 128 bits oferece renderização de alta faixa dinâmica
  • 256 MB GDDR3 RAM a 650 MHz
    • Largura do barramento de memória de 128 bits
    • 20,8 GB / s de largura de banda de leitura e gravação
  • Interface de bus Cell FlexIO
    • Largura do barramento de interface de memória Rambus XDR : 56 bits de 64 bits (serial)
    • 20 GB / s lidos na célula e na memória XDR
    • 15 GB / s de gravação na célula e na memória XDR
  • Cache de textura de 576 KB (96 KB por quad de pipelines de pixel)
  • Suporte para PSGL (OpenGL ES 1.1 + Nvidia Cg )
  • Suporte para compressão de textura S3

Outras características: Suporte para Bilinear, trilinear , anisotropic, quincunx textura filtragem, quincunx antialiasing, até 4x MSAA , SSAA , Alpha para Cobertura e Alphakill.

Números de modelo

90nm:

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

65nm:

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

40nm:

  • CXD5300AGB
  • CXD5300A1GB
  • CXD5301DGB
  • CXD5302DGB
  • CXD5302A1GB

Estrutura de memória física local GDDR3

  • Memória Total 256 MB
  • 2 partições (128 MB)
  • Barramento de 64 bits por partição
  • 8 bancos por partição (16 MB)
  • 4.096 páginas por banco (4 KB) -> Endereço de linha de 12 bits
  • Bloco de memória em uma página -> Endereço de coluna de 9 bits
  • Granularidade mínima de acesso = 8 bytes -> igual à largura de barramento entre RSX <> GDDR

Mapa de memória RSX

Embora o RSX tenha 256 MB de RAM GDDR3, nem tudo é utilizável. Os últimos 4 MB são reservados para rastrear o estado interno do RSX e os comandos emitidos. Os 4 MB de dados da GPU contêm RAMIN, RAMHT, RAMFC, objetos DMA, objetos gráficos e o contexto gráfico. A seguir está uma divisão do endereço dentro de 256 MB do RSX.

Faixa de Endereço Tamanho Comente
0000000-FBFFFFF 252 MB Suavizador de quadros
FC00000-FFFFFFF 4 MB Dados GPU
FF80000-FFFFFFF 512 KB RAMIN: memória de instância
FF90000-FF93FFF 16 KB RAMHT: Tabela de 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

Além da memória GDDR3 local, a memória XDR principal também pode ser acessada por RSX, que é limitada a:

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

Velocidade, largura de banda e latência

Largura de banda do sistema (máximo teórico):

  • Célula de / para 256 MB XDR: 25,6 GB / s
  • Célula para RSX (IOIFO): 20 GB / s (prático: 15,8 GB / s @ tamanho de pacote 128B)
  • Célula de RSX (IOIFI): 15 GB / s (prático: 11,9 GB / s @ tamanho de pacote 128B)
  • RSX para / de 256 MB GDDR3: 20,8 GB / s (@ 650 MHz)

Devido ao layout acima mencionado do caminho de comunicação entre os diferentes chips e às diferenças de latência e largura de banda entre os vários componentes, existem velocidades de acesso diferentes dependendo da direção do acesso em relação à origem e ao destino. A seguir está um gráfico que mostra a velocidade de leituras e gravações na memória GDDR3 e XDR do ponto de vista da célula e RSX. Observe que essas são velocidades medidas (em vez de velocidades calculadas) e devem ser piores se o acesso RSX e GDDR3 estiver envolvido, porque esses números foram medidos quando o RSX tinha clock de 550Mhz e a memória GDDR3 tinha clock de 700Mhz. O PS3 enviado tem o RSX com clock de 500 MHz (front-end e back end, embora os pixel shaders rodem separadamente em 550 MHz). Além disso, a memória GDDR3 também teve uma freqüência inferior a 650Mhz.

Tabela de velocidade

Processador 256 MB XDR 256 MB GDDR3
Leitura de célula 16,8 GB / s 16 MB / s (15,6 MB / s @ 650 MHz)
Cell Write 24,9 GB / s 4 GB / s
RSX Read 15,5 GB / s 22,4 GB / s (20,8 GB / s @ 650 MHz)
RSX Write 10,6 GB / s 22,4 GB / s (20,8 GB / s @ 650 MHz)

Por causa da velocidade de leitura de célula muito lenta da memória GDDR3 de 256 MB, é mais eficiente para o Cell trabalhar em XDR e, em seguida, fazer com que o RSX extraia dados de XDR e grave em GDDR3 para saída no monitor HDMI . É por isso que instruções extras de pesquisa de textura foram incluídas no RSX para permitir o carregamento de dados da memória XDR (em oposição à memória GDDR3 local).

Bibliotecas RSX

O RSX é dedicado a gráficos 3D e os desenvolvedores podem usar diferentes bibliotecas de API para acessar seus recursos. A maneira mais fácil é usar PSGL de alto nível, que é basicamente OpenGL | ES com pipeline programável adicionado, no entanto, isso é impopular devido à sobrecarga de desempenho em uma CPU de console relativamente fraca. Em um nível inferior, os desenvolvedores podem usar LibGCM , que é uma API que cria buffers de comando RSX em um nível inferior. (PSGL é realmente implementado em cima de LibGCM). Isso é feito configurando comandos (por meio do contexto FIFO) e objetos DMA e emitindo-os para o RSX por meio de chamadas DMA.

Diferenças com a arquitetura G70

O RSX 'Reality Synthesizer' é baseado na arquitetura G70, mas apresenta algumas alterações no núcleo. A maior diferença entre os dois chips é a maneira como a largura de banda da memória funciona. O G70 suporta apenas renderização para a memória local , enquanto o RSX é capaz de renderizar para a memória do sistema e local. Como a renderização da memória do sistema tem uma latência muito maior em comparação à renderização da memória local, a arquitetura do chip teve que ser modificada para evitar uma penalidade de desempenho. Isso foi conseguido ampliando o tamanho do chip para acomodar buffers e caches maiores , a fim de manter o pipeline gráfico cheio. O resultado foi que o RSX tem apenas 60% da largura de banda da memória local do G70, tornando necessário que os desenvolvedores usem a memória do sistema para atingir as metas de desempenho.

Diferença RSX nVidia 7800GTX
Barramento de memória GDDR3 128 bits 256 bits
ROPs 8 16
Pós-transformação e cache de iluminação 63 vértices máximos 45 vértices máximos
Cache de textura total por quad de Pixel Pipes (L1 e L2) 96kB 48kB
Interface CPU FlexIO PCI-Express 16x
Tecnologia 28 nm / 40 nm / 65 nm / 90 nm 110 nm

Outros recursos / diferenças do RSX incluem:

  • Mais instruções de shader
  • Lógica de pesquisa de textura extra (ajuda RSX a transportar dados de XDR)
  • Normalização rápida do vetor

Comunicados de imprensa

A equipe da Sony foi citada na PlayStation Magazine dizendo que "o RSX compartilha muitos trabalhos internos com o NVIDIA 7800, que é baseado na arquitetura G70". Como o G70 é capaz de realizar 136 operações de sombreador por ciclo de clock, esperava-se que o RSX apresentasse o mesmo número de pixels paralelos e pipelines de sombreador de vértice que o G70, que contém 24 pixels e 8 pipelines de vértice.

O CEO da Nvidia, Jen-Hsun Huang, afirmou durante a coletiva de imprensa pré-show da Sony na E3 2005 que o RSX é duas vezes mais poderoso do que a GeForce 6800 Ultra.

Veja também

Referências