estudo da aplicação jogos em sistemas embarcados cmp502 sistemas embarcados renato fernandes...
TRANSCRIPT
Estudo da aplicação “jogos” em sistemas
embarcados
CMP502
Sistemas Embarcados
Renato Fernandes [email protected]
• Estudo de caso: jogo Outgun
• Apresentação do jogo (porque é bom para sistemas embarcados)
• Dados do programa (estáticos)
• Dados de execução (dinâmicos)
• Dados de profiling (% da CPU em grafico, sons, lógica, etc...)
• Soluções arquiteturais usadas no playstation 2
• Arquitetura do processador principal
• Dados sobre os demais processadores
Outline
2 partes: estudo de caso e arquitetura do Playstation 2
Introdução: programação de jogos
Introdução: Programação de Jogos
Inicialização
Leitura de dados
Lógica do Jogo
Saída
Loop, controlado por timer.
Ex: 20ms.
Se loop terminar antes, libera a CPU para o SO.
Crítico! Renderizaçãoda tela.
Deadline <-> Soft Real Time
Timer garante que velocidade do jogo é independente de processador.
Render 2D x 3D
Utilizam-se dois processos de renderização de jogos:
2D: Utilizam-se sprites (bitmaps), retângulos, círculos, etc...
3D: Utilizam objetos tridimensionais, necessitando de grande quantidade de processamento para cálculos de coordenadas, iluminação, etc... Nos computadores PC, este tipo de renderização é feita em hardware (processador dedicado). Por esta razão, mesmo os jogos mais simples estão migrando para representação tridimensional para acelerar a etapa de renderização.
1000 usuários cadastrados (em 6 meses de jogo)
Partidas de pequena duração
Graficos Simples (2D)
Sons simples
Pouco uso de CPU
Pouco uso de Rede
Jogo Outgun
• Tamanho do código fonte (em C++): 10000 linhas
• Tamanho do executável: 262 Kbytes
• Allegro (biblioteca gráficos/sons): 223kBytes
• Hawknl (biblioteca rede): 48KBytes
• Pthreads: 110 KBytes
Informações Estáticas
Executado em um PC/Pentium III 1GHz (1000 Mips)Internal Clock : 996.76 MHzSystem Bus : 132.90 MHzSystem Clock : 132.90 MHzL1 I-Cache : 16K ByteL1 D-Cache : 16K ByteL2 Cache : 256K Byte
Instruct.Cache : 16K byte cache size 4-way set associative 32 byte line size Instruct. TLB : 4K byte pages 4-way set associative 32 entries : 4M byte pages fully associative 2 entriesData Cache : 16K byte cache size 4-way set associative 32 byte line size Data TLB : 4K byte pages 4-way set associative 64 entries : 4M byte pages fully associative 8 entries
[L2 Information]Level 2 Cache : 256K byte cache size 8-way set associative 32 byte line size
Informações Dinâmicas – PC utilizado
30 FPS ( Frames por segundo)
Uso de CPU: pico de 30%, média de 20% (dado fornecido pelo sistema operacional Win2K)
Uso de memória (dados + programa) : 8Mb (fácil de reduzir pela metade, segundo o programador)
Uso de banda de internet: 1-2Kbytes por segundo (é possível de reduzir usando algumas técnicas simples)
Profiling: 90% do tempo é gasto em rotinas gráficas!
Tempo de rotinas de som é despresível (som em formato wav, sendo que há um processador dedicado na placa de som)
Informações Dinâmicas
PlayStation 2
Figuras, slides e informações gentilmente cedidas por:
PlayStation 2
Domínio de aplicação: Jogos pesados e com muitos recursos gráficos. Diferente do outgun.
A solução arquitetural para este tipo de jogo é de utilizar diversos processadores separados (gráficos, lógica, sons, etc..) do jogo.
No PC, por exemplo, as placas 3D permitem que jogos deste tipo tenham desempenho satisfatório.
Arquitetura PlayStation 2
“Emotion Engine” – Proc. Principal
“Emotion Engine” – Proc. Principal
(GS) - Processador Gráfico
Clock: 150MHz
Embedded DRAM (cache): 4Mb
Pixel fill rate 2.4GPixel/sec
Processador Som
-2 Cores DSP!
- 2Mb Memória
Conclusões-Jogos demandam muito processamento gráfico (tanto os mais simples quanto os mais sofisticados).
-Jogos como Outgun possuem desempenho satisfatório em arquiteturas com um processador somente (PC).
- O uso de memória do Outgun é de 8 Mb. Jogos mais complexos tipicamente consomem muito mais memória.
-Processamento gráfico de jogos modernos (3D) tipicamente é realizado em processador dedicado.
- Processamento de som pode ser realizado em processadores dedicados (como no PS2). No caso do Outgun, o som é armazenado em formato wav, dispensando decodificação de som (porém requer mais memória).
- A arquitetura do playstation 2 divide as tarefas de processamento entre diversos processadores.