Figura 42 – Definições das primitivas de comunicação através da função SystemCall. .................................................72
Figura 43 – Função SystemCall em Assembly gera a interrupção de software através da instrução syscall......72
Figura 44 – Função em C que trata uma chamada de sistema. .......................................................................................73
Figura 45 – Função DRV_Handler que faz o tratamento de interrupções da NoC......................................................74
Figura 46 – MPSoC com um nodo mestre........................................................................................................................77
Figura 47 – Estrutura do repositório de tarefas...............................................................................................................78
Figura 48 – Criação da tabela de alocação estática, static_allocation.............................................................79
Figura 49 – Função de alocação estática do nodo mestre, TasksAllocation. ........................................................80
Figura 50 – Requisição de uma tarefa por parte do nodo escravo. .................................................................................81
Figura 51 – Desbloqueio da tarefa t
j
, cuja requisição por t
i
estava na tabela de requisições de tarefas, requestTask.
......................................................................................................................................................................81
Figura 52 - Término de uma tarefa no nodo escravo.......................................................................................................82
Figura 53 – Função DRV_Handler, que trata as interrupções no nodo mestre. ..........................................................83
Figura 54 – Função DRV_Handler do escravo, com o tratamento de alocação de tarefas, complementando a Figura
45. .................................................................................................................................................................84
Figura 55 - Função DMA_Handler que trata a interrupção advinda do DMA.............................................................85
Figura 56 – Alocação inicial das tarefas t
1
, t
2
e t
3
no processador. ............................................................................88
Figura 57 – Troca de contexto entre t
1
, t
2
e t
3
..............................................................................................................89
Figura 58 – Término da tarefa t
2
. ...................................................................................................................................89
Figura 59 – Comunicação entre t
1
e t
2
que estão alocadas no mesmo processador. ....................................................90
Figura 60 - Tempos, em ciclos de relógio, para a escrita e a leitura de uma mensagem de tamanho 3, no mesmo
processador...................................................................................................................................................91
Figura 61 – Gráfico para a operação WritePipe em função do tamanho da mensagem............................................91
Figura 62 - Gráfico para a operação ReadPipe em função do tamanho da mensagem...............................................91
Figura 63 – Comunicação entre tarefas em CPUs distintas. ...........................................................................................92
Figura 64 - Análise do tempo para leitura de mensagem armazenada em outro processador. .......................................93
Figura 65 – Gráfico para a operação de transferência de mensagens (com tamanho variado) da NI para a área de
memória da aplicação...................................................................................................................................94
Figura 66 – Alocação dinâmica de uma tarefa. ...............................................................................................................95
Figura 67 – Após ser alocada, t
3
é escalonada...............................................................................................................96
Figura 68 – (a) Grafo da aplicação merge sort com três tarefas comunicantes; (b) Posicionamento dos diferentes
processadores na rede. .................................................................................................................................97
Figura 69 – Código parcial da tarefa t
1
..........................................................................................................................98
Figura 70 – Execução das tarefas t
1
, t
2
e t
3
com a sobrecarga no processadores em que cada uma executa.............99
Figura 71 – Grafo da terceira aplicação utilizada no experimento...............................................................................100
Figura 72 – Mapeamentos utilizados para execução de três aplicações paralelas. (a) M1; (b) M2; (c) M3. ...............101
Figura 73 – Grafo da aplicação MPEG.........................................................................................................................102
Figura 74 – Alocação de tarefas para o mapeamento M1, com alocação estática. .......................................................103
Figura 75 – Término da aplicação para o mapeamento M1...........................................................................................104
Figura 76 – Alocação de tarefas no mapeamento M2, com alocação estática...............................................................104
Figura 77 – Término da aplicação MPEG, para o mapeamento M2..............................................................................105
Figura 78 – Alocação de tarefas no Mapeamento M3, com alocação dinâmica............................................................105
Figura 79 – Plataforma MPSoC e endereço de cada processador. ...............................................................................119
Figura 80 – Interface HMPSEditor................................................................................................................................121
Figura 81 – Lista de aplicações carregadas na interface. .............................................................................................121
Figura 82 – Tarefas alocadas nos processadores escravos. ..........................................................................................122