Uma análise à entrevista dos Engenheiros da Microsoft realizada pela Eurogamer. – Parte 1

Numa recente entrevista ao Website Eurogamer dois Engenheiros da Microsoft defenderam a arquitectura da Xbox One. Eis uma análise ao que foi referido.

Basicamente na entrevista que foi dada pelos dois Engenheiros da Microsoft ao Eurogamer foi apenas confirmado tudo o que já se sabia sobre a consola. E de uma forma geral, ali apenas houve uma tradução verbal dos diagramas apresentados anteriormente de forma a tornar os esquemas perceptíveis para todos.

No entanto a entrevista não deixa de ser vista na perspectiva de alguém que está a defender uma causa própria, e olhando para um copo a meio, este será visto como meio cheio ou meio vazio, de acordo com aquilo que mais interessa para aquele lado. É nessa perspectiva que a entrevista falha ao dar e entender percepções que não são mais do que uma defesa do próprio trabalho mas que como se percebe são apenas uma maneira de “dourar a pilula”

E dado que o meu leitor Fernando já teve a amabilidade de me compilar aquilo que foram os pontos principais da entrevista, vou colocar os mesmos aqui e comentar (e peço já desculpa por ter removido os “brasileirismos”, bem como ter alterado a segunda parte do primeiro ponto que passei a facto e não a perspectiva):

1- Data Move Engines podem mover os dados da eSRAM para DDR3 liberando cache para a GPU quando necessário. Há um aproveitar da largura de banda dividindo-a na memória por prioridades.
2- O CPU sofreu extensas modificações e é ponto chave dentro do projeto.
3- A DDR3 foi pensada para privilegiar a utilização do CPU e não deixá-la aleijada – Nesse ponto o projeto do PS4 se difere totalmente do Projeto do Xbox One. A Sony, ao optar por GDDR5 como memória principal, praticamente abriu mão da eficiência do CPU em favor da GPU. Por esse motivo, a abordagem da Sony sugere extensa utilização de GPGPU, que é utilizar a gráfica para computação genérica. Desse modo, a GPU é equilibrada em 14:4, 14CUs para gráficos, 4 para computação genérica. É óbvio que isso não é regra, mas torna-se necessário a medida que CPU ainda não é algo dispensável em nenhum sistema. Durante a entrevista, esse é um ponto onde os dois engenheiros da Microsoft são claros em dizer que sua abordagem foi totalmente diferente.
4- Os engenheiros estão surpreendidos com declarações de que é difícil utilizar a ESRAM já que ela é uma evolução da eDRAM e os criadores consideram o Xbox 360 uma máquina amigável.
5- A largura de banda garantida de 109GB/s é caso se esteja apenas lendo ou apenas escrevendo na memória. Como ela pode fazer as duas tarefas ao mesmo tempo, 200GB/s pode ser considerado um número de desempenho real.

Publicidade

Retomando o nosso artigo

Comecemos então, sendo que nesta primeira parte vamos analisar os pontos 1, 4 e 5, tendo em conta que tudo o que é dito é baseado no que é conhecido sobre as consolas na presente data, podendo deixar de ser válido caso novos dados venham a público.

Ponto 1 – Os Move Engines

O Bom

Os Move Engines foram criados com dois intuitos, sendo que um deles teve prioridade sobre o outro.

O primeiro intuito foi a optimização das larguras de banda. Estas unidades comprimem e descomprimem os dados que são enviados pelos canais tornando-os mais eficazes.

Este Move Engines são unidades não programáveis que usam o codec LZ-77 criado em 1977 e que ao serem independentes também libertam o CPU do trabalho de orientar os dados.

Esse acaba então por ser o segundo intuito destas unidades, o libertar o CPU de idêntico trabalho, bem como da organização geral dos dados que se movem nos canais internos. Assim é notório que efectivamente estas unidades trazem benefícios à arquitectura ao permitir a optimização das larguras de banda dividindo-a pelas memórias e libertando o CPU de todo esse trabalho.

E este tipo de situação é algo que a PS4 não possui. A compressão de dados conhecida na PS4 é o ZLib de 1995 mas que se aplica apenas aos dados lidos pelo Blu-Ray de forma a aumentar as suas performances.

O Mau

Pelo que é possível ver-se os Move Engines trazem grandes vantagens, sendo que a única desvantagens que possuem é… o facto de existirem!

Bem, parece que há aqui um contra-senso da minha parte, mas não há!

A realidade é que os Move Engines são algo criado com um único motivo, a necessidade.

A questão é que Microsoft optou por usar 8 GB de DDR3, sendo a memória criada por 16 chips Micron d9pzn. Estes chips de 4 GigaBits cada (512 MB) totalizam os 8 GB, e sendo de 16 bits cada um, correndo a 1066 Mhz com Double Data Rate (2133Mhz efectivos) debitam 68 GB/s.

16 bits * 16 chips *2133 Mhz /8 (para converter em bytes) = 68256 MB/s ou 68 GB/s.

No entanto este canal de 68 GB tem de dividir a sua largura e banda pelo GPU, GPU e restantes componentes do sistema, e como vemos no esquema de baixo o CPU e restantes componentes podem usar até 30 GB/s de largura de banda.

Mais ainda, estes 68 GB/s não são reais. Eles são obtidos de 4 módulos de 2 GB que debitam 17 GB/s cada um (17*4=68). Mas como vamos mostrar de seguida este é um valor teórico máximo (note-se que isto se aplica a qualquer canal, mas é particularmente importante neste por ser já de si reduzido).

Vamos dar um exemplo teórico para que percebam:

Imaginem que cada módulo possuía apenas 4 bits de largura de banda por segundo e que temos  dados A, B, C e D de 1 bit cada um que se encontram no módulo 1, 2, 3 e 4. Se o processador solicitar estes 4 dados por quatro vezes, dado que cada módulo pode fornecer esses bits quatro vezes num único segundo (o canal é de 4 bits/s), os dados serão lidos na sua totalidade em 1 segundo.

Mas agora imaginem que o módulo 1 continha o dado A, o módulo 2 o B e módulo o 3 o C e o D. O módulo 1 e 2 respondem aos 4 pedidos em 1 segundo, mas o terceiro módulo vai demorar 2 segundos pois tem 8 bits para mandar.

Publicidade

Retomando o nosso artigo

E o caso pior seria com os dados A,B,C e D todos no mesmo módulo onde seriam precisos 4 segundos para ler a informação.

Como se pode perceber pelo exemplo, a leitura nem sempre é feita a igual velocidade, dependendo assim da forma como a informação se encontra dispersa nos módulos. Naturalmente que no caso concreto a largura de banda é muito superior à capacidade do módulo e dificilmente atingiremos a saturação do canal, mas esta realidade leva a que a eficiência real destes sistemas Dual, Triple, e no caso, Quad-Channel, sejam inferiores à teórica. No presente caso, de acordo com os engenheiros entrevistados, a Microsoft estima uma eficiência de cerca de 80% ou seja 55 GB/s.

Esta situação confirma que as afirmações de MisterXmedia sobre uma largura de banda de 272 GB/s na RAM são falsas. E com esta largura de banda, o segundo GPU também está confirmado como falso.

Mas voltando ao que interessa e resumindo, a largura de banda à RAM é efectivamente curta para alimentar um GPU como o da Xbox e daí que teve de se encontrar uma solução. E essa solução passou pelo uso de uma memória ESRAM em conjunto com os Move Engines. Trata-se de um remedeio para colmatar a baixa largura de banda da RAM geral, mas algo que nunca é efectivamente melhor do que largura de banda real. Poderá ser eficaz, e poderá mesmo obter resultados ao nível da largura de banda real de uma memória superior, mas esta é uma solução que torna o sistema mais complexo de ser usado, e acima de tudo limitativo da criatividade dos programadores ao lhes fornecer um espaço de memória muito reduzido.

Publicidade

Retomando o nosso artigo

Ou seja, falar dos Move Engines sem se falar da ESRAM é quase impossível pois ambos estão interligados e existem pelo mesmo motivo.

É certo que a PS4 não possui Move Engines, mas a sua largura de banda é tal que os dispensa. Perde no entanto pelo facto de não poder libertar o CPU deste tipo de movimentos de dados, mas ganha no facto de não existirem restrições de dimensões dos dados e complexidade na gestão dos mesmos. E somente assim se pode dar origem a situações novas e muito mais complexas do que as actualmente usadas, sendo que só desta forma se podem quebrar as barreiras actualmente existentes e entrar verdadeiramente na “nova geração”. Nesse aspecto a arquitectura da PS4 está bastante mais adequada ao que por aí virá e não apenas ao que existe actualmente ao fornecer uma memória sem limitações de dimensão.

4 – A surpresa com a declaração que a ESRAM é difícil de usar

Convenhamos que argumentar que esta este tipo de declarações não era esperado é tapar o sol com uma peneira.

Se eu disser a alguém: “Arrumas tudo nesta gaveta“, isso é simples! Mas se disser “os papeis cor de rosa vão para aqui, os vermelhos vão para ali, depois o resto tens de ver as prioridades, sendo que os mais importantes vão para um sitio e os outros para outro, tendo sempre o cuidado que não podes encher a gaveta principal e mais importante porque ela tem pouco capacidade“, então estamos a falar de algo que é efectivamente mais complexo. Mesmo que não seja difícil de implementar!

E é isso que se passa com a realidade fornecida com a ESRAM e a oferecida pela PS4.

Seja como for, nunca ninguém disse que programar para a eDRAM da Xbox 360 era fácil. Apenas que comparativamente com o sistema da concorrência, a PS3, era realmente algo extremamente simplificado.

Curiosamente a Microsoft achou que de 2006 para os dias actuais a RAM deveria ser 16 vezes superior (512 MB para 8 GB), mas no que toca à sua memória mais rápida apenas a aumentou 3x de 10 para 32 MB. Mas pior, acabou por lhe descer a largura de banda dos 256 GB/s para algo que se estima entre os 140 a 150 reais. Ou seja, 9 anos depois a RAM aumenta 16x, a memória rápida aumenta apenas 3X, e a largura de banda cai 70% (ver esquema Xbox 360 em baixo). Parece um contra-senso para um GPU muito mais exigente.

Questiona-se assim se, face ao que existia à 9 anos, estaremos perante algo idêntico ou pelo contrário, mais complicado e até limitativo face às exigências do hardware actual.

5 – 200 GB de largura de banda

 Parece simples perceber que somando 55 GB/s a 145 (média entre 140 e 150 GB/s) dá 200 GB/s. Não se trata da largura de banda apenas da ESRAM, mas do somatório das duas larguras de banda usando valores realistas.

Mas continua a ser 145 GB/s a 32 MB e 55 a 8 GB de RAM… Poderá ser equivalente ou até melhor em muitos casos onde os 32 MB … mas não no seu global, quanto mais não seja pelo seu pequeno valor que se mostra um entrave à inovação.

Curiosamente a Sony pensou numa solução com uma EDORAM com 1 Terabyte/s de largura de banda, e um bus de 128 Bits à GDDR que lhe fornecia apenas 88 GB/s. Basicamente uma solução à da Microsoft mas ainda mais rápida e que dispensava os Move Engines pelas maiores larguras de banda. E apesar de mesmo Mark Cerny reconhecer que uma vez este sistema dominado seria possível tirar excelente partido do mesmo, os entraves à facilidade de programação criados por uma memória de pequenas dimensões acabaram por levar a que desistissem desta ideia .

O resultado final foi aquele que é reconhecido por toda a industria como superior, o uso da GDDR5. Esta é uma solução mais cara, mas a usada por todos os produtos gráficos de topo e que lhes permite as melhores performances e liberdade de uso.

Fica a questão no ar sobre como se portará esta GDDR5 no CPU uma vez que se refere que esta memória tem maiores latências do que a DDR3 e o CPU é bastante sensível às latências. Mas isso abordaremos na segunda parte deste artigo.

Publicidade

Posts Relacionados