mapeamento estÁtico de tarefas de aplicaÇÕes de tempo real ...siaibib01.univali.br/pdf/jaison...
TRANSCRIPT
JAISON VALMOR BRUCH
MAPEAMENTO ESTÁTICO DE TAREFAS DE APLICAÇÕES DE
TEMPO REAL EM SISTEMAS BASEADOS EM REDE-EM-CHIP
Itajaí (SC), fevereiro de 2015
UNIVERSIDADE DO VALE DO ITAJAÍ
CURSO DE MESTRADO ACADÊMICO EM
COMPUTAÇÃO APLICADA
MAPEAMENTO ESTÁTICO DE TAREFAS DE APLICAÇÕES DE
TEMPO REAL EM SISTEMAS BASEADOS EM REDE-EM-CHIP
por
Jaison Valmor Bruch
Dissertação apresentada como requisito parcial à
obtenção do grau de Mestre em Computação
Aplicada.
Orientador: Cesar Albenes Zeferino, Dr.
Itajaí (SC), fevereiro de 2015
MAPEAMENTO ESTÁTICO DE TAREFAS DE APLICAÇÕES DE
TEMPO REAL EM SISTEMAS BASEADOS EM REDE-EM-CHIP
JAISON VALMOR BRUCH
Fevereiro/ 2015
Orientador: Cesar Albenes Zeferino, Dr.
Área de Concentração: Computação Aplicada
Linha de Pesquisa: Sistemas Embarcados e Distribuídos
Palavras-chave: Rede-em-Chip, Tempo Real, Mapeamento de Tarefas.
Número de páginas: 111
RESUMO
A possibilidade de integrar bilhões de transistores em uma única pastilha de silício tem
permitido o desenvolvimento dos Sistemas-em-Chip. As limitações das arquiteturas de
comunicação convencionais baseadas em barramentos as tornam inadequadas para o emprego em
tais sistemas. As Redes-em-Chip se enquadram nesse contexto como uma alternativa para prover
escalabilidade e reusabilidade na comunicação. Essas redes devem oferecer suporte a aplicações
com diversos requisitos de desempenho e restrições de custo, tal como as aplicações de tempo real,
as quais requerem a execução das operações processadas em um período estrito de tempo. A
violação desses prazos pode prejudicar gravemente o funcionamento das aplicações ou até levar ao
colapso total. As Redes-em-Chip não oferecem garantias na comunicação, uma vez que as
realizações típicas dessas redes são muito suscetíveis a contenções e perda de prazos por causa do
compartilhamento de recursos. Uma maneira de prover qualidade de serviço na comunicação
baseada Redes-em-Chip do tipo melhor esforço é pela adoção de canais lógicos na forma de buffers,
os quais permitem o compartilhamento do canal físico. Com isso, na ocorrência de contenções, o
canal de comunicação pode ser utilizado por fluxos de dados destinados a regiões livres de
congestionamentos. Esses canais recebem fluxos selecionados em função de sua prioridade, sendo
que, para cada nível de prioridade há um canal lógico disponível na estrutura de comunicação.
Porém, esse esquema de provimento de qualidade de serviço pode ser muito custoso devido às
estruturas redundantes necessárias e contribui fortemente para um maior consumo de energia e área
de silício, sendo importante que sua utilização seja otimizada. Nesse sentido, o presente trabalho
investigou o provimento de qualidade de serviço em Redes-em-Chip com suporte a canais virtuais.
Para tanto, foi desenvolvida uma estrutura de experimentação composta de uma rede de tamanho
4×4 em que seus roteadores possuem até oito canais virtuais. Nessa rede, são mapeadas tarefas de
aplicações com restrições quanto ao prazo de entrega de seus fluxos de comunicação com emprego
de uma heurística baseada no algoritmo genético NSGA-II. Os resultados apresentados demonstram
a efetividade da heurística em identificar soluções de compromisso entre cumprimento de prazos,
consumo de energia e número de canais virtuais no cenário investigado.
STATIC TASK MAPPING OF REAL-TIME APPLICATIONS ON
NETWORK-ON-CHIP BASED SYSTEMS
Jaison Valmor Bruch
February/ 2015
Advisor: Cesar Albenes Zeferino, Ph.D.
Area of Concentration: Applied Computer Science
Research Line: Embedded and Distributed Systems
Keywords: Networks-on-Chip, Real-Time, Task Mapping.
Number of pages: 111
ABSTRACT
The ability to integrate billions of transistors on a single chip has led to the development of
the System-on-Chip (SoC). The limitations on conventional bus-based communication architectures
make them unsuitable for use in such systems. The Network-on-Chip (NoC) fit this context, as an
alternative for providing scalability and reusability in communication. These networks must support
applications with different performance requirements and cost constraints, such as real-time
applications, which require the execution of transactions processed in a strict time period. Failure to
adhere to these deadlines can seriously impair the operation of the applications, or even lead to total
collapse. NoC do not offer communication guarantees, since the typical achievements of these
networks are highly susceptible to contentions and missed deadlines, due to resource sharing. One
way to provide service quality of service in best-effort NoC communication is the adoption of
logical channels as buffers, which allow the physical channel to be shared. Thus, in contention
scenarios, the communication channel may be used by data flows to congestion-free regions. These
channels receive the selected flows, based on their priority, and for each priority level there is a
logical channel available in the communication structure. However, this system of providing quality
of service can be very costly, due to the redundant structures needed, and greatly increases energy
consumption and silicon area. Therefore, it is important optimize their use. This study investigates
the quality of service provision in NoC with support for virtual channels. An experimentation
structure composed of a 4 × 4 network was developed, in which the routers had up to eight virtual
channels. In this system, application tasks with deadline restrictions are mapped using a heuristic,
based on the genetic algorithm NSGA-II. The results demonstrate the effectiveness of the heuristic
to identify tradeoffs between deadlines, energy consumption, and number of virtual channels in the
investigated scenario.
LISTA DE ILUSTRAÇÕES
Figura 1. Rede direta de topologia malha 2-D ................................................................................... 20 Figura 2. Estrutura de uma mensagem ............................................................................................... 22 Figura 3. Circuito CMOS: (a) porta inversora; chaveamento para os níveis (b) baixo; e (c) alto ..... 30 Figura 4. Benefícios da análise e otimização do consumo de energia em alto nível de abstração .... 32 Figura 5. Mapeamento de duas aplicações em uma NoC malha 2-D de tamanho 3×3 ..................... 37 Figura 6. Escalonamento de tarefas ................................................................................................... 37 Figura 7. Soluções ótimas locais ........................................................................................................ 44 Figura 8. Fluxo de funcionamento de um algoritmo genético ........................................................... 47 Figura 9. Procedimento do algoritmo NSGA-II................................................................................. 48 Figura 10. Rede SoCIN de tamanho 4×4 com topologia malha 2-D ................................................. 66 Figura 11. SoCIN: (a) formato do pacote; (b) enlace; e (c) canal individual .................................... 67 Figura 12. ParIS: (a) esquemático; (b) arquitetura interna; (c) CPM para o roteamento XY ............ 68 Figura 13. Módulos do ParIS: (a) entrada; e (b) saída ....................................................................... 68 Figura 14. Formato de pacote da SoCIN-Q ....................................................................................... 70 Figura 15. Módulos replicados na SoCIN-Q: (a) entrada; e (b) saída ............................................... 71 Figura 16. Sistema baseado no roteador ParIS .................................................................................. 72 Figura 17. Enlace com sinalização de canal virtual ........................................................................... 73 Figura 18. Fluxo de avaliação de desempenho .................................................................................. 74 Figura 19. Módulo de entrada com oito canais virtuais ..................................................................... 75 Figura 20. Módulo de saída com oito canais virtuais ........................................................................ 76 Figura 21. Preempção de um canal virtual ......................................................................................... 77 Figura 22. Cromossomo para representação do mapeamento e da atribuição de prioridades ........... 81 Figura 23. Endereçamento da plataforma (a) e mapeamento de oito tarefas em (b) ......................... 82 Figura 24. Informações de descrição de tráfego ................................................................................ 83 Figura 25. Fluxo básico da heurística de mapeamento ...................................................................... 83 Figura 26. Exemplo de cromossomo indicando um mapeamento inválido ....................................... 84 Figura 27. Fluxo de avaliação dos mapeamentos .............................................................................. 85 Figura 28. Ordem de invocação das ferramentas de avaliação .......................................................... 86 Figura 29. Aplicação randômica composta de 16 tarefas .................................................................. 93 Figura 30. Avaliação do cumprimento de prazos frente à quantidade de canais virtuais .................. 94 Figura 31. Avaliação da redução na distância entre as tarefas e da concorrência nos enlaces .......... 95 Figura 32. Avaliação do cumprimento de prazos frente à quantidade de canais virtuais .................. 95 Figura 33. Cumprimento de prazos e consumo de energia estática normalizados ............................ 96
Quadro 1. Classificação dos algoritmos de roteamento ..................................................................... 23 Quadro 2. Principais características apresentadas em Carvalho et al. (2009) .................................... 51 Quadro 3. Principais características apresentadas em Tosun (2011) ................................................. 52 Quadro 4. Principais características apresentadas em Huang et al. (2011a) ...................................... 54 Quadro 5. Principais características apresentadas em Antunes et al. (2012) ..................................... 55 Quadro 6. Principais características apresentadas em Sayuti e Indrusiak (2013) .............................. 56 Quadro 7. Principais características apresentadas em Pham et al. (2013) ......................................... 57 Quadro 8. Principais características apresentadas em Bolchini et al. (2013) .................................... 59 Quadro 9. Principais características apresentadas em Quan e Pimentel (2013) ................................ 60 Quadro 10. Análise das técnicas de mapeamento .............................................................................. 61 Quadro 11. Análise das plataformas .................................................................................................. 62
Quadro 12. Análise dos ambientes de experimentação...................................................................... 63 Quadro 13. Comparação da técnica de mapeamento proposta .......................................................... 88 Quadro 14. Comparação da plataforma proposta ............................................................................... 89 Quadro 15. Comparativo do ambiente de experimentação proposto ................................................. 90
LISTA DE TABELAS
Tabela 1. Dissipação de potência dinâmica no roteador ParIS .......................................................... 77 Tabela 2. Dissipação de potência estática no roteador ParIS ............................................................. 78 Tabela 3. Potência estática para diferentes configurações do ParIS .................................................. 78 Tabela 4. Área de silício ocupada ...................................................................................................... 79 Tabela 5. Configuração dos fluxos de comunicação .......................................................................... 93 Tabela 6. Parâmetros adotados no algoritmo genético ...................................................................... 93
LISTA DE ABREVIATURAS E SIGLAS
ABS Anti-lock Breaking System
APCG Application Characterization Graph
ASIC Application Specific Integrated Circuit
BN Best Neighbor
CMOS Complementary Metal Oxide Semiconductor
CPM Crosspoint Matrix
CTG Communication Task Graph
CWM Communication Weighted Model
DAG Direct Acyclic Graph
DFS Dynamic Frequency Scaling
DSP Digital Signal Processor
DVS Dynamic Voltage Scaling
EP Elemento de Processamento
FC Fabric Controller
FFBP First-fit Bin Packing
FIFO First-In First-Out
GALS Globally Asynchronous Locally Synchronous
HLP Higher Level Protocol
IC Input Controller
IFC Input Flow Controller
ILP Integer Linear Programming
IP Intellectual Property
IRS Input Read Switch
KanGAL Kanpur Genetic Algorithms Laboratory
KPN Kahn Process Network
MJPEG Motion Joint Photographic Experts Group
MPEG Moving Picture Experts Group
MPSoC Multiprocessor System-on-Chip
MP3 MPEG Audio Layer-3
NMOS N-type Metal Oxide Semiconductor
NoC Network-on-Chip
NSGA-II Non-dominated Sorting Genetic Algorithm II
OC Output Controller
ODA Observe Decide Act
ODS Output Data Switch
OFC Output Flow Controller
OMB Optimal Mapping Database
ORB Output Rate Balancing
OWS Output Write Switch
ParIS Parameterizable Interconnection Switch
PL Path Load
PMOS P-type Metal Oxide Semiconductor
QoS Quality-of-Service
RASoC Router Architecture for System-on-Chip
RBPR Recursive BiPartition and Refining
RIB Routing Information Bit
RT Real-Time
RTL Register Transfer Level
RTPC Run-time Platform Controller
SA Simulated Annealing
SDFG Synchronous Data-Flow Graph
SDF3 Synchronous Data-Flow For Free
SoC System-on-Chip
SoCIN System-on-Chip Interconnection Network
STM Scenario-based Task Mapping
TCG Task Communication Graph
TG Traffic Generator
TGFF Task Graph For Free
TLM Transaction Level Modeling
TM Traffic Meter
TS Tabu Search
VHDL VHSIC Hardware Description Language
VHSIC Very High Speed Integrated Circuits
SUMÁRIO
1 INTRODUÇÃO .................................................................................... 11
1.1 PROBLEMA DE PESQUISA........................................................................... 13
1.1.1 Solução Proposta ............................................................................................. 14
1.1.2 Delimitação de Escopo .................................................................................... 14
1.2 OBJETIVOS ...................................................................................................... 14
1.2.1 Objetivo Geral ................................................................................................. 15
1.2.2 Objetivos Específicos ...................................................................................... 15
1.3 METODOLOGIA .............................................................................................. 15
1.3.1 Metodologia da Pesquisa ................................................................................ 15
1.3.2 Procedimentos Metodológicos ........................................................................ 15
1.4 ESTRUTURA DA DISSERTAÇÃO ................................................................ 16
2 FUNDAMENTAÇÃO TEÓRICA ...................................................... 17
2.1 ARQUITETURAS DE COMUNICAÇÃO PARA SOCS .............................. 17
2.2 REDES-EM-CHIP ............................................................................................. 19
2.2.1 Arquitetura de Redes-em-Chip ..................................................................... 19
2.2.2 Mecanismos de comunicação ......................................................................... 21
2.3 CONSUMO DE ENERGIA .............................................................................. 28
2.3.1 Fontes de consumo de energia ....................................................................... 28
2.3.2 Técnicas para redução do consumo de energia ............................................ 31
2.3.3 Economia de energia em NoCs ...................................................................... 32
2.4 SISTEMAS DE TEMPO REAL ....................................................................... 33
2.4.1 Comunicação RT em NoCs com chaveamento wormhole ........................... 34
2.5 MAPEAMENTO DE TAREFAS ..................................................................... 35
2.5.1 Escalonamento de tarefas ............................................................................... 37
2.5.2 Classificação das técnicas de mapeamento ................................................... 38
2.5.3 Modelos relevantes para mapeamento de tarefas ........................................ 40
2.5.4 Técnicas para o mapeamento de tarefas em NoCs ...................................... 43
2.6 CONSIDERAÇÕES .......................................................................................... 49
3 TRABALHOS RELACIONADOS .................................................... 50
3.1 COMPARATIVO ENTRE TÉCNICAS ESTÁTICAS E DINÂMICAS ..... 50
3.2 HEURÍSTICA PARA O MAPEAMENTO E ROTEAMENTO................... 51
3.3 MAPEAMENTO BASEADO EM PROGRAMAÇÃO LINEAR ................. 52
3.4 EXPLORAÇÃO DO PARTICIONAMENTO DE TAREFAS ..................... 54
3.5 MAPEAMENTO PARA SISTEMAS DE TEMPO REAL ........................... 55
3.6 MAPEAMENTO HÍBRIDO EM PLATAFORMAS HETEROGÊNEAS .. 56
3.7 MAPEAMENTO PARA OTIMIZAÇÃO DA CONFIABILIDADE ........... 58
3.8 MAPEAMENTO EM MPSOCS BASEADOS EM BARRAMENTO .......... 59
3.9 ANÁLISE COMPARATIVA............................................................................ 61
3.10 CONSIDERAÇÕES .......................................................................................... 63
4 MAPEAMENTO DE TAREFAS NA REDE SOCIN ...................... 65
4.1 ESTRUTURA BASE ......................................................................................... 65
4.1.1 Rede SoCIN ...................................................................................................... 65
4.1.2 A rede SoCIN-Q .............................................................................................. 69
4.1.3 O Simulador da SoCIN ................................................................................... 71
4.2 ADEQUAÇÕES REALIZADAS ...................................................................... 73
4.3 MAPEAMENTO DE TAREFAS ..................................................................... 79
4.3.1 Comparação com trabalhos relacionados ..................................................... 88
4.3.2 Plataforma proposta ....................................................................................... 89
4.3.3 Ambiente de experimentação ......................................................................... 90
5 RESULTADOS .................................................................................... 91
5.1 IMPLEMENTAÇÕES ...................................................................................... 91
5.2 EXPERIMENTO ............................................................................................... 91
5.3 DISCUSSÃO ...................................................................................................... 96
6 CONCLUSÕES .................................................................................... 98
6.1 CONTRIBUIÇÕES DA DISSERTAÇÃO ...................................................... 99
6.2 TRABALHOS FUTUROS ................................................................................ 99
REFERÊNCIAS ..................................................................................... 100
APÊNDICE A – REVISÃO SISTEMÁTICA ..................................... 108
11
1 INTRODUÇÃO
O avanço na tecnologia de fabricação de semicondutores tem permitido a integração de
bilhões de transistores em uma única pastilha de silício. Como exemplos notórios, podem ser
citados o processador Itanium1, o qual é composto por mais de dois bilhões transistores, e ainda o
console Xbox One2que possui em seu sistema cinco bilhões de transistores (SELL; O’CONNOR,
2014; STACKHOUSE et al., 2008).
Tamanha densidade de integração tem possibilitado o desenvolvimento dos SoCs (Systems-
on-Chip). Um SoC é um circuito integrado que implementa a maioria ou todas as funcionalidades
de um sistema eletrônico completo. Seus componentes variam conforme a aplicação, podendo
conter memórias, processadores, hardware dedicado, estrutura de comunicação, além de outras
funções digitais (JERRAYA; WOLF, 2005, p. 2).
Devido ao aumento na quantidade de componentes nos SoCs, o projeto da arquitetura de
comunicação passa a desempenhar um papel fundamental, influenciando fortemente na definição da
área de silício ocupada, no desempenho e no consumo de energia do sistema como um todo
(MARCULESCU et al., 2009).
A arquitetura de comunicação adotada em SoCs compostos de elevada quantidade de
componentes deve atender a uma série de requisitos, tal como a escalabilidade para lidar com a
crescente demanda por desempenho. Também é necessário o suporte à qualidade de serviço ou QoS
(Quality-of-Service), uma vez que sistemas heterogêneos vão requerer múltiplos modos de operação
com variados requisitos de tempo de resposta. As Redes-em-Chip ou NoCs (Networks-on-Chip)
correspondem apropriadamente às demandas desse tipo complexo de sistema (PASRICHA; DUTT,
2008, p. 440).
Uma NoC é uma arquitetura de comunicação semelhante àquela usada em computadores
paralelos. Ela se baseia em ligações ponto-a-ponto chaveadas por meio de roteadores e apresenta
boas características quanto ao paralelismo, consumo de energia, frequência de operação,
escalabilidade e reusabilidade (ZEFERINO, 2003, p. 67).
1 Itanium é marca registrada pertencente à Intel Corporation.
2 Xbox One é marca registrada pertencente à Microsoft Corporation.
12
No contexto dos SoCs, as NoCs desempenham o papel de plataforma de integração,
permitindo que múltiplas aplicações realizem o processamento de dados e a troca de informações
em paralelo. Como tal, elas devem oferecer diferentes níveis de serviços para diversas aplicações
que podem coexistir na mesma rede. Inclusive aqueles em que há um limite de tempo para serem
realizados, ou seja, serviços de tempo real ou RT (Real-Time) (SHI, 2009 p. 18).
Dentre as categorias de sistemas de tempo real, há aquela em que a resposta deve
obrigatoriamente ocorrer em um intervalo estrito de tempo, o qual é denominado prazo (do inglês
deadline). Esses são conhecidos como sistemas RT críticos. O não cumprimento de prazos em
aplicações desse tipo pode causar efeitos catastróficos (BURNS; WELLINGS, 2009 p. 3). Como
exemplos de tais sistemas podem ser citados os mecanismos de controle de aeronaves, os sistemas
de proteção antimíssil, os sistemas de controle de freios ABS (Anti-lock Breaking System), entre
outros.
Para prover comunicação RT em SoCs, os serviços oferecidos devem apresentar
comportamento previsível. Essa é uma condição essencial na garantia das restrições de tempo.
Porém, em NoCs, é comum a ocorrência de contenções devido à competição por recursos
compartilhados, tal como canais de comunicação e espaço em memória. Isso acarreta atrasos na
entrega de pacotes e possivelmente a perda de prazos. A promoção de comunicação RT em NoCs
pode ser realizada com o uso de mecanismos de arbitragem baseados em prioridades e controle de
fluxo com suporte a canais virtuais. Nessa abordagem, a quantidade de canais virtuais é
proporcional ao número de prioridades e cada fluxo de comunicação possui um determinado nível
de prioridade que indica o canal virtual a ser utilizado (SHI; BURNS; INDRUSIAK, 2012).
Outra questão relevante no desenvolvimento de sistemas baseados em NoCs é o consumo de
energia, uma vez que parte substancial da potência total dissipada nesses sistemas decorre dos
mecanismos de interconexão. Diversas técnicas podem ser adotadas visando a economia de energia
em NoCs, sendo elas aplicadas desde o nível de microarquitetura até o nível de sistema. O
mapeamento de tarefas, por exemplo, pode ser realizado de modo a minimizar a quantidade de
roteadores e canais entre os elementos comunicantes. Uma vez que a energia total consumida
durante a transferência de dados é proporcional à distância entre os nodos fonte e destino, a
comunicação entre elementos próximos requer menor quantidade de energia (LEE;
BAGHERZADEH, 2009, p. 260).
13
A adoção de canais virtuais para provimento de qualidade de serviço incorre em custo
adicional em área de silício e consumo de energia, devido aos mecanismos necessários à sua
implementação. Por isso, é importante encontrar uma configuração que respeite os requisitos de
comunicação e minimize a quantidade de recursos empregados para este fim. Encontrar soluções
que satisfaçam essas restrições é muito difícil, sendo que métodos heurísticos são empregados para
buscar soluções quase ótimas (SINGH et al. 2013).
As heurísticas baseadas na emulação dos mecanismos de seleção natural estão entre as mais
populares no tratamento de problemas que envolvem a otimização de duas ou mais métricas, as
quais geralmente são conflitantes entre si. Para esse tipo de problema, composto por múltiplos
objetivos, não há apenas uma solução viável, pelo contrário, existe um conjunto de soluções que
apresentam um bom compromisso entre as métricas otimizadas. Tais soluções também são
conhecidas como fronteiras de Pareto (COELLO, 2006).
1.1 PROBLEMA DE PESQUISA
Conforme já discutido, uma técnica para atender a requisitos de tempo de entrega de fluxos
de dados RT críticos em uma NoC, consiste em atribuir níveis de prioridades diferentes para os
fluxos de modo que a rede privilegie os fluxos de maior prioridade. A diferenciação dos fluxos é
então feita por meio da implementação de canais virtuais dedicados para cada nível de prioridade.
Esses canais virtuais compreendem a canais lógicos que compartilham um canal físico, quando dois
ou mais canais virtuais concorrem pelo canal físico, um mecanismo de escalonamento assegura que
os canais virtuais de maior prioridade utilizem o canal físico primeiro.
Ocorre que cada canal virtual é composto de elementos de memorização conhecidos como
buffers FIFO e, conforme já reportado em Chen e Pinkston (2012), tais buffers são responsáveis
pela maior parte do consumo de energia de uma NoC. Portanto, a adoção de canais virtuais tem
forte impacto no consumo de energia.
Nesse contexto, o presente trabalho investiga como realizar o posicionamento de tarefas de
aplicações com requisitos de tempo real em SoCs baseados em NoCs. De modo que sejam
encontradas boas soluções compromisso ou tradeoffs entre o cumprimento de prazos, consumo de
energia e a quantidade de canais virtuais implementados.
14
Dessa forma, o trabalho se propôs a responder a seguinte pergunta de pesquisa:
Qual é o melhor tradeoff entre garantia de prazos, consumo de energia e quantidade
de canais virtuais?
1.1.1 Solução Proposta
A solução proposta para o problema apresentado anteriormente consistiu no emprego de
uma heurística de mapeamento de tarefas multiobjetivo baseada no algoritmo genético NSGA-II
(Non-dominated Sorting Genetic Algorithm II). Essa heurística foi adotada na identificação de
mapeamentos que apresentem um bom compromisso entre a garantia de prazos, consumo de energia
e a quantidade de canais virtuais utilizados pela arquitetura de comunicação.
Como hipóteses, são apresentadas as seguintes afirmações:
Uma vez que o objetivo principal é o cumprimento de prazos, a redução no consumo
de energia será mínima; e
Se a garantia de atendimento de prazos for relaxada a economia de energia será
maior.
1.1.2 Delimitação de Escopo
Neste trabalho, foi adotado o mapeamento estático de tarefas em que todas as aplicações são
conhecidas em tempo de projeto. Ou seja, não foi considerado o mapeamento dinâmico feito em
tempo de execução. Além disso, foram considerados somente sistemas homogêneos, otimizando-se
apenas o comportamento de comunicação na rede. Ou seja, não foram tratadas questões
relacionadas ao processamento das tarefas. Além disso, foram adotados elementos de
processamento monotarefa, com a emulação de núcleos capazes de processar apenas uma tarefa de
cada vez.
1.2 OBJETIVOS
15
1.2.1 Objetivo Geral
Explorar o mapeamento de tarefas em SoCs baseados em NoCs visando garantir o
cumprimento de prazos e a redução do consumo de energia e da quantidade de canais virtuais.
1.2.2 Objetivos Específicos
1. Identificar como o mapeamento de tarefas pode ser aplicado de modo a promover a
economia de energia em NoCs; e
2. Aplicar e avaliar uma heurística de mapeamento de tarefas que seja capaz de identificar
tradeoffs entre o consumo de energia, a quantidade de canais virtuais e o cumprimento
de prazos dos fluxos de comunicação.
1.3 METODOLOGIA
1.3.1 Metodologia da Pesquisa
Este trabalho adota o método hipotético-dedutivo, pois buscou a solução de um problema
com base na formulação de hipóteses. Esta pesquisa também se caracteriza como aplicada, uma vez
que a confirmação ou a refutação das hipóteses propostas é feita com base nas investigações
realizadas. Quanto à abordagem, a pesquisa enquadra-se como quantitativa, pois foram aferidas
métricas geradas pelo ferramental de experimentação. Por fim, este trabalho classifica-se como
qualitativo devido à necessidade de interpretação dos resultados gerados.
1.3.2 Procedimentos Metodológicos
O processo de pesquisa adotado neste trabalho focou primeiramente em uma revisão
bibliográfica das publicações mais recentes sobre o mapeamento de tarefas em NoCs com vistas a
redução no consumo de energia. A fundamentação teórica por sua vez está baseada em pesquisas na
literatura consolidada a respeito dos assuntos tratados. Foram adotados como referência artigos
publicados em veículos reconhecidos pela comunidade científica, livros, teses de doutorado e
dissertações de mestrado. Além disso, foram consultados pesquisadores atuantes na área do tema
investigado. Os experimentos realizados basearam-se em modelos de roteador descritos em VHDL
(VHSIC Hardware Description Language) e SystemC. As ferramentas de avaliação de desempenho
16
e a heurística de otimização foram implementadas em linguagem C. Foram empregadas ainda
ferramentas de simulação e síntese para tecnologias de circuitos integrados do tipo CMOS
(Complementary Metal Oxide Semiconductor).
1.4 ESTRUTURA DA DISSERTAÇÃO
Este documento está organizado em 6 capítulos. No capítulo introdutório, foi apresentado de
modo geral o contexto relacionado ao tema de pesquisa aqui proposto. Foram discutidos o problema
abordado e a solução aplicada ao mesmo, incluindo a definição de objetivos e a metodologia
adotada nas pesquisas.
O Capítulo 2 apresenta os conceitos base para o desenvolvimento desta pesquisa. Tratando
inicialmente das arquiteturas de comunicação para SoCs, as arquiteturas usuais baseadas em
barramentos e na sequência as NoCs. As quais se justificam devido aos problemas associados às
abordagens convencionais. O consumo de energia e os sistemas RT também são discutidos nesse
capítulo o qual possui como tema principal o mapeamento de tarefas.
O Capítulo 3 descreve os trabalhos relacionados. São discutidas as técnicas adotadas
atualmente no mapeamento de tarefas com vistas à redução do consumo de energia. Apresenta-se
nesse capítulo um trabalho por seção, ao final de cada uma dessas há um quadro resumo contendo
as principais características identificadas. As duas últimas seções, por sua vez, comportam uma
análise comparativa entre todos os trabalhos e as considerações finais do capítulo.
O Capítulo 4 traz a descrição da abordagem aplicada na solução do problema alvo dessa
dissertação. Esse capítulo inicia com uma breve descrição da NoC em que foram realizados os
experimentos, as customizações aplicadas, as ferramentas auxiliares e demais definições relevantes.
O Capítulo 5 apresenta os resultados obtidos no desenvolvimento deste trabalho, são
descritas as implementações, o processo de avaliação e ainda uma discussão a respeito dos
resultados obtidos.
O Capítulo 6 apresenta as conclusões, as contribuições e uma série de sugestões para
trabalhos futuros.
17
2 FUNDAMENTAÇÃO TEÓRICA
Este capítulo apresenta os conceitos relacionados ao assunto central tratado neste trabalho.
São abordados temas correlatos ao mapeamento de tarefas em SoCs que adotam NoCs como
estrutura de comunicação, enfatizando questões ligadas ao consumo de energia e à garantia de
prazos em aplicações de tempo real.
2.1 ARQUITETURAS DE COMUNICAÇÃO PARA SOCS
A exploração do espaço de projeto de SoCs inclui duas dimensões principais: (i) mapear os
requisitos de computação aos EPs (Elementos de Processamento); e (ii) selecionar a arquitetura de
comunicação que ofereça os requisitos adequados às necessidades de tráfego de dados geradas pela
aplicação (LAHIRI; RAGHUNATHAN; DEY, 2001).
Até os anos 90 a arquitetura de comunicação padrão para SoCs foi baseada em barramentos
compartilhados e, ainda hoje, tem sido adotada em muitos sistemas. Esse é um modelo de
comunicação simples, bem conhecido, que apresenta baixa latência a partir do momento que a
conexão entre os componentes comunicantes esteja estabelecida. Além disso, é reutilizável em
função do conjunto de componentes compatíveis que foram desenvolvidos ao longo dos anos
(COTA; AMORY; LUBASZEWSKI, 2012 p. 3).
As principais características para classificação de arquiteturas de comunicação baseadas em
barramentos são (PASRICHA; DUTT, 2008, p. 18):
Topologia: a organização topológica de SoCs baseados em barramentos pode ser
realizada de diferentes maneiras. No barramento único compartilhado, todos os
componentes do sistema são conectados ao mesmo canal de comunicação. Com o
barramento do tipo hierárquico, múltiplos canais coexistem no sistema, sendo que a
interconexão entre esses é realizada por elementos denominados pontes. A interface
entre barramentos também pode ser baseada em buffers tri-state, ao que se denomina
barramento dividido. Além disso, sistemas que demandam elevado desempenho e
paralelismo podem adotar a topologia ponto-a-ponto, na qual há canais dedicados
para comunicação entre os componentes do sistema;
18
Tipo de sinalização: os principais tipos de sinais empregados na comunicação por
barramento são os de endereço, dados e controle. Os sinais de endereço indicam em
qual componente será realizada uma operação de leitura ou escrita. Os sinais de dados
transmitem informações, os sinais de controle por sua vez, indicam características dos
dados transportados;
Sincronismo: quando as operações realizadas no barramento são sincronizadas por
um sinal de relógio (ou clock) configura-se um barramento do tipo síncrono, do
contrário o barramento é assíncrono. O barramento síncrono possibilita transferências
mais rápidas, isso se deve à simplicidade do protocolo de comunicação; e
Protocolos: os protocolos definem principalmente os esquemas de arbitragem e de
transferência de dados. A arbitragem resolve disputas pelo uso do barramento, ela
deve permitir que todos os componentes tenham a oportunidade de utilizar o canal e
ainda, que transferências críticas sejam realizadas o mais rápido possível. Os
esquemas de transferência de dados definem como ocorre a troca de informações
entre os componentes do barramento. Os principais tipos são: transferência simples,
em pipeline, em rajada, fora de ordem, dividida e broadcast.
O sucesso no desenvolvimento de SoCs complexos requer experiência em diversas áreas da
tecnologia de microeletrônica, entre elas, o processamento de sinais, a criptografia, e o projeto de
blocos analógico e de rádio frequência. Devido à dificuldade em concentrar tais habilidades em uma
única empresa, tem sido adotado um processo de desenvolvimento horizontal, no qual diversas
companhias colaboram na criação de um mesmo produto. Isso é possível graças à utilização de
blocos previamente projetados e verificados ao que se denominam núcleos ou IPs (Intelectual
Property) (GUPTA; ZORIAN, 1997).
Com o incremento na quantidade de núcleos integrados nos SoCs, torna-se evidente a
inadequação das arquiteturas baseadas em barramentos no fornecimento dos requisitos de
comunicação a esses sistemas. Pois é cada vez mais difícil garantir as restrições de tempo,
qualidade de serviço, largura de banda e consumo de energia (COTA; AMORY; LUBASZEWSKI,
2012, p. 11).
Os problemas associados aos barramentos compreendem questões físicas como o crosstalk,
a interferência eletromagnética e a indução de carga por radiação. Também apresentam problemas
19
com sincronismo, uma vez que os futuros SoCs utilizarão o modelo GALS (Globally Asynchronous
Locally Synchronous), abrangendo múltiplos domínios de relógio, e nas arquiteturas baseadas em
barramento todos os módulos conectados devem situar-se no mesmo domínio de clock. Além
desses, há problemas com o gerenciamento de tráfego, ao qual o barramento compartilhado oferece
apenas suporte rudimentar, devido ao esquema de arbitragem simplificado (KOGEL; LEUPERS;
MEYR, 2006, p. 25).
Outra limitação crítica dos barramentos compartilhados é a ineficiência energética, pois as
transferências de dados são realizadas por difusão, ou seja, os dados devem atingir todos os
possíveis receptores, causando grande consumo de energia (BENINI; DE MICHELI, 2002).
Buscando superar as limitações dos barramentos, as comunidades científica e industrial
identificaram como alternativa as arquiteturas de comunicação chaveadas por meio de roteadores
conhecidas como NoCs (ZEFERINO, 2003, p. 26).
2.2 REDES-EM-CHIP
O paradigma de comunicação intrachip baseado em NoCs permite o desenvolvimento de
arquiteturas de comunicação altamente escaláveis, pois os núcleos são conectados à rede por meio
de canais curtos e interfaces padronizadas. A modularidade das NoCs também oferece grande
potencial para o reuso de componentes. Uma vez que, os núcleos IP desenvolvidos para operar em
barramentos podem ser utilizados em NoCs, bastando para isso, a adaptação da interface entre esses
e a arquitetura de comunicação. Além disso, devido à natureza estrutural dos fios em uma NoC,
seus parâmetros elétricos são mais facilmente controlados e otimizados (OGRAS; MARCULESCU,
2013, p. 3).
2.2.1 Arquitetura de Redes-em-Chip
A arquitetura de uma NoC define a topologia e sua organização física, ela opera de acordo
com protocolos que determinam o chaveamento, o roteamento e o controle de fluxo. A escolha de
uma determinada arquitetura e protocolos é realizada visando cumprir restrições, tais como
desempenho, consumo de energia, confiabilidade, escalabilidade e custo de implementação
(BENINI; DE MICHELI, 2006, p. 23).
20
A topologia de uma NoC especifica o modo como os núcleos, roteadores e canais são
conectados entre si. Pode ser classificada em três categorias: redes diretas, redes indiretas e redes
irregulares (PASRICHA; DUTT, 2008, p. 443), as quais são definidas a seguir.
2.2.1.1 Redes Diretas
Nas redes diretas todos os núcleos possuem um roteador integrado para manipular a
comunicação com os demais núcleos. Em geral, dois núcleos vizinhos são interconectados por um
par de canais unidirecionais. As topologias malha, toróide, toróide dobrado, hipercubo e octógono
são exemplos populares desse tipo de arquitetura (NI, 1996; PASRICHA; DUTT, 2008, p. 444).
A Figura 1, ilustra um exemplo de rede direta de topologia malha 2-D com tamanho 3×3, em
destaque na figura, estão os elementos “Roteador” e “Núcleo”, dos quais todos os demais nodos da
rede são compostos.
Figura 1. Rede direta de topologia malha 2-D
2.2.1.2 Redes Indiretas
Nas redes indiretas a comunicação entre os núcleos de processamento é realizada por uma
rede de roteadores geralmente organizada em uma topologia regular de múltiplos níveis. Nesse tipo
de rede o nodo realiza apenas a função de roteador ou de terminal, diferentemente das redes diretas
em que ambas as funções são desempenhadas pelo mesmo nodo. Alguns exemplos clássicos são as
redes de topologias crossbar e multiestágio (DALLY; TOWLES, 2004, p. 47; ZEFERINO, 2003, p.
34; NI, 1996).
2.2.1.3 Redes Irregulares
As redes irregulares, também conhecidas como ad hoc, combinam características das
arquiteturas do tipo barramento compartilhado com as arquiteturas de redes diretas e indiretas,
Roteador
Núcleo
21
buscando com isso o desenvolvimento de uma arquitetura otimizada para uma aplicação específica
(PASRICHA; DUTT, 2008, p. 447).
2.2.2 Mecanismos de comunicação
As NoCs empregam um modelo de comunicação baseado em troca de mensagens, ou seja,
os núcleos acoplados aos seus terminais se comunicam enviando e recebendo mensagens. Os
mecanismos que implementam esse modelo são: o roteamento, o chaveamento, o controle de fluxo,
a memorização e arbitragem (ZEFERINO; SANTO; SUSIN, 2004).
As mensagens que trafegam em uma NoC são segmentadas em pacotes os quais são
divididos em unidades menores denominadas flits (flow control unit). O flit é a menor unidade sob a
qual se realiza o controle de fluxo.
Um pacote é composto de flits de cabeçalho, de carga útil e de terminação. O flit de
cabeçalho transporta informações necessárias ao roteamento. É com base nessas informações que os
roteadores no trajeto do pacote alocam canais para seu encaminhamento em direção ao destinatário.
Já o flit terminador, por sua vez sinaliza aos roteadores que os recursos alocados podem ser
liberados. Os flits intermediários compõem a carga útil, sua função é permitir o transporte de
informações (DALLY; TOWLES, 2004, p. 224; JERGER; PEH, 2009, p. 59; ZEFERINO; SANTO;
SUSIN, 2004).
A Figura 2 ilustra a estrutura de uma mensagem e suas subdivisões: a mensagem composta
por pacotes, os quais são subdivididos em flits que por sua vez compreendem a um conjunto de
phits (physical channel unit). O phit consiste na quantidade de bits transferidos simultaneamente
pelo canal (ou seja, a largura do canal).
22
Figura 2. Estrutura de uma mensagem
2.2.2.1 Roteamento
O método de roteamento determina o caminho a ser utilizado por uma mensagem para
trafegar de um nodo fonte a um nodo destino. Um bom algoritmo de roteamento favorece o
balanceamento de carga dos canais de comunicação da rede. Além disso, o roteamento deve manter
as rotas tão curtas quanto possível, reduzindo o número de nodos intermediários e a latência média
na entrega de mensagens. Além disso, em sistemas com alta demanda por confiabilidade é
importante a capacidade de manter o funcionamento mesmo na ocorrência de faltas. Nesses casos a
técnica de encaminhamento de pacotes precisa se adaptar às condições da rede (DALLY;
TOWLES, 2004, p. 159).
Os algoritmos de roteamento podem ser classificados de acordo com uma série de critérios
resumidamente descritos no Quadro 1. Uma das classificações se refere ao número de destinos aos
quais os pacotes podem ser enviados, as alternativas são unicast (apenas um destino) e multicast
(múltiplos destinos possíveis).
Quanto ao local onde são tomadas as decisões de roteamento existem quatro alternativas, a
primeira abordagem é a centralizada, na qual um controle único define o caminho a ser tomado
pelos pacotes. Na segunda abordagem a rota é estabelecida antes de o pacote ser injetado na rede,
ao que se chama roteamento na fonte. O roteamento distribuído, por sua vez, define o trajeto dos
pacotes enquanto eles são encaminhados, pois cada roteador decide se envia o pacote ao nodo local
ou para algum nodo vizinho. Na quarta abordagem, denominada multi-fase, os destinos são
definidos na fonte e os caminhos entre os destinos são estabelecidos de modo distribuído.
Mensagem
Pacote
Flit
Phit
Phits
terminadorcabeçalho
Flit
Pacote
carga útil
23
Quadro 1. Classificação dos algoritmos de roteamento
Critério Alternativas Definição
Número de destinos Unicast Os pacotes podem ter apenas um destinatário
Multicast Os pacotes são entregues para diversos destinatários
Tomada de decisão
Centralizada O caminho é decidido por um controle central
Fonte Estabelece a rota antes de injetar o pacote na rede
Distribuído O caminho é determinado de forma distribuída,
enquanto o pacote trafega pela rede
Multi-fase O nodo fonte indica alguns destinos e o caminho
entre eles é estabelecido de forma distribuída
Implementação
Tabela A rota é pré-definida em uma tabela de roteamento
Máquina de estados O algoritmo de roteamento é descrito em hardware ou
software baseando-se em máquina de estados
Adaptabilidade
Determinístico Sempre indica o mesmo caminho entre um
determinado nodo fonte e destino
Adaptativo Emprega informações do estado da rede para evitar
regiões congestionadas ou que estão em falha
Fonte: Duato e Yalamanchili (2003, p. 140).
Em relação à forma de implementação os algoritmos de roteamento podem ser baseados em
tabelas ou em máquina de estados. No primeiro caso cada nodo possui uma tabela de roteamento
com a quantidade de entradas equivalente à quantidade de nodos na rede, sendo que tal abordagem
é adequada para topologias irregulares. Por outro lado, a abordagem baseada em máquina de
estados é adotada em topologias de redes que podem ser decompostas em dimensões ortogonais,
facilitando a derivação do algoritmo de roteamento em uma máquina de estados finitos.
No que diz respeito à adaptabilidade o algoritmo de roteamento pode ser determinístico ou
adaptativo. O algoritmo que sempre indica a mesma rota entre um par de nodos fonte e destino é
denominado determinístico. Em contrapartida, os algoritmos adaptativos utilizam informações de
tráfego e ocupação dos canais para evitar regiões congestionadas ou com algum tipo de falta. Tais
algoritmos são classificados quanto à progressividade, minimalidade e número de caminhos. Em um
algoritmo adaptativo progressivo, os pacotes se movimentam sempre em direção ao destino. No
caso de um algoritmo regressivo, é possível que os pacotes recuem para evitar áreas em contenção.
Em relação à minimalidade, em um algoritmo adaptativo mínimo, o roteamento contém apenas
rotas que aproximam os pacotes do destino. Em um algoritmo não mínimo, para evitar regiões
problemáticas, é permitido o emprego de rotas que afastam os pacotes do destino. Por fim, os
algoritmos adaptativos podem ser do tipo completo, quando todos os caminhos possíveis podem ser
24
utilizados, ou do tipo parcial, quando algumas rotas são proibidas (DUATO; YALAMANCHILI;
NI, 2003, p. 141-145).
2.2.2.2 Chaveamento
A técnica de chaveamento determina quando e como as chaves internas de um roteador são
conectadas para permitir que mensagens sejam transferidas de suas portas de entrada para as portas
de saída. O chaveamento pode ser por circuito ou por pacotes. No chaveamento por circuito
reserva-se um caminho entre o nodo emissor e o nodo receptor. Já no chaveamento por pacotes as
mensagens são fragmentadas e transmitidas em unidades menores, as quais são denominadas
pacotes. São três as técnicas mais populares de chaveamento por pacotes: (i) armazena e repassa
(store-and-forward), (ii) transpasse virtual (virtual cut-through) e (iii) wormhole (DUATO;
YALAMANCHILI; NI, 2003, p. 43; ZEFERINO, 2003, p. 39).
Na técnica de chaveamento store-and-forward os pacotes que trafegam pela rede são
divididos em flits e, para seu encaminhamento o roteador precisa armazenar todos os flits que o
compõem e então direcioná-los ao próximo roteador. Para isso, o canal de saída deve estar
disponível e o roteador vizinho deve possuir espaço suficiente em buffer para armazenar todo o
pacote. Portanto, os roteadores precisam de buffers com capacidade proporcional ao tamanho
máximo de um pacote. Tal restrição torna essa técnica de chaveamento inadequada para emprego
em NoCs (KOIBUCHI; MATSUTANI, 2009, p. 67).
O chaveamento do tipo virtualcut-through se assemelha à técnica store-and-forward por
alocar buffers e largura de banda em unidades de pacotes. Porém, nessa técnica, o pacote é
conduzido adiante logo que o primeiro flit (o cabeçalho) é recebido e os recursos necessários já
estão disponíveis no próximo roteador. Neste caso não é necessário aguardar o recebimento
completo, o que reduz sua latência. Apesar disso, não é comum o emprego dessa técnica em NoCs
pois assim como a técnica store-and-foreward, também requer grande quantidade de espaço em
buffer para manter pacotes em caso de contenção na rede (DALLY; TOWLES, 2004, p. 235).
Na técnica de chaveamento wormhole, os flits que compõem os pacotes podem partir do
nodo atual no instante em que haja espaço em buffer suficiente para armazenar ao menos um flit no
próximo nodo. Portanto, largura de banda e espaço de armazenamento são alocados em unidades de
flits ao invés de pacotes, isso possibilita o emprego de buffers com baixa capacidade de
25
armazenamento, mesmo para pacotes grandes. Entretanto, nessa técnica de chaveamento os canais
são subutilizados, pois quando não há espaço em buffer para um ou mais flits o canal associado se
mantém bloqueado, impedindo que flits de outros pacotes sejam encaminhados (JERGER; PEH,
2009, p. 64).
2.2.2.3 Controle de Fluxo
Quando um pacote é impedido de prosseguir pela rede devido ao recurso desejado estar
ocupado, ele pode ser descartado, bloqueado, armazenado ou encaminhado para outro canal do
roteador. A política de controle de fluxo trata essas questões, pois ela define a alocação de canais e
buffers para os pacotes e, se for eficiente, pode reduzir a congestão dos canais e a latência (NI;
MCKINLEY, 1993). A seguir serão descritas algumas técnicas de controle de fluxo comumente
adotadas em NoCs.
O controle de fluxo baseado em canais virtuais associa ao canal físico uma série de buffers
de entrada denominados canais virtuais. Isso possibilita superar o problema de bloqueio que ocorre
no chaveamento wormhole, permitindo que outros pacotes utilizem o canal que ficaria ocioso no
caso de disputa por recursos (DALLY; TOWLES, 2004, p. 239).
No controle de fluxo baseado em créditos o pacote é autorizado a deixar o emissor somente
se o receptor possuir espaço disponível em buffer para seu armazenamento. Um contador de
créditos na interface do emissor monitora a quantidade de posições livres no receptor, esse
contador é inicializado com um valor equivalente à capacidade de armazenamento disponível no
destino e, a cada pacote enviado esse contador é decrementado. Em contrapartida, sempre que o
receptor libera uma posição em seu buffer de entrada, um crédito é enviado ao emissor que
incrementa o seu o contador de créditos. Um problema associado com essa técnica é o consumo de
banda da rede pelos sinais de controle de créditos (PASRICHA; DUTT, 2008, p. 457).
Esse problema pode ser minimizado pelo controle de fluxo On/Off, uma vez que utiliza-se
apenas um bit para determinar se é permitido ao emissor enviar dados (On) ou se não é permitido
(Off). O sinal de controle é emitido somente quando necessário realizar mudança de estado. Ou seja,
um sinal Off é enviado quando o controle está On e o número de posições disponíveis nos buffers
está abaixo de um determinado valor limite. Isso instrui o emissor a parar de emitir pacotes ao
receptor. Por outro lado, se o bit de controle está Off e a quantidade de espaço disponível para
26
armazenamento é superior ao valor limite, então o controle muda para On, autorizando o emissor a
reiniciar o encaminhamento de pacotes (DALLY; TOWLES, 2004, p. 247).
No controle de fluxo ACK/NACK não se utiliza sinais para indicar a disponibilidade de
espaço livre nos buffers. Os nodos simplesmente enviam flits pela rede e aguardam uma resposta de
confirmação (ACK) ou de não confirmação (NACK) de recebimento por parte do nodo receptor. O
nodo emissor, por sua vez, mantém uma cópia dos flits encaminhados em seu buffer local e, ao
receber um ACK a cópia é excluída. Porém, ao receber um NACK o flit é retransmitido
(BERTOZZI, 2006, p. 134).
No controle de fluxo handshake o emissor sinaliza a necessidade de enviar informações a
um nodo receptor habilitando um sinal de validação. Em contrapartida, o receptor confirma a
capacidade de receber os flits que compõem o dado a ser transferido ativando um sinal de
reconhecimento (acknowledgement) (ZEFERINO, 2003, p. 127).
2.2.2.4 Memorização
A técnica de memorização diz respeito à implementação de locais de armazenamento
temporário nos roteadores da rede. Isso é necessário para manter os pacotes enquanto eles estão
sendo encaminhados ou aguardam o encaminhamento aos seus destinatários.
Essa técnica tem forte impacto na vazão da rede e influencia no compartilhamento eficiente
da largura de banda do canal de comunicação. Isso ocorre porque o roteador que utiliza
chaveamento por pacotes deve ser capaz de armazenar aqueles que são destinados a saídas que já
ocupadas e posteriormente realizar o controle de fluxo, evitando com isso a perda de dados
(JERGER; PEH, 2009, p. 81; ZEFERINO, 2003, p. 44).
A memorização pode ser feita de modo centralizado, por buffers compartilhados, ou de
modo independente, com buffers nas entradas ou nas saídas do roteador. A primeira opção apresenta
uma série restrições, pois essa abordagem pode resultar em perda de desempenho no caso de uma
única porta de saída esgotar o espaço de memorização, impedindo todas as demais comunicações.
Além disso, é difícil alocar recursos para pacotes de tamanhos variados. Com a memorização nas
saídas, por sua vez, os buffers precisam de tantas portas de escrita quanto o número de entradas no
roteador para lidar com a chegada simultânea de múltiplos pacotes. Isso aumenta o tamanho do
27
buffer e diminui seu desempenho. Por causa dessas e de outras restrições a alternativa mais adotada
é a implementação de buffers nas entradas do roteador (TAMIR; FRAZIER, 1992).
2.2.2.5 Arbitragem
Sempre que um recurso é compartilhado por muitos agentes é necessário o emprego de
mecanismos de arbitragem para conceder o acesso a um agente de cada vez. O esquema de
arbitragem define qual canal ou buffer de entrada terá o direito de utilizar um canal ou buffer de
saída para encaminhar pacotes (DALLY; TOWLES, 2004, p. 349; ZEFERINO, 2003, p. 47).
São diversas as alternativas de implementação de árbitros em NoCs, entre essas: (i) árbitro
de prioridade fixa: sempre atribui a maior prioridade para a mesma requisição; (ii) árbitro
randômico: não considera informações sobre o estado das requisições para conceder acesso aos
recursos; e (iii) árbitro round-robin: adota o esquema de fila circular, no qual a última requisição
servida tem a menor prioridade no próximo ciclo de arbitragem (DALLY; TOWLES, 2004, p. 350).
2.2.2.6 Deadlock, livelock e starvation
Existem três potenciais problemas que devem ser tratados pelos mecanismos de
comunicação. O roteamento deve tratar o deadlock e o livelock, enquanto que a arbitragem deve
tratar o starvation.
Quando dois ou mais pacotes estão esperando uns pelos outros para serem encaminhados
configura-se a ocorrência de deadlock. Isso acontece porque ambos os pacotes reservaram recursos
do roteador e ambos aguardam a liberação de recursos já alocados para então prosseguir. Isso causa
uma dependência entre esses pacotes. Já o livelock ocorre quando um pacote trafega
indefinidamente sem jamais alcançar o nodo destino.
O starvation, por sua vez, acontece quando são empregados esquemas de prioridade aos
pacotes para que esses utilizem os recursos da rede. Os pacotes de maior prioridade reservam
recursos e impedem o uso desses por pacotes menos prioritários. Isso ocorre de tal modo que os
pacotes de baixa prioridade nunca são encaminhados (RUGGIERO, 2011, p. 101).
O deadlock pode ser tratado pelo emprego de técnicas que previnem, evitam ou recuperam a
rede de tal situação. A prevenção é uma técnica conservadora que consiste em conceder o acesso a
28
recursos de modo a impedir sua ocorrência. Isso pode ser realizado pela reserva antecipada, ou seja,
antes da transmissão do pacote. As técnicas que evitam, alocam recursos conforme o pacote avança
pela rede. Em contrapartida, as técnicas de recuperação de deadlock assumem que isso pode
ocorrer, e nesses casos, alguns recursos são desalocados em favor de outros pacotes (BENINI; DE
MICHELI, 2006, p. 40).
Para evitar o livelock pode-se adicionar ao pacote um contador de desvios que é
incrementado sempre que for necessário desviar de sua rota. Se o contador atingir um valor limite,
então novos desvios não serão aceitos. Em uma abordagem semelhante utilizam-se mecanismos de
prioridade baseados na idade dos pacotes, ou seja, quando ocorre disputa por recursos o pacote que
está a mais tempo na rede prevalece. Porém, o modo mais simples para evitar o livelock é permitir
apenas o uso de caminhos mínimos, ou seja, os pacotes seguem pelo caminho mais curto até o nodo
destinatário (DALLY; TOWLES, 2004, p. 279).
O starvation, por sua vez, é evitado pelo emprego de esquemas justos para concessão de
recursos (arbitragem), tal como o esquema baseado em fila circular. Pois, embora alguns pacotes
sejam prioritários também é necessário alocar largura de banda para pacotes de menor prioridade
(ZEFERINO, 2003, p. 35).
2.3 CONSUMO DE ENERGIA
O consumo de energia é reconhecidamente um dos parâmetros mais importantes no
desenvolvimento de sistemas eletrônicos. Isso se deve à necessidade de se estender o tempo de
autonomia das baterias no caso de sistemas portáteis, reduzir os custos de encapsulamento e
refrigeração dos chips e, também, a questões relacionadas à confiabilidade do dispositivo e ao
meio-ambiente. Portanto, a questão energética deve ser tratada ainda na fase de projeto do sistema,
pois quanto maior o nível hierárquico em que se aborda o consumo de energia maior é a
possibilidade de redução (JHA, 2001).
2.3.1 Fontes de consumo de energia
Reduzir a dissipação de potência de um sistema pode não resultar em redução no consumo
de energia. Pois, se uma determinada computação pode ser realizada empregando a metade da
potência normal e esse cálculo demorar o dobro do tempo para ser finalizado, então a quantidade de
29
energia consumida será similar ao que era anteriormente. Isso ocorre porque energia compreende a
quantidade de energia elétrica consumida por um período de tempo na realização de um trabalho. Já
a potência corresponde a taxa em que o sistema consome energia elétrica enquanto realiza esse
trabalho. Potência e energia podem ser definidas pelas equações (1) e (2) respectivamente3, onde 𝑃
é a potência, 𝐸 indica a energia e 𝑊 refere-se à quantidade de trabalho realizado no intervalo de
tempo 𝑇 (LEE; BAGHERZADEH, 2009, p. 255; RAGHUNATHAN; JHA; DEY, 1998, p. 12).
𝑃 = 𝑊
𝑇
(1)
𝐸 = 𝑃 × 𝑇 (2)
Para descrever como ocorre o consumo de energia em um circuito CMOS (Complementary
Metal Oxide Semiconductor) será utilizado um modelo simplificado do circuito de uma porta
inversora, ilustrado na Figura 3 (a). O funcionamento desse circuito pode ser descrito do seguinte
modo: quando o valor da tensão na entrada 𝑉𝑖𝑛 está em nível alto (1 lógico), o transistor NMOS fica
ligado e o transistor PMOS fica desligado, resultando em um valor de tensão na saída 𝑉𝑜𝑢𝑡
equivalente ao valor lógico “0”. Isso estabelece um caminho direto do terminal terra para a saída
𝑉𝑜𝑢𝑡 , circuito equivalente àquele apresentado na Figura 3 (b).
Se a tensão na entrada 𝑉𝑖𝑛 estiver em nível baixo (0 lógico) o transistor NMOS é desligado e
o transistor PMOS, por sua vez, se mantém ligado. Com isso a saída da porta inversora fica em
nível alto (1 lógico), apresentando a tensão de saída 𝑉𝑜𝑢𝑡 correspondente. Isso cria um caminho
condutor de energia da tensão de alimentação 𝑉𝑑𝑑 para a saída 𝑉𝑜𝑢𝑡 , o que equivale ao circuito da
Figura 3 (c) (RABAEY, 1996, p. 120).
3 Nas equações apresentadas considera-se a potência constante
30
Figura 3. Circuito CMOS: (a) porta inversora; chaveamento para os níveis (b) baixo; e (c) alto
São três as principais fontes de consumo de energia nos circuitos CMOS: potência dinâmica,
potência de curto-circuito e potência estática.
2.3.1.1 Potência dinâmica
O consumo de energia devido à dissipação de potência dinâmica ocorre pela carga e
descarga de capacitâncias. Considerando o circuito da Figura 3 (a), sempre que acontece uma
transição do nível baixo para o nível alto (0 para 1 lógico), uma certa quantidade de energia é
drenada da fonte de alimentação 𝑉𝑑𝑑 , metade dessa energia é consumida no transistor PMOS e o
restante fica armazenado no capacitor 𝐶𝐿. Por outro lado, quando a transição é do nível alto para o
nível baixo (1 para 0 lógico), a energia armazenada anteriormente no capacitor 𝐶𝐿 é descarregada no
transistor NMOS.
A energia necessária para um circuito completar um ciclo de chaveamento, ou seja, variar de
“0” para “1” e de “1” para “0”, deve ser calculada considerando-se a frequência em que isso ocorre.
Como nem todas as portas lógicas de um circuito integrado chaveiam na mesma frequência do
relógio, emprega-se um fator para representar essa atividade. Desse modo, o consumo de energia
devido à dissipação de potência dinâmica pode ser calculado pela equação (3). Onde α é a
probabilidade de ocorrer o chaveamento, 𝐶𝐿 representa a carga de capacitâncias, 𝑉𝑑𝑑2 a tensão de
alimentação e 𝑓𝑐𝑙𝑘 a frequência de operação do circuito (RABAEY, 1996, p. 144).
𝑃𝑑𝑖𝑛 â𝑚𝑖𝑐𝑎 = 𝛼 × 𝐶𝐿 × 𝑉𝑑𝑑2 × 𝑓𝑐𝑙𝑘 (3)
(a) (b) (c)
Vdd
Vout
CL
PMOS
NMOS
VinVdd
Vout
Vdd
Vout
31
2.3.1.2 Potência de curto-circuito e estática
O consumo de energia devido à potência de curto-circuito é causado pelo tempo de transição
não ideal do transistor. Ocorre durante a atividade de chaveamento quando por um pequeno
intervalo de tempo ambos os transistores NMOS e PMOS permanecem ligados simultaneamente.
Com isso, forma-se um caminho condutor de energia da fonte de alimentação para o terminal terra.
O consumo devido à dissipação de potência estática, por sua vez, acontece por causa das correntes
de fuga que também são inerentes à natureza imperfeita do transistor, o qual apresenta consumo de
energia mesmo quando não há atividade de chaveamento (KAXIRAS; MARTONOSI, 2008, p. 5 e
133).
A potência estática está gradativamente incrementando sua contribuição para a dissipação
total de potência. A cada nova geração de circuitos integrados a tensão de alimentação tem sido
reduzida, causando aumento exponencial nas correntes de fuga e consequentemente no consumo de
energia estática. Por exemplo, a razão entre as potência estática e dinâmica no processador
OpenSPARC em uma tecnologia de fabricação de 70 nm compreende a 40%. Enquanto que, com o
mesmo processador em tecnologia de 45 nm essa medida passa para 70% (TABKHI; SCHIRNER,
2014).
2.3.2 Técnicas para redução do consumo de energia
As demandas pela redução do consumo de energia não podem ser satisfeitas apenas por
otimizações em nível lógico ou de transistor. É necessária também a exploração de técnicas de alto
nível de abstração (RAGHUNATHAN; JHA; DEY, 1998, p. 12).
A Figura 4 ilustra as oportunidades para reduzir o consumo de energia em diferentes níveis
de abstração e o tempo necessário para realizar a análise desse consumo. Nota-se que as
oportunidades para reduzir o consumo de energia são maiores em níveis mais abstratos. Além disso,
o tempo de iteração para análise é da ordem de segundos a minutos. Por outro lado, as técnicas
aplicadas em baixo nível oferecem menor economia e demandam muito tempo, isso se deve ao
elevado custo computacional.
32
Figura 4. Benefícios da análise e otimização do consumo de energia em alto nível de abstração
Fonte: Adaptado de Raghunathan, Jha e Dey (1998, p. 12).
2.3.3 Economia de energia em NoCs
Como um os principais componentes em SoCs compostos de múltiplos núcleos, as NoCs
consomem de 10% a 36% da energia total do sistema, sendo que, uma fração considerável dessa
energia é dissipada devido a potência estática. Experimentos realizados recentemente, em um chip
de 45 nm operando a uma tensão de alimentação de 1.0 volt, apontaram um consumo de energia
devido à potência estática em torno de 38%. Sendo que, 55% desse percentual foram consumidos
nos buffers e 45% nos demais elementos do roteador, o que equivale a 21% e 17% do consumo
total, respectivamente (CHEN; PINKSTON, 2012).
A economia de energia em NoCs pode ser abordada em nível de microarquitetura ou de
sistema. No primeiro caso podem ser adotadas técnicas como: (i) transmissão de informação com
baixos níveis de tensão (low-swing signaling); (ii) codificação de barramento; (iii) clock-gating; e
(iv) hibernação de recursos (power-gating). Em nível de sistema, por sua vez, pode-se empregar as
seguintes técnicas: (i) ajuste da tensão de alimentação (DVS – Dynamic Voltage Scaling) e da
frequência de operação (DFS – Dynamic Frequency Scaling) dos canais de acordo com o nível de
tráfego; (ii) otimizações na topologia da rede; e (iii) mapeamento das aplicações visando diminuir a
distância entre nodos mais comunicantes4 (LEE; BAGHERZADEH, 2009, p. 270).
4Este trabalho insere-se no contexto da redução de consumo em NoCs por meio do mapeamento das tarefas da
aplicação.
Sistema
Comportamental
RTL
Lógico
Transistor
Laiaute
20-50%
2-5X
10-20X
Oportunidades para reduzir
o consumo de energia
Tempo de iteração para
análise
horas-dias
minutos-horas
segundos-minutos
33
2.4 SISTEMAS DE TEMPO REAL
Os sistemas de tempo real ou RT (Real-Time) são aqueles em que as operações devem ser
corretamente realizadas dentro de um período estrito de tempo, ou seja, devem apresentar correção
lógica e temporal. Suas tarefas são caracterizadas pelo período máximo de tempo disponível para
execução, ao que se denomina prazo (do inglês, deadline). Tais sistemas podem ser classificados
com relação às consequências decorrentes do não cumprimento de prazos nas seguintes categorias
(BURNS; WELLINGS, 2009, p. 3; BUTTAZZO, 2011, p. 8):
Sistema RT hard ou crítico: o tempo de resposta deve ser respeitado, pois o atraso na
execução das tarefas é considerado tão grave quanto a ocorrência de erros, podendo
acarretar danos sérios ao sistema controlado ou ao ambiente;
Sistema RT soft ou brando: apesar de o tempo de resposta ser importante, possíveis
violações no cumprimento dos prazos não impedem o funcionamento correto do
sistema, embora possam causar degradação no desempenho; e
Sistema RT firm: os atrasos não afetam a funcionalidade do sistema, mas o resultado
gerado em tempo defasado é inútil para a operação.
Uma das características mais importantes em sistemas RT é a previsibilidade. Isso significa
que deve ser possível prever se os requisitos de tempo definidos serão alcançados. Nessa questão, as
técnicas de escalonamento são cruciais (STANKOVIC; RAMAMRITHAM, 1990).
O escalonamento consiste em determinar quando executar cada tarefa e no caso de sistemas
com múltiplos processadores, também define a atribuição das tarefas a processadores específicos.
Em sistemas não RT, o objetivo do escalonamento é maximizar a vazão ou minimizar o tempo de
espera. Já em sistemas RT, o objetivo é garantir o cumprimento de prazos (CHENG, 2002, p. 41).
As tarefas em um sistema RT podem ser caracterizadas pelos parâmetros: (i) tempo de
chegada ou tempo inicial; (ii) tempo máximo de computação; (iii) prazo (deadline) relativo ao
tempo inicial; e (iv) prazo absoluto. Seus principais tipos são: (i) tarefas de instância simples, ou
seja, executam apenas uma vez; (ii) tarefas periódicas: apresentam inúmeras execuções com período
fixo entre execuções consecutivas; e (iii) tarefas esporádicas: podem executar zero ou mais vezes,
porém existe um intervalo mínimo de tempo entre execuções (CHENG, 2002, p. 42).
34
2.4.1 Comunicação RT em NoCs com chaveamento wormhole
O chaveamento wormhole, apresentado na Subseção 2.2.2.2, aloca largura de banda e
espaço de armazenamento em unidades de flits. Isso permite o emprego de buffers de baixa
capacidade mesmo para transferência de pacotes maiores. Entretanto, quando um pacote fica
bloqueado os canais mantidos por ele permanecem ociosos. Como resultado, pacotes grandes
podem ficar espalhados por vários roteadores causando a paralisação de diversos canais e
impactando negativamente na vazão da rede (JERGER; PEH, 2009 p. 64).
Portanto, a comunicação em NoCs que adotam o chaveamento wormhole é inerentemente
não determinista, uma vez que podem ocorrer vários cenários de contenção devido ao
compartilhamento de recursos na forma de buffers e canais. Esse comportamento imprevisível pode
levar à violação de prazos de mensagens RT (LU; JANTSCH; SANDER, 2005).
Uma alternativa para melhorar essa questão é a adoção do chaveamento wormhole em
conjunto com o controle de fluxo baseado em canais virtuais (Subseção 2.2.2.3). Uma vez que, na
ocorrência de contenções os pacotes que almejam recursos disponíveis podem ultrapassar pacotes
bloqueados e seguir em frente. Além disso, com a adoção de canais virtuais é possível oferecer
suporte a diferentes níveis de serviço. Nesse esquema, cada canal virtual possui um determinado
nível de prioridade e os fluxos de comunicação que trafegam pelos canais virtuais herdam essa
definição. De modo que os pacotes pertencentes a um fluxo de prioridade i poderão requisitar
apenas canais virtuais de prioridade i durante seu trajeto pela rede. E no caso de múltiplas
requisições ao mesmo canal físico os pacotes que possuem maior prioridade são atendidos antes
daqueles de menor prioridade (SHI, 2009, p. 35, 48).
2.4.1.1 Análise de escalonabilidade
A validação e análise de desempenho em sistemas de tempo real são cruciais para garantir
que os pacotes vão cumprir seus prazos, a abordagem adotada nesse processo pode ser baseada em
simulação ou analise algorítmica. No primeiro caso são construídos modelos de rede e padrões de
tráfego para simular o comportamento do sistema. Essa abordagem é bastante precisa, entretanto
pode ser muito demorada e avalia apenas os cenários explicitamente definidos. Desse modo, é
muito difícil cobrir todos os possíveis estados do sistema, tornando tal alternativa inadequada para
aplicações críticas. A análise algorítmica, por sua vez, assume propriedades de tráfego de pior caso
35
e modelos abstratos de rede a partir dos quais são desenvolvidos algoritmos de avaliação de
desempenho (SHI, 2009, p. 54).
Com essa análise é possível determinar se as tarefas que executam e comunicam-se em uma
plataforma baseada em NoC cumprem todas as restrições de tempo impostas pelas características
específicas da aplicação. Para isso deve-se considerar a latência fim-a-fim de cada cadeia de tarefas,
o que corresponde às latências de computação e comunicação. Ou seja, o tempo necessário para o
núcleo processar e executar uma tarefa e o tempo necessário para realizar a comunicação dos dados
produzidos pela tarefa (INDRUSIAK, 2014).
2.5 MAPEAMENTO DE TAREFAS
As arquiteturas modernas de SoCs são constituídas de diversos núcleos, os quais são
interconectados por uma estrutura de comunicação baseada em NoCs de topologia malha. O
desenvolvimento dessa arquitetura de comunicação envolve muitas alternativas de projeto e impacta
fortemente na área ocupada, no desempenho, e no consumo de energia do sistema. Dentre os
principais problemas de pesquisa relacionados à NoCs, figuram o mapeamento e escalonamento de
tarefas (BOLCHINI et al., 2013; MARCULESCU et al., 2009).
O mapeamento de tarefas consiste em atribuir e ordenar as tarefas que compõem uma
aplicação e seus requisitos de comunicação aos recursos de uma plataforma alvo. Tendo como
objetivo a garantia de métricas de otimização, tais como, consumo de energia, vazão,
confiabilidade, entre outras (SINGH et al., 2013).
O mapeamento impacta no desempenho do sistema, pois, quando é realizado de maneira
ineficiente pode favorecer a ocorrência contenções na rede. Ou seja, pode causar a competição entre
um conjunto de tarefas por um determinado canal de comunicação. Portanto, se o mapeamento não
for adequado os índices de latência se elevam causando redução na vazão da rede (CHOU;
MARCULESCU, 2008).
O mapeamento também é importante para evitar problemas relacionados à temperatura do
chip, pois sistemas que apresentam elevado consumo de energia tendem a dissipar muito calor em
determinadas áreas da pastilha de silício. Essa variação na temperatura pode acarretar redução no
desempenho e degradação na confiabilidade. Nesse caso, a alocação das tarefas pode ser realizada
36
de modo a promover o balanceamento na distribuição de temperatura, evitando o superaquecimento
de áreas específicas (COSKUN; ROSING; GROSS, 2009).
Em plataformas MPSoC (Multiprocessor System-on-Chip) compostas de múltiplos tipos de
EPs (Elementos de Processamento) o mapeamento de tarefas desempenha papel crítico. Isso porque
tais sistemas devem executar múltiplas aplicações com diversos requisitos de desempenho. Nesse
caso, o mapeamento deve permitir a exploração da heterogeneidade de modo a garantir o uso
eficiente da plataforma a um grande número de aplicações (PHAM et al., 2013).
Duas atividades precedem o mapeamento, sendo elas o particionamento da aplicação e a
ligação das tarefas (do inglês binding):
Particionamento da aplicação: consiste em particionar uma aplicação em um grafo,
onde cada vértice do grafo representa uma tarefa e cada aresta define a comunicação
entre tarefas (SMIT et al., 2004); e
Ligação das tarefas: as tarefas de uma determinada aplicação podem ser executadas
em diferentes tipos de EPs. A atividade de ligação se encarrega de assegurar a
atribuição das tarefas para os tipos adequados de recursos (CARVALHO, 2009, p.
61).
A Figura 5 ilustra um exemplo de mapeamento de duas aplicações concorrentes em uma
NoC de topologia malha 2-D com tamanho 3×3. Percebe-se na figura que em cada roteador “R” da
rede há um elemento de processamento anexado (EP1, EP2,..., EP9), o qual pode ser um
processador de propósito geral, DSP (Digital Signal Processor) ou um ASIC (Application Specific
Integrated Circuit).
As tarefas (T1, T2,..., T11) são atribuídas conforme o tipo de processamento a que
demandam. Na figura, a tarefa “T2” é mapeada em um núcleo ASIC, a tarefa “T10” por sua vez, é
posicionada em um núcleo DSP. As demais tarefas são mapeadas em processadores genéricos,
sendo que, nesse exemplo, três elementos executam mais de uma tarefa enquanto um quarto
processador fica ocioso.
37
R
R R
R
R R
R
R
R
EP1 EP2 EP3
EP4 EP5 EP6
EP7 EP8 EP9
T1, T3,
T5, T11T7, T8
T4, T9,
T6T2
T10
Plataforma baseada em rede-em-chip
Processador de propósito geral
Processador de sinais digitais - DSP
ASIC
Conjunto de tarefas
d1 d2prazos:
T4T3T2
T5
T1
T6
T8 T9
T7
T10
T11
Mapeamento e
Escalonamento
Figura 5. Mapeamento de duas aplicações em uma NoC malha2-D de tamanho 3×3
Fonte: Adaptado de Pop (2011, p. 8).
2.5.1 Escalonamento de tarefas
O escalonamento compreende a ordenação temporal das tarefas e suas comunicações aos
recursos a que foram atribuídas, garantindo a exclusão mútua entre tarefas mapeadas no mesmo
recurso (POP, 2011, p. 9).
EP1T1
T7
T3 T5
T8EP2
T2EP4
T9 T4 T6EP5
T10EP7
T11
d1 d2
Figura 6. Escalonamento de tarefas
Fonte: Adaptado de Pop (2011, p. 9).
A Figura 6 exemplifica o escalonamento das aplicações ilustradas anteriormente na Figura 5,
observa-se que as tarefas atribuídas ao mesmo EP são executadas sequencialmente, e ainda nota-se
a necessidade de garantir a precedência entre as tarefas. Por exemplo, o processador “EP1” fica
38
ocioso por três ciclos após a execução da tarefa “T5” aguardando o término da execução da tarefa
“T10” que precede a tarefa “T11”.
Ainda nessa figura, “d1” e “d2” representam os prazos das aplicações, ou seja, indicam o
tempo limite para execução de suas tarefas. Nesse exemplo os prazos foram cumpridos, pois a
tarefa “T6” finalizou antes do limite “d1” e a tarefa “T11” antes do limite “d2”.
As etapas de mapeamento e escalonamento de tarefas são críticas no desenvolvimento de
sistemas baseados em NoCs, tais questões podem ser tratadas independentemente ou de modo
integrado5. Embora a solução integrada possa fornecer melhores resultados, devido à complexidade
computacional envolvida esses problemas são tipicamente abordados separadamente (BOLANOS et
al., 2013; POP 2011, p. 7).
2.5.2 Classificação das técnicas de mapeamento
O mapeamento de tarefas pode ser classificado quanto aos tipos de EPs que compõem a
plataforma. Nessa classificação, as metodologias são desenvolvidas e aplicadas em plataformas
homogêneas ou heterogêneas, contendo núcleos idênticos ou distintos, respectivamente. Outra
taxonomia empregada considera o momento em que é realizado. Nesse caso, o mapeamento pode
ser dos tipos estático, dinâmico ou híbrido6 (SINGH et al., 2013).
2.5.2.1 Mapeamento estático
Realizado em tempo de projeto este tipo de mapeamento é adequado para cenários em que a
carga de trabalho é formada por um conjunto pré-definido de aplicações, cujos padrões de
comunicação e processamento são conhecidos com antecedência (SINGH et al., 2013).
O mapeamento estático de tarefas é apropriado para plataformas específicas em que não
existe a previsão de que novas aplicações sejam adicionadas em tempo de execução. O algoritmo de
mapeamento conta com informações privilegiadas a respeito da plataforma, tais como: topologia da
aplicação, volume e taxa de comunicação entre as tarefas e uso total do sistema. Além disso, o
5Este trabalho, situa-se no contexto do mapeamento de tarefas de aplicações de tempo real em um SoC baseado em
NoC, de modo a assegurar o cumprimento de prazos de entrega de mensagens trocadas entre as tarefas. O trabalho não
aborda questões referentes ao cumprimento de prazos de execução das tarefas no elemento de processamento. 6 Também denominado mapeamento semi-estático, como observado em (HUANG et al., 2011b) e (KWOK et al., 2006)
39
tempo de execução do algoritmo de mapeamento não é a principal preocupação, pois não influencia
no tempo de execução (CARVALHO; CALAZANS; MORAES, 2010).
Nessa abordagem é possível empregar técnicas que encontram a solução ótima ou quase
ótima para o problema. O elevado custo computacional e o tempo necessário à exploração do
espaço de projeto não tem grande importância, uma vez que a solução encontrada será utilizada
durante todo o período de vida do sistema (RUGGIERO et al., 2006).
Apesar de permitir a exploração ampla do espaço de projeto, o mapeamento estático sofre de
falta de flexibilidade, pois todas as aplicações devem ser definidas antecipadamente. Portanto, essa
abordagem é incapaz de lidar com mudanças na disponibilidade de recursos ou situações em que o
tempo de execução de uma aplicação não é conhecido a priori (BOLCHINI et al., 2013).
Apesar da limitação acima, cabe-se destacar que sistemas de tempo real críticos devem
possuir alto grau de previsibilidade. Por isso, o mapeamento estático mostra-se adequado para esse
tipo de sistema, dado que, tipicamente, novas aplicações não serão adicionadas ao sistema7. Além
disso, conforme Mesidis (2011, p. 41), mapeamentos dinâmicos são inadequados para sistemas de
tempo real, pois seria impossível analisar todos os estados do sistema em tempo de execução e
assegurar o cumprimento dos prazos.
2.5.2.2 Mapeamento dinâmico
Realizado em tempo de execução, essa abordagem visa mapear dinamicamente tarefas aos
recursos da plataforma com o objetivo de atender os cenários em que novas aplicações podem ser
adicionadas ou as características das tarefas em execução podem ser ajustadas (SINGH et al., 2013).
O mapeamento dinâmico se adéqua a situações em que ocorre a realocação das tarefas nos
recursos disponíveis, devido a mudanças nas condições de operação da plataforma. Adicionalmente
a isso, também é possível prover tolerância a faltas. Nos casos de falta em algum recurso, o sistema
pode migrar as tarefas afetadas para recursos não faltantes (BOLANOS et al., 2013).
Ao contrário da abordagem estática, nesse tipo de mapeamento o tempo necessário para
definir o posicionamento das tarefas é de extrema importância, pois influencia no tempo de
execução da aplicação. Por isso, é necessário empregar algoritmos de baixa complexidade para
7Este trabalho aborda o uso de mapeamento estático de aplicações de tempo real em sistemas baseados em NoC.
40
acelerar o tempo de resposta às requisições imprevisíveis (CARVALHO; CALAZANS; MORAES,
2010; BRAAK et al., 2010).
O mapeamento dinâmico tem potencial para produzir melhores soluções em comparação ao
mapeamento estático, porém apresenta dispêndio em tempo e consumo de energia. Além disso,
devido às limitações de recursos computacionais disponíveis em tempo de execução as técnicas de
mapeamento dinâmico não conseguem garantir os requisitos de vazão das aplicações (PHAM et al.,
2013; POP, 2011, p. 9).
2.5.2.3 Mapeamento Híbrido
Enquanto as técnicas de mapeamento estático são incapazes de lidar com o dinamismo das
aplicações em tempo de execução, as estratégias de mapeamento dinâmico não garantem o
cumprimento dos prazos. Uma abordagem híbrida realiza o cálculo das alternativas de mapeamento
em tempo de projeto e emprega as informações resultantes em tempo de execução (SINGH;
KUMAR; SRIKANTHAN, 2013).
O mapeamento híbrido é realizado em duas etapas, uma em tempo de projeto e a outra em
tempo de execução. Primeiramente, em tempo de projeto, são identificadas as possíveis alternativas
de mapeamento para as aplicações que serão suportadas pela plataforma. Posteriormente, em tempo
de execução, as informações geradas na etapa de projeto são empregadas no mapeamento das
tarefas. Portanto, quando ocorre mudança no conjunto de aplicações em execução as informações
de configuração de mapeamento são recuperadas e aplicadas. Essa abordagem oferece um bom
equilíbrio entre desempenho e flexibilidade. Porém, é limitada quanto à escalabilidade uma vez que
a quantidade de configurações cresce exponencialmente com a quantidade de aplicações (HUANG
et al., 2011b).
2.5.3 Modelos relevantes para mapeamento de tarefas
Os modelos necessários para exploração do mapeamento de tarefas para NoCs são: (i)
modelos das aplicações; (ii) modelo de plataforma; (iii) restrições de desempenho e custo; e (iv)
função objetivo (POP, 2011, p. 5).
41
2.5.3.1 Modelo de aplicação
Segundo Ogras e Marculescu (2013, p. 43) a aplicação pode ser modelada em diferentes
níveis de granularidade dependendo do estágio de desenvolvimento. Quando as tarefas ainda não
foram vinculadas aos elementos de processamento utiliza-se um grafo de comunicação entre tarefas,
denominado CTG (Communication Task Graph). Nesse grafo, os vértices representam as tarefas e
as arestas especificam as dependências de controle e dados:
Grafo de comunicação entre tarefas: em um grafo (CTG) 𝐺 ′ = 𝐺 ′(𝑇,𝐺), cada vértice
𝑡𝑖 ∈ 𝑇 representa uma tarefa de uma determinada aplicação. Cada tarefa 𝑡𝑖 é anotada
com informações relevantes, tal como o tempo de execução em cada tipo de núcleo,
consumo de energia quando executado, prazo (deadline) da tarefa 𝑑(𝑡𝑖), etc. Cada
aresta 𝑐𝑖,𝑗 ∈ 𝐶 caracteriza a dependência de dados ou controle entre as tarefas 𝑡𝑖 e 𝑡𝑗 .
As arestas 𝑐𝑖 ,𝑗 contém ainda um valor associado 𝑣(𝑐𝑖,𝑗 ), o qual indica o volume de
comunicação entre 𝑡𝑖 e 𝑡𝑗 .
Por outro lado, se as tarefas já foram atribuídas aos elementos de processamento utiliza-se
um grafo APCG (Application Characterization Graph) formalmente definido do seguinte modo:
Grafo de caracterização de aplicação: em um grafo (APCG) 𝐺 = 𝐺(𝐶,𝐴), cada
vértice 𝑐𝑖 ∈ 𝐶 representa um núcleo e cada aresta 𝑎𝑖 ,𝑗 ∈ 𝐴 caracteriza o processo de
comunicação do núcleo 𝑐𝑖 com o núcleo 𝑐𝑗 . Cada aresta 𝑎𝑖 ,𝑗 pode ser rotulada com
informações específicas da aplicação, tal como o volume de comunicação 𝑣(𝑎𝑖,𝑗 )
entre os vértices, além de outras especificações de projeto.
2.5.3.2 Modelo de plataforma
Ainda conforme Ogras e Marculescu (2013, p. 42) a arquitetura de uma NoC pode ser
definida pela tripla 𝐴𝑟𝑐ℎ (𝑇 𝑅,𝐶ℎ ,𝑃𝑅 ,Ω 𝐶 ), onde:
O grafo 𝑇(𝑅,𝐶ℎ) representa a topologia da rede, sendo que 𝑅 corresponde aos
roteadores e 𝐶ℎ aos canais de comunicação, tal que:
∀ 𝑐ℎ ∈ 𝐶ℎ,𝑤(𝑐ℎ) define a largura de banda do canal 𝐶ℎ;
∀𝑟 ∈ 𝑅, 𝑙 𝑑, 𝑟 indica a profundidade do buffer do canal 𝑑 localizado no roteador 𝑟;
42
∀𝑟 ∈ 𝑅,𝑃𝑜𝑠 𝑟 define a coordenada xy do roteador 𝑟 na arquitetura;
𝑃𝑅 𝑟, 𝑖, 𝑗 𝑖, 𝑗, 𝑟 ∈ 𝑅 define a política de roteamento 𝑃𝑅 para o roteador 𝑟, para
qualquer roteador fonte 𝑖, destino 𝑗;
Ω:𝐶 → 𝑅 representa a função que mapeia cada vértice 𝑐𝑖 ∈ 𝐶 de um grafo de
aplicação para um roteador 𝑅.
2.5.3.3 Modelos de consumo de energia
Esta subseção apresenta dois modelos para avaliação da energia consumida em NoCs, os
quais serão referenciados como energia por pacote e energia por bit.
Energia por pacote
Um dos modelos de consumo de energia para NoCs disponível na literatura especializada e
empregado na avaliação de técnicas de mapeamento foi desenvolvido por Palesi et al. (2011). Nesse
modelo os autores consideram a potência dissipada na transmissão de um pacote de dados de um
elemento de processamento fonte 𝐸𝑃𝑠 para um destino 𝐸𝑃𝑑 envolvendo ℎ canais de comunicação. A
potência dissipada pode ser expressa pela equação (4), onde n corresponde à quantidade de flits,
𝑃𝑅(𝐻)
e 𝑃𝑅(𝐵)
representam a potência dissipada pelo roteador para encaminhar flits de cabeçalho e de
corpo de mensagem, respectivamente. Com 𝑃𝑁𝐼 representa-se a dissipação de potência na interface
de rede e com 𝑃𝐿 a dissipação de potência para transferir um flit pelo canal de comunicação.
𝑃 𝑝𝑘𝑡 = 2 𝑛 + 1 𝑃𝑁𝐼 + ℎ + 1 𝑃𝑅 𝐻 + ℎ + 1 𝑃𝑅
𝐵 + ℎ(𝑛 + 1)𝑃𝐿 (4)
Energia por bit
Outro modelo comumente adotado considera a energia consumida quando um bit de dado
trafega pelo roteador de uma NoC. O cálculo da energia consumida por um bit 𝐸𝑏𝑖𝑡 corresponde à
soma da energia consumida no roteador 𝐸𝑆𝑏𝑖𝑡 e a energia consumida no canal de comunicação 𝐸𝐿𝑏𝑖𝑡 ,
conforme indica a equação (5). Logo, o consumo médio de energia para enviar um bit de um nodo
𝑡𝑖 para um nodo 𝑡𝑗 pode ser calculado pela equação (6). Onde, 𝑛ℎ𝑜𝑝𝑠 indica a quantidade de
roteadores no caminho entre 𝑡𝑖 e 𝑡𝑗 (HU; MARCULESCU, 2004).
43
𝐸𝑏𝑖𝑡 = 𝐸𝑆𝑏𝑖𝑡 + 𝐸𝐿𝑏𝑖𝑡 (5)
𝐸𝑏𝑖𝑡
𝑡𝑖 ,𝑡𝑗 = 𝑛ℎ𝑜𝑝𝑠 × 𝐸𝑆𝑏𝑖𝑡 + 𝑛ℎ𝑜𝑝𝑠 − 1 × 𝐸𝐿𝑏𝑖𝑡 (6)
2.5.4 Técnicas para o mapeamento de tarefas em NoCs
Alguns problemas são tão complexos que não é viável encontrar uma solução ótima, em tais
situações é importante descobrir uma solução aproximada (HILLIER; LIEBERMAN, 2013, p. 581).
O mapeamento de tarefas se enquadra nessa classe de problemas, apresenta complexidade ,
onde representa o número de tarefas. Dessa forma, um sistema composto de 16 tarefas terá
20.922.789.888.000 possíveis combinações de mapeamento. Nesse caso, uma exploração exaustiva
é impraticável (HU; MARCULESCU, 2005).
Para tratar essa espécie de problema são comumente empregados métodos heurísticos, os
quais resultam em soluções aproximadas. Tais métodos se baseiam em idéias simples de senso
comum adaptadas para adequação ao problema de interesse, tipicamente são desenvolvidos para
resolver problemas específicos. Em contrapartida, uma meta-heurística compreende a um método
de resolução generalista que fornece estrutura e diretrizes gerais para o desenvolvimento de
heurísticas (HILLIER; LIEBERMAN, 2013, p. 581).
Considere-se como exemplo o gráfico de uma função objetivo ilustrado na Figura 7 em que
se deseja encontrar o valor máximo da função. Como indicado na figura, o problema possui três
soluções ótimas, sendo elas, e , a melhor solução está indicada na figura como
“ótimo global”. Um método heurístico simples que pode ser aplicado a este problema é a condução
de uma busca de melhoria local. Para isso, inicia-se com uma solução experimental em que, a cada
iteração da heurística, realiza-se uma nova busca na vizinhança dessa solução, visando encontrar
uma solução melhor.
)!(n
n
20,5 xx 31x
44
Figura 7. Soluções ótimas locais
Fonte: Adaptado de Hillier e Lieberman (2013, p. 582).
O problema com essa abordagem consiste no fato de que a solução ótima encontrada
dependerá do ponto onde o procedimento inicia a busca. Isso ocorre porque as heurísticas de busca
local param de realizar novas buscas quando atingem um valor ótimo. Ou seja, se a heurística
iniciar em , ela irá convergir para o ótimo local e não será capaz de atingir o ótimo
global , pois as novas buscas realizadas na vizinhança vão retornar valores inferiores ao
valor ótimo já encontrado.
Portanto, meta-heurística é um método de resolução geral que confere aos procedimentos
de melhoria local a capacidade de escapar dos ótimos locais e realizar uma busca consistente em
uma região de soluções viáveis. As meta-heurísticas mais utilizadas são a Busca Tabu, Simulated
Annealing e Algoritmos Genéticos (HILLIER; LIEBERMAN, 2013, p. 584).
2.5.4.1 Busca Tabu
Busca Tabu é uma meta-heurística que guia uma heurística de busca local a explorar o
espaço de solução além do ótimo local. Um dos principais componentes da Busca Tabu é o uso de
memória adaptativa que confere ao processo de busca um comportamento mais flexível (GLOVER;
LAGUNA, 1997, p. 3).
O processo com que a Busca Tabu supera o problema do ótimo local é baseado em uma
função de avaliação que escolhe a melhor solução a cada iteração, movendo-se para a melhor
f(x)
5 10 15 20 25 300
1 x 10e6
2 x 10e6
3 x 10e6
4 x 10e6
5 x 10e6
x
ótimo local
ótimo local
ótimo global
0x 5x
20x
45
solução admissível na vizinhança da solução atual. A função de avaliação seleciona o movimento
que produz o maior aumento ou o menor decréscimo da função objetivo. Uma lista de tabus é
utilizada para armazenar características de movimentos aceitos e, portanto evitar que o algoritmo de
busca retorne a uma solução visitada recentemente (PHAM; KARABOGA, 2000, p. 8).
2.5.4.2 Simulated Annealing
A meta-heurística recozimento simulado (do inglês Simulated Annealing) é baseada na
analogia ao processo físico de recozimento. Esse processo consiste em fundir um metal ou vidro e
posteriormente resfriá-lo lentamente, até que o nível de energia dos átomos esteja baixo e a
substância atinja propriedades físicas convenientes. As propriedades estruturais desse material vão
depender da taxa de resfriamento (HILLIER; LIEBERMAN, 2013, p. 600).
Essa analogia consiste em introduzir um parâmetro de controle no processo de otimização
para representar o papel da temperatura, simbolizando desse modo o mesmo efeito da temperatura
no sistema físico. Esse parâmetro determinará o número de estados acessíveis e levará ao estado
ótimo global se for reduzida lenta e gradativamente. Por outro lado, se a redução da temperatura for
abrupta conduzirá o processo de busca a um ótimo local (DRÉO et al., 2006, p. 25).
2.5.4.3 Algoritmos genéticos
Um algoritmo genético é um processo de busca iterativo inspirado na teoria da evolução.
Esse processo usualmente inicia com um conjunto aleatório de soluções, ao que se denomina
população. Adotam-se funções de seleção para optar pela manutenção ou descarte de partes dessa
população, além disso, soluções adicionais são criadas pela aplicação de operadores de mutação e
cruzamento (MESIDIS; INDRUSIAK, 2011).
Diversas questões devem ser tratadas no desenvolvimento de um algoritmo genético
Ahn(2006, p. 11):
Representação: relaciona-se com o esquema de codificação dos indivíduos, os quais
são representados geralmente por strings de bits;
Inicialização: define o tamanho da população e qual o método de inicialização, no
último caso pode ser randômico ou baseado em heurísticas;
46
Função objetivo: a função de objetivo interpreta a representação física dos indivíduos
e avalia sua aptidão, visando medir a qualidade dos indivíduos em uma população;
Operadores genéticos: devem ser cuidadosamente projetados, pois afetam o
desempenho do algoritmo, sendo eles:
o Reprodução: o objetivo do procedimento de reprodução é criar mais cópias de
indivíduos com maior aptidão;
o Cruzamento: o cruzamento gera dois novos indivíduos (filhos) a partir de um par de
indivíduos (pais) existentes. O cruzamento de pais dominantes tem maior
probabilidade de produzir descendentes dominantes; e
o Mutação: é o processo em que todos os indivíduos de uma população têm alguns bits
invertidos randomicamente a uma determinada taxa. Esse operador força o algoritmo
a pesquisar novas áreas, auxilia a evitar a convergência prematura e a encontrar a
solução ótima global.
O fluxo de funcionamento de um algoritmo genético está ilustrado na Figura 8, o processo
inicia com a criação randômica de uma população de soluções, as quais são avaliadas no contexto
do problema que está sendo otimizado. Ou seja, realiza-se o cálculo da função objetivo para cada
indivíduo da população. Após isso, os indivíduos são classificados quanto a sua eficiência na
solução do problema. Em seguida, se o critério de parada ainda não foi alcançado a população é
submetida aos operadores de reprodução, cruzamento e mutação. Com isso uma nova população é
criada, o contador de geração é incrementado e finaliza-se uma iteração do algoritmo (DEB, 2001,
p. 84).
47
Figura 8. Fluxo de funcionamento de um algoritmo genético
Fonte: Adaptado de Deb (2001, p. 83).
2.5.4.4 Algoritmos genéticos para otimização multiobjetivo
Os algoritmos genéticos estão entre as meta-heurísticas mais populares no tratamento de
problemas multiobjetivo, onde duas ou mais métricas devem ser otimizadas simultaneamente, sendo
que em geral essas métricas são conflitantes. Para a maioria dos problemas multiobjetivo não há
uma solução única, pelo contrário, existe um conjunto de possíveis soluções que representam um
bom compromisso (ou tradeoff) entre as métricas de interesse. Para identificar essas soluções os
algoritmos de otimização multiobjetivo adotam o teorema de Pareto, o qual estabelece que uma
determinada solução deve ser considerada superior a outra se apresentar melhor desempenho em ao
menos uma métrica avaliada e não inferior nas demais métrica. Desse modo, o conjunto de tais
soluções é chamado de conjunto não dominado ou fronteira de Pareto (COELLO, 2006).
Uma série de algoritmos genéticos multiobjetivo estão documentados na literatura
especializada, dentre eles o NSGA-II desenvolvido por Deb et al. (2002). A Figura 9 ilustra o
procedimento adotado por esse algoritmo, o qual inicia com uma população combinada 𝑅𝑡 = 𝑃𝑡 ∪
𝑄𝑡 . Onde 𝑃𝑡 corresponde a uma população de indivíduos pais gerada randomicamente, os quais são
submetidos aos processos de reprodução, cruzamento e mutação para originar a população de
descendentes 𝑄𝑡 . A população combinada 𝑅𝑡 é classificada quanto ao critério de não dominação, e
48
uma vez que todos os indivíduos participam desse processo a escolha dos mais aptos é garantida. As
soluções pertencentes aos conjuntos não dominados são as melhores soluções encontradas na
população 𝑅𝑡 , onde o conjunto 𝐹1corresponde às soluções dominantes, 𝐹2 são as soluções
dominadas pelo conjunto 𝐹1 mas que dominam as demais soluções e assim sucessivamente.
Ao contrário da primeira geração de indivíduos, que foi gerada randomicamente, a nova
população 𝑃𝑡+1 e as demais populações serão formadas pelos conjuntos de soluções dominantes.
Sendo que são selecionadas 𝑁 soluções de melhor desempenho enquanto as demais soluções são
descartadas. Conforme ilustra a Figura 9, a população presente abaixo da linha tracejada não evolui
para a geração seguinte.
Figura 9. Procedimento do algoritmo NSGA-II
Fonte: Adaptado de Deb et al. (2002).
2.5.4.5 Outras abordagens
Diversas técnicas alternativas podem ser empregadas no mapeamento de tarefas, entre elas o
modelo matemático de programação linear inteira ILP (Integer Linear Programming). Esse é um
tipo de otimização em que todas as funções são lineares e as variáveis podem assumir apenas
valores discretos (GOLDBARG; LUNA, 2000, p. 32). Entretanto, devido ao elevado custo
computacional a abordagem matemática é adequada apenas para problemas com reduzido número
de núcleos (RUGGIERO et al., 2006).
49
Além das meta-heurísticas e da abordagem matemática, diversas soluções tem sido
propostas para tratar o mapeamento de tarefas. Isso pode ser comprovado no Capítulo 3 em que são
apresentados oito trabalhos relacionados a esse tema.
2.6 CONSIDERAÇÕES
Este capítulo apresentou a base teórica necessária ao entendimento do contexto em que o
presente trabalho está inserido. Inicialmente foram discutidos os problemas relacionados às
arquiteturas de comunicação baseadas em barramentos, os quais tornam tal abordagem inadequada
para SoCs com maior densidade de núcleos. As NoCs, apresentadas pela indústria e pela
comunidade científica como uma alternativa, foram abordadas na sequência. Posteriormente, foram
apresentados conceitos relacionados ao consumo de energia e também sistemas de tempo real. Após
isso, o foco principal desse capítulo discorre sobre o mapeamento de tarefas em NoCs. Algumas
técnicas comumente adotadas na solução do problema do mapeamento foram conceituadas e
classificadas. No capítulo a seguir são apresentadas algumas das abordagens adotadas atualmente
no tratamento desse problema.
50
3 TRABALHOS RELACIONADOS
Este capítulo apresenta alguns dos trabalhos mais recentes sobre mapeamento de tarefas
aplicado na redução do consumo de energia, os quais são descritos nas seções a seguir quanto às
técnicas propostas e os resultados alcançados. Os artigos aqui descritos refletem o panorama geral
das propostas publicadas no período de 2009 a 2013, bem como a diversidade de soluções e
objetivos de otimização. Cada seção contém a descrição de uma publicação juntamente com um
quadro resumo das principais características identificadas. As seções finais apresentam uma análise
comparativa e as considerações.
3.1 COMPARATIVO ENTRE TÉCNICAS ESTÁTICAS E DINÂMICAS
No trabalho realizado por Carvalho et al. (2009), foram avaliados quatro algoritmos de
mapeamento de tarefas, sendo dois estáticos e dois dinâmicos. Ambos os algoritmos foram
empregados no mapeamento de tarefas em uma plataforma MPSoC de núcleos homogêneos
conectados por NoC.
Para o mapeamento estático, os autores adotaram as heurísticas Simulated Annealing e
Busca Tabu. No mapeamento dinâmico, foram empregadas as heurísticas PL (Path Load), que
realiza o mapeamento a partir dos caminhos derivados da primeira tarefa mapeada, e BN (Best
Neighbor), em que o método de busca por nodos disponíveis na plataforma é realizado em espiral a
partir da tarefa inicial. O ambiente de experimentação consistiu em dois cenários, sendo que, no
primeiro, é realizado o mapeamento de uma única aplicação em uma plataforma MPSoC com 5×4
elementos e, no segundo, foram mapeadas oito aplicações concorrentes em outra plataforma de
tamanho 9×9. Em ambos os experimentos foram empregadas a topologia em malha e a interconexão
por NoC.
As técnicas de mapeamento dinâmico apresentaram desempenho inferior às estáticas, em
relação à taxa de ocupação dos canais da rede, latência dos pacotes, e o tempo de execução.
Entretanto, a métrica que sofreu maior influência nos experimentos realizados foi o consumo de
energia, o qual demonstrou aumento de 38% no primeiro cenário de avaliação e 15,5% no segundo.
De acordo com os autores o custo adicional causado pela utilização da técnica de mapeamento
51
dinâmico é pouco significativo, uma vez que esta abordagem oferece grande flexibilidade ao
sistema, permitindo que a plataforma se adapte às necessidades das aplicações.
Quadro 2. Principais características apresentadas em Carvalho et al. (2009)
Característica Abordagens adotadas
Arquitetura MPSoC - homogêneo - monotarefa
Comunicação por NoC - malha 2-D
Mapeamento Estático: Simulated Annealing, Busca Tabu
Dinâmico: Path Load, Best Neighbour
Otimização Consumo de energia
Redução de contenções
Modelos Aplicação: grafo CWM
Energia por bit
Ferramentas de apoio TGFF – Modelos da rede em VHDL e dos EPs em SystemC
Benchmarks Aplicações multimídia e sintéticas
3.2 HEURÍSTICA PARA O MAPEAMENTO E ROTEAMENTO
No trabalho realizado por Tosun (2011), foi desenvolvido um algoritmo denominado
CastNet, o qual é adotado no mapeamento estático de tarefas em NoCs de topologia malha 2-D.
Esse algoritmo busca reduzir o consumo de energia posicionando as tarefas com maior volume de
comunicação em núcleos adjacentes. Após realizar o mapeamento a heurística identifica as rotas de
comunicação que apresentam caminhos mínimos e que requerem menor largura de banda da rede,
finalizando com a configuração das tabelas de roteamento.
No algoritmo CastNet, as tarefas são mapeadas de acordo com uma ordem de prioridade, a
qual é definida pelo volume de comunicação, ou seja, quanto maior a demanda de comunicação de
uma tarefa maior é a sua prioridade. Após identificar a tarefa inicial, o algoritmo seleciona um
núcleo dentre um grupo de núcleos candidatos a sua alocação. Esses candidatos compreendem a
amostra de um núcleo de cada grupo de núcleos simétricos, sendo que tal simetria é definida pelo
número canais de comunicação disponíveis em cada núcleo. As demais tarefas são mapeadas a
partir da tarefa inicial, mantendo próximas aquelas com maior índice de comunicação entre si. Esse
processo é repetido para cada núcleo candidato e o algoritmo seleciona o mapeamento que
apresentar o menor consumo total de energia.
Já o algoritmo para geração da tabela de roteamento, por sua vez, busca determinar o
caminho de comunicação entre núcleos que oferece o menor consumo de banda da rede. Isso é
52
realizado pela análise da largura de banda máxima para comunicação entre cada par de núcleos, o
caminho de menor custo é selecionado e as tabelas de roteamento são atualizadas adequadamente.
Para a avaliação da técnica desenvolvida o autor empregou oito grafos de tarefas, dentre os
quais seis são aplicações multimídia e dois foram gerados randomicamente. Em média, cada grafo é
composto de 17 vértices e 18 arestas. Para avaliar o consumo de energia, foi adotado um modelo
baseado em uma tecnologia CMOS equivalente a 100 nm, o qual é descrito por Srinivasan, Chatha e
Konjevod (2006). As aplicações foram mapeadas utilizando a técnica descrita e outras três
alternativas, uma delas consiste em uma solução baseada em programação linear e as outras duas
são heurísticas. Os resultados quanto à economia no consumo de energia e de largura de banda de
comunicação não foram expressivos. Porém, segundo o autor, o principal diferencial do trabalho
realizado se concentra na baixa complexidade da técnica criada.
Quadro 3. Principais características apresentadas em Tosun (2011)
Característica Abordagens adotadas
Arquitetura SoC - homogêneo - monotarefa
Comunicação por NoC - malha 2-D
Mapeamento Estático
Heurística: tarefa inicial selecionada com base no volume de comunicação
Otimização Consumo de energia: exploração da localidade
Minimização da largura de banda requerida
Modelos Grafos de aplicação e plataforma
Energia por bit8
Ferramentas de apoio Informação não identificada
Benchmarks Aplicações multimídia e sintéticas
3.3 MAPEAMENTO BASEADO EM PROGRAMAÇÃO LINEAR
No trabalho realizado por Huang et al. (2011a), foi desenvolvido um modelo de
programação linear para tratar o problema do mapeamento estático de tarefas em MPSoCs
heterogêneos. Visando, com isso, otimizar o consumo de energia nos elementos de processamento e
nos canais de comunicação. Para acelerar o processo de otimização, os autores também criaram uma
heurística baseada em Simulated Annealing, a qual realiza o mapeamento quase ótimo das tarefas,
porém com reduzido tempo de execução, tornando mais rápido o processo de otimização.
8Modelo descrito em Ye, Benini e De Micheli (2002).
53
O modelo de programação linear projetado, estende o formalismo descrito por Goraczko et
al. (2008), o qual avalia apenas o consumo de energia dos elementos que processam as tarefas. No
modelo estendido, a otimização também considera o consumo de energia decorrente da
comunicação entre as tarefas. Para acelerar o processo de otimização, que pode ter elevado custo
computacional quando aplicado em sistemas complexos, os autores criaram uma heurística baseada
em Simulated Annealing. Essa heurística consiste em um algoritmo parametrizável que permite a
configuração da quantidade de iterações e, deste modo, pode ser adaptada às necessidades da
aplicação alvo. O algoritmo inicia ordenando as tarefas de acordo com um critério que se baseia na
diferença de custo (consumo de energia) entre as duas melhores alternativas de mapeamento de uma
tarefa. Isso é realizado para garantir que as tarefas que oferecem melhor ganho sejam avaliadas nas
primeiras iterações. Continuando, em cada iteração, o algoritmo realoca uma tarefa selecionada
randomicamente, calcula o consumo de energia do novo mapeamento e compara com o anterior.
Caso o novo mapeamento apresente menor consumo de energia, este se torna a alternativa atual.
Caso contrário, a substituição do mapeamento antigo pelo novo será definida por uma função de
probabilidade. Um processo semelhante é realizado para identificar mapeamentos que melhoram as
propriedades de temporização.
Os experimentos de avaliação foram realizados em uma plataforma MPSoC, com 3×3
núcleos e topologia em malha, empregando 5 tipos de processadores. A geração das tarefas foi
realizada pela ferramenta TGFF9 (DICK; RHODES; WOLF, 1998). Nos experimentos
comparativos dos modelos de programação linear, os autores identificaram redução no consumo de
energia de 15% em média. Neste caso, tomando como base o modelo que otimiza o consumo de
energia nos processadores e nas operações de comunicação, frente ao modelo que otimiza apenas o
consumo de energia nos processadores. Os experimentos de avaliação da heurística demonstraram
um desempenho aproximadamente 5% inferior ao obtido pelo processo de programação linear.
Porém, apresentou melhor tempo de execução, considerando 1000 iterações do algoritmo, o que
permite reduzir o tempo necessário para exploração do espaço de projeto em sistemas complexos.
9TGFF é uma ferramenta de geração de grafos para caracterização de aplicações, a configuração das características das
tarefas geradas é controlada pelo usuário. Isso permite a reprodução de benchmarks gerados por diferentes usuários.
54
Quadro 4. Principais características apresentadas em Huang et al. (2011a)
Característica Abordagens adotadas
Arquitetura MPSoC- heterogêneos
Comunicação por NoC - malha 2-D
Mapeamento Estático
Simulated Annealing com avaliação de deadline
Otimização Consumo de energia na comunicação e computação
Modelos Aplicação: DAG (Direc tAcyclic Graph)
Plataforma – grafo não direcionado
Ferramentas de apoio TGFF
Benchmark Aplicações sintéticas
3.4 EXPLORAÇÃO DO PARTICIONAMENTO DE TAREFAS
No trabalho desenvolvido por Antunes et al. (2012), foram explorados o particionamento e
mapeamento de tarefas em MPSoC homogêneos. Na abordagem adotada, a qual é realizada em duas
etapas, os autores dividem as tarefas de uma aplicação em grupos, buscando reunir aquelas mais
comunicantes. Na sequência, em tempo de execução, esses grupos de tarefas são mapeados nos
tiles10
da plataforma MPSoC.
Durante a fase estática da técnica, são criados grupos com as tarefas de uma determinada
aplicação considerando a taxa de comunicação entre elas. Esse particionamento é realizado
empregando a técnica Simulated Annealing, a qual visa minimizar o volume total de comunicação.
Na etapa dinâmica, por sua vez, uma nova heurística é utilizada na procura dentre os grupos de
tarefas por algum que possua pelo menos uma tarefa já atribuída a um tile. Caso encontre, as tarefas
desse grupo serão preferencialmente mapeadas no mesmo tile. Caso contrário, o algoritmo seleciona
o mapeamento que resulta em menor consumo total de energia.
Os autores adotaram o modelo de consumo de energia por bit trafegado, o qual foi calibrado
por simulação em tecnologia CMOS de 70 nm, apresentando erro aproximado de 7%. Para
avaliação da técnica, foram particionadas e mapeadas 66 aplicações sintéticas e 4 aplicações reais,
apresentando em média 23.5% de redução no consumo.
10
Em português, o termo tile pode ser substituído por “Lajota”. Entretanto, neste trabalho optou-se pelo uso desse termo
em sua língua original.
55
Quadro 5. Principais características apresentadas em Antunes et al. (2012)
Característica Abordagens adotadas
Arquitetura MPSoC- homogêneo - multitarefa
Comunicação por NoC- malha 2-D
Mapeamento
Híbrido
Fase estática: Particionamento com Simulated Annealing
Fase dinâmica: heurística
Otimização Volume de comunicação
Consumo de energia na comunicação pela exploração da localidade
Modelos Grafos de aplicação, comunicação e plataforma
Energia por bit – tecnologia CMOS 70 nm
Ferramentas de apoio Framework MPSoC – CAFES (MARCON et al., 2011)
Benchmark Aplicações reais e sintéticas
3.5 MAPEAMENTO PARA SISTEMAS DE TEMPO REAL
Sayuti e Indrusiak (2013), utilizaram algoritmos genéticos no mapeamento estático de
tarefas em um sistema multi-core com arquitetura de comunicação baseada em NoCs. A técnica de
mapeamento empregada visa reduzir o consumo de energia enquanto mantém os requisitos de
comunicação do sistema, garantindo o cumprimento dos prazos (deadlines) das tarefas e fluxos de
pacotes. A técnica desenvolvida, a qual pode ser empregada em aplicações de tempo real críticas,
consiste em um mecanismo de otimização multiobjetivo baseado no algoritmo genético NSGA-II
(DEB et al., 2002). A plataforma, é composta por núcleos de processamento homogêneos
multitarefa conectados por uma NoC de canais preemptivos. Foram empregados modelos
matemáticos para estimativa de consumo de energia e latência, descritos em Palesi et al. (2011) e
Shi, Burns e Indrusiak (2010), respectivamente.
O mecanismo de otimização visa garantir o cumprimento dos prazos das aplicações pela
minimização do número de tarefas e fluxos não escalonáveis. Ou seja, minimizar a quantidade de
tarefas cujo, tempo de execução de pior caso é maior que o tempo disponível para execução e,
fluxos com latência de pior caso maior que o prazo da tarefa fonte. O algoritmo idealizado gera
diversas alternativas de mapeamento, dentre essas, é selecionada a solução com o menor número de
tarefas não escalonáveis. Se mais de uma solução oferecer o mesmo índice de tarefas não
escalonáveis, aquela com menor consumo de energia é selecionada.
Para avaliar a técnica, foram mapeadas duas aplicações, uma aplicação real de um veículo
autônomo, composta de 33 tarefas e 38 mensagens, e uma aplicação sintética, composta de 50
56
tarefas e 50 mensagens de tempo real. O mapeamento realizado com o algoritmo desenvolvido foi
comparado com outras três alternativas: algoritmo genético mono objetivo, vizinho mais próximo e
mapeamento randômico. Os resultados experimentais demonstraram que, o mapeamento obtido
com o algoritmo multiobjetivo atinge todos os requisitos de tempo, e ainda reduz consideravelmente
o consumo de energia.
Quadro 6. Principais características apresentadas em Sayuti e Indrusiak (2013)
Característica Abordagens adotadas
Arquitetura MPSoC - homogêneo - multitarefa
Comunicação por NoC - malha 2-D - canais virtuais preemptivos
Mapeamento Estático
NSGA-II
Otimização Cumprimento de prazos
Consumo de energia
Modelos Aplicação: grafo - escalonabilidade: equações
Energia por pacote
Ferramentas de apoio Framework de simulação codificado em Java
Benchmark Aplicações reais e sintéticas
3.6 MAPEAMENTO HÍBRIDO EM PLATAFORMAS HETEROGÊNEAS
O trabalho desenvolvido por Pham et al. (2013), aborda o mapeamento híbrido de tarefas,
no qual são otimizados o consumo de energia e a vazão em MPSoC heterogêneos. A técnica
adotada explora em tempo de projeto todas as possíveis combinações dos recursos disponíveis na
plataforma. Em tempo de execução, por sua vez, seleciona as combinações mais adequadas,
considerando as métricas de otimização definidas para cada aplicação.
Em tempo de projeto, as aplicações são avaliadas sequenciamente considerando diversas
distâncias entre os tiles em plataforma homogênea e heterogênea. A distância entre os pares de tiles
são configuradas para se adequarem aos possíveis posicionamentos disponíveis na plataforma alvo.
Para uma NoC 5×5, por exemplo, a distância máxima entre dois tiles é 8, portanto, cada par é
avaliado considerando-se distâncias de 1 a 8 canais entre eles. Os autores realizam em um primeiro
momento a avaliação para uma plataforma homogênea com a quantidade de tiles equivalente ao
número de tarefas da aplicação. O melhor mapeamento resultante dessa etapa é adotado na
avaliação de uma plataforma com tamanho decrementado em 1, esse processo se repete até o ponto
em que a plataforma avaliada possui apenas 1 tile.
57
Na plataforma heterogênea, os autores empregam os mapeamentos resultantes das
avaliações realizadas na etapa anterior. Nesse processo, cada mapeamento gerado anteriormente é
avaliado mediante a substituição dos tiles homogêneos por diversos tipos de realizações de tiles. Por
fim, as alternativas de mapeamento mais eficientes são armazenadas numa base de dados chamada
OMB (Optimal Mapping Database).
Na etapa que ocorre em tempo de execução, os autores empregam um processador para
mapear e escalonar as aplicações e controlar recursos e configurações da plataforma. Esse
gerenciador, denominado RTPC (Run-time Platform Controller) recebe como entrada o throughput
desejado pela aplicação, o status da plataforma e o banco de dados de mapeamentos. O algoritmo
implementado pelo RTPC seleciona, para cada aplicação a alternativa que apresenta o menor
consumo de energia, menor quantidade de tiles e ainda, mantém próximas as tarefas mais
comunicantes.
Para avaliar a técnica sugerida, os autores estenderam a aplicação SDF311
(STUIJK;
GEILEN; BASTEN, 2006) com a adição de suporte aos algoritmos de mapeamento propostos.
Empregaram como benchmarks quatro aplicações multimídia, as quais foram mapeadas utilizando
duas abordagens semelhantes àquela proposta. Mediante os experimentos realizados, a técnica
idealizada apresentou redução média acima de 14% no consumo de energia, no mapeamento
estático, e superior a 7%, no mapeamento dinâmico.
Quadro 7. Principais características apresentadas em Pham et al. (2013)
Característica Abordagens adotadas
Arquitetura MPSoC- heterogêneo
Comunicação por NoC
Mapeamento
Híbrido
Fase estática: heurística
Fase dinâmica: heurística
Otimização Consumo de energia na comunicação: exploração da localidade
Modelos Aplicação: SDFG
Energia por bit
Ferramentas de apoio SDF3 (Synchronous Data Flow For Free)
Benchmark Aplicações multimídia
11
SDF3 é uma ferramenta de geração de grafos de fluxo de dados síncronos (Synchronous Data Flow Graph), inclui
facilidades para análise, transformação e visualização de grafos. SDF3 foi inspirada em uma aplicação semelhante
denominada TGFF (DICK; RHODES; WOLF, 1998).
58
3.7 MAPEAMENTO PARA OTIMIZAÇÃO DA CONFIABILIDADE
Bolchini et al. (2013) empregaram o mapeamento híbrido na otimização da confiabilidade,
consumo de energia e vazão em MPSoCs baseados em NoCs. Durante a fase estática, a técnica
identifica as melhores alternativas de mapeamento em função do desempenho e vida útil do sistema.
Em tempo de execução, um núcleo de gerenciamento otimiza as aplicações mapeadas com o
objetivo de reduzir o consumo de energia e maximizar a confiabilidade, enquanto garante o
cumprimento das restrições de vazão.
O modelo de confiabilidade considera o envelhecimento dos núcleos, o que pode resultar em
faltas permanentes no sistema. Esse envelhecimento pode causar falhas por migração de elétrons,
tal efeito é modelado por uma distribuição de probabilidade. A vazão é calculada pela quantidade de
dados processados durante cada período de execução de uma dada aplicação. Para estimativa do
consumo de energia os autores empregaram o modelo de energia por bit trafegado.
A abordagem adotada pelos autores utiliza a técnica descrita por Das, Kumar e Veeravalli
(2013) no mapeamento estático. Nessa técnica, são selecionadas as melhores alternativas de
mapeamento para um conjunto de aplicações, considerando como objetivos a maximização da
confiabilidade e o desempenho do sistema. As informações geradas são armazenadas para utilização
na etapa seguinte.
Durante a fase dinâmica, o mapeamento inicial de cada aplicação é selecionado entre as
alternativas identificadas na etapa estática. Essas aplicações são periodicamente monitoradas por
um elemento gerenciador, denominado FC (Fabric Controller). Baseando-se nas métricas
analisadas, o elemento FC toma decisões sobre a distribuição das aplicações, calcula a vazão, o
consumo de energia e o envelhecimento dos componentes.
Sempre que necessário, o nodo gerenciador realiza a realocação de tarefas, visando otimizar
a vida útil dos componentes da arquitetura, enquanto minimiza o consumo de energia e mantém as
restrições de vazão das aplicações. A melhoria na vida útil é obtida pela redução da carga de
trabalho de núcleos mais envelhecidos (núcleos que estão executando uma determinada carga de
trabalho por mais tempo) e distribuição de parte das tarefas desses núcleos para outras unidades da
plataforma.
59
Os experimentos de avaliação se basearam na comparação do mapeamento gerado pela
técnica proposta frente ao mapeamento estático. Ao considerar apenas a confiabilidade como
função objetivo, a técnica de otimização conseguiu melhora de 16% com aumento de 9% no
consumo de energia, em relação ao mapeamento estático. Com a adição do consumo de energia na
função de otimização, foram observadas redução de 50% no consumo e uma melhora de 5% na
confiabilidade.
Quadro 8. Principais características apresentadas em Bolchini et al. (2013)
Característica Abordagens adotadas
Arquitetura MPSoC - homogêneo
Comunicação por NoC- malha 2-D
Mapeamento
Híbrido
Fase estática: (DAS; KUMAR; VEERAVALLI, 2013)
Fase dinâmica: ODA (Observe Decide Act)
Otimização Consumo de energia: exploração da localidade
Vazão e confiabilidade
Modelos Aplicação: grafo, confiabilidade: distribuição de probabilidade
Energia por bit
Ferramentas de apoio Simulador dedicado descrito em SystemC/TLM
Benchmark Aplicações multimídia
3.8 MAPEAMENTO EM MPSOCS BASEADOS EM BARRAMENTO
No trabalho realizado por Quan e Pimentel (2013), foi empregado o mapeamento híbrido em
MPSoC homogêneos. Na fase estática, a abordagem desenvolvida gera um mapeamento que oferece
o melhor desempenho médio para todas as aplicações suportadas pela plataforma. Considerando os
diferentes modos de execução de cada aplicação e tendo em vista a minimização do tempo de
execução e do consumo de energia. Na fase dinâmica, as aplicações são monitoradas e os
mapeamentos ajustados quando necessário.
Durante a etapa estática, os autores adotaram o algoritmo genético NSGA-II para selecionar
um conjunto representativo dos cenários de carga de trabalho. Esses cenários representam as
aplicações que coexistem na plataforma, juntamente com os possíveis modos de execução de cada
aplicação. Os mapeamentos derivados dessa etapa são armazenados e empregados na etapa
dinâmica.
60
O algoritmo desenvolvido, denominado STM (Scenario-based Task Mapping) monitora os
objetivos de desempenho específicos de cada aplicação em tempo de execução. Quando o sistema
detecta a execução de um novo cenário de carga de trabalho o algoritmo busca a alternativa de
mapeamento mais adequada dentre aquelas identificadas na fase estática. Por outro lado, quando
alguma aplicação não alcança as métricas de desempenho o algoritmo tenta realizar um novo
mapeamento apenas para essa aplicação.
O processo de realocação de tarefas inicia pela identificação da tarefa crítica, ou seja, aquela
que está violando alguma métrica de interesse. Isso é realizado pela soma do tempo em que a tarefa
utilizou o processador e a estrutura de comunicação. Baseado nessas informações, o algoritmo
identifica a melhor estratégia para o remapeamento. Caso a tarefa esteja com problemas na
comunicação, o algoritmo tenta remapear essa tarefa de modo a reduzir a distância entre os nodos
comunicantes. Se o problema é com o processamento, a abordagem adotada busca um processador
menos sobrecarregado.
Os experimentos empregados na avaliação da técnica adotada se basearam no mapeamento
de três aplicações reais: codificador MJPEG, filtro Sobel e MP3. Essas aplicações foram mapeadas
com o algoritmo proposto e outros três algoritmos alternativos RBPR (Recursive BiPartition and
Refining) (YU et al., 2007), FFBP (First-fit Bin Packing) (COFFMAN; GAREY; JOHNSON,
1997) e ORB (Output Rate Balancing) (CASTRILLON et al., 2013). Os resultados comparativos,
entre os mapeamentos estático e dinâmico, demonstraram melhoria de 11,3% no desempenho e
redução de 13,9% no consumo de energia. Quanto à comparação com os outros algoritmos, a
alternativa proposta produziu mapeamento de melhor qualidade e custo do que a maioria dos
algoritmos comparados.
Quadro 9. Principais características apresentadas em Quan e Pimentel (2013)
Característica Abordagens adotadas
Arquitetura MPSoC - homogêneo
Comunicação por barramento
Mapeamento
Híbrido
Fase estática: NSGA-II
Fase dinâmica: heurística STM – Scenario-based Task Mapping
Otimização Consumo de energia: exploração da localidade
Tempo de execução: remapeamento
Modelos Aplicação: KPN – Kahn Process Network
Plataforma: grafo MPSoC
Ferramentas de apoio Simulador Sesame
Benchmark Aplicações multimídia
61
3.9 ANÁLISE COMPARATIVA
Esta seção apresenta uma análise comparativa dos trabalhos descritos anteriormente. No
Quadro 10, as diferentes abordagens para o mapeamento de tarefas são comparadas com relação às
técnicas adotadas e às métricas otimizadas.
Quadro 10. Análise das técnicas de mapeamento
Trabalhos
Mapeamento Função Objetivo
Técnica Adotada Tipo
ILP
Meta
-heu
rística
Heu
rística1
2
Está
tico
Din
âm
ico
Híb
rido
En
ergia
Pra
zos
Desem
pen
ho
Con
fiab
ilidad
e
Carvalho et al. (2009) SA, TS X
X X PL, BN X
Tosun (2011) CastNet X X X
Huang et al. (2011a) X SA X X X
Antunes et al. (2012) SA X
X X X X
Sayuti e Indrusiak (2013) NSGA-II X X X
Pham et al. (2013) X X
X X X X X
Bolchini et al. (2013) X X
X X X ODA X
Quane Pimentel (2013) NSGA-II X
X X X STM X
Percebe-se nesse quadro, que todos os trabalhos descritos anteriormente consideram o
consumo de energia entre seus objetivos de otimização. Entretanto, essa métrica é tratada como
secundária, ela serve de critério de desempate quando diversas opções de mapeamento apresentam
valores idênticos em outros índices de interesse. Esse é o caso, por exemplo, do trabalho realizado
por Sayuti e Indrusiak (2013).
As técnicas de mapeamento mais utilizadas são do tipo híbrido, todavia, um ponto a ser
ressaltado nesses casos é que os autores empregaram técnicas distintas nas diferentes etapas.Outro
12
Nessa coluna são apresentados, sempre que possível, os acrônimos das heurísticas adotadas nos trabalhos. Nos casos
em que não há essa possibilidade utiliza-se o caractere “X”.
62
ponto importante é que, embora tenha abordado técnicas estáticas e dinâmicas, as investigações
realizadas por Carvalho et al. (2009) são no sentido de comparação entre as mesmas.
Os autores empregam as mais diversas heurísticas, desenvolvidas especificamente para os
problemas tratados. Destaca-se ainda a doção das principais meta-heurísticas: (SA) Simulated
Annealing, TS (Busca Tabu) e o algoritmo genético NSGA-II. Apenas um trabalho utilizou
otimização por programação matemática (ILP), mas nesse caso, o desempenho da técnica foi
melhorado pelo uso de uma meta-heurística.
No Quadro 11, são analisadas as características das plataformas. Percebe-se que, a maioria
dos autores optou por uma plataforma MPSoC com núcleos homogêneos e elementos de
processamento multitarefa. A arquitetura de comunicação mais adotada é NoCs, com exceção do
trabalho de Quan e Pimentel (2013), no qual os autores utilizaram um barramento. No entanto, cabe
ressaltar que a técnica descrita é adaptável para emprego em NoCs.
Quadro 11. Análise das plataformas
Trabalhos
Arquitetura de
Comunicação Plataforma
Elementos de
Processamento
Barra
men
to
NoC
SoC
MP
SoC
Hom
ogên
ea
Hetero
gog
ênea
Mon
ota
refa
Mu
ltitarefa
Carvalho et al. (2009) X X X X
Tosun (2011) X X X X
Huang et al. (2011a) X X X X
Antunes et al. (2012) X X X X
Sayuti e Indrusiak (2013) X X X
Phamet al. (2013) X X X X
Bolchini et al. (2013) X X X X
Quan e Pimentel (2013) X X X X
63
O Quadro 12, apresenta as informações sobre o ambiente de avaliação das técnicas de
mapeamento. Destaca-se, nesse quadro, a utilização de ferramentas para geração automática de
grafos de aplicações sintéticas: SDF3 e TGFF. Percebe-se também, a tendência em adotar algum
tipo de simulador. As aplicações multimídia e sintéticas são as mais utilizadas nas avaliações,
juntamente com o modelo de consumo de energia por bit trafegado. Outra questão importante a ser
notada é o emprego de modelos de tecnologia de circuitos CMOS na avaliação do consumo de
energia, que por sua vez, permite maior correspondência com circuitos reais.
Quadro 12. Análise dos ambientes de experimentação
Trabalhos
Tecn
olo
gia
CM
OS
En
ergia
por
paco
te
En
ergia
por b
it Benchmark Ferramentas de Apoio
Mu
ltimíd
ia
Sin
tético
Ap
licaçõ
es
reais
Simulador
específico
Geração e
análise de
grafos
Carvalho et al. (2009) X X X SystemC e
VHDL TGFF
Tosun (2011) 100 nm X X X Huang et al. (2011a) X X TGFF
Antunes et al. (2012) 70 nm X X X Framework
CAFES
Sayuti e Indrusiak (2013) X X X Framework
alto nível
Pham et al. (2013) X X SDF3
Bolchini et al. (2013) 65 nm X X SystemC/
TLM
Quan e Pimentel (2013) X Sesame
3.10 CONSIDERAÇÕES
Os trabalhos descritos neste capítulo tratam o problema do mapeamento de tarefas pela
aplicação de diversas técnicas. Os objetivos de otimização incluem o consumo de energia, porém
essa métrica não é tomada como o propósito principal. A economia de energia na comunicação é
abordada pela manutenção dos elementos mais comunicantes no mesmo núcleo, no caso de
plataformas multitarefa, ou em núcleos próximos, quando adotadas plataformas monotarefa. A
economia de energia na computação, entretanto, é realizada pelo remapeamento das tarefas na
expectativa de encontrar um EP que apresente maior eficiência energética.
64
Os trabalhos analisados apontam uma tendência em direção às abordagens híbridas.
Entretanto, o mapeamento estático ainda é o mais indicado nos casos em que a plataforma é
projetada para executar um conjunto específico de aplicações. Além disso, essa abordagem
compreende primeira etapa do mapeamento dinâmico, realizando o posicionamento inicial.
Em se tratando de aplicações de tempo real, a abordagem estática é mais adequada, uma vez
que, em tempo de execução não há como garantir a disponibilidade de recursos. Logo, não é
possível garantir a previsibilidade, um requisito essencial para esse tipo de aplicação.
65
4 MAPEAMENTO DE TAREFAS NA REDE SOCIN
Este trabalho tem por objetivo explorar o mapeamento de tarefas em sistemas baseados e
NoCs com suporte a canais virtuais de modo que as aplicações mapeadas cumpram seus prazos,
apresentem baixos níveis de consumo de energia estática, e ainda, que a quantidade de canais
virtuais implementados nos roteadores seja minimizada.
Para a realização das investigações propostas, foi utilizada a rede SoCIN (System-on-Chip
Interconnection Network). Esta é a NoC de referência adotada pelo laboratório de pesquisa ao qual
este trabalho está associado. De fato, foi implementada uma variação dessa rede derivada da versão
com QoS apresentada por Berejuck e Zeferino (2009), a qual contém dois canais virtuais, um para
fluxos de tempo real e outro para os demais fluxos.
Para o mapeamento de tarefas, foi proposto o uso de uma heurística de otimização
multiobjetivo que reduzisse o consumo de energia e maximizasse o cumprimento dos prazos
estabelecidos. Para avaliação do mapeamento realizado, foi utilizado um simulador SystemC da
rede SoCIN com precisão de ciclos para verificar o cumprimento dos prazos de entrega.
Este capítulo apresenta detalhes sobre a solução desenvolvida. Inicialmente, são descritas as
arquiteturas das redes SoCIN e SoCIN-Q, bem como o seu simulador. Após, são apresentadas as
adequações realizadas na rede para este trabalho e o modelo de consumo de energia utilizado.
Continuando, descreve-se a abordagem empregada no mapeamento de tarefase, por fim apresenta-
se um comparativo entre a solução desenvolvida e aquelas apresentadas nos trabalhos relacionados.
4.1 ESTRUTURA BASE
4.1.1 Rede SoCIN
A SoCIN (System-on-Chip Interconnection Network) foi desenvolvida por Zeferino (2003)
com o objetivo de explorar o espaço de projeto de NoCs, provendo uma arquitetura de comunicação
parametrizável, com desempenho escalável e baixo custo em área de silício. Originalmente, a
SoCIN utilizou como bloco construtivo o roteador RASoC (Router Architecture for System-on-
Chip). Esse roteador permitia a customização das dimensões da rede, da largura do canal de
comunicação e da profundidade dos buffers (ZEFERINO; KREUTZ; SUSIN, 2004). O nível de
66
parametrização foi ampliado posteriormente. Uma nova especificação da SoCIN acrescentou a
possibilidade de escolha entre diferentes técnicas de roteamento, arbitragem e controle de fluxo.
Para suportar essas características Zeferino, Santo e Susin (2004) desenvolveram o roteador
denominado ParIS (Parameterizable Interconnection Switch), o qual tem sido adotado atualmente.
A SoCIN oferece suporte a topologias diretas bidimensionais do tipo malha e toróide. Cada
roteador da rede possui até 5 portas de comunicação dependendo da topologia adotada e da posição
do roteador na rede (ZEFERINO; SANTO; SUSIN, 2004). A Figura 10 ilustra uma rede de
topologia em malha 2-D com tamanho 4×4. Os roteadores são endereçados empregando um sistema
de coordenadas XY (coluna, linha). Em destaque na figura, são identificadas as portas de
comunicação do roteador ParIS.
Figura 10. Rede SoCIN de tamanho 4×4 com topologia malha 2-D
Formato de pacote
O formato de pacote adotado pela SoCIN, ilustrado na Figura 11 (a), é composto de um
número ilimitado de flits. Cada flit possui n+2 bits, onde n compreende aos dados e os 2 bits
adicionais são utilizados no enquadramento do pacote. Ou seja, os bits bop (begin of packet) e eop
(end of packet) indicam se é um flit de cabeçalho (“01”), se pertence à carga útil (“00”) ou se
corresponde ao terminador (“10”).
Um flit de cabeçalho transporta informações necessárias ao roteamento do pacote. No
campo RIB (Routing Information Bits), é especificado o endereço do roteador destino, indicado
pelas coordenadas XY. O campo HLP (Higher Level Protocol), por sua vez, é reservado para
implementação de protocolos de camadas superiores à camada de rede. Os flits seguintes ao
0 3
Y
X
0,2
0,3
0,1
1,3 2,3 3,3
0,0
1,2
1,1
1,0
2,2
2,1
2,0
3,2
3,1
3,00
1
2
3
1 2
ParIS
x,y
N
E
S
W
L
67
cabeçalho compõem a carga útil do pacote, sendo que não há restrições em relação à quantidade
desses. Por fim, o último flit transferido é o terminador do pacote e indica o seu final (ZEFERINO;
SANTO; SUSIN, 2004).
Canal de comunicação
O enlace de comunicação da SoCIN é especificado conforme ilustra a Figura 11 (b), sendo
composto de dois canais ponto-a-ponto simplex em oposição. O canal compreende a n bits de dado,
acrescido de dois bits de banda lateral usados para o enquadramento do pacote (exemplificado na
Figura 11 (c)). Além disso, cada canal inclui um par de sinais (val e ret na Figura 11 (b)) utilizados
no controle de fluxo durante o envio de flits pelo canal.
Figura 11. SoCIN: (a) formato do pacote; (b) enlace; e (c) canal individual
Arquitetura do roteador ParIS
O roteador ParIS é um soft-core codificado com a linguagem de descrição de hardware
VHDL (VHSIC Hardware Description Language). Esse roteador possui até cinco portas de
comunicação denominadas L (Local), N (North), E (East), S (South) e W (West), conforme a Figura
12 (a). A porta Local é destinada ao acoplamento de núcleos ou subsistemas à rede, as demais
portas são empregadas na conexão com roteadores vizinhos. Em sua estrutura interna, o roteador é
organizado de maneira que cada porta de comunicação possui dois módulos, um para o canal de
entrada e outro para o canal de saída (ZEFERINO; SANTO; SUSIN, 2004).
Na Figura 12 (b), são apresentados os módulos de entrada e saída correspondentes às portas
Local (“Lin” e “Lout” na figura) e West (“Win” e “Wout” na figura). O componente “CPM”, no
centro da Figura 12 (b), é responsável por guiar o compilador VHDL a implementar apenas as
eop
0 1
0 0
01
HLP RIB.x RIB.y
terminador
bopn bits
carga útil
ilim
itado
(a) (b) (c)
n+2
n+2
valret
dadosbopeop
n
68
conexões permitidas pelo algoritmo de roteamento utilizado. Como exemplo, a Figura 12 (c) ilustra
as conexões permitidas ao roteamento XY (ZEFERINO; SANTO; SUSIN, 2004).
Figura 12. ParIS: (a) esquemático; (b) arquitetura interna; (c) CPM para o roteamento XY
Componentes do roteador ParIS
Os componentes dos módulos de entrada e saída do roteador ParIS estão ilustrados na Figura
13 (a) e (b), respectivamente. Os blocos IFC (Input Flow Controller) e OFC (Output Flow
Controller) são regulam o tráfego de flits nos canais de comunicação. Eles realizam a tradução entre
o protocolo de controle de fluxo do enlace e a técnica de controle de fluxo empregada internamente.
O bloco IFC regula o tráfego de flits que chegam aos canais de entrada enquanto o bloco OFC
regula a saída de flits (ZEFERINO; SANTO; SUSIN, 2004).
Os buffers FIFO são empregados no armazenamento de flits de pacotes que estão
temporariamente bloqueados aguardando encaminhamento. Eles podem ser adotados nas portas de
entrada e/ou portas de saída do roteador (ZEFERINO; SANTO; SUSIN, 2004).
Figura 13. Módulos do ParIS: (a) entrada; e (b) saída
ParIS
N
E
S
W
LCPM
Win Wout
Lin Lout
(a) (b) (c)
L
N
E
S
W
L N E S W
FIFOdinwrwok
doutrokrdIFC
IRS wok[ ]
ICreq[ ]
idle[ ]
rok
din
valret
input
FIFOdinwrwok
doutrokrd
ODS
OWSrok[ ]
wok
OFC
OCreq[ ]
gnt[ ]
idle
doutvalret
output
(a) (b)
69
Os blocos IC (Input Controller) e OC (Output Controller) realizam o escalonamento dos
recursos do roteador. O bloco IC seleciona um canal de saída para um canal de entrada, isso é feito
pela análise dos pacotes armazenados no buffer FIFO, execução do algoritmo de roteamento e
emissão de uma requisição ao canal de saída selecionado. Após a conexão ser estabelecida, o bloco
IC monitora a entrega do último flit do pacote (trailer) e em seguida retira a requisição de conexão.
Isso instrui o bloco OC a cancelar a conexão estabelecida anteriormente (ZEFERINO; SANTO;
SUSIN, 2004).
O bloco OC define qual canal de entrada poderá utilizar um canal de saída. Isso é feito pela
arbitragem das requisições recebidas do bloco IC e emissão do sinal de concessão, o qual irá
comandar as chaves internas do roteador a conectarem o canal de entrada ao canal de saída
(ZEFERINO; SANTO; SUSIN, 2004).
As chaves ODS, OWS e IRS realizam a interligação dos canais por meio da conexão dos
sinais de dados e de controle entre os canais de entrada e saída. Essas chaves realizam isso sob o
comando dos sinais emitidos pelos blocos OC, conforme definido por Zeferino, Santo e Susin
(2004):
ODS (Output Data Switch): conecta a porta de saída de dados do buffer do canal de
entrada com a porta de entrada de dados do buffer associado ao canal de saída;
OWS (Output Write Switch): conecta os sinais de status do buffer do canal de entrada
selecionado com o comando de escrita do buffer associado ao canal de saída; e
IRS(Input Read Switch): conecta o sinal de status do buffer de saída ao comando de
leitura associado ao buffer de entrada.
4.1.2 A rede SoCIN-Q
A SoCIN oferece serviço de comunicação do tipo melhor esforço. Ou seja, os pacotes são
entregues, mas não há garantias de largura de banda ou de latência, pois todos os fluxos de dados
são tratados igualitariamente.
Visando adicionar qualidade de serviço à SoCIN, Berejuck e Zeferino (2009) aplicaram três
técnicas de QoS (Quality-of-Service), sendo elas: chaveamento por circuito, canais virtuais e
70
escalonamento de canais por envelhecimento de pacote. Isso resultou no desenvolvimento de uma
nova versão da rede, a qual foi denominada SoCIN-Q (Q de QoS).
A técnica de chaveamento por circuito foi aplicada tendo em vista a minimização da
variação no tempo de entrega de pacotes sucessivos, ao que se denomina flutuação (do inglês,
jitter). A implementação foi realizada com a adoção de pacotes de controle para estabelecer e
liberar um circuito. Para isso, os autores adicionaram um campo extra no cabeçalho do pacote da
SoCIN. Esse campo de comando define se o pacote é do tipo normal, de alocação, liberação ou
concessão de um canal. Nos roteadores, por sua vez, foram realizadas as modificações necessárias
para suportar essas técnicas(BEREJUCK; ZEFERINO, 2009).
Para oferecer diferenciação entre fluxos de comunicação, foram criadas duas classes de
tráfego: uma para fluxos de tempo real e outra para fluxos normais, ou seja, que não tem requisitos
estritos de tempo de entrega. Essas classes de serviço são denominadas RT (Real-Time) e nRT
(non-Real-Time), respectivamente, sendo que cada categoria possui duas subdivisões, resultando
em quatro subclasses de tráfego: RT0, RT1, nRT0 e nRT1. Para permitir a identificação dos pacotes
pertencentes a essas subclasses de tráfego, foi acrescentado um campo de dois bits no cabeçalho do
pacote. Esse campo, chamado “CLS”, corresponde aos bits 18 e 19, como pode ser visualizado na
Figura 14 (BEREJUCK; ZEFERINO, 2009).
Figura 14. Formato de pacote da SoCIN-Q
Fonte: Adaptado de Berejuck e Zeferino (2009).
Além disso, foram realizadas modificações no roteador ParIS, replicando-se os módulos de
entrada e de saída para implementar canais virtuais para cada classe (RT e nRT). Portanto, cada
porta de entrada do roteador possui um módulo dedicado para os fluxos de tempo real e outro para
de demais fluxos. O mesmo ocorre para as portas de saída.
A Figura 15 ilustra como os módulos de entrada e saída foram replicados para formar os
canais virtuais. Quando os pacotes chegam às portas de entrada do roteador eles são direcionados
conforme sua classe para os módulos “Xin-RT” ou “Xin-nRT”, conforme demonstra a Figura 15(a).
Por outro lado, quando os pacotes são encaminhados aos canais de saída (Figura 15 (b)), aqueles
que procedem dos módulos “Xout-RT” têm preferência. Portanto, os pacotes RT sempre vencem as
33 32 31-23 22-20 19-18 17-16 15-12 11-08 7-4 3-0
CMDEOP BOP HLP AGE CLS Xsrc Ysrc Xdest Ydest
71
disputas com os pacotes nRT pelos canais de saída da rede. Além disso, se um pacote RT chega ao
canal de saída quando um pacote nRT já está sendo encaminhado, o envio deste último é
preemptado para que o pacote RT possa ser repassado imediatamente. Isso reduz a latência e o jitter
dos pacotes RT, contribuindo para o cumprimento dos seus prazos de entrega.
Figura 15. Módulos replicados na SoCIN-Q: (a) entrada; e (b) saída
Fonte: Adaptado de Berejuck e Zeferino (2009).
A SoCIN-Q também conta com a técnica de envelhecimento de pacotes para permitir a
diferenciação entre fluxos da mesma classe de tráfego. Na implementação dessa técnica foi
adicionado um novo campo ao cabeçalho da rede, chamado “AGE” esse campo corresponde aos
bits 20 a 22 conforme ilustra a Figura 14. O mecanismo de envelhecimento foi modelado na saída
do módulo “Xin” na forma de um circuito stampler, o qual é responsável por incrementar o campo
“AGE” dos pacotes RT que aguardam a liberação do canal de saída. Finalizando, o circuito de
arbitragem do canal de saída Xout prioriza os pacotes que estão há mais tempo aguardando na rede
(BEREJUCK; ZEFERINO, 2009).
4.1.3 O Simulador da SoCIN
O Laboratório de Sistemas Embarcados e Distribuídos (LEDS – Laboratory of Embedded
and Distributed Systems) tem desenvolvido simuladores para avaliação do desempenho da rede
SoCIN. A primeira versão do simulador, denominada BrownPepper, é composta de modelos de
simulação da rede descritos em SystemC, ferramentas de apoio e de uma interface gráfica baseada
em GTK+ (BRUCH; PIZZONI; ZEFERINO, 2009). A segunda versão, denominada RedScarf
(SILVA; METZGER; ZEFERINO, 2014), integra as mesmas funcionalidades do BrownPepper,
porém, sua interface foi migrada para Qt, conferindo ao simulador a capacidade de ser executado
em diferentes sistemas operacionais (ex. Windows, Linux, OS X). Além disso, acrescenta outros
(a) (b)
Xin-RT
Xin-nRT
XinXout-RT
Xout-nRT
Xout
72
recursos, como, por exemplo, execução multithread, interface bilíngue (inglês e português) e
recursos adicionais que melhoram a usabilidade da ferramenta.
O simulador RedScarf é um ambiente de avaliação de desempenho de NoCs baseado nas
redes SoCIN e SoCIN-Q. Ele compreende uma interface gráfica que integra uma série de modelos
implementados em SystemC. Esse simulador é baseado na descrição RTL do roteador ParIS (sem
canais virtuais e com dois canais virtuais), geradores de tráfego e medidores de tráfego.
A Figura 16 ilustra um exemplo de sistema baseado no roteador ParIS. Em destaque na
figura, pode ser notado que em cada porta L (Local) do roteador há um bloco de geração de tráfego
(TG – Traffic Generator) e medição de tráfego (TM – Traffic Metter) acoplados. Os TGs são
geradores e consumidores de tráfego, pois enviam pacotes e também recebem pacotes de outros
TGs. Os TMs são responsáveis por monitorar o tráfego no terminal Local da rede.
Figura 16. Sistema baseado no roteador ParIS
O simulador permite emular a execução de uma aplicação. Um TG pode gerar até quatro
padrões de tráfego diferentes. Cada padrão pode resultar em um único fluxo de comunicação para
outro TG ou em múltiplos fluxos para diferentes TGs, seguindo uma determinada distribuição
espacial (ex. uniforme, complemento etc.). Para cada padrão de tráfego, é possível associar uma
subclasse de prioridade (entre quatro disponíveis: RT0, RT1, nRT0 e nRT1) e o roteador da SoCIN-
Q oferece diferenciação de serviços entre as classes RT e nRT e suas subclasses. Também é
possível definir as características de cada padrão de tráfego (ex. taxa de injeção, tamanho da
mensagem etc.) e seu requisito temporal (prazo).
A partir do modelo de tráfego, é realizada uma simulação e os módulos TM coletam dados
referentes aos pacotes entregues em cada fluxo. Uma ferramenta de análise é então utilizada para
identificar a latência de cada pacote e se seu requisito temporal foi atendido ou não. Com isso, é
ParIS
TGT
M
73
possível determinar valores mínimos, máximos e médios de latências, bem como taxas de
cumprimento de prazos, para cada fluxo ou para todos os fluxos da aplicação.
4.2 ADEQUAÇÕES REALIZADAS
Arquitetura
No desenvolvimento deste trabalho, foi adotada uma arquitetura semelhante a que está
ilustrada na Figura 16, a qual contempla uma rede de tamanho 4×4 em que cada roteador possui em
sua porta Local elementos geradores e medidores de tráfego. Entretanto, para fornecer o suporte aos
canais virtuais foi necessário adicionar três bits ao enlace de comunicação para a sinalização do
canal virtual ao qual os flits do pacote estão associados, a Figura 17 ilustra essa alteração.
Além disso, foram realizadas adequações nos geradores e medidores de tráfego para
identificar os canais virtuais. No primeiro caso, a versão original foi estendida para permitir a
geração de até oito classes distintas de fluxos. Do mesmo modo, o medidor de tráfego foi adaptado
para diferenciar os pacotes recebidos conforme sua classe e evitar o embaralhamento de flits de
diferentes pacotes (o que pode ocorrer quando um pacote é preemptado por outro de maior
prioridade).
O fluxo de avaliação de desempenho utilizado neste trabalho (ilustrado na Figura 18) inicia
com a definição das características do tráfego de dados que será injetado na rede. Essas informações
são descritas em um arquivo denominado “Traffic.tcf” que serve como entrada para o gerador de
tráfego (TG), que por sua vez, alimenta a porta Local do roteador considerando tais informações.
Ao injetar pacotes, o TG também sinaliza qual canal virtual deve ser utilizado. No terminal de saída
da porta Local, o medidor de tráfego registra as informações relacionadas ao tempo de chegada dos
pacotes destinados ao roteador em que ele está acoplado. Essas informações são armazenadas em
arquivos de log e posteriormente são analisadas por uma ferramenta de avaliação de desempenho
n+2Dados
Controle de fluxoCanal virtual
Figura 17. Enlace com sinalização de canal virtual
74
denominada ATR, a qual avalia diversas métricas relativas aos pacotes entregues pela rede. De
especial importância para este trabalho se considera o cumprimento de prazos. Essa métrica é
informada pela ferramenta em percentual de pacotes entregues dentro do intervalo de tempo limite
estipulado.
Conforme descrito anteriormente, ao injetar um pacote na rede, o TG indica que canal
virtual deve ser utilizado. Para isso, o formato de pacote da SoCIN foi alterado, sendo que o
cabeçalho passou a conter um campo de três bits denominado “CLS” para transportar essa
informação. Originalmente o campo “CLS” era composto de apenas dois bits (conforme pode ser
visualizado na Figura 14), o que era suficiente para diferenciar quatro classes de tráfego. Porém,
para possibilitar a diferenciação de até oito classes, o bit 20 que compunha o campo “AGE” foi
incorporado ao campo “CLS”. Essa alteração não causa efeitos colaterais uma vez que a técnica de
envelhecimento que utiliza o campo “AGE” não é explorada neste trabalho.
Canais virtuais
A abordagem adotada na implementação dos canais virtuais consistiu na replicação dos
módulos de entrada e saída do ParIS. Foram criadas oito instâncias dos blocos de comunicação para
cada porta do roteador. Esse modelo se diferencia daquele utilizado na SoCIN-Q por adotar um
único módulo de controle de fluxo para ambos os canais virtuais, enquanto a SoCIN-Q emprega
dois módulos de controle de fluxo, um para cada canal virtual.
Cabe destacar que, embora a SoCIN-Q suportasse quatro classes de tráfego diferentes, ela
possuía apenas dois canais virtuais implementados: um para classes de tempo real (RT0 e RT1) e
Log
Avaliação
de
desempenho Métricas
Medidor
de
tráfego
Gerador
de
tráfegoTraffic.tcf
Figura 18. Fluxo de avaliação de desempenho
75
outro para classes de tempo não real (nRT0 e nRT1). No presente trabalho, foi definido um modelo
de roteador com oito canais virtuais.
A Figura 19 ilustra um módulo de entrada com suporte aos canais virtuais. Devido à
limitação de espaço e para conferir melhor legibilidade, são apresentadas apenas duas instâncias dos
blocos de comunicação. Nesse modelo, a seleção do canal virtual é realizada pela entrada “i_VC”
na figura. Esse sinal determina qual canal virtual receberá as informações de controle de fluxo,
permitindo, dessa forma, o gerenciamento de oito classes tráfego.
De forma semelhante, os módulos de saída do ParIS foram replicados em oito instâncias e o
controle de fluxo também é realizado por um bloco único (componente “OFC” na Figura 20).
Figura 19. Módulo de entrada com oito canais virtuais
76
A escolha de qual canal virtual terá acesso ao canal de saída é realizada por um codificador
de prioridades estático que seleciona sempre a requisição de maior prioridade. Nesse modelo, o
pacote que estiver utilizando uma saída será preemptado sempre que um pacote de uma classe de
maior prioridade precisar utilizar a mesma saída. Assim que este pacote de maior prioridade for
transferido, o encaminhamento do pacote suspenso é retomado.
A preempção dos canais é um processo que visa garantir que pacotes de maior prioridade
sejam transmitidos antes daqueles de menor prioridade. A Figura 21 ilustra essa ocorrência,
assumindo que o roteador está recebendo pacotes em suas entradas Oeste e Local, ambos destinados
à porta Leste. No ciclo 2, ilustrado na figura, o roteador recebe em sua porta Oeste o cabeçalho de
um pacote de prioridade 1. Esse pacote é encaminhado para a saída “o_East” no ciclo 5, porém, no
ciclo 6, a porta Local recebe um pacote de prioridade 0 (quanto menor o identificador de prioridade,
maior é o seu nível de prioridade). Então, no ciclo 9, o roteador deixa de encaminhar os flits do
pacote menos prioritário e passa a entregar o pacote de prioridade 0. Ao finalizar a entrega desse
pacote, no ciclo 12, os flits restantes do pacote de prioridade 1 são finalmente encaminhados a partir
do ciclo 13 até completar sua entrega no ciclo 16.
Figura 20. Módulo de saída com oito canais virtuais
77
Modelo de consumo de energia
A avaliação da dissipação de potência no ParIS foi realizada por simulação e síntese com as
ferramentas Synopsys VCS e Design Compiler. Foi utilizada uma biblioteca de tecnologia CMOS
genérica de 32 nm (SAED32/28nm). A dissipação de potência dinâmica foi aferida pela
transferência de pacotes de tamanhos que variam de 2 a 15 flits partindo da porta Local para a porta
Leste. Para cada tamanho de pacote foram realizadas três simulações diferentes. Na primeira, não
ocorre o chaveamento de bits entre os flits sucessivos injetados no roteador, na segunda o
chaveamento é de 50% e na terceira simulação cada flit transferido pelo roteador representa o
complemento do flit anterior, nesse caso ocorre o chaveamento de 100% dos bits.
Essa abordagem é semelhante aquela adotada por Palesi et al. (2011) na caracterização do
consumo de energia dinâmica de uma NoC. Os resultados obtidos pelas simulações realizadas
apontam uma baixa representatividade da potência dinâmica ao comparar com a dissipação da
potência estática. Considerando-se uma configuração mínima do roteador contendo apenas um
canal virtual e buffers de profundidade 4, é possível notar que a dissipação de potência dinâmica
corresponde a menos de 25% da dissipação de potência estática em um cenário de chaveamento
médio (50%). Isso pode ser conferido a seguir, na Tabela 1, a qual apresenta a dissipação de
potência dinâmica ao trafegar um pacote de15 flits pelo roteador (a avaliação da dissipação de
potência estática é apresentada na sequência). Portanto, optou-se por restringir as investigações
deste trabalho ao consumo de energia estática do roteador.
Tabela 1. Dissipação de potência dinâmica no roteador ParIS
Potência dinâmica conforme o chaveamento de bits (mW)
Flits 0% 50% 100%
15 0,0496897 0,0658448 0,0803451
Figura 21. Preempção de um canal virtual
78
A avaliação da dissipação de potência estática foi realizada por sínteses do roteador para as
oito configurações de canais virtuais considerando buffers de profundidade 2 até 8. Os resultados
obtidos são demonstrados na Tabela 2. Percebe-se que a quantidade de canais virtuais e a
profundidade dos buffers impactam fortemente na dissipação de potência estática.
Tabela 2. Dissipação de potência estática no roteador ParIS
Potência estática dissipada para 8 canais virtuais (mW)
FIFO 1vc 2vcs 3vcs 4vcs 5vcs 6vcs 7vcs 8vcs
2 0,1566283 0,3124632 0,460744 0,6244222 0,7728935 0,928118 1,0848 1,2268
3 0,1955946 0,390396 0,5777544 0,7800177 0,9705557 1,1652 1,3631 1,5437
4 0,2572518 0,5134945 0,7631678 1,0269 1,277 1,5339 1,8046 2,0531
5 0,2993875 0,6013929 0,8943 1,2055 1,5053 1,7938 2,0991 2,3875
6 0,3444973 0,6877091 1,0242 1,3747 1,7214 2,0556 2,4076 2,7328
7 0,3917705 0,782546 1,1701 1,572 1,9599 2,3998 2,8078 3,1967
8 0,4323542 0,8639463 1,2996 1,7403 2,1642 2,5988 3,0422 3,4638
Neste trabalho adotou-se uma rede em malha 2-D de tamanho 4×4, nessa configuração,
estão presentes 4 roteadores de 5 portas, 4 roteadores de 3 portas, e 8 roteadores contendo 4 portas
de comunicação. Isso foi considerado no cálculo da dissipação de potência estática. Para tanto o
ParIS foi sintetizado de acordo com essas variações contendo apenas um canal virtual. O resultado
de cada síntese pode ser visualizado na Tabela 3.
Tabela 3. Potência estática para diferentes configurações do ParIS
Número de portas no ParIS Potência estática (mW)
3 0,2373071
4 0,2506489
5 0,2572518
Portanto, a potência estática da rede pode ser expressa por (7), onde 𝑃𝑅5, 𝑃𝑅4, e 𝑃𝑅3 indicam
a potência estática dissipada por um roteador com 5, 4 e 3 portas respectivamente, e 𝑁𝑉𝐶 representa
a quantidade de canais virtuais. Conhecendo-se a dissipação de potência da rede é possível calcular
o consumo de energia estática conforme (8), onde 𝑁𝑐𝑖𝑐𝑙𝑜𝑠 e 𝑇𝑐𝑙𝑜𝑐𝑘 indicam, respectivamente, o
número de ciclos e o período de relógio empregado, ou seja, o tempo de operação da rede.
𝑃𝑒𝑠𝑡á𝑡𝑖𝑐𝑎 = 4 × 𝑃𝑅5 + 4 × 𝑃𝑅3 + 8 × 𝑃𝑅4 × 𝑁𝑉𝐶 (7)
79
𝐸𝑒𝑠𝑡á𝑡𝑖𝑐𝑎 = 𝑃𝑒𝑠𝑡á𝑡𝑖𝑐𝑎 × (𝑁𝑐𝑖𝑐𝑙𝑜𝑠 × 𝑇𝑐𝑙𝑜𝑐𝑘 ) (8)
Avaliação de área de silício
A adoção dos canais virtuais também causa impacto significativo na área de silício ocupada,
o que pode ser conferido na Tabela 4. Essa tabela demonstra a área total ocupada pelo ParIS quando
o roteador é sintetizado em cada uma das oito implementações de canais virtuais empregando
buffers com capacidade de armazenamento de 4 flits.
Tabela 4. Área de silício ocupada
Canais virtuais Área ocupada um² 1 14.090,664398
2 29.186,945137
3 43.625,695645
4 59.957,764821
5 75.412,432092
6 91.195,455012
7 109.521,043627
8 125.571,466468
4.3 MAPEAMENTO DE TAREFAS
As avaliações realizadas anteriormente demonstram a importância da minimização da
quantidade de canais virtuais presentes no roteador, devido ao impacto considerável na dissipação
de potência e na área ocupada. Nesta seção, discute-se a técnica de mapeamento de tarefas adotada
na otimização da quantidade de canais virtuais implementados no ParIS.
O mapeamento de uma aplicação, conforme descrito na Seção 2.5, é precedido por uma
etapa de particionamento dessa aplicação em um grafo, de modo que cada vértice represente uma
tarefa e cada aresta indique a comunicação entre duas tarefas. Além disso, é necessário atribuir as
tarefas aos elementos de processamentos adequados a sua execução.
Entretanto, no âmbito deste trabalho, essas atividades são desconsideradas. Não é necessário
realizar o particionamento porque são utilizados modelos de aplicações já descritos na forma de
grafo. A etapa de ligação também não é necessária porque a plataforma considerada nas
investigações é composta de elementos homogêneos, ou seja, as tarefas podem ser executadas em
qualquer EP.
80
Modelo de aplicação
Na realização do mapeamento, foi utilizado um modelo de tarefa baseado naquele adotado
por Sayuti e Indrusiak (2013), o qual se caracteriza pelas seguintes definições:
Tarefa: uma tarefa é representada pela tupla onde: é o tempo
máximo de execução de uma tarefa; representa o período, ou seja, o intervalo
mínimo de tempo entre invocações sucessivas; e , por sua vez, define a prioridade
da tarefa; e
Mensagem: uma mensagem pode ser descrita por uma tupla
onde: representa a tarefa que envia uma mensagem; indica a tarefa destino;
compreende a prioridade da tarefa; e define o tamanho da mensagem.
Nesse modelo, o prazo das tarefas e das mensagens (ou fluxos) é igual ao seu período. Ou
seja, tanto para as tarefas quanto para as mensagens, 𝐷 = 𝑇, onde 𝐷 indica o prazo e T determina o
período.
A plataforma considerada neste trabalho é do tipo homogênea, sendo que, cada nodo do
sistema é composto de um elemento de processamento (EP) emulado por um gerador de tráfego,
conectado a um roteador da rede.
No gerador de tráfego do simulador, um fluxo de comunicação é descrito pelos seguintes
atributos: fonte (ou seja, Src no modelo de Sayuti e Indrusiak), destinatário (Dst), classe de tráfego
(V), tamanho da mensagem (F) e prazo de entrega (D). Além disso, pode-se especificar o intervalo
entre pacotes (ou seja T) ou a largura de banda requerida (taxa de dados). Neste último caso, o
gerador calcula o intervalo entre pacotes com base na largura de banda e no tamanho da mensagem.
Portanto, o simulador permite que se representem as comunicações entre as tarefas do modelo de
aplicação.
Como o foco deste trabalho está na comunicação, considera-se que cada EP executa uma
única tarefa. Essa simplificação decorre do fato de que o gerador de tráfego não consegue emular a
concorrência e o escalonamento das tarefas executadas em um mesmo nodo e nem a comunicação
entre elas.
,, VTCTask C
T
V
,,, FVDstSrcMsg
Src Dst
V F
81
Modelo de plataforma
O modelo de plataforma descrito na Subseção 2.5.3.2 foi adotado na representação dos
roteadores e dos canais de comunicação da NoC. Nesse modelo, Ogras e Marculescu (2013, p. 43)
caracterizam a plataforma utilizando uma tupla 𝐴𝑟𝑐ℎ 𝑇 𝑅,𝐶ℎ , 𝑃𝑅 , Ω 𝐶 onde: 𝑇 𝑅,𝐶ℎ
representa a topologia da rede; 𝑃𝑅 indica a política de roteamento; e Ω 𝐶 determina a função de
mapeamento dos vértices de um grafo de aplicação nos roteadores da rede.
Heurística de mapeamento
Este trabalho investiga o mapeamento de tarefas para a otimização de dois objetivos, o
primeiro consiste na garantia do cumprimento de prazos dos fluxos de comunicação, enquanto o
segundo visa à redução do consumo de energia estática. A otimização do cumprimento de prazos
pode implicar na adoção de canais virtuais para permitir a diferenciação entre as mensagens
trafegadas pela rede e desse modo, privilegiar fluxos prioritários. Por outro lado, a economia de
energia estática pode ser realizada pela minimização da quantidade de canais virtuais, uma vez que
esses canais são compostos principalmente por elementos de memória em forma de buffers os quais
são responsáveis por mais de 50% do consumo de energia estática nos roteadores. Portanto, os
objetivos propostos são conflitantes e, assim, o algoritmo de otimização busca encontrar soluções
que representem um bom compromisso entre essas métricas.
A heurística foi elaborada com base no algoritmo genético para otimização de múltiplos
objetivos denominado NSGA-II (DEB et al. 2002). Para representar o problema de modo que o
algoritmo possa gerar as possíveis soluções de mapeamento, foi empregado o cromossomo ilustrado
na Figura 22.
3 1 9 2
T0 T1 T2 T3 T4 T5 T6 T7
6 4 7 0 1 3 2 0
T0 T1 T2 T3 T4 T5 T6 T7
1 1 3 2
Mapeamento Canais virtuais
Núcleos Prioridade
Tarefas Tarefas
Figura 22. Cromossomo para representação do mapeamento e da atribuição de prioridades
82
Nessa estrutura, os índices do cromossomo indicam as tarefas, o conteúdo dos genes indica
em que núcleo da plataforma elas devem ser mapeadas e seus respectivos níveis de prioridade.
Note-se que o tamanho do cromossomo corresponde ao dobro da quantidade de tarefas, onde a
primeira metade indica o mapeamento e a segunda metade determina o canal virtual a ser utilizado.
O conteúdo dos elementos do cromossomo destinados à representação do mapeamento das
tarefas deve variar de acordo com a quantidade de núcleos na plataforma. Por exemplo,
considerando-se uma rede 4×4os valores possíveis variam de 0 a 15. De forma semelhante, para as
prioridades, os valores permitidos estão entre 0 e 7 inclusive, totalizando oito níveis de prioridade.
O endereçamento dos núcleos foi definido conforme indica a Figura 23 (a) e, para
exemplificar o processo de mapeamento, a Figura 23 (b) ilustra a alocação das tarefas indicadas no
cromossomo da Figura 22. Como pode ser observado, a tarefa 𝑡0 foi posicionada no EP 3, a tarefa
𝑡1 no EP 1, a tarefa 𝑡2 no EP 9, e assim sucessivamente. Cabe salientar que a Figura 23 não
demonstra a atribuição de prioridades.
2
3
1
7 11 15
0
6
5
4
10
9
8
14
13
12
(a) (b)
T0 7
T1 T2
T3 T4
T5
T6
T70
1
2
3
0 31 2
Figura 23. Endereçamento da plataforma (a) e mapeamento de oito tarefas em (b)
Para que a heurística realize o processo de otimização é necessário fornecer como entrada a
descrição das características de comunicação da aplicação. Isso é realizado pela configuração de um
arquivo de descrição de tráfego. Esse arquivo contém para cada nodo da plataforma as informações
descritas na Figura 24, a primeira linha indica o nome do EP origem (“Tg_0_0” na figura). A
segunda linha determina a quantidade de fluxos partindo desse EP, as linhas subsequentes indicam
83
as características de cada fluxo e serão tantas quanto à quantidade de fluxos mapeados no respectivo
EP14
.
Os rótulos entre parênteses apresentados na Figura 24 apontam algumas das informações
relevantes para o escopo deste trabalho. A informação contida em (a) define as coordenadas do
roteador destino, o nível de prioridade dos fluxos é indicado em (b). Enquanto (c) indica a
quantidade de pacotes, (d) o prazo de entrega de cada pacote, (e) a quantidade de flits contidos no
payload e (f) o período de ociosidade entre pacotes sucessivos.
2
Tg_0_0
0 0 2 0 3 0 100 305 100.0000 4 300 0 0 0 0.00 0.00
(a) (b) (c) (d) (e) (f)
0 1 1 0 3 0 100 235 100.0000 4 230 0 0 0 0.00 0.00
Figura 24. Informações de descrição de tráfego
Após a configuração de tráfego, a heurística segue o fluxo geral apresentado na Figura 25.
Entretanto, foram realizadas algumas alterações na versão original do NSGA-II, especificamente
nos processos de inicialização e avaliação, os quais estão destacados na figura.
Figura 25. Fluxo básico da heurística de mapeamento
14
Para os efeitos deste trabalho, cada conjunto de fluxos mapeado em um EP compreende a uma tarefa.
84
O método de inicialização foi modificado em função de uma restrição inerente ao modelo de
plataforma que é composto por núcleos monotarefa. Isso ocorre porque, na inicialização, o
algoritmo cria uma população randômica de soluções. Ou seja, atribui-se um valor aleatório dentre
os valores limite de cada elemento do cromossomo. Com isso, algumas das soluções criadas são
inviáveis, pois contém valores repetidos na faixa de elementos destinados ao mapeamento das
tarefas. Isso implica na atribuição de mais de uma tarefa ao mesmo EP, mas uma vez que esse tipo
de mapeamento não é suportado pela plataforma essas soluções devem ser descartadas. A Figura 26
ilustra um exemplo de cromossomo contendo uma definição de mapeamento inválida, no qual as
tarefas 𝑡1 e 𝑡7 são ambas atribuídas ao EP 0.
3 9 2
T0 T1 T2 T3 T4 T5 T6 T7
6 4 7 1 3 2 0
T0 T1 T2 T3 T4 T5 T6 T7
1 1 3 20 0
Núcleos Prioridade
Figura 26. Exemplo de cromossomo indicando um mapeamento inválido
Para contornar essa limitação, o processo de inicialização foi ajustado de modo que, ao
atribuir um valor ao cromossomo visando indicar o mapeamento de uma tarefa, esse valor será
aceito apenas se o mesmo ainda não foi atribuído a outro elemento também destinado ao
mapeamento.
Essa alteração no processo de inicialização garante que a população inicial de soluções seja
composta apenas de mapeamentos válidos. Entretanto, durante o processo de otimização, são
criadas novas soluções pela aplicação dos operadores de cruzamento e mutação. Isso também pode
resultar na produção de mapeamentos inválidos, porém, como nenhuma alteração foi realizada
nesses processos, a heurística desenvolvida limita-se a detectar e não avaliar mapeamentos
inválidos.
No processo de inicialização, também foi realizado o ajuste na atribuição das prioridades, já
que, após uma série de experimentos, percebeu-se a necessidade de forçar o algoritmo a explorar
mapeamentos que não utilizam canais virtuais. Dada uma aplicação a ser mapeada na plataforma, a
adoção de canais virtuais para tal aplicação se justifica caso a não utilização dos mesmos acarrete
em perda de prazos. Portanto, definiu-se que para metade das soluções iniciais o nível de prioridade
85
é 0, ou seja, todos os fluxos são tratados igualitariamente. Para as demais soluções, o nível de
prioridade é definido de modo aleatório. Com essa alteração é possível impor a exploração de
mapeamentos que resultem em menor consumo de energia estática.
Após a definição da população inicial o algoritmo precisa avaliar os mapeamentos gerados.
Com base nessa avaliação, as soluções são classificadas, são aplicados os operadores de seleção,
cruzamento, mutação e, as melhores soluções vão evoluir para as próximas gerações. Desse modo, a
parte principal da heurística de mapeamento consiste na avaliação das soluções, esse processo foi
implementado conforme o fluxo da Figura 27.
Figura 27. Fluxo de avaliação dos mapeamentos
O processo de avaliação é realizado em cada cromossomo gerado pelo algoritmo genético,
de modo que, ao receber uma solução de mapeamento a heurística verifica sua viabilidade. Caso o
mapeamento seja válido, então a heurística certifica se a estrutura de dados utilizada na
manipulação dos mapeamentos já foi inicializada. Esse processo de inicialização consiste em
carregar as informações de comunicação contidas no arquivo de descrição de tráfego.
Após a inicialização, a etapa seguinte consiste na simulação da aplicação em um ambiente
com precisão em nível de ciclos de relógio. A invocação das ferramentas necessárias é realizada por
intermédio de chamadas de sistema, como ilustra o diagrama da Figura 28. A plataforma SoCIN é
86
responsável por simular o mapeamento das tarefas em uma arquitetura composta de uma rede 4×4 e
de geradores e medidores de tráfego. O resultado do processo de simulação compreende a uma série
de arquivos contendo os índices de desempenho dos pacotes encaminhados. Após a simulação a
heurística invoca a ferramenta ATR, a qual é encarregada de avaliar as métricas geradas durante a
simulação.
Figura 28. Ordem de invocação das ferramentas de avaliação
Ao finalizar a análise dos dados obtidos, o ATR cria relatórios de desempenho. Um desses
relatórios contém a análise do cumprimento dos prazos dos fluxos trafegados pela rede, essa métrica
é utilizada na avaliação da primeira função objetivo. Para o cálculo dessa métrica, utilizou-se (9),
onde 𝐹𝑛 corresponde à razão entre a quantidade de pacotes que não foram entregues no prazo
(𝑃𝑐𝑘𝑝𝑟𝑎𝑧𝑜𝑠 _𝑝𝑒𝑟𝑑𝑖𝑑𝑜𝑠 ) e a quantidade total de pacotes com restrição de tempo de entrega
(𝑃𝑐𝑘𝑐𝑜𝑚 _𝑝𝑟𝑎𝑧𝑜𝑠 ).
𝑂𝑏𝑗𝑒𝑡𝑖𝑣𝑜1 = 𝑚𝑖𝑛 𝐹𝑛 = 𝑃𝑐𝑘𝑝𝑟𝑎𝑧𝑜𝑠 _𝑝𝑒𝑟𝑑𝑖𝑑𝑜𝑠
𝑃𝑐𝑘𝑐𝑜𝑚 _𝑝𝑟𝑎𝑧𝑜𝑠
(9)
O segundo objetivo avaliado pela heurística consiste basicamente na minimização dos níveis
de prioridade das tarefas mapeadas na plataforma. Uma vez que a quantidade de prioridades está
diretamente relacionada à quantidade de canais virtuais, a segunda função objetivo pode ser descrita
por (10), onde 𝑉𝑖 corresponde ao nível de prioridade de cada tarefa. Logo, ao minimizar a
quantidade de canais virtuais também se reduz a dissipação de potência estática da rede.
87
𝑂𝑏𝑗𝑒𝑡𝑖𝑣𝑜2 = 𝑚𝑖𝑛 𝑉𝑖
𝑙
𝑖=1
(10)
A partir da segunda iteração em que a heurística encontra um mapeamento válido, o fluxo de
avaliação passa a realizar a permutação das tarefas. Ou seja, atribui um novo posicionamento para
as tarefas já mapeadas. Nesse processo, as informações contidas no arquivo de descrição de tráfego
são atualizadas para corresponder ao novo posicionamento e aos índices de prioridade gerados pelo
algoritmo.
Com relação ao critério de parada, a heurística segue a abordagem padrão adotada pelo
algoritmo genético, a qual consiste na definição prévia do número de indivíduos na população de
soluções e a quantidade de gerações simuladas. Desse modo, o algoritmo finaliza após a avaliação
dos indivíduos de todas as gerações definidas.
88
4.3.1 Comparação com trabalhos relacionados
A solução proposta neste trabalho apresenta características em comum com aquelas descritas
no Capítulo 3 Os quadros a seguir mostram um comparativo entre as abordagens identificadas na
literatura frente ao que foi desenvolvido. No Quadro 13, pode-se perceber que a heurística baseada
no algoritmo genético NSGA-II também foi adotada em outros dois trabalhos. Porém, no trabalho
de Sayuti e Indruziak (2013), as simulações são realizadas em alto nível de abstração. Já no trabalho
de Quan e Pimentel (2013), o algoritmo genético foi adotado na etapa estática do mapeamento para
seleção das alternativas de posicionamento a serem empregadas durante o mapeamento dinâmico.
Com relação à função objetivo, este é o único trabalho que explora a redução da potência estática.
Quadro 13. Comparação da técnica de mapeamento proposta
Trabalhos
Mapeamento Função Objetivo
Técnica Adotada Tipo IL
P
Meta
-heu
rística
Heu
rística
Está
tico
Din
âm
ico
Híb
rido
En
ergia
Pra
zos
Desem
pen
ho
Con
fiab
ilidad
e
Carvalho et al. (2009) SA, TS X
X X PL, BN X
Tosun (2011) CastNet X X X
Huang et al. (2011a) X SA X X
Antunes et al. (2012) SA X
X X X X
Sayuti e Indrusiak (2013) NSGA-II X X X Pham et al. (2013) X X X X
Bolchini et al. (2013) X X
X X X ODA X
Quan e Pimentel (2013) NSGA-II X
X X X STM X
Este trabalho NSGA-II X X X
89
4.3.2 Plataforma proposta
A plataforma empregada neste trabalho emula um MPSoC de núcleos homogêneos
monotarefa com arquitetura de comunicação baseada em NoCs. O Quadro 14 ilustra as
características dessa plataforma em comparação com as que foram identificadas nos trabalhos
analisados previamente.
Quadro 14. Comparação da plataforma proposta
Trabalhos
Arquitetura de
Comunicação Plataforma
Elementos de
Processamento
Barra
men
to
NoC
SoC
MP
SoC
Hom
ogên
ea
Hetero
gog
ênea
Mon
ota
refa
Mu
ltitarefa
Carvalho et al. (2009) X X X X
Tosun (2011) X X X X
Huang et al. (2011a) X X X X
Antunes et al. (2012) X X X X
Sayuti e Indrusiak (2013) X X X
Pham et al. (2013) X X X X
Bolchini et al. (2013) X X X X
Quan e Pimentel (2013) X X X X
Este trabalho X X X X
90
4.3.3 Ambiente de experimentação
O ambiente de experimentação adotado segue a mesma prática descrita na literatura. Foi
utilizado um simulador modelado em linguagem de descrição de hardware. Os experimentos de
avaliação foram baseados em aplicações sintéticas. Optou-se por abordar a redução do consumo de
energia estática, sendo que os valores de consumo foram tomados com base em tecnologia CMOS
de 32 nm. O Quadro 15 ilustra as similaridades entre as definições adotadas e as abordagens
documentadas nos trabalhos relacionados.
Quadro 15. Comparativo do ambiente de experimentação proposto
Trabalhos
Tecn
olo
gia
CM
OS
En
ergia
porp
aco
te
En
ergia
por b
it Benchmark Ferramentas de Apoio
Mu
ltimíd
ia
Sin
tético
Ap
licaçõ
es
reais
Simulador
específico
Geração e
análise de
grafos
Carvalho et al. (2009) X X X SystemC e
VHDL TGFF
Tosun (2011) 100 nm X X X Huang et al. (2011a) X X TGFF
Antunes et al. (2012) 70 nm X X X Framework
CAFES
Sayuti e Indrusiak (2013) X X X Framework
alto nível
Pham et al. (2013) X X SDF3
Bolchini et al. (2013) 65 nm X X SystemC/
TLM
Quan e Pimentel (2013) X Sesame15
Este trabalho 32 nm X SystemC
RTL/TLM
15
O ambiente Sesame, desenvolvido por Pimentel, Erbas e Polstra (2006), compreende um conjunto de ferramentas e
métodos para modelagem de sistemas multimídia embarcados.
91
5 RESULTADOS
Este capítulo descreve os resultados obtidos no decorrer do desenvolvimento deste trabalho.
São discutidos aspectos relacionados às implementações realizadas, à configuração do experimento
e, por fim, aos resultados experimentais.
5.1 IMPLEMENTAÇÕES
Para o desenvolvimento do trabalho proposto, foi necessária a criação de uma estrutura de
experimentação e avaliação dos canais virtuais e da heurística de otimização. Para isso, foi realizada
uma série de implementações.
Primeiramente, foi descrito um modelo sintetizável em VHDL do roteador ParIS contendo
os oito canais virtuais. Esse modelo foi utilizado na identificação da dissipação de potência estática
do roteador e da rede.
Na segunda etapa, foi descrito um modelo SystemC do roteador ParIS com os canais
virtuais, a partir do qual foi criada uma rede de tamanho 4×4 composta pela nova versão do
roteador. Além disso, outros componentes da estrutura de simulação e avaliação foram ajustados
para permitir a realização das investigações propostas. Foram realizadas adaptações no gerador de
tráfego, no medidor de tráfego e na ferramenta de análise de desempenho.
A terceira fase consistiu na construção da heurística de otimização, a qual foi baseada na
adaptação de uma descrição em linguagem C do algoritmo genético NSGA-II. Esse algoritmo é
disponibilizado livremente para fins acadêmicos pelo grupo de pesquisa KanGAL (Kanpur Genetic
Algorithms Laboratory) do instituto indiano de tecnologia Kanpur.
5.2 EXPERIMENTO
Esta seção apresenta o experimento empregado na avaliação da heurística de mapeamento.
Se faz necessário, entretanto, estabelecer algumas premissas:
Comportamento de comunicação: a heurística desenvolvida neste trabalho ocupa-se
apenas do comportamento de comunicação das tarefas sem considerar questões
92
relacionadas ao sincronismo entre elas. Portanto, assume-se que o modelo de tráfego
contém apenas mensagens assíncronas;
Tamanho da rede e número de fluxos: a heurística foi aplicada em uma rede de
tamanho 4×4 e com quantidade de fluxos de mensagem não superior a 28;
Configuração da rede: neste experimento, foi adotada uma rede operando a 1 GHz,
com controle de fluxo baseado em créditos, chaveamento wormhole, roteamento XY
e buffers de profundidade 4 nas entradas; e
Tempo de simulação: cada simulação foi executada por 50.000 ciclos que equivale a
50 microssegundos. Nesse tempo, foram transferidos, em média, 2.500 pacotes por
experimento de simulação.
A aplicação utilizada na validação da heurística de mapeamento foi gerada randomicamente
adotando fluxos de comunicação caracterizados de maneira semelhante à descrita por Bolotin et al.
(2004), os quais especificaram quatro tipos de tráfego de dados:
Sinalização: mensagens urgentes compostas por pacotes pequenos, caracterizando
sinais de controle e de interrupção;
Tempo real:fluxos de comunicação de aplicações de processamento de áudio e vídeo;
Leitura e escrita: comunicação decorrente de acessos a memória e registradores; e
Transferência em bloco: fluxos com grande volume de dados.
Esses padrões de tráfego foram especificados conforme descrito na Tabela 5. O grafo da
aplicação pode ser visualizado na Figura 29, sendo que a comunicação entre as 16 tarefas
compreende a 9 fluxos de sinalização (SL), 8 fluxos de tempo real (RT), 5 fluxos de leitura e escrita
(RW) e 6 fluxos de transferência de dados em bloco (BK). No algoritmo genético, por sua vez,
foram utilizados os parâmetros descritos na Tabela 6.
93
Tabela 5. Configuração dos fluxos de comunicação
Fluxo Abreviatura Tamanho do
pacote (flits)
Largura de banda
requerida (Mbps) Prazo (ns)
Sinalização SL 4 320 20
Tempo real RT 40 320 125.000
Leitura e escrita RW 4 2560 150
Transferência em
bloco BK 2000 2560 50.000
1
211
0
4
RW9 5
614
13 15 7
812
3
10
BK
SL
BK
RTR
T
RW
SL
SL
RW
SLBKR
T
RWS
L
BK
SL
RT
Figura 29. Aplicação randômica composta de 16 tarefas
Tabela 6. Parâmetros adotados no algoritmo genético
Parâmetro Valor
Tamanho da população 100
Taxa de cruzamento 0,5
Taxa de mutação 0,03
Número de gerações 500
A Figura 30, apresenta os melhores resultados obtidos em cada geração do algoritmo
considerando-se como métrica de classificação o cumprimento de prazos. Nota-se que, a partir da
geração 54, a perda de prazos está abaixo de 1%, enquanto na geração 175 alcança 0.07%.
94
Entretanto, na geração 185, o algoritmo chega aproximadamente a mesma taxa de perda utilizando
apenas 2 canais. Nas gerações seguintes, o algoritmo estabiliza e já não se observa melhoria quanto
aos prazos.
Ainda na Figura 30, percebe-se que as soluções encontradas nas primeiras gerações
contendo até 6 níveis de canais virtuais apresentam maior perda de prazos. Isso demonstra o
impacto do posicionamento das tarefas na plataforma. Ou seja, a simples adoção de canais virtuais
não garante o cumprimento dos prazos, é necessário definir um bom mapeamento para as tarefas.
Figura 30. Avaliação do cumprimento de prazos frente à quantidade de canais virtuais
O processo de melhoria na qualidade dos mapeamentos pode ser avaliado sob a ótica de
duas métricas: distância média entre as tarefas mapeadas e a concorrência entre os fluxos de
comunicação nos canais da rede. A distância entre as tarefas compreende a quantidade de enlaces
entre os nodos comunicantes enquanto que a concorrência é a quantidade de fluxos de comunicação
que compartilham o mesmo canal. O gráfico da Figura 31 ilustra a evolução dessas métricas ao
longo das etapas de otimização. Percebe-se que o algoritmo estabiliza a distância entre as tarefas em
pouco mais de 2 enlaces e a concorrência nos canais em aproximadamente 1,6 fluxos a partir da
geração 137.
0
1
2
3
4
5
6
7
0
0.5
1
1.5
2
2.5
3
3.5
1
18
35
52
69
86
10
3
12
0
13
7
15
4
17
1
18
8
20
5
22
2
23
9
25
6
27
3
29
0
30
7
32
4
34
1
35
8
37
5
39
2
40
9
42
6
44
3
46
0
47
7
49
4 Nív
eis
de c
an
ais
vir
tuais
Pra
zo
s p
erd
ido
s %
Gerações
Prazos perdidos Canais virtuais
95
Figura 31. Avaliação da redução na distância entre as tarefas e da concorrência nos enlaces
O gráfico da Figura 32 demonstra o consumo de energia estática em relação ao cumprimento
de prazos, nota-se que a variação no consumo acompanha a variação da quantidade de canais
virtuais. Desse modo, as soluções de menor consumo utilizam apenas 1 canal virtual, porém tais
soluções não oferecem as melhores métricas em relação aos prazos.
Figura 32. Avaliação do cumprimento de prazos frente à quantidade de canais virtuais
Essa relação de compromisso entre prazos e energia estática pode ser ilustrada pela
diferença entre os resultados obtidos quando o critério de classificação é o consumo de energia. A
Figura 33 apresenta um gráfico normalizado com a diferença entre as métricas obtidas, sendo que o
eixo 0 corresponde aos resultados classificados em função da perda de prazos. Observa-se que ao
selecionar as soluções em função do consumo de energia incorre em redução nesse consumo em 0,4
μJ e aumento na perda de prazos em 2,2% em média.
1
1.25
1.5
1.75
2
2.25
2.5
2.75
3
0
0.5
1
1.5
2
2.5
3
3.5
1
18
35
52
69
86
10
3
12
0
13
7
15
4
17
1
18
8
20
5
22
2
23
9
25
6
27
3
29
0
30
7
32
4
34
1
35
8
37
5
39
2
40
9
42
6
44
3
46
0
47
7
49
4 Co
nco
rrên
cia
/dis
tân
cia
(m
éd
ia)
Pra
zo
s p
erd
ido
s %
Gerações
Prazos perdidos Concorrência nos canais Distância entre as tarefas
0
0.2
0.4
0.6
0.8
1
1.2
0
0.5
1
1.5
2
2.5
3
3.5
1
18
35
52
69
86
10
3
12
0
13
7
15
4
17
1
18
8
20
5
22
2
23
9
25
6
27
3
29
0
30
7
32
4
34
1
35
8
37
5
39
2
40
9
42
6
44
3
46
0
47
7
49
4 En
erg
ia e
stá
tica (
uJ)
Pra
zo
s p
erd
ido
s %
Gerações
Prazos perdidos Energia estática
96
Figura 33. Cumprimento de prazos e consumo de energia estática normalizados
5.3 DISCUSSÃO
O experimento apresentado na seção anterior demonstra o potencial da heurística
desenvolvida na identificação de mapeamentos que configuram boas soluções compromisso entre a
perda de prazos e o consumo de energia estática em sistemas baseados em NoCs.
Partindo de um mapeamento em que o cumprimento de prazos é de 73% na geração inicial,
a heurística foi capaz de criar e evoluir novas soluções de modo a produzir mapeamentos com
99,9% dos prazos cumpridos na geração 175. O consumo de energia estática, por outro lado, está
diretamente relacionado à quantidade de canais virtuais. Portanto, as soluções de menor consumo
são aquelas que não utilizam os canais virtuais, e que por sua vez apresentam maior perda de
prazos.
As adequações realizadas no método de inicialização do algoritmo genético foram essenciais
para alcançar os resultados apresentados. Pois, devido ao modelo de plataforma proposto, a
abordagem original adotada pelo algoritmo resultava em muitas soluções inviáveis, influenciando
seriamente o processo de otimização devido ao descarte de muitos mapeamentos. Além disso, ao
definir que metade da população inicial não utiliza canais virtuais possibilitou-se a exploração mais
ampla de soluções com baixo consumo de energia estática.
A abordagem baseada em algoritmos genéticos se mostrou adequada ao problema proposto,
entretanto o tempo de simulação se mostrou um fator limitador. Haja vista que a simulação de um
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
-5
0
5
10
15
20
251
18
35
52
69
86
10
3
12
0
13
7
15
4
17
1
18
8
20
5
22
2
23
9
25
6
27
3
29
0
30
7
32
4
34
1
35
8
37
5
39
2
40
9
42
6
44
3
46
0
47
7
49
4
En
erg
ia e
stp
ati
ca (
uJ)
Pra
zo
s p
erd
ido
s %
Gerações
Prazos perdidos Energia estática
97
mapeamento na plataforma demora em média 50 segundos e simular 500 gerações com população
de 100 indivíduos resulta em 50.000 execuções do algoritmo. Entretanto, como algumas soluções
geradas pelos processos de cruzamento e mutação ainda são inviáveis ao mapeamento, a execução
das 500 gerações simuladas demorou cerca de 2 semanas, devido ao descarte de mapeamentos
inválidos.
Essa questão aponta para a necessidade de substituição dos modelos de simulação por
modelos analíticos de forma que a avaliação dos mapeamentos possa ser realizada mais
rapidamente. Entretanto, a abordagem baseada em simulação continua sendo importante para
validar os resultados obtidos com a análise abstrata.
98
6 CONCLUSÕES
O cumprimento de prazos de aplicações críticas é fundamental no contexto de sistemas de
tempo real, enquanto a economia de energia é uma preocupação inerente a todos os sistemas
eletrônicos. O equilíbrio entre esses objetivos em aplicações executadas em plataformas baseadas
em NoCs foi o tema abordado neste trabalho.
A metodologia empregada durante seu desenvolvimento consistiu primeiramente na
pesquisa bibliográfica dos assuntos tratados. Foram investigados conceitos de sistemas de
comunicação intrachip com foco especial em NoCs, além de assuntos relacionados ao consumo de
energia em circuitos integrados e aos sistemas de tempo real. Entretanto, o núcleo deste trabalho
tratou do mapeamento de tarefas, o qual foi alvo de extensa investigação, inclusive com a descrição
de uma revisão sistemática das publicações mais relevantes e atuais no contexto dessa dissertação.
Na etapa seguinte, foi elaborado um plano de implementações para possibilitar a
investigação do cumprimento de prazos e consumo de energia em uma NoC com suporte a canais
virtuais. Foi desenvolvida e adaptada toda a estrutura necessária a realização do experimento
proposto. Desde a síntese de um modelo de roteador em tecnologia ASIC para caracterizar a
dissipação de potência estática até a elaboração de uma heurística de otimização baseada em
algoritmos genéticos. Desse modo, pode-se afirmar que todos objetivos propostos foram
plenamente atingidos.
Como resultado, este trabalho apresenta a integração de uma estrutura de simulação em nível
de ciclos de uma rede composta por 16 roteadores equipados com até oito canais virtuais. Além de
uma heurística de otimização capaz de investigar o mapeamento de tarefas gerenciando as
ferramentas de simulação e avaliação de desempenho até convergir ao encontro de soluções
otimizadas. De modo que em resposta a pergunta de pesquisa apresentada, conclui-se que o melhor
tradeoff entre prazos, consumo de energia e quantidade de canais virtuais depende diretamente das
restrições impostas pelo problema tratado, cabendo ao projetista selecionar a solução mais adequada
dentre as melhores encontradas pela heurística.
Além disso, a aplicação do experimento de avaliação permitiu confirmar mediante o cenário
proposto as hipóteses elencadas. Ao selecionar as melhores soluções em função do consumo de
99
energia, obtém-se mapeamentos com maior perda de prazos. Por outro lado, as melhores soluções
em relação à perda de prazos resultam em maior consumo de energia.
6.1 CONTRIBUIÇÕES DA DISSERTAÇÃO
A principal contribuição desta dissertação consiste na evidência experimental dos tradeoffs
entre o consumo de energia estática e o atendimento de prazos em sistemas baseados em NoCs.
Além da busca automatizada desses tradeoffs por meio de uma heurística multiobjetivo realizada
por simulação com elevado grau de acuracidade.
6.2 TRABALHOS FUTUROS
Diversas oportunidades de pesquisas podem ser apontadas a partir das investigações
realizadas nessa dissertação:
Adicionar a frequência de operação e a profundidade dos buffers como parâmetros de
otimização na heurística de mapeamento. De forma que, se possa identificar a
frequência mínima necessária para garantir o cumprimento dos prazos de uma
aplicação. Ainda, com a variação na profundidade dos buffers, comparar soluções que
utilizam maior número de canais virtuais com buffers de baixa capacidade frente a
soluções com reduzido número de canais virtuais compostos de buffers mais
profundos;
Realizar análise da dissipação de potência dinâmica da rede e dos canais de
comunicação e adequar o modelo de simulação para que seja possível definir a taxa
de chaveamento dos pacotes transmitidos, permitindo, deste modo, estimar o
consumo de energia dinâmica das aplicações simuladas;
Realizar a análise de escalonabilidade da rede de forma que o tempo de resposta e a
latência de pior caso possam ser identificados pela avaliação de equações, conferindo
maior agilidade no processo de otimização; e
Aplicar um método de atribuição de prioridades que identifique situações em que há
fluxos que não compartilham canais de comunicação, mas que possuem níveis
distintos de prioridade. E a partir disso, fazer com que esses fluxos compartilhem o
mesmo canal virtual.
100
REFERÊNCIAS
AHN, Chang Wook. Advances in evolutionary algorithms: theory, design and practices. New
York: Springer, 2006. Cap. 2, p. 7-22. (ISBN: 3540317589)
ANTUNES, Eduardo; SOARES, Matheus; AGUIAR, Alexandra; JOHANN, F. Sergio; SARTORI,
Marcos; HESSEL, Fabiano; MARCON, Cesar. Partitioning and dynamic mapping evaluation for
energy consumption minimization on NoC-based MPSoC. In: THIRTEENTH INTERNATIONAL
SYMPOSIUM ON QUALITY ELECTRONIC DESIGN (ISQED), 13., 2012, Santa Clara.
Proceedings... New York: IEEE, 2012. p. 451-457. (DOI: 10.1109/ISQED.2012.6187532)
BENINI, Luca; DE MICHELI, Giovanni. Networks on chips: a new SoC paradigm. IEEE
Computer, Washington, v.35, n.1, p. 70-78, 2002. (DOI: 10.1109/2.976921)
BENINI, Luca; DE MICHELI, Giovanni. Networks on Chips: technology and tools. San
Francisco: Morgan Kaufmann, 2006. (ISBN: 978-0123705211)
BEREJUCK, Marcelo Daniel; ZEFERINO, Cesar Albenes. Adding mechanisms for QoS to a
Network-on-Chip. In: SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEMS DESIGN
(SBCCI), 22., 2009, Natal. Proceedings... New York: ACM, 2009. p. 153-158.
(DOI:10.1145/1601896.1601928)
BERTOZZI, Davide. The data-link layer in NoC design. In: BENINI, Luca; DE MICHELI,
Giovanni.(Ed.). Networks on Chips: technology and tools. San Francisco: Morgan Kaufmann,
2006. (ISBN: 978-0123705211)
BOLANOS, Freddy; RIVERA, Fredy; AEDO, Jose Edinson; BAGHERZADEH, Nader. From uml
specification to mapping and scheduling of tasks into a NoC, with reliability considerations.
Journal of Systems Architecture, New York, v.59, n.7, p. 429-440, 2013. (DOI:
10.1016/j.sysarc.2013.04.009)
BOLCHINI, Cristiana; CARMINATI, Matteo; MIELE, Antonio; DAS, Anup; KUMAR, Akash;
VEERAVALLI, Bharadwaj. Run-time mapping for reliable many-cores based on
energy/performance trade-offs. In: IEEE INTERNATIONAL SYMPOSIUM ON DEFECT AND
FAULT TOLERANCE IN VLSI AND NANOTECHNOLOGY SYSTEMS (DFT), 15., 2013, New
York. Proceedings... New York: IEEE, 2013. p. 58-64. (DOI: 10.1109/DFT.2013.6653583)
BOLOTIN, Evgeny; ISRAEL, Cidon; GINOSAR, Ran; KOLODNY, Avinoam. QNoC: QoS
architecture and design process for network on chip. Journal of Systems Architecture, New York,
v.50, n.2-3, p. 105-128, 2004. (DOI:10.1016/j.sysarc.2003.07.004)
BRAAK Timon D. ter; HÖLZENSPIES, Philip K. F.; KUPER Jan; HURINK, Johann L.; SMIT,
Gerard J. M. Run-time spatial resource management for real-time applications on heterogeneous
MPSoCs. In: DESIGN, AUTOMATION TEST IN EUROPE CONFERENCE & EXHIBITION
(DATE), 10., 2010, Dresden. Proceedings... New York: IEEE, 2010. p. 357-362.
(DOI:10.1109/DATE.2010.5457177)
101
BRUCH, Jaison Valmor; PIZZONI, Magnos Roberto; ZEFERINO, Cesar Albenes. BrownPepper: a
SystemC-based simulator for performance evaluation of networks-on-chip. In: INTERNATIONAL
CONFERENCE ON VERY LARGE SCALE INTEGRATION (VLSI-SoC), 17., 2009,
Florianópolis. Proceedings... New York: IEEE, 2009. p. 223-226. (DOI:
10.1109/VLSISOC.2009.6041361)
BURNS, Alan; WELLINGS, Andy. Real-time systems and programming languages: Ada, real-
time Java and C/real-time POSIX. 4. ed. Harlow: Pearson Education, 2009. (ISBN:9780321417459)
BUTTAZZO, Giorgio C. Hard Real-time computing systems: predictable scheduling algorithms
and applications. 3. ed. New York: Springer, 2011. (ISBN: 9781461406754)
CARVALHO, Ewerson Luiz de Souza; CALAZANS, Ney Laert Vilar; MORAES, Fernando Gehm.
Dynamic task mapping for MPSoCs. IEEE Design & Test of Computers, [S.l.], v. 27, n.5, p. 26-
35, 2010. (DOI: 10.1109/MDT.2010.106)
CARVALHO, Ewerson Luiz de Souza. Mapeamento dinâmico de tarefas em MPSoCs
heterogêneos baseados em NoC. 2009. 168 f. Tese (Doutorado) - Programa de Pós-graduação em
Ciência da Computação, Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre,
2009.
CARVALHO, Ewerson; MARCON, César; CALAZANS, Ney; MORAES, Fernando Gehm.
Evaluation of static and dynamic task mapping algorithms in NoC-based MPSoCs. In:
INTERNATIONAL SYMPOSIUM ON SYSTEM-ON-CHIP (SOC), 11., 2009, Tampere.
Proceedings... New York: IEEE, 2009, p. 87-90. (DOI: 10.1109/SOCC.2009.5335672)
CASTRILLON, Jeronimo; LEUPERS, Rainer; ASCHEID, Gerd. MAPS: mapping concurrent
dataflow applications to heterogeneous MPSoCs. IEEE Transactions on Industrial
Informatics.Washington, v.9, n.1, p. 527-545, 2013. (DOI: 10.1109/TII.2011.2173941)
CHEN, Lizhong; PINKSTON, Timothy M. NoRD: node-router decoupling for effective power-
gating of on-chip routers. In: IEEE/ACM INTERNATIONAL SYMPOSIUM ON
MICROARCHITECTURE (MICRO), 45., 2012, Vancouver. Proceedings... Washington: IEEE,
2012. p. 270-281. (DOI: 10.1109/MICRO.2012.33)
CHENG, Albert M. K. Real-time systems: scheduling, analysis and verification. New Jersey: John
Wiley & Sons, 2002. (ISBN: 0-471-18406-3)
CHOU, Chen-Ling; MARCULESCU, Radu. User-aware dynamic task allocation in Networks-on-
Chip. In: DESIGN, AUTOMATION TEST IN EUROPE CONFERENCE & EXHIBITION
(DATE), 8., 2008, Munich. Proceedings... New York: IEEE, 2008. p. 1232-1237.
(DOI:10.1109/DATE.2008.4484847)
CIDON, Israel, GOOSSENS, K. G. W. Network and transport layers in Networks on Chip. In:
BENINI, Luca; DE MICHELI, Giovanni (Ed). Networks on Chips: technology and tools. San
Francisco: Morgan Kaufmann, 2006. (ISBN: 978-0123705211)
102
COELLO, Carlos A. Coello. Evolutionary multi-objective optimization: a historical view of the
field. IEEE Computational Intelligence Magazine, Piscataway, v.1, n.1, p.28-36, 2006.
(DOI:10.1109/MCI.2006.1597059)
COFFMAN, E. G. Jr.; GAREY, M. R.; JOHNSON, D. S. Approximation algorithms for bin
packing: a survey. In: HOCHBAUM, Dorit (Ed.). Approximation algorithms for NP-hard
Problems, Boston: PWS, 1997. p. 46-93. (ISBN: 978-0534949686)
COSKUN, Ayse Kivilcim; ROSING, Tajana Simunic; GROSS, Kenny C. Utilizing predictors for
efficient thermal management in multiprocessor SoCs. IEEE Transactions on Computer-Aided
Design of Integrated Circuits and Systems, [S.l], v.28, n.10, p. 1503-1516, 2009.
(DOI:10.1109/TCAD.2009.2026357)
COTA, Érica; AMORY, Alexandre de Morais; LUBASZEWSKI, Marcelo Soares. Reliability,
availability and serviceability of Networks-on-Chip. New York: Springer, 2012.
(ISBN:9781461407904)
DALLY, William James; TOWLES, Brian. Principles and practices of interconnection
networks. San Francisco: Morgan Kaufmann, 2004. (ISBN: 0-12-200751-4)
DAS, Anup; KUMAR, Akash; VEERAVALLI, Bharadwaj. Reliability-driven task mapping for
lifetime extension of Networks-on-Chip based multiprocessor systems. In: DESIGN,
AUTOMATION TEST IN EUROPE CONFERENCE & EXHIBITION (DATE), 13., 2013,
Grenoble. Proceedings... New York: IEEE, 2013. p. 689-694. (DOI: 10.7873/DATE.2013.149)
DEB, Kalyanmoy. Multi-objective optimization using evolutionary algorithms. Chichester: John
Wiley & Sons, 2001. (ISBN:978-0-471-87339-6)
DEB, Kalyanmoy; PRATAP, Amrit; AGARWAL, Sameer; MEYARIVAN, T. A fast and elitist
multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation,
Piscataway, v.6, n.2, p. 182-197, 2002. (DOI: 10.1109/4235.996017)
DICK, Robert P.; RHODES, David L.; WOLF, Wayne. TGFF: task graphs for free. In:
INTERNATIONAL WORKSHOP ON HARDWARE/SOFTWARE CODESIGN
(CODES/CASHE), 6., 1998, Seattle, Proceedings... Washington: IEEE, 1998. p. 97-101.
(DOI:10.1109/HSC.1998.666245)
DRÉO Johann; PÉTROWSKI Alain; SIARRY Patrick; TAILLARD Eric. Metaheuristics for hard
optimization: methods and case studies. Translator: AmitavaChatterjee. Berlin: Springer, 2006.
(ISBN: 978-3-540-23022-9)
DUATO, José; YALAMANCHILI, Sudhakar; NI, Lionel. Interconnection netoworks: an
engineering approach. San Francisco: Morgan Kaufmann, 2003. (ISBN: 1-55860-852-4)
GLOVER, Fred; LAGUNA, Manuel. Tabu search. Boston: Kluwer Academic Publishers, 1997.
Cap. 1, p. 1-24. (ISBN: 079239965X)
GOLDBARG, Marco Cesar; LUNA, Henrique Pacca L. Otimização combinatoria e
programação linear. Rio de Janeiro: Campus, 2000. (ISBN: 85-352-0541-1)
103
GORACZKO, Michel; LIU, Jie; LYMBEROPOULOS, Dimitrios; MATIC, Slobodan;
PRIYANTHA, Bodhi; ZHAO, Feng. Energy-optimal software partitioning in heterogeneous
multiprocessor embedded systems. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE
(DAC), 45., 2008, Anaheim. Proceedings... New York: ACM, 2008. p. 191-196. (DOI:
10.1145/1391469.1391518)
GUPTA, Rajesh K.; ZORIAN, Yervant. Introducing core-based system design. IEEE Design &
Test of Computers, Washington, v.14, n.4, p.15-25, 1997. (DOI: 10.1109/54.632877)
HILLIER, S. Frederick; LIEBERMAN, J. Gerald. Introdução à pesquisa operacional. 9. ed.
Tradutor: Ariovaldo Griesi. Porto Alegre: AMGH, 2013. (ISBN:978-85-8055-118-1)
HU, Jingcao; MARCULESCU, Radu. Energy-aware communication and task scheduling for
Network-on-Chip architectures under real-time constraints. In: DESIGN, AUTOMATION AND
TEST IN EUROPE CONFERENCE AND EXHIBITION (DATE), 4., 2004, Paris. Proceedings...
New York: IEEE, 2004. p. 234-239. (DOI: 10.1109/DATE.2004.1268854)
______. Energy- and performance-aware mapping for regular NoC architecture. IEEE
Transactions on Computer-Aided Design of Integrated Circuits and Systems, Washington,
v.24, n.4, p. 551-562, 2005. (DOI: 10.1109/TCAD.2005.844106)
HUANG, Jia; BUCKL, Christian; RAABE, Andreas; KNOLL, Alois. Energy-aware task allocation
for Network-on-Chip based heterogeneous multiprocessor systems. In: EUROMICRO
INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED AND NETWORK-
BASED PROCESSING (PDP), 19., 2011a, Ayia Napa. Proceedings... Washington: IEEE, 2011a.
p. 447-454. (DOI: 10.1109/PDP.2011.10)
______. A workflow for runtime adaptive task allocation on heterogeneous MPSoCs. In: DESIGN,
AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION (DATE), 2011b,
Genoble. Proceedings... New York: IEEE, 2011b. p. 1-6. (DOI: 10.1109/DATE.2011.5763189)
INDRUSIAK, Leandro Soares. End-to-end schedulability tests for multiprocessor embedded
systems based on networks-on-chip with priority-preemptive arbitration. Journal of Systems
Architecture, [S.l], v.60, n.7, p. 553-561, 2014. (DOI:10.1016/j.sysarc.2014.05.002)
JERGER, Natalie Enright; PEH, Li-Shiuan. On-Chip networks. California: Morgan & Claypool
2009. (ISBN: 9781598295849)
JERRAYA, Ahmed Amine; WOLF, Wayne. The what, why, and how of MPSoCs. In: JERRAYA,
Ahmed Amine; WOLF, Wayne. (Ed.). Multiprocessor systems-on-chip. San Francisco: Morgan
Kaufmann, 2005. p. 1-18. (ISBN: 012385251X)
JHA, Niraj K. Low power system scheduling and synthesis. In: IEEE/ACM INTERNATIONAL
CONFERENCE ON COMPUTER AIDED DESIGN (ICCAD), 20., 2001, California.
Proceedings… Washington: IEEE, 2001. p. 259-263. (DOI: 10.1109/ICCAD.2001.968629)
KAXIRAS, Stefanos; MARTONOSI, Margaret. Computer architecture techniques for power-
efficiency. California: Morgan & Claypool, 2008. (ISBN: 9781598292084)
104
KOGEL, Tim; LEUPERS, Rainer; MEYR, Heinrich. Integrated system-level modeling of
Network-on-Chip enabled multi-processor platforms. Dordrecht: Springer, 2006.
(ISBN:1402048254)
KOIBUCHI, Michihiro; MATSUTANI, Hiroki. Networks-on-Chip protocols. In: GEBALI, Fayez;
ELMILIGI, Haytham; EL-KHARASHI, Mohamed Watheq. (Ed.). Networks-on-Chips: theory and
practice. Boca Raton: CRC Press, 2009. p. 65-94. (ISBN: 9781420079784)
KWOK, Yu-Kwong; MACIEJEWSKI, Anthony A.; SIEGEL, Howard Jay; AHMAD, Ishfaq;
GHAFOOR, Arif. A semi-static approach to mapping dynamic iterative tasks onto heterogeneous
computing systems. Journal of Parallel and Distributed Computing,[S.l] v. 66, n.1, p. 77-98,
2006. (DOI: 10.1016/j.jpdc.2005.06.015)
LAHIRI, Kanishka; RAGHUNATHAN, Anand; DEY, Sujit. Evaluation of the traffic-performance
characteristics of system-on-chip communication architectures. In: INTERNATIONAL
CONFERENCE ON VLSI DESIGN, 14., 2001. Bangalore. Proceedings... New York: IEEE, 2001.
p. 29-35. (DOI: 10.1109/ICVD.2001.902636)
LEE, Seung Eun; BAGHERZADEH, Nader. Energy and power issues in Networks-on-Chips. In:
GEBALI, Fayez; ELMILIGI, Haytham; EL-KHARASHI, Mohamed Watheq. (Ed.). Networks-on-
Chips: theory and practice. Boca Raton: CRC, 2009. Cap. 9, p. 255-275. (ISBN:1420079786)
LU, Zhonghai; JANTSCH, Axel; SANDER, Igon. Feasibility analysis of messages for on-chip
networks using wormhole routing. In: ASIA AND SOUTH PACIFIC DESIGN AUTOMATION
CONFERENCE (ASP-DAC), 05., 2005, Shanghai. Proceedings... New York: ACM, 2005. p. 960-
964. (DOI: 10.1145/1120725.1120767)
MARCON, César Augusto Missio; CALAZANS, Ney Laert Vilar; MORENO, Edson Ifarraguirre;
MORAES, Fernando Gehm; HESSEL, Fabiano Passuelo; SUSIN, Altamiro Amadeu. CAFES: a
framework for intrachip application modeling and communication architecture design. Journal of
Parallel and Distributed Computing, [S.l] v.71, n.5, p. 714-728, 2010.
(DOI:10.1016/j.jpdc.2010.10.002)
MARCULESCU, Radu; OGRAS, Umit Y.; PEH, Li-Shiuan; JERGER, Natalie Enright;
HOSKOTE, Yatin. Outstanding research problems in NoC design: system, microarchitecture, and
circuit perspectives. IEEE Transactions on Computer-Aided Design of Integrated Circuits and
Systems, [S.l], v.28, n.1, p. 3-21, 2009. (DOI: 10.1109/TCAD.2008.2010691)
MESIDIS, Paris-alexandros. Mapping of real-time applications on Network-on-Chip based
MPSoCs. 2011. 105 f. Thesis (Master of Science) - Department of Computer Science, The
University of York, York, 2011.
MESIDIS, Paris; INDRUSIAK, Leandro Soares. Genetic mapping of hard real-time applications
onto NoC-based MPSoC - a first approach. In: INTERNATIONAL WORKSHOP ON
RECONFIGURABLE COMMUNICATION-CENTRIC SYSTEMS-ON-CHIP (ReCoSoC), 6.,
2011, Montpellier. Proceedings... Washington: IEEE, 2011. p. 1-6.
(DOI:10.1109/ReCoSoC.2011.5981532)
105
NI, Lionel M. Issues in designing truly scalable interconnection networks. In: INTERNATIONAL
CONFERENCE ON PARALLEL PROCESSING WORKSHOP (ICPPW), 1996, Ithaca.
Proceedings... Washington: IEEE, 1996. p. 74-83. (DOI:10.1109/ICPPW.1996.538592)
NI, Lionel M.; MCKINLEY, Philip K. A survey of wormhole routing techniques in direct networks.
IEEE Computer, [S.l.] v.26, n.2, p. 62-76, 1993. (DOI: 10.1109/2.191995)
OGRAS, Umit Y.; MARCULESCU, Radu. Modeling, analysis and optimization of Networks-
on-Chip communication architectures. New York: Springer, 2013. Cap. 4, p. 39-47.
(ISBN:9789400739574)
PALESI, Maurizio; ASCIA, Giuseppe; FAZZINO, Fabrizio; CATANIA, Vicenzo. Data encoding
schemes in Networks on Chip. IEEE Transactions on Computer-Aided Design of Integrated
Circuits and Systems, Piscataway, v.30, n.5, p. 774-786, 2011.
(DOI:10.1109/TCAD.2010.2098590)
PASRICHA, Sudeep; DUTT, Nikil. On-Chip communication architectures. San Francisco:
Morgan Kaufmann, 2008. (ISBN: 9780123738929)
PHAM, Duc T.; KARABOGA, D. Intelligent optimization techniques: genetic algorithms, tabu
search, simulated annealing and neural networks. London: Springer, 2000. (ISBN: 9781447111863)
PHAM, Nam Khanh; SINGH, Amit Kumar; KUMAR, Aakash; AUNG, Khin Mi Mi. Incorporating
energy and throughput awareness in design space exploration and run-time mapping for
heterogeneous MPSoCs. In: EUROMICRO CONFERENCE ON DIGITAL SYSTEM DESIGN
(DSD), 16., 2013, Santander. Proceedings... [S.l: s.n.], 2013. p. 513-521.
(DOI:10.1109/DSD.2013.61)
PIMENTEL, Andy D.; ERBAS, Cagkan; POLSTRA, Simon. A systematic approach to exploring
embedded system architectures at multiple abstraction levels. IEEE Transactions on Computers,
Washington, v.55, n.2, p. 99-112, 2006. (DOI: 10.1109/TC.2006.16)
POP, Ruxandra. Mapping concurrent applications to multiprocessor systems with
multithreaded processors and networks on chip-based interconnections. 2011. 141 f. Thesis
(Licentiate of Engineering) - Department of Computer and Information Science, Linköpings
Universitet, Linköpings, 2011.
QUAN, Wei; PIMENTEL, Andy D. A scenario-based run-time task mapping algorithm for
MPSoCs. In: DESIGN AUTOMATION CONFERENCE (DAC), 50., 2013, Austin. Proceedings...
New York: ACM, 2013. p. 1-6. (DOI: 10.1145/2463209.2488895)
RABAEY, Jan M. Digital Integrated Circuits: a design perspective. New Jersey: Prentice Hall,
1996. (ISBN:0131786091)
RAGHUNATHAN, Anand; JHA, Niraj K.; DEY, Sujit. High-level power analysis and
optimization. New York: Springer, 1998. Cap. 1, p. 1-15. (ISBN: 0792380738)
RUGGIERO, Martino; GUERRI, Alessio; BERTOZZI, Davide; POLETTI, Francesco; MILANO,
Michela. Communication-aware allocation and scheduling framework for stream-oriented multi-
processor systems-on-chip. In: DESIGN, AUTOMATION TEST IN EUROPE CONFERENCE &
106
EXHIBITION (DATE), 6., 2006, Munich. Proceedings... New York: IEEE, 2006. p. 3-8.
(DOI:10.1109/DATE.2006.243950)
RUGGIERO, Martino. NoC architectures. In: AYALA, José L. (Ed). Communication
architectures for Systems-on-Chip. Boca Raton: CRC Press, 2011. p. 83-125.
(ISBN:9781439841709)
SAYUTI, M. Norazizi Sham Mohd; INDRUSIAK, Leandro Soares. Real-time low-power task
mapping in Networks-on-Chip. In: IEEE COMPUTER SOCIETY ANNUAL SYMPOSIUM ON
VLSI (ISVLSI), 2013, Natal. Proceedings... [S.l]: IEEE, 2013. p. 14-19.
(DOI:10.1109/ISVLSI.2013.6654616)
SELL, John; O’CONNOR, Patrick. The Xbox One system on a chip and kinect sensor. IEEE
Micro, Washington, v.34, n.2, p. 44-53, 2014. (DOI: 10.1109/MM.2014.9)
SHI, Zeng. Real-Time Communication Services for Networks on Chip. 2009. 204 f. Thesis
(Doctor of Philosophy in Computer Science) - Real-Time Systems Research Group, The University
of York, York, 2009.
SHI, Zheng; BURNS, Alan; INDRUSIAK, Leandro Soares. Schedulability analysis for real time
on-chip communication with wormhole switching. International Journal of Embedded and Real-
Time Communication Systems, Pennsylvania, v.1, n.2, p. 1-22, 2010.
(DOI:10.4018/jertcs.2010040101)
SILVA, Eduardo Alves; METZGER, Luiz Gustavo; ZEFERINO, Cesar Albenes. On the
development of a Qt-based multithread NoC simulator. In: WORKSHOP ON CIRCUITS AND
SYSTEMS DESIGN (WCAS 2014), 4., 2014, Aracaju. Proceedings.... Porto Alegre: SBC, 2014. p.
1-4.
SINGH, Amit Kumar; KUMAR, Akash; SRIKANTHAN, Thambipillai. Accelerating throughput-
aware runtime mapping for heterogeneous MPSoCs. ACM Transactions on Design Automation
of Electronic Systems (TODAES), New York, v.18, n.1, p. 9:1-9:29, 2013.
(DOI:10.1145/2390191.2390200)
SINGH, Amit Kumar; SHAFIQUE, Muhammad; KUMAR, Akash; HENKEL, Jörg. Mapping on
multi/many-core systems: survey of current and emerging trends. In: DESIGN AUTOMATION
CONFERENCE (DAC), 50., 2013, Austin. Proceedings... New York: ACM, 2013. p. 1-10.
(DOI:10.1145/2463209.2488734)
SMIT, Lodewijk T.; SMIT, Gerard J. M.; HURINK, Johann L.; BROERSMA, Hajo; PAULUSMA
Daniel; WOLKOTTE, Pascal T. Run-time mapping of applications to a heterogeneous
reconfigurable tiled system on chip architecture. In: IEEE INTERNATIONAL CONFERENCE ON
FIELD-PROGRAMMABLE TECHNOLOGY, 2004, Brisbane. Proceedings... Washington: IEEE,
2004. p. 421-424. (DOI: 10.1109/FPT.2004.1393315)
SRINIVASAN, Krishnan; CHATHA, Karam S.; KONJEVOD, Goran. Linear-programming-based
techniques for synthesis of network-on-chip architectures. IEEE Transactions on Very Large
Scale Integration (VLSI) Systems, Piscataway, v.14, n.4, p. 407-420, 2006.
(DOI:10.1109/TVLSI.2006.871762)
107
STACKHOUSE, Blaine; BHIMJI, Sal; BOSTAK, Chris; BRADLEY, Dave; CHERKAUER, Brian;
DESAI, Jayen; FRANCOM, Erin; GOWAN, Mike; GRONOWSKI, Paul; KRUEGER, Dan;
MORGANTI, Charles; TROYER, Steve. A 65 nm 2-billion transistor quad-core Itanium processor.
IEEE Journal Of Solid-State Circuits, Washington, v.44, n.1, p. 18-31, 2008. (DOI:
10.1109/JSSC.2008.2007150)
STANKOVIC, John A.; RAMAMRITHAM, Krithi. What is predictability for real-time systems?
Real-Time Systems, [S.l], v.2, n.4, p. 247-254, 1990. (DOI: 10.1007/BF01995673)
STUIJK, Sander; GEILEN, Marc; BASTEN, Twan. SDF3: SDF for free. In: INTERNATIONAL
CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN (ACSD), 6.,
2006, [S.l]. Proceedings... [S.l: s.n.], 2006. p. 276-278. (DOI: 10.1109/ACSD.2006.23)
TABKHI, Hamed; SCHIRNER; Gunar. Application-guided power gating reducing register file
static power. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Piscataway,
v.22, n.12, p. 2513-2526, 2014. (DOI:10.1109/TVLSI.2013.2293702)
TAMIR, Yuval; FRAZIER, Gregory L. Dynamically-allocated multi-queue buffers for VLSI
communication switches. IEEE Transactions on Computers, v.41, n.6, p. 725-737, 1992.
(DOI:10.1109/12.144624)
TOSUN, Suleyman. New heuristic algorithms for energy aware application mapping and routing on
mesh-based NoCs. Journal of Systems Architecture, [S.l], v.57, n.1, p. 69-78, 2011.
(DOI:10.1016/j.sysarc.2010.10.001)
ZEFERINO, Cesar Albenes. Redes-em-Chip: arquiteturas e modelos para avaliação de área e
desempenho. 2003. 242 f. Tese (Doutorado em Ciência da Computação) - Programa de Pós-
graduação em Computação, Universidade Federal do Rio Grande do Sul, Porto Alegre, 2003.
ZEFERINO, Cesar Albenes; KREUTZ, Márcio Eduardo; SUSIN, Altamiro Amadeu. RASoC: A
router soft-core for Networks-on-Chip. In: DESIGN, AUTOMATION AND TEST IN EUROPE
CONFERENCE AND EXHIBITION (DATE), 4., 2004, Paris. Proceedings... New York: IEEE,
2004. p. 16-20. (DOI: 10.1109/DATE.2004.1269230)
ZEFERINO, Cesar Albenes; SANTO, Frederico G. M. E; SUSIN, Altamiro Amadeu. ParIS: a
parameterizable interconnect switch for Networks-on-Chip. In: SYMPOSIUM ON INTEGRATED
CIRCUITS AND SYSTEM DESIGN (SBCCI), 17., 2004, Pernambuco. Proceedings… New York:
ACM, 2004. p. 204-209. (DOI: 10.1109/SBCCI.2004.240876)
YE Terry Tao; BENINI Luca; De MICHELI Giovanni. Analysis of power consumption on switch
fabrics in networks routers. In: DESIGN AUTOMATION CONFERENCE (DAC), 39., 2002, New
Orleans. Proceedings... Washington: IEEE, 2002. p. 524-529. (DOI: 10.1109/DAC.2002.1012681)
YU, Jia; YAO, Jingnan; BHUYAN, Laxmi; YANG, Jun. Program mapping onto network
processors by recursive bipartitioning and refining. In: DESIGN AUTOMATION CONFERENCE
(DAC), 44., 2007, San Diego. Proceedings... New York: ACM, 2007. p. 805-810.
(DOI:10.1145/1278480.1278681)
108
APÊNDICE A – REVISÃO SISTEMÁTICA
Este apêndice descreve os passos seguidos no processo de seleção dos artigos que compõem
o Capítulo 3 deste trabalho. Com base na definição das perguntas de pesquisa foi elaborado um
protocolo de busca que permitiu a identificação de artigos científicos relacionados ao tema
investigado. As etapas posteriores visaram à filtragem, avaliação, extração de dados e síntese dos
estudos.
Questões de pesquisa
Q1: Quais as técnicas adotadas pela comunidade científica no mapeamento de tarefas em
plataformas baseadas em NoCs visando a economia de energia?
Q2: Quais as principais métricas otimizadas no mapeamento das tarefas?
Q3: Como as técnicas de mapeamento são avaliadas?
Q4: Que tecnologias são adotadas, simuladores ou ferramentas específicas?
Protocolo de busca16
O protocolo de busca adotado na identificação de publicações relacionadas ao tema deste
trabalho, foi idealizado de maneira a recuperar artigos que tratam do mapeamento de tarefas para
redução do consumo de energia em NoCs. Foram identificados diversos termos chave juntamente
com suas variações. Além disso, foram buscados preferencialmente trabalhos publicados em língua
inglesa e divulgados em bases de dados eletrônicas. Os trabalhos relacionados descritos nessa
pesquisa foram identificados com os seguintes termos de busca:
(((*power*) OR (*energy*)) AND ((“task mapping”) OR (“task allocation”) OR
(“task-mapping”) OR (“task-allocation”) OR (“application mapping”) OR
(“heuristic”) OR (“algorithm”)) AND ((NoC*) OR (“network-on-chip”) OR
(“networks-on-chip”) OR (“MPSoC”)))
16
No protocolo descrito, o símbolo asterisco (*) indica que se deseja buscar a palavra chave combinada com todos os
termos disponíveis na base de dados. Esse caractere é conhecido como “curinga”, a biblioteca digital IEEExplore
oferece essa funcionalidade em sua ferramenta de busca avançada.
109
Critérios para seleção de estudos
Após a execução do protocolo de busca se faz necessário selecionar as publicações mais
relevantes, tendo como base critérios de filtragem. Neste trabalho foram adotados os seguintes
procedimentos de seleção:
Data de publicação: foram selecionados nessa revisão artigos publicados a partir do
ano de 2009, com isso foi possível reduzir significativamente o conjunto de trabalhos
retornados; e
Análise do título e do resumo: essa análise visa descartar trabalhos que embora
contenham algumas palavras-chave de interesse não abordam especificamente o
assunto pesquisado.
Avaliação dos estudos selecionados
O processo de filtragem adotado na seleção de estudos é seguido pela etapa de avaliação dos
trabalhos escolhidos. Esse processo consiste em analisar o conteúdo dos artigos selecionados,
identificando a relevância desses, as contribuições e os resultados obtidos. Nessa etapa foram
selecionados apenas os artigos que apresentaram avaliação quanto ao consumo de energia, como
observado no Quadro 10.
Extração dos dados
Os artigos aprovados nos processos de seleção e avaliação passaram por uma etapa de
extração de dados. Essas informações são essenciais na comparação entre as diversas abordagens
empregadas atualmente no mapeamento de tarefas frente ao que é proposto neste trabalho. As
seguintes informações foram identificadas nos estudos avaliados:
Informações para referência bibliográfica;
Técnica empregada no mapeamento;
Métricas otimizadas;
Especificação da plataforma;
Modelos adotados;
Método de avaliação;
110
Ferramental de apoio; e
Resultados obtidos;
Síntese dos dados
As informações elencadas anteriormente foram organizadas em tabelas para permitir a
comparação entre os diferentes trabalhos descritos na literatura e a abordagem proposta. Os dados
mais relevantes serviram como base para as análises e discussões apresentadas nos Capítulos 3 e 4