T utorial H emps

13
Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil

description

Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil. T utorial H emps. [email protected] [email protected]. Guilherme M. Castilhos Fernando G.Moraes. Module Load. Carregar o módulo HeMPS 5.2 # module load hemps/5.2 - PowerPoint PPT Presentation

Transcript of T utorial H emps

Page 1: T utorial  H emps

Pontifical Catholic University of Rio Grande do Sul

Porto Alegre, Brazil

Page 2: T utorial  H emps

Tuto

rial H

eM

PS

2

Carregar o módulo HeMPS 5.2◦# module load hemps/5.2

Esse comando irá carregar os seguintess módulos:◦SystemC 2.2◦Xilinx 13.2◦Modelsim 10.3a◦MIPS Cross Compiler v1◦HeMPS 5.2

Page 3: T utorial  H emps

Tuto

rial H

eM

PS

3

function hempslocaldist){ source /soft64/Modules/3.2.8/init/bash source /soft64/source_gaph

export JAVA_HOME=/usr/java7/bin export HEMPS_PATH=/home/gcastilhos/hemps5.0/tag/5.0 export PATH=$PATH:$HEMPS_PATH/bin module load ise mips systemc module load modelsim }

Page 4: T utorial  H emps

Tuto

rial H

eM

PS

4

Deve-se criar um arquivo .hmp que irá conter as configurações de projeto.

Page 5: T utorial  H emps

Tuto

rial H

eM

PS

5

1. [project name] #nome do projeto que será criado

2. mpeg_6x6_3x3_1

3. [tasks per pe] # número de tarefas simultâneas executadas pelo processadores

4. 2

5. [processor description] # o nível de descrição do projeto (sc – SystemC; scmod – SystemC com Modelsim)

6. sc

7. [noc buffer size] # tamanho do buffer do roteador

8. 8

9. [noc routing algorthm] # tipo de algoritmo usado no roteamento

10. west

11. [dimensions] # dimensão da NoC (X e Y)

12. 6

13. 6

14. [cluster size] # dimensão dos Clusters (X e Y)

15. 3

16. 3

17. [masters location] # localização dos mestres dentro dos Clusters (atualmente somente LB)

18. LB

19. [global master] # define qual Cluster terá o Mestre Global

20. 0

21. [application] # define as aplicações que serão inseridas no MPSoC

22. mpeg

23. [start time] # define em que tempo a aplicação será inserida

24. 1 ms

Page 6: T utorial  H emps

Tuto

rial H

eM

PS

6

As aplicações são descritas em C.

A comunicação entre tarefas de uma aplicação é feita através das primitivas Send() e Receive().

Cada tarefa da aplicação deverá ser um arquivo .C separado

Todas as tarefas devem estar em uma pasta com o nome da aplicação.

Page 7: T utorial  H emps

Tuto

rial H

eM

PS

7

1. #include <task.h> # Biblioteca que contém as primitivas da HeMPS.

2. #include <stdlib.h>3. 4. Message msg; # Cria uma estrutura para as mensagens.5. 6. int main(){7. int i, j,t;8. Echo("task A started."); # A função Echo() é usado como debug, pois...9. Echo(itoa(GetTick())); # grava em um arquivo o seu conteudo.10. 11. for(i=0;i<10;i++){12. msg.length = 30; # Seta o tamanho da mensagem.13. for(j=0;j<30;j++) msg.msg[j]=i; # Gera conteúdo da mensagem.14. Send(&msg,taskB); # Envia a mensagem criada para a Tarefa B.15. }16. Echo(itoa(GetTick())); # A função GetTick() retorna o tempo em

ciclos...17. Echo("task A finished."); # de clock do sistema.18. exit(); # Função exit() termina a tarefa.19. }

Ex.: Tarefa A mandando dados para a Tarefa B

Page 8: T utorial  H emps

Tuto

rial H

eM

PS

8

1. #include <task.h>2. #include <stdlib.h>3. 4. Message msg;5. 6. int main(){7. int i, j,t;8. Echo("task B started.");9. Echo(itoa(GetTick()));10. 11. for(i=0;i<10;i++){12. Receive(&msg,taskA); # Recebe as mensagens enviadas pela Tarefa A13. }14. Echo(itoa(GetTick()));15. Echo("task B finished.");16. exit();17. }

Ex.: Tarefa B recebendo dados da Tarefa A

Page 9: T utorial  H emps

Tuto

rial H

eM

PS

9

Criação do MPSoC◦ # perl $HEMPS_PATH/scripts/hemps.pl exemplo.hmp $path_aplicação

-- Cria o MPSoC e compila o Software

Execução do MPSoC◦ # cd exemplo -- Entrar na pasta do projeto criado◦ # make all -- Compila o Hardware◦ # ./HeMPS -c 50 -- Executa o MPSoC por um tempo de 50 ms

Caso a execução termine com sucesso (todas as aplicações terminem), aparecerá a mensagem “END OF ALL APPLICATIONS!!”

Page 10: T utorial  H emps

Tuto

rial H

eM

PS

10

É possível visualizar o mapeamento das tarefas, bem como o tempo que elas foram alocadas e quando terminaram através de duas maneiras:◦ um script chamado hemps-read.pl (ele já se encontra no

path).Ex.: # hemps-read.pl exemplo.hmp

Page 11: T utorial  H emps

Tuto

rial H

eM

PS

11

O outro método para Debug, é uma ferramenta gráfica no qual se é capaz de visualizar o mapeamento das tarefas e as mensagens trocadas entre processadores. Um programa em java, localizado na pasta “bin”

Page 12: T utorial  H emps

Tuto

rial H

eM

PS

12

◦ Criar uma aplicação que ordene vetores e que possua 3 tarefas: Vetor 1: {33;1;21;12;11;18;2} Vetor 2: {55;43;42;67;90;77;40}

A

CB

1. Tarefa A envia um vetor para cada uma das outras tarefas

A

CB

2. As Tarefas B e C ordenam os vetores

A

CB

3. As Tarefas B e C enviam os vetores ordenados para a Tarefa A

A

CB

4. A Tarefa A imprime (Echo) o vetor ordenado

Page 13: T utorial  H emps

Tuto

rial H

eM

PS

13

FIM