Os SSDs e a nova geração. A revolução no sistema de I/O para os adaptar… aos videojogos.

A nova geração está à porta, e uma das palavras mais ouvidas é SSD. O SSD vai ser uma das ferramentas que vai mudar por completo o panorama dos videojogos, e neste artigo vamos abordar tudo o que se sabe sobre eles e a revolução feita nos sistemas de E/S para os colocar no seu rendimento máximo.

A evolução das consolas tem sido relativamente linear. Mais GPU, mais CPU, melhor disco. Mas poucas das evoluções foram revoluções.

No que toca ao CPU podemos dizer que este tem sempre evoluido de uma forma basicamente linear, mas já o GPU esse teve duas revoluções a seu cargo. A primeira, a mais relevante de todas, foi a passagem do 2D para o 3D, e a segunda, o aparecimento do GPGPU ou a sua capacidade de processamento paralelo.

No entanto há um outro componente que, ele mesmo, já levou a algumas revoluções nos videojogos, e que é por norma ignorado. O sistema de armazenamento e de Input/Output.

Este sistema esteve na base de revoluções como o CD ROM. Uma solução barata que fornecia uma enorme capacidade de armazenamento, e boa velocidade de leitura, eliminado assim a necessidade dos caros e limitados cartuchos.



Esteve igualmente noutra revolução, com o aparecimento dos discos rígidos que permitiram aumentar ainda mais a capacidade de armazenamento, melhorar velocidades de leitura, e acima de tudo… o corrigir de problemas existentes nos jogos (patches).

E com esta geração, o sistema de armazenamento, e o I/O vai estar novamente na ribalta, com uma gigantesca revolução.

De se notar, que no que toca a consolas, a Sony tem sido muito mais aberta sobre o que fez com a sua consola do que a Microsoft, pelo que não estranhem a diferença de parágrafos dedicada a cada um.

Mas continuando a ideia de trás, as consolas vão seguir os passos do PC e adoptar os SSDs, sendo que, elas irão passa-lo, pois o sistema de I/O dos PCs seria demasiadamente penalizador para as consolas. Mas veremos isso depois.

O certo é que os SSDs trouxeram capacidades de leitura nunca antes imaginadas, e tal permitiu que o fluxo de dados fornecido ao sistema alcançasse novos patamares. Mas no caso das consolas, a coisa não se vai tratar apenas de velocidade de leitura ou de escrita, mas de muito mais do que isso.

A realidade é que as drives SSD introduzidas no PC forneceram uma grande evolução a nível de capacidade de transferência de dados, Mas apesar dessa evolução, esta tecnologia pouco ou nada trouxe ao universos dos jogos de PC. O problema é não só o facto de o mercado não estar todo equipado da mesma forma, o que criaria problemas aos computadores com HDDs, que também tem de ser servidos, mas igualmente o fornecimento de um enorme fluxo de dados que se comprimidos saturam o sistema com a sua descompressão. A alternativa são jogos já descomprimidos, mas com largas centenas de gigas de dimensão, algo que está fora de hipótese. E nesse aspecto, o SSD no PC tem-se limitado a fornecer tempos de carga mais baixos.



Estas situações foram agora abordadas quer pela Sony, quer pela Microsoft, pois as suas consolas pretenderam ter essas velocidades de transferência, mas sem se poderem dar ao luxo de gastar os seus recursos na transferência de dados.

Mark Cerny foi nesse campo uma fonte de informação preciosa com o seu video The Road to PS5. Para além do mais, o aparecimento de várias patentes da Sony ajudaram a perceber igualmente o que foi feito na sua consola. Mas já a Microsoft… a empresa que mais fala, no que toca a especificações… está calada. O pouco que se sabe para além do publicado oficialmente apareceu numa ou outra entrevista, mas para além de se saber que a sua solução se chama “Velocity Architecture”, as suas características estão ainda hoje muito pouco explicadas.

Mas o que tem permitido perceber-se, mesmo sem esses dados, que há claras diferenças entre as soluções das duas empresas, são as reacções de algumas pessoas ligadas à industria. O SSD em geral é elogiado por todos, mas em particular o da PS5 tem sido alvo de elogios extremos, mostrando claramente a existência de diferenças sobre todas as restantes soluções.

Uma comparação aos SSDs em si, apenas permite ver que a o da Microsoft é de 1 TB e o da Sony tem 825 GB. Que o da Microsoft transfere 2.4 GB /s não comprimidos, e que o da Sony transfere 5.5 GB/s. De resto, apesar de sabermos umas coisas de um e umas coisas do outro, não sabemos praticamente mais nada por igual nos dois para uma comparação (e não, não vamos aqui falar de velocidades comprimidas, pois estamos a falar apenas dos SSDs e esses valores dependem do sistema de compressão).

Estas velocidades são velocidades de leitura sequencial. E se o SSD da Microsoft bate os melhores e mais rápidos HDDs em 10 a 20x, a realidade é que em velocidade total a capacidade de leitura do seu SSD fica aquém do que os actuais sistemas SSD de topo da presente geração (não comparando com os que que para aí vem), oferecem. Já o SSD da PS5 bate todas as ofertas actuais, mas no que toca à velocidade de leitura (e apenas à velocidade) deverá ser passada em breve pelos novos SSDs que vão ser lançados.



A diferença aqui está, claro, nos preços, pois provavelmente um SSD superior ao da PS5 poderá custar uma boa fracção do custo total da consola.

Sabemos que o SSD da Sony tem 12 canais de ligação à sua memória NAND, e isso é o que lhe permite a sua velocidade. Aliás uma contagem de canais tão alta nos PCs, só mesmo em SSDs para servidores e que utilizam controladores de usam desde 12 a 18 canais. O que a Sony tem aqui é inédito num produto para consumidores.

O uso dos 12 canais tem no entanto uma consequência, a estranha capacidade de 825 GB do SSD.  A Microsoft, apesar de ter um SSD mais lento, consegue aqui um ganho de 175 GB adicionais, ao ter um disco com 1 TB standard (isto considerando que a totalidade do 1 TB está disponível, sendo que tal poderá não acontecer uma vez que se fala em 100 GB de memória virtual no SSD que poderão ter de ser descontados aqui, reduzindo o espaço útil para 900 GB).

De se notar porém que ambas as marcas oferecem a possibilidade de expansão destas capacidades, com a compra de SSDs externos. Uma solução proprietária na Microsoft, e uma solução genérica, mas sujeita a aprovação, pela Sony.



Mas estes discos não valem só por estas velocidades. Uma consola tem recursos limitados, e as capacidades do disco é uma delas. Daí que os dados necessitem de ser comprimidos.

O problema é que se o fluxo de dados já é elevadíssimo para um sistema normal, aumentar ainda mais o mesmo, e acrescentar descompressão em tempo real, seria um problema para o hardware das consolas, especialmente o CPU que se veria extremamente solicitado para a descompactação e a largura de banda pelo acto de check-in dos dados do disco.

A realidade é que aumentando a capacidade de transferência de dados criam-se gargalos diversos pelo elevado uso de recursos do sistema, e isso seria algo que as consolas teriam de superar.

Parte da solução passou por unidades de compressão/descompressão dedicadas, que não só aumentam a capacidade de leitura dos SSDs, como permitem poupar mais o precioso espaço em disco, tudo isto sem ter qualquer impacto no uso de recursos do sistema que podem assim manter-se dedicados ao processamento dos videojogos.

Usando um conjunto optimizado de blocos descompressores, e algoritmos de compressão, dos quais se destaca a introdução do BCPack do lado da Microsoft e do Kraken do lado da Sony, as consolas conseguiram uma capacidade de output máximo de 6 GB/s e 22 GB/s respectivamente. Já como valores médios sustentados, os valores apontados são respectivamente 4.8 GB/s e algo entre os 8 e os 9 GB/s.



A nível de compressão a Microsoft anuncia que a sua consola que usa Zlib para compressão genérica em conjunto com o compressor BCpack para texturas, se revelará mais eficaz que o uso genérico do Kraken para tudo. O Kraken é mais poderoso que o Zlib na compressão standard, mas o BCpack, que compactaria as texturas que são a maior fonte de dados, daria a vantagem à Microsoft.

Eis essas afirmações vindas de um engenheiro da MIcrosoft:

Esta situação daria algo como 20 a 30% de vantagem na compressão à Microsoft.

No entanto, foi revelado recentemente um suporte de compressão BC, equivalente ao da Xbox, para a PS5.



Este sistema funciona com o Kraken e será de uso gratuito para todos os devs, com suporte hardware inclusive para a PS4, uma vez que o Zlib também é compatível:



Esta compressão é 100% compatível com o Kraken da PS5, e como tal não usa qualquer CPU, e citando do website oficial: “Oodle Texture melhora a redução do Kraken de 2.5% na codificação standard (lambda=0) para 45%  (lambda=40) com pouquíssima degradação visual. E podem ver aqui no website oficial , na quarta textura a contar do fim, que ele consegue aumentar a compressão do Kraken de 16,44% para 69,50%.

De se notar ainda que a média de 8 a 9 GB/s de compressão do Kraken, muito certamente não conta com esta nova optimização de compressão de texturas introduzida pelo novo Oodle Textures.

No meio de toda esta situação relacionada com a compressão/descompressão em tempo real e com unidades dedicadas, a Sony revelou ainda um conjunto de hardware adicional que se destina a remover ainda mais sobrecargas do sistema, nomeadamente reduzindo mais a utilização do CPU (que não é só usado na descompressão, mas igualmente em toda a gestão de dados), e cortando no uso de largura de banda da RAM criado pelo check-in dos dados.



É ele:

Motores DMA

O Direct Memory Access (DMA) é uma capacidade que quando aplicada a uma peça de hardware significa que ela pode ler e escrever na RAM, sem necessidade de intervenção do CPU. É um standard actual em quase todos os periféricos de alta velocidade.

Mas se o DMA normalmente se limita a mover dados, aqui os motores DMA fazem mais do que isso. Ele conseguem organizar os dados durante o processo de movimentação, interagindo com dados que na origem estão comprimidos, e colocando-os na memória prontos a usar.

Coprocessadores de E/S

A PS5 está munida de um par de processadores destinados a gerir de forma automatizada e transparente todo o processo de E/S. Dois processadores que possuem a sua própria pool de RAM. É nela que os dados são tratados e mapeados para uso e colocação nas posições finais pelo DMA.

As operações aqui realizadas são por norma incluídas nas drivers do hardware, e depois processadas pelo sistema.



Como dado mais interessante temos o que Cerny referiu, de que o programador não se tem que preocupar com nada disto. Basicamente ele acede aos dados como sendo dados descomprimidos. Todo o sistema aqui criado busca, descomprime torna os dados acessíveis, como se eles sempre tivessem estado na RAM

O uso do DMA associado a estes co-processadores remove a necessidade do processo de check-in na RAM, poupando assim tempo, recursos e largura de banda.

Motor de Coerência das Caches

Dado que o CPU e o GPU partilham a mesma RAM, mas não conseguem ler a mesma coisa pois trabalham com estruturas diferentes, os motores de coerência tomam aqui um papel primordial em tornar os dados acessíveis a ambos. Esta coerência estende-se às caches.
A grande novidade face a outros sistemas do género previamente desenvolvidos para APUs é que todo o sistema de I/O tem a capacidade de interagir aqui, por intermédio dos Cache Scrubbers, permitido serem mandados dados de invalidação das caches que apagam apenas os dados obsoletos e não a cache na sua totalidade, evitando assim que o GPU tenha de abortar operações e de ir ler novamente os dados à RAM, algo que nos sistemas actuais acontece frequentemente, penalizado as performances do GPU e da largura de banda..

Como facilmente se percebe, há aqui poupança de recursos, largura de banda, e processamento.

Claro que perante isto fica no ar a questão. Mas e a Xbox série X, o que faz? Faz algo igual?



Bem, do lado da Microsoft sabe-se apenas o seguinte:

O seu sistema de I/O é denominado de “Xbox Velocity Architecture”, e é constituído por quatro elementos:

  • O SSD
  • Um novo API de gestão de I/O
  • Um novo Tier no hardware do GPU relativo às Partially Tesident Textures denominado de Sampler Feedback Streaming que evita carregar a totalidade das texturas caso elas não sejam precisas.
  • O motor de compressão

Como se pode ver pela descrição, há uma parente grande lacuna da Microsoft neste campo face ao que a PS5 anuncia, apesar que acreditamos que aqui pelo meio, os motores DMA possam existir também.

Independentemente de qual consola estamos a falar, com melhores ou piores resultados, a mudança para o SSD vai permitir que alguns tipos de jogos tenham ganhos de performance. mais especificamente falamos de jogos de mundo aberto, onde o que se torna necessário render fora do ecrã para prever movimentos do jogador se torna muito menor do que antes. E isso vai libertar recursos ao GPU, que podem depois ser usados de formas diversas. Os tempos de carga, esses vão também diminuir, e bastante, e as viagens instantâneas, serão basicamente isso.

A rapidez de acesso aos dados também vai aumentar, mas não pela velocidade, mas sim pela ausência de uma situação por norma problemática nos HDDs, a fragmentação do disco, algo que com os SSD não é um problema.



E mais ainda, estes dois pontos de cima vão resultar na eliminação da necessidade de se duplicar itens nos jogos de forma a garantir que o HDD as podia ler em tempo útil, o que vai poupar espaço no disco.

A questão é que para o uso em pleno destas capacidades é necessário alterar-se os motores de jogo para se tirar partido dos SSDs, bem como passar a conceber sem os limites em mente. Ratchet and Clank: A Rift in Time já mostrou na sua apresentação como podemos transitar entre mundos de forma quase instantânea, mas há muitas mais virtudes que o SSD pode trazer, e a Demo do Unreal Engine 5 é uma outra amostra.

O futuro dos videojogos promete, graças aos SSD.

A velocidade dos SSDs das consolas, aliado ao seu sistema de I/O, permite mesmo, e mais uma vez aqui com qualidade variável de acordo com a velocidade de cada sistema, usar o mesmo como sendo RAM. E ambas as empresas tiveram frases nesse sentido!

Agora há que se ter em conta que essa RAM é significativamente diferente da RAM que está nas consolas. Estamos aqui a falar de uma memória DDR no caso da Xbox com dados não comprimidos, ou uma DDR2 com dados comprimidos. Já a PS5 é uma DDR 2 com dados não comprimidos e uma DDR3 com dados comprimidos.

Daí que o uso como memória tenha de ter em conta a capacidade mais limitada de transferência de dados desta memória virtual, pois os dados terão sempre de estar na RAM real quando foram para ser processados. Mas mesmo assim, estamos a falar de valores altos, especialmente na PS5, onde o SSD transfere por segundo tanto como todo o conteúdo da RAM da PS4.

A Xbox possui ainda como ponto de marketing a referência ao seu Sampler Feedback Streaming, capaz de, segundo refere a Microsoft, reduzir em até 3 vezes o uso da RAM, e aumentar a capacidade de transferência de dados do SSD.

A grande dúvida aqui é até que ponto o Sampler Feedback Streaming da Microsoft não é como o seu VRS, ou seja, apenas uma melhoria sobre uma característica que será standard no RDNA 2. O Sampler Feedback Streaming foi apresentado como sendo uma característica do DirectX 12 Ultimate, e é já suportado pela Nvidia, pelo que não parece coerente que o RDNA 2 não possua esse suporte.

Aliás, James Stanard foi questionado sobre isso, e a sua resposta deu a entender que a característica efectivamente é standard no DX 12 Ultimate, mas que a Xbox possui filtros adicionais.

Ora a AMD já confirmou oficialmente o suporte total ao DirectX 12 Ultimate com o seu RDNA 2, pelo que, sendo o DirectX 12 um standard aberto, e as tecnologias que o suportam nos seus GPUs pertença da AMD é apenas coerente pensar-se que a PS5 tem também este suporte, mas sem os filtros específicos da Microsoft. Aliás, diga-se que a AMD especifica claramente no seu comunicado o suporte ao VRS e ao Sampler Feedback Streaming.



error: Conteúdo protegido