estudo da aplicação jogos em sistemas embarcados cmp502 sistemas embarcados renato fernandes...

16
Estudo da aplicação “jogos” em sistemas embarcados CMP502 Sistemas Embarcados enato Fernandes Hentschke [email protected]

Upload: internet

Post on 17-Apr-2015

112 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

Estudo da aplicação “jogos” em sistemas

embarcados

CMP502

Sistemas Embarcados

Renato Fernandes [email protected]

Page 2: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

• 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

Page 3: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

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.

Page 4: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

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.

Page 5: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

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

Page 6: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

• 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

Page 7: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

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

Page 8: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

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

Page 9: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

PlayStation 2

Figuras, slides e informações gentilmente cedidas por:

Page 10: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

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.

Page 11: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

Arquitetura PlayStation 2

Page 12: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

“Emotion Engine” – Proc. Principal

Page 13: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

“Emotion Engine” – Proc. Principal

Page 14: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

(GS) - Processador Gráfico

Clock: 150MHz

Embedded DRAM (cache): 4Mb

Pixel fill rate 2.4GPixel/sec

Page 15: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

Processador Som

-2 Cores DSP!

- 2Mb Memória

Page 16: Estudo da aplicação jogos em sistemas embarcados CMP502 Sistemas Embarcados Renato Fernandes Hentschke renato@inf.ufrgs.br

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.