8 de março de 2011

Chips gráficos de Smartphones e outros dispositivos portáteis

Processador ARM (fonte)
Esse é um artigo bem especifico, surgiu da minha curiosidade do desempenho dos atuais processadores de Smartphones. Carlos Morimoto no Hardware.com.br (antigo Guia do Hardware) escreveu um artigo sobre as diferenças dos principais processadores usados em dispositivos portáteis, só faltou dizer que, ao menos por enquanto, o único processador usado nos celulares com Windows Phone 7 são os Qualcomm Snapdragon.

Os processadores de dispositivos portáteis são SOCs (System-on-a-chip), ou seja, diversos chips são colocados em apenas um. Um Snapdragon, por exemplo, além do processador ARM Cortex-A8, tem um chip gráfico Adreno e circuitos para GPS e transmissão de dados. Chips ARM são usados nos mais diversos tipos de celulares, desde os mais simples até os mais completos como o iPhone 4, também em consoles como o Nintendo DS e 3DS e no brasileiro Zeebo. Além dos chips ARM existem também os MIPS, usados no PSP (também no Playstation 1 e 2) e no popular console chinês Dingoo A320.

Uma GPU Kyro II (fonte)
Vamos sair um pouco do assunto e falar do Dreamcast. Foram desenvolvidos dois projetos paralelos, um americano que utilizava uma GPU da 3dfx - marca com as melhores GPUs da época que posteriormente foi comprada pela Nvidia - e o japonês que utilizava uma PowerVR2 (algum tempo depois foi lançada uma placa de vídeo com esse chip para computadores), o projeto japonês acabou escolhido. Devido a vários motivos as placas da série PowerVR deixam de ser competitivas em relação as da Nvidia e ATI (A PowerVR3 Kyro II foi a última placa lançada). A partir de então a Imagination Technologies passou a se dedicar ao desenvolvimento de GPUs com baixo consumo de energia.

iPhone
A primeira foi a PowerVR MBX - série 4 da PowerVR, anunciada em 2002 - usada em inúmeros Smartphones como o primeiro iPhone, iPhone 3G, Nokia N95 (melhor celular da história da Nokia?), diversos celulares da Sony e Motorola. Suporta OpenGL ES 1.1 (também usado no Playstation 3), que é uma versão mais enxuta do OpenGL normal. É licenciado para dezenas de empresas que embutem em seus próprios chips SOC, como a Samsung no ARM11 1176JZ(F)-S usado no iPhone.

Posteriormente foi desenvolvida a série 5, três chips dessa série foram muito utilizados: o SGX530, SGX535 e SGX540.

O SGX530 é incorporado na última linha de processadores OMAP da Texas Instruments, usados nos Motorolas Milestone 1 e 2 e no Palm Pre. Enquanto o SGX535, muito mais veloz que o MBX é usado em processadores da Samsung como o usado no iPhone clássico e no iPhone 3G. Também é usado com nome de Intel GMA500 ou GMA600 como GPU nos netbooks com processador Intel Atom. Pode renderizar até 28 milhões de triângulos por segundo. É interessante notar que ele pode decodificar vídeo em FullHD (ao menos a versão GMA600 que tem clock maior) em diversos formatos e suporta DirectX 9c e OpenGL 2.1.

O SGX540 é o mais poderoso utilizado atualmente. Os processadores da Samsung da linha Hummingbird o utilizam, que estão presentes em diversos Smartphones como o Galaxy S e o Google Nexus S (fabricado pela Samsung). Atualmente duas outras GPUs competem em performance com ele: o Adreno e o Tegra 2.

Tectoy Zeebo (fonte)
O Adreno foi inicialmente desenvolvido pela ATI. Com os diversos problemas financeiros da AMD depois da compra da ATI, a divisão responsável pelo desenvolvimento da linha ATI Imageon foi vendida para Qualcomm (logo apenas ela o utiliza) e posteriormente renomeada para Adreno. A versão 130 é usado no console brasileiro Zeebo. A 200 (presente nos famosos Snapdragons) foi usado no Google Nexus One (fabricado pela HTC) e agora é usado em celulares mais baratos como o Sony Ericsson Xperia X8 - em conjunto com um processador ARM11 em contraste ao mais veloz A8 usado no Nexus One. Pode renderizar até 22 milhões de triângulos por segundo.

Em comparação ao PowerVR SGX535, usado no iPhone 3GS, o Adreno 200 tem uma performance pior. Apesar de ser difícil constatar isso, já que nos testes foi usado um Nexus One e um iPhone, a resolução do telefone do Google é muito maior, logo sua GPU teria que ser melhor para ter o mesmo desempenho. O Adreno 205 é aproximadamente 4 vezes mais poderoso que o 200 e um pouco mais que o SGX540. Conta com algumas novidades úteis como aceleração de hardware ao Adobe Flash. A Qualcomm anunciou recentemente o Adreno 220, que vira com um processador ARM dual core, prometendo grandes melhorias de desempenho.

Imagem renderizada pelo Adreno 220 (fonte) - Assista um demo de um jogo no Adreno 220 no Youtube
Tegra 2 (fonte)
Como citado anteriormente, outro concorrente que recentemente entrou no mercado é a Nvidia com seu SOC Tegra 2. Ele tem duas CPUs ARM Cortex A9 - mais rápidas que qualquer processador ARM atualmente no mercado - e uma Ultra-low power GeForce GPU - a GPU mais potente atualmente em celulares. Decodifica por hardware uma infinidade de formatos de vídeo e áudio (entre eles o VP8, o formato que o Google abriu o código fonte ano passado). Alguns celulares como o Motorola Atrix 4G e o LG Optimus 2X já o utilizam. A Nvidia lançou um aplicativo chamado Tegra Zone para promover os jogos da plataforma Android e sua série de chips.

Nokia N8
Apesar desses três chips gráficos serem os mais difundidos em celulares Android, existem outros usados por diversas marcas. Como o chip da Broadcom usado no Nokia N8 com Symbian.

É difícil conseguir informações sobre as capacidades gráficas do chip do Nokia N8, o pouco que consegui pareceu favorável. Como ele ter um pouco mais de performance teórica que o SGX535 do iPhone 3GS (já que consegue reproduzir 32 milhões de triângulos por segundo contra 28 milhões do iPhone). É capaz de reproduzir vídeos em formatos tradicionais em 720p e conta com uma saída HDMI que possibilita o telefone ser ligado a monitores e televisores.

Galaxy on Fire rodando no Nokia N8 - Assista ao vídeo no Youtube
Nintendo 3DS
Outro chip é o PICA200 (que nome...) usado no Nintendo 3DS, que parece ser uma GPU muito fraca. Não suporta o OpenGL ES 2.0 que existe nas últimas versões de todos os chips citados anteriormente. Teoricamente ele tem metade da performance do processador do iPhone 3GS, já que pode renderizar apenas 15 milhões de triângulos contra 28 milhões, obviamente isso não passa de teoria, na prática pode ser bem diferente. Talvez a Nintendo tenha escolhido a Digital Media Professionals (DMP) para projetar o chip do Nintendo 3DS porque ele lide melhor com 3D estereoscópico usado no console que os chips da concorrência. Já que além do OpenGL ES 1.1 ele tem algumas extensões proprietárias da DMP.

NGP (fonte)
Um console portátil que tenho que tirar o chapéu é o Next Generation Portable (também conhecido como PSP 2) que foi anunciado há algumas semanas. Ele será lançado no final desse ano e virá com um processador com 4 núcleos ARM Cortex-A9 (em contraste aos 2 ARM11 de duas gerações atrás usados no 3DS). E uma GPU SGX543MP4+, bem superior ao SGX540 usada atualmente, pode renderizar até 133 de triângulos por segundo, ou seja, teoricamente é 9 vezes mais rápida que a do Nintendo 3DS. Seria bom a Sony liberar um SDK para qualquer um poder desenvolver programas para ele, faria bastante sucesso.

Ainda existem outras como a ARM Mali, e talvez uma dezena de outras fabricantes japonesas como a Mitsubishi, a Fujitsu, a Takumi, a Toshiba... É importante notar que a quantidade de triângulos por segundo é apenas uma medida teórica, nesse link você pode encontrar quantos triângulos por segundo cada chip pode renderizar. Com certeza vai encontrar inconsistências como o Playstation renderizar o dobro do Nintendo 64 que tinha gráficos bem melhores, ou o Xbox Original ser mais poderoso que o Wii.

Resumindo: SGX543MP4+ >> Tegra 2 > Adreno 205 > SGX540 > SGX535 > SGX530

Interessantes slides que falam muito sobre GPUs de dispositivos portáteis.

Editado em 16/03/2011: O iPad 2 tem uma GPU igual a que o NGP terá, com a diferença que tem 2 cores contra 4 do portátil. Nesse benchmark é possível ter uma idéia da superioridade desse chip em relação ao SGX535 (usado do iPad) e no Tegra 2 (usado no Motorola Xoom).

3 comentários:

RobsonB disse...

Excelente post. Sabia que o NGP seria poderoso, mas não pensei que ele fosse teóricamente tão podeoroso assim. Acredito que os gráficos nele serão similares aos que temos no PS3, olhando por baixo.

RicardoZ disse...

Tenho séria dúvidas em relação ao NGP, Hardware não é tudo. A Nintendo sabe muito bem disso e colocou um hardware bem ultrapassado no Nintendo 3DS, a bateria dele tem apenas 1300mAh, pra um console de 250 dolares é muito pouco. A unica coisa cara nele talvez seja a tela.

Quero ver como vai ser a duração da bateria e o preço final, pois ele tem muitas coisas... os Smartphone ainda tem o subsídio das operados.

RobsonB disse...

Acho que é um passo dentro do que a Sony já faz... do PS1 pro PS2, do PS2 pro PS3, do mesmo modo deve ser do PSP pro NGP. Se ele vai angariar um público grande? É possível, mas acredito que de largada, no lançamento, só deve realmente tocar no interesse de quem tem hoje um PSP, acima da média dos que estão entrando nesse mercado. É um público restrito, que vem supostamente satisfeito com o portátil e quer algo mais próximo do que encontra no console de mesa, daí o hardware mais poderoso.

A Nintendo, por outro lado, assim como ocorreu com o Wii, tem aparentemente mais potencial de fazer um bom lançamento, até pela novidade da tela 3D embutida (apenas uma delas é 3D, né?). Me parece que tem mais chance de estourar em vendas, de largada, que o NGP.