Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares...

26
Avaliação de um Avaliação de um processador processador FemtoJava multiprocesso FemtoJava multiprocesso CMP502 – Sistemas Embarcados CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Leomar Soares da Rosa Junior Porto Alegre, março de 2003 Porto Alegre, março de 2003

Transcript of Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares...

Page 1: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Avaliação de um processadorAvaliação de um processador

FemtoJava multiprocessoFemtoJava multiprocesso

CMP502 – Sistemas EmbarcadosCMP502 – Sistemas Embarcados

Leomar Soares da Rosa JuniorLeomar Soares da Rosa Junior

Porto Alegre, março de 2003Porto Alegre, março de 2003

Page 2: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Outline:Outline:

• Objetivos do Trabalho;

• Implementação;

• Resultados Obtidos;

• Trabalhos Futuros.

2

Page 3: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Objetivos do Trabalho:Objetivos do Trabalho:

• Investigar o impacto causado pela execução de threads ou processos simultâneos, gerenciados por software, sobre um mesmo processador femtojava;

• Implementação de um escalonador dedicado à arquitetura.

3

Page 4: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Objetivos do Trabalho >> Contribuição:Objetivos do Trabalho >> Contribuição:

• FemtoJava não tem suporte a execução de threads ou processos simultâneos (sintetiza apenas uma aplicação);

• Permitir o desenvolvimento de programas com várias threads, deixando a gerência p/ o S.O. e p/ a MVJ.

4

Page 5: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Desenvolver um escalonador de threads, o qual utilizará alguma política clássica de escalonamento*, que irá realizar a gerência da troca de contexto entre dois fluxos de execução distintos.

* Inicialmente: Round-Robin

5

Page 6: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Implementação realizada diretamente em bytecodes Java;

• Desenvolver instruções capazes de salvar e recuperar contexto;

• Utilizar o sistema de timer do femtojava para gerar interrupções.

6

Page 7: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Memória de programa e de dados:

7

Page 8: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

8

Page 9: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

9

Page 10: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Possíveis variações do escalonador:

3 estratégias estudadas;

Optou-se pela estratégia que apresentavamenor custo em ciclos de execução e áreanecessária para salvamento de contexto!

10

Page 11: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Primeira estratégia:

11

Page 12: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Segunda estratégia:

12

Page 13: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Terceira estratégia:

13

Page 14: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Regras adotadas (1/2):

Cada processo envolvido deveria possuir sua própria pilha de execução;

Cada SP relativo ao topo da pilha de cada processo deveria ser salvo em um local de memória específico, garantindo, assim, que os valores dos registradores salvos pudessem ser realmente restaurados quando o processo fosse escalonado para tomar posse do processador;

14

Page 15: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Regras adotadas (2/2):

As pilhas de execução dos processos deveriam possuir um valor razoavelmente significativo, permitindo que dados não fossem perdidos pela sobreposição de informações;

O local na memória de dados onde os SPs das pilhas dos processos seriam salvos deveria ser uma posição que não fosse alcançada pelas variáveis globais e nem pelo crescimento abrupto da pilha de algum processo.

15

Page 16: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Instruções criadas:

16

Page 17: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Instruções criadas:

17

Page 18: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Instruções criadas:

18

Page 19: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Implementação:Implementação:

• Nova memória de programa:

19

Page 20: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Resultados Obtidos:Resultados Obtidos:

20

Page 21: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Resultados Obtidos:Resultados Obtidos:

21

Page 22: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Resultados Obtidos:Resultados Obtidos:

22

Page 23: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Resultados Obtidos:Resultados Obtidos:

23

Page 24: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Trabalhos Futuros (1/2):Trabalhos Futuros (1/2):

• Implementação do escalonador para o femtojava 8 bits;

• Otimização das instruções efetivamente envolvidas no escalonador;

• Adaptação do escalonador Round-Robin para um maior número de processos;

24

Page 25: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

Trabalhos Futuros (2/2):Trabalhos Futuros (2/2):

• Análise da possibilidade de implementar o escalonador com outra estratégia mais econômica;

• Implementação de outras políticas de escalonamento;

• Implementação de uma ferramenta para automatizar o processo de construção dos escalonadores dadas as aplicações do usuário.

25

Page 26: Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.

The endThe end