• No results found

Salt  –  sodium

Os trabalhos apresentados nesta Seção referem-se ao mapeamento estático realizado em sistemas MPSoC. Alguns trabalhos não detalham formalmente o modelo utilizado para a realização do mapeamento de tarefas, mas preocupam-se com a descrição da técnica utilizada para a realização dessa atividade. Naturalmente, a maioria dos trabalhos pode utilizar um modelo correspondente a algum dos apresentados anteriormente.

O trabalho apresentado por Mihal [55] utiliza o conceito de modelos de computação para descrever os requisitos da aplicação com relação a comunicação e princípios arquiteturais sobre NoCs, com o intuito de modelar aplicações paralelas em ambientes heterogêneos. Na abordagem utilizada, a aplicação é descrita em alto nível e particionada manualmente. O particionamento atribui as partes que compõem uma aplicação a elementos de processamento, e os mesmos são posteriormente mapeados na arquitetura. Neste trabalho não é apresentada nenhuma técnica automática para realização do mapeamento, o qual é feito manualmente.

Nos trabalhos apresentados por Lei [38, 37] é proposta uma solução para o problema de mapeamento, a qual faz a utilização de algoritmos genéticos. A aplicação é modelada através de dois diferentes grafos, chamados STG e MTG. Esses grafos são gerados automaticamente pela ferramenta TGFF[18]. No trabalho, os autores descrevem a arquitetura como uma NoC malha, e propõem um algoritmo que tem como objetivo a redução no tempo de execução da aplicação.

A proposta do trabalho de Rhee [75] consiste em lidar com o problema de mapeamento de elementos de processamento em uma NoC, com o objetivo de reduzir o consumo de energia e o congestionamento do meio de interconexão. Os autores propõem uma técnica que permite o mapeamento de múltiplos elementos de processamento a cada roteador da rede, reduzindo assim o número de saltos médio. As aplicações são modeladas como grafos que representam o volume de dados transmitidos entre elementos de processamento. Segundo os autores, reduções de até 81% no consumo de energia e 2.5% na largura de banda necessária são observadas, comparando essa técnica com outras que utilizam apenas o mapeamento de um elemento de processamento por roteador da rede.

Os trabalhos de Hu [27, 28] utilizam um grafo denominado CTG para descrever uma aplicação. Esta descrição baseia-se na caracterização da comunicação através de pesos atribuídos

a canais de comunicação, representados pela quantidade de dados transmitidos. Este modelo, além do volume e largura de banda necessária para a comunicação, incorpora informações referentes a computação, especificada detalhadamente através de seu tempo de execução, consumo de energia e tempo limite para execução. O objetivo dos autores é propor uma técnica com o intuito de reduzir o consumo de energia de uma determinada aplicação, e o algoritmo utilizado pelos autores para melhorar o tempo de mapeamento é divisão e conquista.

Murali [61] utiliza uma representação em forma de grafo de elementos de processamento para descrever a arquitetura. O objetivo dos autores é realizar o mapeamento de acordo com a largura de banda necessária a aplicação. Em seu trabalho, apresenta uma ferramenta que permite selecionar a topologia de NoC empregada. Além disto, realiza um estudo de duas alternativas para a estratégia de roteamento que pode ser um caminho único mínimo ou múltiplos caminhos, permitindo a divisão de tráfego na rede. O trabalho é estendido em [62], incorporando outras métricas ao modelo como latência e consumo de energia da aplicação. Em [60] são realizados estudos sobre um conjunto de aplicações, e diversas soluções de mapeamento são investigadas utilizando o método Tabu Search.

Manolache [45] apresenta uma proposta para a solução do problema de falhas temporárias em canais de comunicação utilizando para isso redundância de mensagens. No trabalho são apre- sentados modelos para a aplicação e seu mapeamento, para o hardware e para a comunicação. O modelo da aplicação é representado por um conjunto de grafos direcionados acíclicos. Cada tarefa é modelada em um grafo e possui parâmetros como período, tempo de execução e deadline. O mapeamento das tarefas é feito em tempo de projeto utilizando-se o algoritmo Tabu Search, e o caminho dos pacotes é definido em nível de aplicação. O objetivo do trabalho é garantir tolerância a falhas e reduzir a latência média para a entrega de mensagens na rede.

O trabalho apresentado por Srinivasan [84] aprofunda-se em uma técnica de minimização do consumo de energia no mapeamento de elementos de processamento, e utiliza critérios adicionais como largura de banda e latência. Os autores modelam o problema de mapeamento definindo elementos de processamento como vértices de um grafo direcionado, e arestas como a largura de banda e latência necessárias a aplicação em questão. Para solucionar o problema do mapeamento, definem uma função que permite atribuir elementos de processamento a tiles na rede. A rede possui topologia malha, e parâmetros como largura de banda e consumo de energia são definidos para cada roteador. Diversos algoritmos que implementam funções multimídia como MP3 e H.263 são utilizados para realização dos experimentos, e o método de mapeamento utilizado pelos autores é o algoritmo Cutting Tree.

O problema do mapemento de tarefas em uma NoC com topologia malha é apresentado por Marcon em [47]. No trabalho, o grafo CWG é utilizado para representar o volume de dados de comunicações entre elementos de processamento e o CDG para representar a ordenação de mensagens. Os autores utilizam a técnica Simulated Annealing e também um método exaustivo para encontrar o melhor mapeamento. Comparado ao trabalho apresentado por Hu [27], foram obtidas melhorias significativas na qualidade do mapeamento, sendo o consumo de energia (redução de 21%) e tempo de execução (redução de 41%) as métricas utilizadas. Em [48] é utilizado um

novo grafo, chamado CDCG, o qual detalha o instante de envio de cada pacote de dados na rede, e o trabalho apresenta novamente resultados significativos comparado a trabalhos anteriores. Um trabalho mais recente [50] apresenta outras técnicas para a realização do mapeamento, entre elas pode-se enumerar Greedy Incremental, Largest Communication First e o método Tabu Search.

Orsila [66] modela aplicações com o uso de grafos direcionados, que incorporam informa- ções sobre a dependência entre tarefas, o volume de dados transferido e o tempo de computação. Neste trabalho é apresentado um método para otimizar os parâmetros do algoritmo Simulated Anne-

aling, com o intuito de diminuir o tempo necessário para encontrar soluções adequadas ao problema

de mapeamento. Como resultado, observou-se que diferentes métodos devem ser utilizados para realização das otimizações, divididas como locais e globais. Uma extensão do trabalho é realizada em [67], apresentando resultados comparativos com relação ao uso de memória para a execução dos algoritmos utilizados.

No trabalho apresentado por Mehran [52], os autores modelam aplicações através de gra- fos de elementos de processamento, que detalham suas dependências e necessidades com relação a banda de comunicação. Um algoritmo de mapeamento chamado Spiral é proposto. Esse algo- ritmo procura mapear elementos de processamento de maneira espiral em uma NoC. Nos estudos realizados, foram experimentados mapeamentos com dimensões da rede entre 3x3 e 6x6 tiles, e os resultados apresentaram ganhos significativos na qualidade do mapeamento ao comparar seu método a algoritmos genéticos.