• Nenhum resultado encontrado

1 INTRODUÇÃO 29 1.1 MOTIVAÇÃO

3. TRABALHOS RELACIONADOS

3.4 Análise Comparativa e Questões em Aberto

As Tabelas 3.1 e 3.2 apresentam um resumo das principais características dos trabalhos relacionados ao mapeamento e migração de tarefas em sistemas embarcados dos últimos anos. Como pode ser observado, há uma grande quantidade de trabalhos abordando tanto o mapeamento estático quanto o mapeamento dinâmico e migração de tarefas, com um crescente interesse com relação a sistemas dinâmicos em trabalhos recentes [83, 11, 78, 7, 44, 16, 9].

Apesar das diversas vantagens na utilização de arquiteturas heterogêneas, a maioria dos trabalhos utiliza um modelo homogêneo. Grande parte dos autores argumenta que o espaço de projeto é mais facilmente explorável neste tipo de arquitetura, e que os modelos podem ser simpli- ficados significativamente. Ainda, existe uma forte tendência a se transferir parte da complexidade na implementação de sistemas MPSoC para o software, uma vez que é possível desenvolver chips com centenas de núcleos com tecnologias de fabricação atuais. Assim, a replicação de núcleos com as mesmas características facilita o processo de desenvolvimento do software e do hardware e per- mite uma maior flexibilidade da arquitetura para diferentes aplicações. No presente trabalho será adotada uma arquitetura MPSoC homogênea com memórias distribuídas, uma vez que de acordo com trabalhos recentes esta é a abordagem mais adequada para um grande número de elementos de processamento.

Boa parte dos trabalhos utiliza reserva de recursos, que consiste em alocar espaço para todas as tarefas da aplicação mesmo que existam tarefas que não estejam executando no momento. A reserva de recursos pode ser utilizada para garantir QoS, entretanto as restrições impostas por este tipo de mecanismo são grandes: (i) subutilização dos recursos computacionais e; (ii) dimen- sionamento pessimista da arquitetura, pois podem ser necessários mais núcleos devido a reserva. Segundo Mandelli [44] a reserva de recursos pode aumentar o tempo de execução da aplicação pois é necessário que haja espaço para todas as tarefas de uma dada aplicação, e esta deixa de executar

até que isto aconteça. Em um sistema sem reservas, tarefas podem executar a medida em que for necessário se houver um recurso disponível, não sendo necessário o mapeamento completo da aplicação. Dessa forma, no presente trabalho será utilizada a abordagem sem reserva de recursos.

O emprego de mecanismos de mapeamento e migração que fornecem suporte multi-tarefa é crescente em trabalhos recentes [89, 83, 44, 46, 81, 16, 9]. A abordagem multi-tarefa possui uma série de vantagens, tais como redução do tráfego na rede de interconexão (tarefas podem ser mapeadas para um mesmo elemento de processamento), redução do tamanho da arquitetura MPSoC, uma vez que um mesmo nodo pode ser compartilhado por diversas tarefas e maior flexibilidade em aplicações dinâmicas. Muitas vezes, tarefas não possuem grande complexidade computacional e alocá-las em um nodo que não possui recursos multi-tarefa inevitavelmente subutiliza a arquitetura. Seguindo a idéia proposta em trabalhos recentes, será adotado neste trabalho a abordagem multi- tarefa. Este modelo vem ao encontro do modelo multi-programado que predomina em sistemas operacionais de propósito geral.

São três os modelos de gerenciamento para a realização do mapeamento dinâmico e mi- gração de tarefas encontrados na literatura: (i) controlado pelo usuário; (ii) centralizado e; (iii) distribuído. A maioria dos trabalhos, com exceção de Al Faruque [2], Zipf [89], Marchesan [46] e Cannella [9] utilizam o conceito de gerenciamento centralizado. No modelo centralizado, um elemento de processamento mestre controla todos os outros presentes no sistema e possui uma visão global das características da aplicação. O modelo centralizado permite a implementação de mecanismos eficientes do ponto de vista da qualidade do mapeamento dinâmico, ao custo da sua escalabilidade. Novos sistemas que possuem um grande número de processadores e tarefas tornarão o trabalho do mestre cada vez maior, sobrecarregando-o. No modelo distribuído, a responsabilidade pelo mapeamento dinâmico é compartilhada entre todos os elementos de processamento [89]. Tro- cas de mensagem são necessárias para que sejam conhecidas características da aplicação e estado dos outros nodos, uma vez que não existe visão global do sistema. Dessa forma, as decisões rela- cionadas ao mapeamento dinâmico são realizadas pela interação entre nodos. Apesar da gerência distribuída do mapeamento dinâmico em MPSoCs ser pouco explorada até o presente momento, esta será a abordagem adotada pois acredita-se que no futuro o modelo centralizado será um gargalo. O modelo de gerência distribuído proposto é uma contribuição deste trabalho.

De maneira geral, tarefas de aplicações embarcadas podem ser facilmente representadas por grafos, sendo esta a representação utilizada pela maioria dos trabalhos revisados. Alguns trabalhos não possuem uma representação em alto nível [6, 69, 10, 16], e descrevem seu modelo como sendo parte da própria implementação. As principais características representadas nos modelos estudados referem-se ao volume de dados e largura de banda, uma vez que estes são de grande interesse em ambientes que empregam NoCs como meio de interconexão. O processamento das tarefas nos nodos é muitas vezes representado simplesmente por ciclos de relógio ou utilização do processador e não é frequentemente explorado nos modelos. Alguns trabalhos ignoram o conceito de contexto

de tarefa, o que simplifica o modelo de mapeamento dinâmico e migração, mas restringe muito a

Outro conceito pouco utilizado é a implementação de algoritmos de escalonamento de tempo real em sistemas MPSoC e representação dos parâmetros das tarefas em um modelo em alto nível. A criação de uma representação em alto nível que incorpora parâmetros de tempo real é uma contribuição original deste trabalho, uma vez que nos trabalhos encontrados na literatura este conceito é pouco explorado. Com relação à programabilidade, muitas vezes a aplicação é mo- delada simplesmente como transferências de fluxos de dados, e as funcionalidades disponibilizadas restringem-se a primitivas de comunicação. O presente trabalho propõe um modelo de programa- ção mais completo do ponto de vista da aplicação, onde um sistema operacional fornece suporte semelhante a sistemas de propósito geral e facilita o desenvolvimento de aplicações embarcadas.

A maior parte dos trabalhos revisados utilizam como função de custo o consumo de energia. Outros trabalhos consideram o tempo de execução da aplicação, utilização dos canais da rede e temperatura do chip, e indiretamente redução no consumo de energia de maneira proporcional. A redução no consumo de energia é de extrema relavância em ambientes MPSoC, no entanto outros problemas precisam ser atacados devido a flexibilidade de sistemas dinâmicos, que permitem a inclusão de novas funcionalidades em tempo de execução e possuem um perfil variável de execução. Assim, este trabalho utiliza como função de custo a utilização de processador e garantias de tempo real da aplicação, sendo esta uma abordagem pouco explorada nos trabalhos da área.

Segundo Zipf [89] a migração de tarefas diferencia-se do mapeamento dinâmico uma vez que no segundo novas tarefas podem ser mapeadas em tempo de execução. O autor deste trabalho discorda, pois o fato de existir um mecanismo que permita a migração de tarefas de um nodo a outro não invalida a possibilidade de existir outro mecanismo que permita a realização do mapeamento dinamicamente. Apesar do presente trabalho estar inserido na classificação migração

de tarefas, foram modelados e descritos mecanismos para a realização do mapeamento dinâmico.

O mecanismo de migração é uma contribuição significativa deste trabalho, sendo este o principal motivo da classificação utilizada.