Estudo da aplicação
“jogos” em sistemas
embarcados
Renato Fernandes Hentschke
[email protected]
CMP502
Sistemas
Embarcados
Outline
2 partes: estudo de caso e arquitetura do Playstation 2
Introdução: programação de jogos
• 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
Introdução: Programação de Jogos
Inicialização
Crítico! Renderização
da tela.
Leitura de dados
Lógica do Jogo
Loop,
controlado por
timer.
Ex: 20ms.
Se loop terminar antes,
libera a CPU para o SO.
Saída
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.
Jogo Outgun
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
Informações Estáticas
• 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 Dinâmicas – PC utilizado
Executado em um PC/Pentium III 1GHz (1000 Mips)
Internal Clock : 996.76 MHz
System Bus : 132.90 MHz
System Clock : 132.90 MHz
L1 I-Cache : 16K Byte
L1 D-Cache : 16K Byte
L2 Cache : 256K Byte
Instruct.Cache
Instruct. TLB
Data Cache
Data TLB
:
:
:
:
:
:
16K byte cache size 4-way set associative 32 byte line size
4K byte pages
4-way set associative 32 entries
4M byte pages
fully associative
2 entries
16K byte cache size 4-way set associative 32 byte line size
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
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)
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.
Download

Jogos - Ufrgs