Embarcados – Sua Fonte de Informações Sobre Sistemas Embarcados Arduino UNO
Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes...
Transcript of Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes...
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.