T utorial H emps
description
Transcript of T utorial H emps
Pontifical Catholic University of Rio Grande do Sul
Porto Alegre, Brazil
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
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 }
Tuto
rial H
eM
PS
4
Deve-se criar um arquivo .hmp que irá conter as configurações de projeto.
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
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.
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
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
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!!”
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
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”
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
Tuto
rial H
eM
PS
13
FIM