Académique Documents
Professionnel Documents
Culture Documents
FACULDADE DE INFORMTICA
PROGRAMA DE PS-GRADUAO EM CINCIA DA COMPUTAO
Agradecimentos
Certamente eu no teria concludo o Doutorado sem o auxilio de muitos, mas em primeiro
lugar agradeo aos meus pais Edevagildo e Snia e ao meu irmo Wagner pelo apoio nessa caminhada longa de 4 anos (7 desde o mestrado). VALEU FAMLIA! AMO VCS! Agradeo ao meu filho
Joo Marcelo por me mostrar o quanto eu sou limitado cada vez que inventa mais uma de suas maravilhosas estrias (que imaginao frtil!). VALEU JM! TE AMO! Agradeo a me dele, a Lilian
(Eu sei que vou te amar, por toda a minha vida eu ...) e a seus pais pela ajuda na criao do guri.
Algum que tambm tem uma parte muito significativa nessa minha conquista o meu orientador, Fernando Moraes. Vou resumir essa parte dos agradecimentos, pois no quero ser chamado de puxa-saco. Quem conhece o Moraes, e teve a oportunidade de trabalhar com ele, sabe que
se trata de um profissional exemplar. Contudo, quem teve o privilgio como eu de conviver com
ele sabe que alm do profissional tu podes encontrar um amigo, com um corao enorme, sempre
disposto a ajudar quando surgem problemas nas nossas vidas. VALEU MORAES!
Ao pessoal do GAPH o meu agradecimento. Nos ltimos 7 anos convivi com muita gente
no GAPH, e digo convivi porque no foi s compartilhar um espao. Muito alm foram as conversas, bebidas, jogos, churrascos etc. Eu tentei conhecer um pouco de cada um, porque esse um dos
meus lemas. Coisa boa conhecer gente e trocar experincias! Agradeo ao professor Ney Calazans
com sua mania de perfeccionismo, e sempre com sua opinio bem formada sobre qualquer assunto
que seja discutido. Agradeo ao Marcon pelos conselhos durante esses anos, e tambm por no ter
me causado nenhuma leso grave no futebol de cada semana. VALEU GAPH!
Meus amigos. No consigo imaginar como seria a vida sem eles. Edson Moreno, ou seria
Edson Carvalho? Que palavras usar? Esse o cara! S para dar uma noo, o defeito dele ser altrusta. Nunca o vi deixar algum na mo. 7 anos de amizade, e espero que os primeiros de muitos.
VALEU EDSON! TU MORAS NO MEU CORAO! Querem saber quem o prximo? Uma pista:
No tem uma vez que eu tenha visto esse cara triste. OST=ALEGRE, VALEU! Morei com vrios
nesses anos em PoA. Certa vez eu ia me mudar pra no ter que morar mais comigo, mas acho que
no ia dar certo. Alguns so Edson, Mrcio Garcia e o Julian Pontes. Eu e estes dois ltimos compartilhamos opinies to parecidas com relao vida, famlia, poltica, religio, futebol, mulheres
etc. J com o Edson as opinies so meio que divergentes, mas eu sei que a Silvia (noiva dele) que
coloca essas idias na cabea dele. VALEU MRCIO! VALEU JULIAN!
Meus companheiros nas publicaes: Rafael Soares, Leandro Mller e Ismael Grehs. VALEU PELA FORA! Foi muito legal trabalhar com vcs. Pena que a nossa antiga rea entrou em extino, a reconfigurao parcial e dinmica. Ela que chamou minha ateno para a pesquisa, l nos
tempos de graduao quando o Ney foi apresentar uma palestra na semana acadmica. Eu nem
sonhava que era tanto trabalho assim. Quantas plataformas queimadas nessa brincadeira sria?
Agradeo ainda o suporte financeiro advindo do CNPq na forma da bolsa de fomento do
Programa Nacional de Microeletrnica (PNM). O suporte operacional proporcionado pelo GAPH/FACIN/PUCRS tambm foi muito imprescindvel. Ali no s encontrei os recursos materiais
necessrios, mas principalmente encontrei a amizade e o companheirismo de muitos outros estudantes (nem tem como citar nomes) e tambm dos funcionrios (Thiago, Sandra, Z Carlos).
Nas palavras de Mendes Ribeiro: Foi um privilgio ter estado com vocs.
Resumo
MPSoCs so sistemas multiprocessados integrados na forma de um SoC. Eles so tendncia no projeto de circuitos VLSI, pois minimizam a crise de produtividade de projeto, representada pelo descompasso entre a capacidade da tecnologia do silcio e a capacidade atual de projeto de SoCs. Cita-se como exemplo de
MPSoCs os propostos pela Intel e pela Tilera, compostos respectivamente por 80 e 64 ncleos de processamento. MPSoCs podem empregar NoCs para integrar diversos processadores, memrias, bem como ncleos
de hardware especficos. O uso de NoCs deve-se a suas vantagens em relao a barramentos, entre as quais
maior escalabilidade e paralelismo na comunicao.
A arquitetura alvo do presente trabalho consiste em um MPSoC heterogneo, com utilizao de NoC
como meio interconexo entre os elementos de processamento, suportando a execuo de tarefas de hardware
via lgica reconfigurvel, e a execuo de tarefas de software via processadores. Um dos processadores da arquitetura alvo, denominado processador gerente, responsvel por: gerncia da ocupao dos recursos do sistema, escalonamento, mapeamento, e configurao de tarefas. O mapeamento de tarefas define a posio de
uma dada tarefa no sistema. A maioria dos trabalhos encontrados na literatura prope tcnicas de mapeamento esttico, definido em tempo de projeto, no qual todas as tarefas de uma dada aplicao so mapeadas simultaneamente. Este mapeamento esttico no adequado para cenrios com carga dinmica de tarefas. Dado que
aplicaes executando em um MPSoC podem possuir um nmero varivel de tarefas, e que tal nmero pode
exceder os recursos disponveis, necessrio realizar o mapeamento de tarefas em tempo de execuo, mapeamento este denominado de mapeamento dinmico.
O presente trabalho investiga o desempenho de heursticas para mapeamento dinmico de tarefas,
com o objetivo de minimizar congestionamentos em NoCs. As tarefas so mapeadas sob demanda, de acordo
com as requisies de comunicao e com a ocupao dos canais da NoC. Os algoritmos implementados aplicam estratgias gulosas, onde as tarefas so mapeadas uma por vez. Para isso, a deciso baseada na informao local da aplicao, apenas relacionada tarefa requisitada. O algoritmo utilizado como referncia nos experimentos mapeia uma dada tarefa no primeiro recurso livre encontrado. Quatro heursticas congestionaware so propostas. Atravs de experimentos realizados com base na modelagem do sistema no nvel RTL,
pode-se observar reduo de 31% na carga nos canais da NoC, de 15% na latncia mdia, e de at 87% no nvel mdio de congestionamento. Tais resultados demonstram a eficincia das heursticas propostas.
Palavras-Chave: Mapeamento dinmico de tarefas, NoC, SoC, MPSoC.
Abstract
MPSoCs are multi-processor systems integrated in a single chip. They are a trend in VLSI circuit
design, since they minimize the design productivity crisis represented by the gap between the silicon technology and the actual SoC design capacity. Examples of MPSoCs include those proposed by Intel and Tilera,
composed by 80 and 64 processing elements respectively. MPSoCs may employ NoCs to integrate several
processors, memories, as well as specific hardware cores. NoCs may be used to replace busses, due to their advantages of higher scalability and communication parallelism.
The target architecture of the present work is a NoC-based heterogeneous MPSoC supporting hardware task execution through embedded reconfigurable logic, together with software tasks executed by programmable processors. One of the processors of the target architecture, named manager processor, is responsible for system resources management, task scheduling, task mapping, and configuration control. Task mapping defines the placement of a new task into the system. Most works in literature propose static mapping
techniques defined at design time, where all application tasks are mapped simultaneously. This static mapping is not appropriate for dynamic workloads scenarios. Since applications running in MPSoCs may contain a varying number of tasks, and since their number may exceed the available resources, task mapping at
run-time is necessary. Such task mapping method is named dynamic task mapping.
The present work investigates the performance of heuristics for dynamic task mapping, targeting
NoC congestion minimization. Tasks are mapped on demand, according to the communication requests and
the load in NoC channels. The implemented algorithms employ a greedy approach, where tasks are individually mapped. The mapping decision is based on local information, considering the communication constraints of the requested task. The algorithm used as the reference mapping strategy in experiments maps a
task into the first free resource available. Four congestion-aware mapping heuristics are proposed. Through
the experiments employing RTL abstraction level modeling, it is possible to observe reductions of 31% in
channel load distribution, 15% in average latency, and 87% in congestion level. These results demonstrate
the efficiency of proposed heuristics.
Key-Words: Dynamic Task Mapping, NoC, SoC, MPSoC.
Sumrio
Resumo .......................................................................................................................................11
Abstract.......................................................................................................................................13
Lista de Abreviaturas...................................................................................................................19
Lista de Figuras ............................................................................................................................23
Lista de Tabelas ...........................................................................................................................25
Lista de Algoritmos ......................................................................................................................27
1.
Introduo ..........................................................................................................................29
1.1.
1.2.
1.3.
1.4.
1.5.
2.
3.
4.
5.
6.
7.
Lista de Abreviaturas
AMBA
APCG
APG
APplication Graph
API
ARM7
BF
Best Fit
BN
Best Neighbor
CAD
Computer-Aided Design
CAFES
CDCG
CDCM
CDG
CDM
CELL BE
CI
Circuito Integrado
CL
Clusterizao Linear
CLP
CRG
CTG
CWG
CWM
DDR2
DMA
DMEM
Data MEMory
DRAM
DSP
EC
East Channels
EDF
EIB
FACIN
Faculdade de Informtica
FF
FIFO
FPGA
FPMAC
Floating-Point Multiply-and-ACumulate
GALS
GAPH
GI
Greedy Incremental
GMPSoC
Grafo de MPSoC
GPP
General-Purpose Processor
ILP
IMEM
Intruction MEMory
IP
Intellectual Property
ISP
ITRS
JTAG
LCF
MAC
MACL
MDE
MMCL
MP
Manager Processor
MP3
MPEG
MPI
MPSoC
Multi-Processor SoC
mSA
mTS
MWD
Multi-Window Display
NC
North Channels
NI
Network Interface
NN
Nearest Neighbor
NoC
Network-on-Chip
PCI
PDA
PE
Processing Element
PL
Path Load
PPE
PUCRS
QAP
QoS
Quality of Service
Roteador
RBERG
Integral de Romberg
RISC
RL
Reconfigurable Logic
RTEMS
RTL
SA
Simulated Annealing
SC
South Channels
SO
Sistema Operacional
SoC
System-on-Chip
SP
Sample Period
SPE
TDM
Time-Division Multiplexing
TGFF
TLM
Transaction-level modeling
TOPS
TS
Tabu Search
UDP
UET
UMT
VHDL
VHSIC
VLSI
Very-Large-Scale Integration
VOPD
WC
West Channels
WF
Worst Fit
xy
Algoritmo de roteamento xy
Lista de Figuras
FIGURA 1.1. CRISE DE PRODUTIVIDADE DE PROJETO [SIA99]. ................................................................................... 29
FIGURA 1.2. REDES INTRACHIP: ELEMENTOS BSICOS E EXEMPLOS DE TOPOLOGIAS. ........................................................ 32
FIGURA 1.3. CRESCIMENTO DO NMERO DE NCLEOS POR PROCESSADOR AO LONGO DOS ANOS [GOR06]. ......................... 33
FIGURA 2.1. MPSOC HOMOGNEO PROPOSTO POR WOSZEZENKI [WOS07]. .............................................................. 40
FIGURA 2.2. MPSOC HOMOGNEO PROPOSTO POR SAINT-JEAN E OUTROS [SAI07A]. .................................................... 41
FIGURA 2.3. ORGANIZAO DE UM PICOARRAY, PROPOSTA PELA PICOCHIP [DUL05]. .................................................... 41
FIGURA 2.4. MPSOC CELL DESENVOLVIDO POR IBM, SONY E TOSHIBA PARA O PLAYSTATION3 [KIS06]. ........................... 42
FIGURA 2.5. MPSOC AM2045 COMPOSTO POR 360 PROCESSADORES RISC, DESENVOLVIDO PELA AMBRIC [HAL06]. .......... 42
FIGURA 2.6. MPSOC COMPOSTO POR 80 PROCESSADORES IDNTICOS, DESENVOLVIDO PELA INTEL [VAN07B]. .................... 43
FIGURA 2.7. MPSOC COMPOSTO POR 64 PROCESSADORES IDNTICOS, DESENVOLVIDO PELA TILERA [TIL07]. ...................... 43
FIGURA 3.1. ORGANIZAO DE MPSOC HETEROGNEO ALVO DO PRESENTE TRABALHO................................................... 61
FIGURA 3.2. EXEMPLO DE APLICAO, REPRESENTADA POR UM GRAFO DE TAREFAS. ....................................................... 63
FIGURA 3.3. NOC HERMES [MOR04]: (A) ROTEADOR E (B) CONTROLE DE FLUXO HANDSHAKE. ........................................ 65
FIGURA 3.4. PROTOCOLO DE COMUNICAO ENTRE AS TAREFAS E O PROCESSADOR GERENTE MP. ..................................... 65
FIGURA 3.5. DIAGRAMA DE INTERAO ENTRE AS TAREFAS E O PROCESSADOR GERENTE MP. ............................................ 67
FIGURA 3.6. DISTRIBUIO ESPACIAL DOS RECURSOS DE UM MPSOC COM N COLUNAS E M LINHAS. ................................... 69
FIGURA 3.7. ESQUEMAS CENTRALIZADO E DISTRIBUDO PARA MONITORAMENTO DA OCUPAO DOS CANAIS DA NOC. ............ 70
FIGURA 4.1. CAMINHO DE COMUNICAO CP(TA,TB) ENTRE AS TAREFAS TA E TB, CONFORME ROTEAMENTO XY. ................... 82
FIGURA 4.2. ESTRATGIA DE CLUSTERIZAO PARA O MAPEAMENTO DE TAREFAS INICIAIS DAS APLICAES. .......................... 83
FIGURA 4.3. COMPARATIVO DE DUAS ESTRATGIAS PARA O MAPEAMENTO DE TAREFAS INICIAS. ......................................... 83
FIGURA 4.4. CAMINHO DA PROCURA POR RECURSO LIVRE REALIZADO POR FIRST FREE. .................................................... 84
FIGURA 4.5. CAMINHO DA PROCURA POR RECURSO LIVRE REALIZADO POR NEAREST NEIGHBOR. ........................................ 85
FIGURA 4.6. SITUAO DE FALHA NA HEURSTICA DE MAPEAMENTO MMCL. ................................................................ 88
FIGURA 4.7. SITUAO DE FALHA NA HEURSTICA DE MAPEAMENTO MACL. ................................................................. 89
FIGURA 5.1. ABORDAGEM ADOTADA PARA MODELAGEM DA NOC, MP E PES. ........................................................... 100
FIGURA 5.2. COMPONENTES DA IMPLEMENTAO DO PROCESSADOR GERENTE MP. ..................................................... 100
FIGURA 5.3. DIAGRAMA DE DECISES DURANTE O MAPEAMENTO DE TAREFAS NA ETAPA 3. ............................................ 101
FIGURA 5.4. GERAO DE TRFEGO DE TA PARA TB (7%) E TC (25%), SEGUNDO UM SP = 100 CICLOS DE RELGIO. ............. 102
FIGURA 5.5. MPSOC HETEROGNEO 8X8: POSICIONAMENTO DOS PES DE ACORDO COM SEU TIPO. .................................. 103
FIGURA 5.6. CENRIO A: APLICAO COM GRAFO COM TOPOLOGIA PIPELINE. A TAXA RMS VARIADA ENTRE 5 E 30%. ........ 104
FIGURA 5.7. CENRIO B: APLICAO COM GRAFO COM TOPOLOGIA RVORE. A TAXA VARIADA ENTRE 5 E 20%. ............... 104
FIGURA 5.8. CENRIO C: 20 GRAFOS DE APLICAES GERADOS ALEATORIAMENTE NA FERRAMENTA TGFF......................... 105
FIGURA 5.9. OCUPAO (MDIA E MXIMO) DOS CANAIS DA NOC AO LONGO DO TEMPO, PARA O CENRIO C. ................... 106
FIGURA 5.10. OCUPAO MDIA DOS CANAIS DA NOC (PERCENTUAL DA LARGURA DE BANDA DISPONVEL). ...................... 107
FIGURA 5.11. DESVIO PADRO NA OCUPAO DOS CANAIS DA NOC (PERCENTUAL DA LARGURA DE BANDA DISPONVEL). ..... 108
FIGURA 5.12. NMERO DE CONGESTIONAMENTOS DETECTADOS DURANTES AS SIMULAES DOS TRS CENRIOS. ................ 110
FIGURA 5.13. TEMPO PERDIDO DURANTE OS CONGESTIONAMENTOS PARA OS TRS CENRIOS DE SIMULAO. .................... 111
FIGURA 6.1. GRAFO QUE REPRESENTA O DECODIFICADOR MPEG-4 COMPOSTO POR 13 TAREFAS. ................................... 119
FIGURA 6.2. GRAFO QUE REPRESENTA O DECODIFICADOR VOP COMPOSTO POR 13 TAREFAS. ......................................... 120
FIGURA 6.3. GRAFO QUE REPRESENTA A APLICAO MWD COMPOSTA POR 12 TAREFAS. .............................................. 121
FIGURA 6.4. GRAFO QUE REPRESENTA A APLICAO DA INTEGRAL DE ROMBERG COMPOSTA POR 10 TAREFAS. .................... 121
FIGURA 6.5. DISTRIBUIO DAS TAREFAS DE ACORDO COM OS ALGORITMOS DE MAPEAMENTOS INVESTIGADOS. .................. 123
FIGURA 6.6. OCUPAO DOS CANAIS (MDIA E DESVIO PADRO) DA NOC PARA OS ALGORITMOS INVESTIGADOS. ................ 124
FIGURA 6.7. LATNCIA DOS PACOTES (MDIA E DESVIO PADRO) NA NOC PARA OS ALGORITMOS INVESTIGADOS. ................. 125
FIGURA 6.8. NVEL DE CONGESTIONAMENTOS NA NOC PARA OS ALGORITMOS INVESTIGADOS. ........................................ 126
Lista de Tabelas
TABELA 2.1. COMPARATIVO DOS MPSOCS INVESTIGADOS. ...................................................................................... 44
TABELA 2.2. COMPARATIVO DOS TRABALHOS INVESTIGADOS SOBRE MAPEAMENTO ESTTICO DE TAREFAS. ........................... 50
TABELA 2.3. COMPARATIVO DOS TRABALHOS INVESTIGADOS SOBRE MAPEAMENTO DINMICO DE TAREFAS. .......................... 54
TABELA 2.4. COMPARATIVO DOS TRABALHOS INVESTIGADOS SOBRE MIGRAO DE TAREFAS. ............................................ 57
TABELA 3.1. COMPARATIVO ENTRE AS TRS ABORDAGENS ADOTADAS PARA MODELAR O SISTEMA. ..................................... 73
TABELA 4.1. COMPARATIVO ENTRE OS ALGORITMOS DE MAPEAMENTO PROPOSTOS. ....................................................... 98
TABELA 5.1. LATNCIA MDIA DOS PACOTES (EM CICLOS DE RELGIO). ...................................................................... 109
TABELA 5.2. TEMPO DE EXECUO TOTAL DO SISTEMA (EM CICLOS DE RELGIO) PARA CADA SIMULAO REALIZADA. ........... 112
TABELA 5.3. TEMPO DE EXECUO MDIO DOS ALGORITMOS IMPLEMENTADOS. ......................................................... 113
TABELA 5.4. RESUMO DOS RESULTADOS DE CADA HEURSTICA, NORMALIZADOS EM FUNO DO ALGORITMO FF. ................. 114
TABELA 6.1. RESUMO DOS RESULTADOS PARA O CENRIO D, NORMALIZADOS EM FUNO DO ALGORITMO MSA. ................ 129
TABELA 6.2. RESUMO DOS RESULTADOS PARA O CENRIO E, NORMALIZADOS EM FUNO DO ALGORITMO MTS. ................. 132
Lista de Algoritmos
ALGORITMO 4.1. TESTES REALIZADOS PARA REUSO E ESCALONAMENTO DE TAREFAS. ...................................................... 91
ALGORITMO 4.2. MAPEAMENTO SEGUNDO O MTODO FF DE REFERNCIA. .................................................................. 92
ALGORITMO 4.3. MAPEAMENTO SEGUNDO O MTODO NN DE REFERNCIA.................................................................. 93
ALGORITMO 4.4. MAPEAMENTO SEGUNDO O MTODO MMCL PROPOSTO. ................................................................. 94
ALGORITMO 4.5. MAPEAMENTO SEGUNDO O MTODO MACL PROPOSTO. .................................................................. 95
ALGORITMO 4.6. MAPEAMENTO SEGUNDO O MTODO PL PROPOSTO......................................................................... 96
ALGORITMO 4.7. MAPEAMENTO SEGUNDO O MTODO BN PROPOSTO. ....................................................................... 97
1. INTRODUO
100000
100
Espao
Complexidade
(transistores por CI)
10000
58% ao ano
1000
10
21% ao ano
0.01
0.1
1981
1985
1989
1993
1997
2001
2005
Produtividade
(transistores por funcionrio-ms)
2009
Como o fator humano tambm influi na crise, surge como tendncia o emprego de
grupos grandes em projetos modulares, onde equipes menores desenvolvem partes do
projeto de forma distribuda e paralela, de acordo com o conceito de diviso e conquista.
29
A crise tambm demanda o contnuo melhoramento dos mtodos de projeto, que devem
empregar nveis de abstrao cada vez mais altos, bem como uma maior automao, atravs de ferramentas de CAD mais poderosas.
Uma soluo apontada para reduzir da crise de projeto consiste no desenvolvimento de sistemas complexos integrados em um nico circuito. Tal estratgia de integrao recebe o nome de SoC (do ingls, System-on-Chip) [MAR01]. Sua primeira vantagem
diz respeito ao desempenho do sistema com relao ao tempo de execuo. As comunicaes entre os componentes do SoC podem ocorrer mais rapidamente em comparao estratgia convencional, pois eles se encontram todos no mesmo circuito. A principal vantagem do emprego de SoC o tempo reduzido de projeto, contribuio considervel para a
reduo da crise de projeto. Geralmente, o projeto de SoC baseado no reuso de ncleos
de hardware (do ingls, Intellectual Property Cores ou IPs). Como os IPs so mdulos prprojetados e pr-validados [BER01], a tcnica de reuso pode garantir um tempo menor para o produto chegar ao mercado, fator imprescindvel no cenrio competitivo atual.
Em geral, o aumento da complexidade das aplicaes demanda maior capacidade
de processamento. Tal fato impulsiona o desenvolvimento de sistemas computacionais
composto por vrios processadores, outrora implementados na forma de clusters (i. e. agregados de computadores [BAK99]), agora implementados na forma de um SoC. No
domnio dos clusters, obtm-se ganho de desempenho atravs da conexo de vrios computadores por meio de redes rpidas de comunicao. As aplicaes so ento paralelizadas para executar nos vrios processadores que compem arquitetura. MPSoCs (do ingls,
Multi-Processor System-on-Chip) so sistemas multiprocessados implementados na forma de
30
31
xo de ncleos de diferentes naturezas, e. g. GPPs, memrias, dispositivos de entrada/sada ou ainda IPs especficos. Alm disso, cada um deles pode ter caractersticas prprias de voltagem, freqncia de operao e/ou tecnologia.
Canal
Canal
Roteador
Malha 2D 3x3
Ncleo
Ncleo
Ncleo
Ncleo
Toro 2D 3x3
Cubo 3D
(b) Topologias
32
do o sistema em um conjunto de ncleos sncronos que interagem de uma maneira assncrona. Por tudo isso, o emprego de NoC tendncia conforme atesta o grande volume
de trabalhos recentemente publicados nessa rea [KUM02] [ZEF03] [MOR04] [COR06].
Ambric
AM2045
256
Cisco
CSR-
Nmero de cores
128
Intel
Tflops
64
32
Cell
Niagar
Opteron 4P
Boardcom 1480
Xeon MP
PA-8800
2
1
Cavium
Octeon
Raza
XLR
Raw
16
Power4
4004
8080
808
28
386
486
Pentium
800
1970
1975
1980
1985
1990
1995
Xbox36
Opteron
Tanglewoo
PExtreme
Power6
Yona
P3 Itanium
P4
Athlon
Itanium 2
2000
2005
20??
FIGURA 1.3. CRESCIMENTO DO NMERO DE NCLEOS POR PROCESSADOR AO LONGO DOS ANOS [GOR06].
33
34
35
36
37
No Captulo 2, primeiramente apresenta-se um resumo do estado da arte em organizaes de MPSoCs propostas, em ambos os domnios acadmico e industrial. Na seqncia, apresenta-se um resumo dos trabalhos relacionados ao mapeamento de tarefas,
esttico e dinmico. Alm disso, trabalhos sobre a tcnica de migrao de tarefas tambm
so abordados. Ao final de cada Seo, um quadro comparativo apresentado.
O Captulo 3 apresenta a proposta de uma organizao de MPSoC heterogneo que
suporta tanto a execuo de tarefas no domnio de software, quando no domnio de
hardware, de acordo com o conceito de reconfigurao parcial, acima exposto.
No Captulo 4, apresenta-se a principal contribuio do presente trabalho. Ele prope um conjunto de seis algoritmos para mapeamento dinmico de tarefas, incluindo dois
algoritmos de referncia, sem avaliao de quaisquer funes custo, e outras quatro heursticas ditas congestion-aware. Heursticas congestion-aware avaliam a ocupao dos canais
da rede na sua tomada de deciso.
Os Captulos 5 e 6 dedicam-se aos experimentos realizados. No Captulo 5, cada um
dos algoritmos de mapeamento implementado avaliado com relao ao desempenho da
NoC. As simulaes realizadas so baseadas em uma plataforma descrita em nvel RTL e
simulada utilizando ModelSim 6.4 da Mentor Graphics. Ela composta pela NoC descrita
em VHDL e elementos de processamento descritos em SystemC. Trs cenrios de simulaes so considerados. Cada um deles visa a investigao de aplicaes sintticas com caractersticas de conectividade de tarefas e fluxo de dados diferentes.
O Captulo 6 d continuao aos experimentos. Ele apresenta a avaliao da estratgia gulosa proposta para resoluo do problema de mapeamento de tarefas. Para isso, as
heursticas aqui propostas so comparadas a dois algoritmos propostos por Marcon
[MAR07]. Dois cenrios de simulao so considerados, cada um representando sistemas
com tamanhos diferentes. Dentre as aplicaes mapeadas constam: decodificador MPEG4, MWD, Integral de Romberg, e decodificar VOP.
O Captulo 7 primeiramente apresenta uma listagem das contribuies do presente
trabalho. Em seguida, discute concluses obtidas, e apresenta algumas sugestes para trabalhos futuros na rea de mapeamento dinmico de tarefas.
Ao final do documento, o Apndice A apresenta uma descrio mais detalhada dos
grficos de aplicaes empregados nos cenrios dos experimentos, bem como os mapeamentos obtidos atravs da ferramenta CAFES, apresentada em [MAR07].
38
2. TRABALHOS RELACIONADOS
Cada vez mais, observa-se como tendncia a pesquisa na rea de MPSoCs [JER05]
[FET06] [WOS07] [SAI07a]. Um dos catalisadores desse fenmeno refere-se s aplicaes
que demandam maior poder computacional. Alm disso, o compromisso entre o custo de
projeto de um MPSoC e seu potencial ganho de desempenho outro atrativo. O projeto
pode beneficiar-se das tcnicas de reuso, e a tecnologia do silcio suporta a concepo de
circuitos cada vez mais complexos. O conceito simples, a rea de silcio disponvel preenchida com mdulos replicados. Contudo, a realizao demanda grande esforo da comunidade cientfica na busca de melhores mtodos de projeto e infra-estruturas para suporte operacional mais eficaz.
O presente Captulo apresenta propostas de organizaes para MPSoCs (Seo 2.1)
encontradas na literatura. Na seqncia, a Seo 2.2 apresenta uma reviso dos trabalhos
sobre mapeamento, abrangendo ambas as abordagens, esttica (Subseo 2.2.1) e dinmica (Subseo 2.2.2). Ao final de cada uma das Sees, apresenta-se consideraes sobre os
trabalhos revisados, incluindo tabelas que facilitam a comparao entre os mesmos. A migrao de tarefas tambm est inclusa na discusso (Seo 2.3).
39
de circuitos e usam a tcnica de canais virtuais. Nos experimentos realizados, foi empregada uma NoC com dimenses 4x4. Os elementos de processamento foram substitudos
por geradores aleatrios de trfego. O trabalho de Lin est focado na investigao de estratgias para mapeamento esttico de tarefas, conforme discutido adiante, na Subseo
2.2.1 que apresenta trabalhos sobre mapeamento realizado tem tempo de projeto.
Woszezenki [WOS07] prope um MPSoC homogneo, e um conjunto de ferramentas que permitem a gerao do sistema, sua simulao e avaliao de resultados. O MPSoC proposto composto por um conjunto de processadores, conectados atravs da NoC
Hermes [MOR04]. Os processadores do MPSoC proposto so baseados em uma verso
modificada do processador PLASMA [RHO01]. Cada um deles possui memria local de
64 Kbytes, dividida em 4 pginas: uma delas dedicada ao kernel desenvolvido e as demais para tarefas (i. e. processadores multitarefa). Um dos processadores do sistema (i. e.
Plasma MP) dedicado a realizar operaes de controle (Figura 2.1). Uma unidade DMA
usada para acelerar a alocao das tarefas. Este trabalho fornece suporte alocao dinmica de tarefas, entretanto nenhuma heurstica investigada.
HMPS
Editor Tool
ModelSim
Cygwin
40
Processador
Chave programvel
Interface inter picoArrays
Memria
41
FIGURA 2.4. MPSOC CELL DESENVOLVIDO POR IBM, SONY E TOSHIBA PARA O PLAYSTATION3 [KIS06].
SR Processador RISC
SRD Processador RISC com DSP
FIGURA 2.5. MPSOC AM2045 COMPOSTO POR 360 PROCESSADORES RISC, DESENVOLVIDO PELA AMBRIC [HAL06].
42
FIGURA 2.6. MPSOC COMPOSTO POR 80 PROCESSADORES IDNTICOS, DESENVOLVIDO PELA INTEL [VAN07B].
FIGURA 2.7. MPSOC COMPOSTO POR 64 PROCESSADORES IDNTICOS, DESENVOLVIDO PELA TILERA [TIL07].
43
CELL
(2006)
Am2045
(2006)
(2007)
Tile64
(2007)
Fabricante
Multiprocessamento
Infra-estrutura de
comunicao
Nmero
de PEs
Elemento de
Processamento
Freqncia
de Operao
Desempenho
picoChip
Homogneo
Hbrida
(barramentos picoBus
conectados por chaves)
322
RISC (16bits)
Monotarefa
150 MHz
IBM
Heterogneo
Hbrida
(NoC Anel + NoC estrela)
1 de 64bits +
8 aceleradores
3.3 GHz
204 GFlops/s
Ambric
Homogneo
NoC malha
360
RISC 32bits
333 MHz
1 Trilho de operaes
por segundo (TOPS)
Intel
Homogneo
NoC malha
80
2 unidades de
ponto Flutuante
4 GHz
1.28 TFlops/s
Tilera
Homogneo
NoC malha
(Tilera's iMesh)
64
866 MHz
44
45
presentada por uma NoC malha com roteamento xy wormhole. Os PEs so idnticos. A
principal contribuio do trabalho consiste em uma abordagem de mapeamento onde os
roteadores da NoC podem conter vrios ncleos/tarefas. Segundo os Autores, ela permite
at 81,2% de reduo de energia consumida, em comparao estratgia convencional, a
qual permite o mapeamento de apenas um ncleo por roteador.
Hu e Marculescu [HU03] [HU05] investigam o mapeamento das tarefas em sistemas baseados em NoC. A aplicao modelada por um grafo denominado APCG. Esta
abordagem baseada em modelos de comunicao com pesos, onde o peso do canal de
comunicao corresponde quantidade de bits transmitidos atravs dele. Os Autores demonstram a possibilidade de reduo de 60% no consumo de energia, comparado a solues ad hoc. Em [HU04], estende-se a abordagem anterior, considerando como restrio a
largura de banda mxima de cada canal da NoC para o escalonamento de tarefas. Os Autores introduzem um modelo que captura a comunicao (i. e. volume em bits) e a computao, baseado em um grafo de comunicao de tarefas CTG, o qual contm o tempo de
execuo de cada tarefa, seu consumo de energia, e deadline. Nos experimentos o gerador
aleatrio de grafos TGFF empregado. Comparados ao escalonamento Early Deadline First
(EDF), o algoritmo proposto apresenta um consumo de energia 44% melhor.
Murali e De Micheli [MUR04a] realizam o mapeamento de tarefas em NoCs de acordo com a largura de banda de comunicao. A aplicao representada por um grafo
de ncleos. A ferramenta NMAP proposta permite selecionar a topologia da NoC (malha
ou torus), e a estratgia de roteamento (caminho mnimo nico ou mltiplos caminhos com diviso de trfego). Em [MUR04b], a ferramenta SUNMAP proposta possui uma biblioteca
maior de topologias, mas o tipo de roteamento fixado para caminho mnimo. A funo
custo considera a mdia de atraso de comunicao, e os consumos de rea e energia. Em
[MUR05], adiciona-se ferramenta a capacidade de realizar posicionamento fsico. Atravs do mtodo Tabu Search (TS), o mapeamento visa otimizar o uso da largura de banda.
Comparado a soluo ad hoc, foram obtidas solues 5 vezes melhores para largura de
banda. Em [MUR06a], o mapeamento realizado para um conjunto de aplicaes alvo. A
soluo escolhida aquela que melhor apresenta-se para todo conjunto. Conforme
[MUR06b], essa abordagem resulta em NoCs muito grandes, alm de funcionar apenas
para aplicaes com padres de trfego similares. Em [MUR06b], mantm-se uma estrutura para cada aplicao alvo, e avalia-se independentemente o mapeamento.
Manolache e outros [MAN05] investigam o mapeamento de tarefas em uma NoC
com garantia de latncia. A arquitetura modelada atravs de uma matriz 2D de PEs homogneos. Uma tarefa representada por sua periodicidade, seu tempo de execuo e deadline. Uma dada aplicao descrita por um conjunto de tarefas, atravs de um grafo. Os
46
experimentos so baseados em uma NoC com dimenses 4x4. A melhor soluo encontrada atravs da tcnica Tabu Search. A garantia de latncia atingida porque tanto a posio das tarefas quando o roteamento dos pacotes so definidos em tempo de projeto. Alm disso, varias cpias de cada mensagem so enviadas. Trata-se de uma soluo limitada. A duplicao de mensagens permite tolerncia a falhas, no caso de perda de mensagens. Entretanto, essa estratgia pode sobrecarregar a rede, j que duplica o trfego.
Lin e outros [LIN05] tratam o mapeamento de tarefas em um MPSoC homogneo,
baseado em uma NoC malha. A aplicao representada por um grafo de tarefas, com informao sobre o volume de comunicao. O algoritmo proposto composto de 4 fases: (i)
um mapeamento realizado de forma que as tarefas fiquem o mais perto possvel; (ii) conexes so estabelecidas (i. e. chaveamento de circuito); (iii) atravs de simulao obtmse um perfil da operao do sistema; e (iv) calcula-se a conteno da rede e o sistema realimentado. Tal procedimento repetido at que o resultado apresente o desempenho desejado. O mapeamento utiliza o algoritmo Simulated Annealing (SA). Sua funo custo considera a distncia entre as tarefas, a ocupao dos canais e o volume de comunicao. Os
experimentos so baseados em grafos de aplicaes gerados no TGFF. Os resultados apresentam 20% de reduo no tempo total de execuo da aplicao, comparada a alternativa
que no considera a comunicao e os efeitos de conteno.
Srinivasan e Chatha [SRI05], alm da largura de banda, consideram tambm a latncia resultante como restrio no mapeamento. Uma dada aplicao modelada por um
grafo composto por vrtices que representam ncleos ou memrias; e por arestas que indicam a largura de banda e latncia necessrias para cada comunicao. A NoC possui
topologia malha, e cada roteador possui atributos tais como: larguras mximas de banda
suportadas, energia consumida em cada porta. A soluo implementada baseia-se no algoritmo rvore de Corte (do ingls, Cutting Tree), que recursivamente divide o grafo da
aplicao horizontalmente e verticalmente, at que a partio gere um vrtice para cada
roteador da NoC. Alguns dos grafos usados nos experimentos baseiam-se em aplicaes
reais (e. g. MPEG, MP3, H.263, VOPD, MWD). Os resultados obtidos demonstram que o
algoritmo proposto possui complexidade inferior ao proposto em [MUR04a]. Entretanto,
os resultados so equivalentes quando a latncia no tomada como restrio.
Marcon e outros [MAR05a] investigam o mapeamento de tarefas em uma NoC
malha. A proposta baseia-se no modelo CDM que representa a dependncia entre os pacotes. Esse trabalho manipula trs grafos. O grafo CWG composto por um conjunto de
tarefas e as respectivas comunicaes (volume de dados). O grafo CDG contm informao sobre todos os pacotes transmitidos e sua ordenao. O grafo CRG mantm informao sobre a topologia da NoC. Comparado [HU03], o algoritmo proposto apresenta re-
47
48
canais da NoC. As aplicaes so modeladas atravs de um grafo de tarefas, o qual informa a dependncia entre as tarefas e a largura de banda necessria para as comunicaes.
O algoritmo de mapeamento Spiral proposto mapeia as tarefas na forma de um espiral.
Nos experimentos so utilizadas tarefas sintticas geradas aleatoriamente. As NoCs usadas possuem algoritmo de roteamento xy, e dimenses que variam entre 3x3 e 6x6. Comparado a um algoritmo gentico [SHI04] e outro aleatrio, o Spiral apresenta respectivamente 8 e 10% de ganho na energia consumida na comunicao.
49
heursticas so avaliadas, algumas delas diferentes das tratadas anteriormente. A heurstica gulosa ainda apresentou o melhor resultado, mas em um tempo maior. Os Autores no
definem adequadamente a arquitetura alvo, e no consideram o tempo de mapeamento.
TABELA 2.2. COMPARATIVO DOS TRABALHOS INVESTIGADOS SOBRE MAPEAMENTO ESTTICO DE TAREFAS.
Autores
Mihal e Keutzer
(2003)
Wu et al.
(2003)
Lei e Kumar
(2003)
Rhee et al;
(2004)
Hu e
Marculescu
Modelo de
arquitetura
Infra-estrutura
de comunicao
Algoritmo
Modelo de
aplicao
Mtrica
Observaes
Heterognea
Barramento
Modelo alto-nvel
para uma ferramenta
tipo Ptolemy
Heterognea
Barramento
Gentico
Tempo de execuo e
energia dissipada
Energia consumida
Heterognea
NoC malha
Gentico
Volume de
comunicao
Tempo total de
execuo
Apresenta uma ferramenta para mapeamento e uma modelagem dos atrasos do sistema.
Volume de dados e
largura de banda
necessria
Mapeamento de ncleos na
NoC. Roteadores podem
conter vrios ncleos.
(roteamento xy)
Diviso e
conquista
Volume de comunicao,
comunicao e computao
Comunicaes
(Energia)
Homognea
NoC malha
Tabu Search
Periodicidade,
tempo de execuo
e deadline
Energia e
garantia de latncia
Mapeamento integrado de
Tarefas e comunicaes, aliado
a duplicao de mensagens.
Homognea
NoC malha
SA e Diviso e
Conquista
Volume de
comunicao
Homognea
NoC malha
ou torus
Tabu Search
Largura de banda de
comunicao necessria
Largura de banda,
atraso de comunicao,
rea e energia
Homognea
NoC malha
Fora bruta,SA
tabu search e
mtodos gulosos
Dependncias e volume de
comunicao; computaes e
temporizao das mensagens.
Comunicaes
(Energia) e
Tempo de execuo
Mapeamento de ncleos
em uma NoC.
Homognea
Barramento
ou NoC
SA para otimizaes
globais e migrao de
grupo para locais
Dependncias,
computao; e volume
de comunicao
Tempo de execuo
Homognea
NoC malha
Cutting tree
Largura de banda e
latncia necessrias
Largura de banda e
latncia resultante
Mapeamento de ncleos na
NoC. Mapeamento integrado
de tarefas e de comunicaes
Barramento
(AMBA)
Programao
linear inteira
Grafo de tarefas no
estilo pipeline
Trfego no
barramento
Processadores executam o SO
RTEMS. Problemas de mapeamento e escalonamento so
tratados juntos.
NoC malha
Spiral
Grafo de tarefas
(largura de banda)
Proximidade e
ocupao dos canais
Proposta da ferramenta
SMAP baseada no Matlab
Homognea
Homognea
(2003 - 2005)
Manolache et al.
(2005)
Lin et al.
(2005)
Murali e
De Micheli
(2004 - 2006)
Marcon et al.
NoC malha
(roteamento xy)
NoC malha
(2005 - 2008)
Orsila et al.
(2005 - 2007)
Srinivasan e
Chatha
(2005)
Ruggiero et al.
Homognea
(2006)
(processadores
ARM7)
Saeidi et al.
Mehran et al.
Homognea
(2007)
Comunicaes
(Latncia e tempo de execuo)
O algoritmo proposto
baseado em um
perfil de operao.
Smit e outros [SMI05] apresentam um mtodo iterativo hierrquico para o mapeamento de aplicaes em SoCs heterogneos, baseados em NoC. Uma aplicao representada por um conjunto de tarefas e suas respectivas comunicaes. No mtodo proposto,
primeiramente cada tarefa atribuda a um tipo de recurso do sistema (e. g. FPGA, DSP,
ARM), de acordo com suas restries de desempenho. Em seguida, cada tarefa atribuda
a um recurso especfico. Todas as tarefas so rearranjadas visando diminuir a distncia
entre tarefas comunicantes. Ao final, o mapeamento resultante verificado, e caso no atenda as necessidades da aplicao, uma nova iterao necessria. Os experimentos ba-
50
seiam-se no mapeamento de uma aplicao com 13 tarefas sobre um SoC 4x4. Alm do
proposto, outros dois mtodos de mapeamento so avaliados de acordo com a ocupao
da NoC, e tempo de execuo da aplicao. O primeiro deles o mtodo exaustivo, executado por 10 horas at encontrar a melhor soluo. O segundo o algoritmo minWeight apresentado em [SMI04a] [SMI04b]. O mtodo iterativo encontrou sua melhor soluo (idntica do exaustivo) em apenas trs iteraes, ao passo que minWeight apresentou uma
soluo 5% pior comparada ao mtodo exaustivo. Segundo os Autores, minWeight possui
baixas escalabilidade e flexibilidade para a incluso de restries.
Ngouanga e outros [NGO06] pesquisam o mapeamento de tarefas em um MPSoC
homogneo, composto por PEs conectadas via NoC. Trs tipos de PEs so definidos: mestre, escravos e interface de E/S. O PE mestre responsvel pelo mapeamento de tarefas.
Cada PE monotarefa e possui um kernel, modelado atravs de redes de Petri. Nenhuma
informao sobre o mapeamento existe a priori, o mapeamento realizado de acordo com
padres de localidade tal como compartilhamento de canais de comunicao. Os Autores
investigam dois algoritmos para mapeamento dinmico: SA e Fora Direcionada. O ltimo
seleciona a posio para a nova tarefa de acordo com uma fora de atrao proporcional
ao volume de comunicao e a distncia entre tarefas. Os Autores no demonstram preocupao com o atraso da heurstica de mapeamento empregada sob a justificativa de que
o tempo de processamento da tarefa deve torn-lo insignificante. O algoritmo Fora Direcionada executou em um tempo uma ordem de grandeza menor que SA, embora o caminho mdio entre duas tarefas seja equivalente em ambos os algoritmos. Nos resultados,
possvel identificar que quanto maior o sistema (nmero de PEs), melhor tende a ser os
resultados das heursticas comparados a um mapeamento aleatrio.
Wronski e outros [WRO06] avaliam dois algoritmos bin packing [GAR73] para mapeamento de tarefas em um MPSoC baseado em NoC. So eles: Best Fit (BF) e Worst Fit
(WF). Uma ferramenta descrita em SystemC simula o comportamento dinmico do MPSoC
e estima a energia consumida pelo sistema, de acordo com o mapeamento da aplicao.
Os roteadores da NoC so descritos no nvel RTL. A estimativa de consumo de energia de
cada tarefa baseada em um parmetro aleatrio, que representa o nmero de chaveamentos por ciclo de relgio. Cada tarefa ento representada pelo seu pior tempo de execuo e por seu nmero de chaveamentos. A energia consumida pela NoC relativa comunicao obtida atravs da biblioteca Orion [BEN04]. Nos experimentos realizados, foram analisados casos onde: (a) todas as aplicaes executam em um nico processador, (b)
cada processador executa uma aplicao e, (c) cada processador executa uma nica tarefa.
As aplicaes foram geradas a partir de um gerador de grafos TGFF. Os Autores concluem que estratgias de mapeamento podem resultar em tempos de execuo muito semelhantes e ainda apresentarem consumos de energia muito diferentes. Em [BRI08], as heu-
51
rsticas so combinadas com a estratgia de Clusterizao Linear (CL) proposta, que une as
tarefas com alto nvel de comunicao no mesmo PE. A combinao WF+CL apresenta reduo significativa, entre 80 e 100%, nas violaes do deadline das tarefas. Entretanto, a
avaliao de energia consumida aponta para BF como melhor soluo.
Hlzenspies e outros [HL07] investigam mtodos para estimar o desempenho do
mapeamento de aplicaes de fluxo de dados, em MPSoCs baseados em NoC. Uma aplicao modelada por um grafo de tarefas, onde os vrtices so as tarefas e as arestas representam FIFOs. A comunicao, por sua vez, representada pelo envio de tokens atravs das arestas do grafo. No trabalho proposto, os recursos do MPSoC so gerenciados
por um sistema operacional que executa em um dos processadores do MPSoC. Seu alvo
consiste em minimizar o consumo de energia. Para isso, o SO usa informaes coletadas
em tempo de projeto sobre a aplicao (i. e. latncia necessria e throughput), e sobre a arquitetura (e. g. nmero de processadores). Em tempo de execuo, o SO determina quando o mapeamento deve ser realizado, e se o mesmo deve ser validado. Esse trabalho concentra-se nos mtodos de estimativa, tendo por base um exemplo simples de aplicao,
composta apenas por 3 tarefas que se comunicam na forma de um pipeline. Em [HL08],
os Autores apresentam em maiores detalhes o processo de mapeamento (i. e. iterativo hierrquico [SMI05]). Os mesmo modelos e aplicaes so adotados. O algoritmo executado
sobre um processador ARM levou 4ms para apresentar uma soluo de mapeamento adequada. Os Autores no fornecem comparaes com outros mtodos.
Chou e Marculescu [CHO07] apresentam uma estratgia incremental para mapeamento de tarefas em MPSoCs homogneos. Os processadores do sistema so interconectados por uma NoC malha com roteamento xy. Ela possui caminhos de dados e controle
distintos. Os processadores podem executar em dois nveis de voltagem distintos. As aplicaes so representadas por grafos de tarefas, com informao do volume de dados
transmitidos e largura de banda necessria para cada comunicao. O processador gerente responsvel por encontrar uma rea contigua no MPSoC onde caiba a aplicao a ser
mapeada, e por definir a posio das tarefas dentro desta rea. Essa estratgia evita a
fragmentao do sistema. Os experimentos empregam um MPSoC 7x7, e aplicaes sintticas geradas no TGFF, compostas por 5 a 10 tarefas cada. Comparado soluo exaustiva,
o mtodo proposto apresentou penalidade de 21% no consumo de energia. Entretanto, seu
tempo de execuo em torno de 40s, ao passo que o mtodo exaustivo necessita de 26
horas para um MPSoC com 13 PEs. Comparado a um mapeamento aleatrio, o mtodo
proposto apresenta 45% de reduo no consumo de energia. Em [CHO08], os Autores estendem o trabalho para considerar tambm um modelo de comportamento do usurio no mapeamento das tarefas. O comportamento do usurio alimenta um perfil de operao da
aplicao, que contm dados sobre sua periodicidade e volume de dados comunicados en-
52
tre suas tarefas. Duas estratgias de mapeamento so investigadas. A primeira delas consiste no mtodo adotado no trabalho anterior. A outra estratgia define um formato de regio para uma dada aplicao, e realiza transformaes geomtricas de rotaes se necessrio, para em seguida mapear a aplicao no MPSoC. A proposta apresenta penalidade
de 10 e 60% na energia consumida, comparado aos mtodos exaustivo e aleatrio, respectivamente. Tempos de mapeamento medidos para grafos de aplicaes reais (telecomunicao, redes, automao e automotivas) so na rodem de 47s.
Mehran e outros [MEH08] investigam o desempenho do mapeamento de tarefas
em uma NoC malha, com dimenses 4x4. Esse trabalho apresenta uma evoluo do proposto em [MEH07]. De acordo com os Autores, as tarefas de uma dada aplicao com
comportamento dinmico podem ser necessrias em diferentes instantes. Assim, quando
uma nova tarefa necessria, ou uma tarefa termina sua execuo, um novo mapeamento
da aplicao pode ser necessrio. Para isso, os Autores propem duas alternativas que
consistem no mapeamento total ou parcial da aplicao. Ambas empregam o algoritmo
Spiral, primeiramente proposto em [SAE07]. Os experimentos realizados empregam 10 aplicaes sintticas, com nmero de tarefas entre 9 e 25, num total de 100 cenrios. Os resultados obtidos demonstram que o mapeamento parcial apresenta o melhor resultado em
82% dos experimentos, com reduo entre 5 e 28% no tempo para mapear a aplicao.
Faruque e outros [ALF08] apresentam uma soluo para mapear tarefas em MPSoCs heterogneos baseados em NoC malha. Sua principal contribuio diz respeito a um
mtodo de mapeamento distribudo baseado em agentes, em contraproposta ao mtodo que
emprega um nico processador como gerente centralizado. O MPSoC dividido em clusters virtuais. Cada um deles possui um agente local responsvel por mapear tarefas em seu
interior. Agentes globais decidem em qual cluster as tarefas sero mapeadas. Assim, o processo de mapeamento reside na negociao entre agentes locais e globais. Alm disso, o
monitoramento dos recursos distribudo entre os agentes locais. A modelagem das aplicaes se d atravs de um grafo de tarefas, o qual informa as dependncias e as comunicaes (largura de banda necessria) entre tarefas. Cada aplicao mapeada por completo pelo agente local, segundo o algoritmo esttico apresentado em [HAN05]. Os experimentos realizados comparam a estratgia proposta a alguns dos algoritmos aqui propostos (NN, MACL e PL discutidos no Captulo 4), previamente publicados em [CAR07]. A
partir de MPSoCs com dimenses 12x12, o mtodo distribudo apresenta melhores resultados, em contraproposta ao centralizado. Para um MPSoC 32x64 o esforo de mapeamento 7 vezes menor, e o volume de dados monitorados transmitidos atravs da NoC 10
vezes menor. Esses resultados so facilmente justificados, pois a proposta permite paralelismo no mapeamento de aplicaes caso sejam requisitadas simultaneamente. Entretanto
dentro de uma mesma aplicao as tarefas ainda so mapeadas uma por vez.
53
Kim et al.
(2003, 2005, 2007)
Smit et al.
(2005)
Ngouanga et al.
(2006)
Wronski et al.
Brio et al.
Modelo de
arquitetura
Infra-estrutura
de comunicao
Algoritmo
Modelo de
Aplicao
Mtrica
Observaes
Heterognea
Guloso,
look-up table, etc
Deadlines e energia
consumida
Heterognea
NoC
Iterativo
Hierarquico
Ocupao da NoC e
Tempo de Execuo
Homognea
NoC
(similar Hermes)
SA e
fora direcionada
Tempo de
Comunicao
Atraso de mapeamento
considerado insignificante.
Replicao de tarefas.
Homognea
NoC
(Xpipes)
BF, WF,
CL+BF e CL+WF
Energia consumida
e deadlines
Simulador em SystemC
com roteador em nvel RTL.
Homognea
NoC
Iterativo
Hierrquico
Energia consumida
Estimativa de desempenho do
mapeamento. Estudos de casos
com poucas tarefas.
Homognea
(s voltagens)
NoC
Seleo de rea
+ Mapeamento
Energia consumida
e Fragmentao
do sistema
Homognea
NoC
Spiral
Tempo de
mapeamento
Heterognea
NoC
Agentes
distribudos
Tempo de
mapeamento
Heterognea
NoC
(Hermes)
Ocupao da NoC
Tarefas e Controlador em
SystemC e NoC em VHDL.
(2006, 2008)
Hlzenspies et al.
(2007)
Chou e Marculescu
(2007, 2008)
Mehran et al.
(2008)
Faruque et al.
(2008)
Proposta
54
computao paralela. O estudo de MPSoCs traz a migrao novamente pauta. Ela pode
ser empregada para obter distribuio de carga dinmica e assegurar tolerncia a falhas.
Alm disso, quando um gargalo de desempenho encontrado, a migrao pode maximizar a economia de energia, gerenciar a temperatura do CI, dentre outros. Uma migrao
exige a interrupo da execuo da tarefa no PE fonte, e o salvamento de contexto para que o
mesmo seja retomado quando a tarefa reiniciar no PE destino. O processo que garante que
uma dada tarefa possa continuar sua execuo no destino denomina-se relocao. No caso
onde os PEs fonte e destino so arquiteturas diferentes, o relocador seleciona o cdigo objeto da tarefa compilado/sintetizado para o PE destino, e ainda se encarregar de carregar o
contexto salvo neste PE. Outra estratgia empregada em tempo de execuo a replicao
de tarefas, que visa evitar gargalos na computao/comunicao. Diferentemente da migrao, na replicao, a tarefa continua executando no PE fonte.
Kalte e Porrmann [KAL05a] propem dois mtodos para salvamento de contexto
para sistemas reconfigurveis, denominados shutdown process e readback. O trabalho de
Kalte fundamentado no processo de relocao de tarefas. Em [KAL05b] e [KAL06a], apresenta-se dois mdulos para relocao de mdulos de hardware em FPGAs comerciais.
Nollet e outros [NOL05a] [NOL05b] apresentam um mtodo para migrar tarefas
entre os domnios hardware e software. A deciso do instante da migrao tomada em
funo do desempenho da aplicao. O mtodo proposto emprega pontos de migrao para
definir quando uma dada tarefa pode ser migrada. A plataforma GECKO [MAR04], composta por um PDA e um FPGA, foi desenvolvida para validar a estratgia proposta.
Bertozzi e outros [BER06] empregam checkpoints para definir quando uma dada tarefa deve ser migrada. Um middleware implementado no Clinux permite migraes em
pontos especficos, representados por checkpoints, inseridos manualmente no cdigo da tarefa pelo programador do sistema. Para avaliar o desempenho do sistema e os custos da
migrao, diversos testes foram feitos, e sua viabilidade foi comprovada.
Streichert e outros [STE06] propem um algoritmo que visa otimizar o mapeamento tarefas. Quando um nodo da rede falha, as tarefas que estavam neste nodo so remapeadas, rplicas se tornam tarefas principais, e novas rotas para comunicao so estabelecidas. Esse passo denominado reparao rpida. Em seguida, no passo de otimizao,
um novo mapeamento encontrado a fim de minimizar o trfego de dados na rede.
Gtz e outros [GT07] tambm investigam migrao entre domnios de software e
hardware. Segundo os Autores, a principal dificuldade a diferena entre paradigmas seqencial versus espacial. A computao de uma tarefa representada como um grafo de
55
56
ser necessrias neste contexto, tal como migrao controlada pelo usurio ou pela aplicao. Na reviso realizada, os Autores na sua maioria optam por mecanismos menos
transparentes [BER06] [NOL05a].
Os esforos para avaliar a validade do emprego da estratgia de migrao encontram-se em estgio inicial. Alguns trabalhos estendem o conceito de migrao para duplicao de tarefas, que pode visar tolerncia a falhas [STE06], ou garantir o desempenho das
aplicaes [SAS07]. Alguns trabalhos investigam mtodos para reduzir a energia consumida durante uma migrao [BAR07], enquanto outros visam comprovar a viabilidade do
emprego de migrao em aplicaes de tempo real [BRI07].
A Tabela 2.4 apresenta um quadro comparativo com um resumo das caractersticas dos trabalhos sobre migrao de tarefas, aqui revisados.
TABELA 2.4. COMPARATIVO DOS TRABALHOS INVESTIGADOS SOBRE MIGRAO DE TAREFAS.
Modelo de
arquitetura
Salvamento de
contexto
Instante de
migrao
Mtrica
Observaes
HW controlador
Barramento
rea reconfigurvel
(Homognea)
Shutdown process
ou readback
Fragmentao do
dispositivo
Trabalho baseado
na relocao de tarefas
usando o mdulo REPLICA.
8 processadores
Barramento
(Homognea)
Pontos de
Migrao
Largura de banda
ocupada e Tempo
de execuo
Migrao entre HW e SW
de acordo com requisitos
de desempenho.
Processadores ARMv7
conectados via barramento
(Homognea)
Checkpoints inseridos
manualmente
no cdigo
Balanceamento
de carga
Suporte implementado na
forma de um middleware para
uClinux que permite migraes
Rede de sensores,
atuadores e controladores
(processador + FPGA)
Defeitos
Trfego
de dados
Processador PPC
Barramento
HW auxiliar (FPGA)
Servios do SO:
get context,
set context,
Ponto de migrao
Processadores Plasma
NoC
(Homognea)
Replicao realizada
em um gargalo de
desempenho
Tempo de
execuo
(2006, 2007)
Matriz 2D
(Homognea)
Fragmentao do
dispositivo
Barcelos et al.
Brio et al.
Energia consumida
na migrao do cdigo
Autores
Kalte et al.
(2005, 2006)
Nollet et al.
(2005)
Bertozzi et al.
(2006)
Streichert et al.
(2006)
Gtz et al.
(2007)
Sassatelli et al.
(2006, 2007)
Farag et al.
(2006, 2007)
57
58
O desenvolvimento de um MPSoC apresenta muitos graus de liberdade ao projetista. Dentre eles encontram-se: (i) o nmero e a natureza dos elementos de processamento; (ii) a infra-estrutura de comunicao; (iii) a organizao de memria; e (iv) os mecanismos de controle da operao do sistema.
Com relao natureza dos PEs, MPSoCs homogneos so mais adequados para o
uso de tcnicas de migrao e replicao de tarefas, ao passo que os heterogneos tendem
a suportar uma maior variedade de aplicaes. Alm disso, o uso de IPs especficos pode
prover maior desempenho a MPSoCs heterogneos. Enquanto a natureza dos PEs funo do domnio de aplicao alvo, o nmero de PEs a serem empregados no sistema deve
considerar tambm a quantidade de lgica disponibilizada pela tecnologia atual.
No que diz respeito infra-estrutura de comunicao, NoCs dominam devido a sua
maior escalabilidade comparado a barramentos e conexes ponto-a-ponto dedicadas. Barramentos em geral suportam a comunicao em sistemas com at poucas dezenas de mdulos, enquanto as NoCs podem suportar centenas. Alm disso, o paralelismo na comunicao outro fator atrativo de NoCs. Um barramento suporta apenas uma comunicao
por vez. O emprego de uma hierarquia de barramentos permite paralelismo na comunicao quando elas ocorrem em graus diferentes da hierarquia. Entretanto, as comunicaes
entre os mdulos de graus diferentes ainda limitam o paralelismo na comunicao.
Com relao organizao de memria empregada, segundo [BAR07], uma organizao hibrida de memrias distribudas e centralizadas representa a melhor alternativa
para reduzir o tempo de migrao de tarefas. Em geral, estratgias centralizadas de memria conduzem a gargalos de comunicao, enquanto as distribudas sugerem maior
complexidade de gerenciamento.
Os mecanismos usados para controle da operao do sistema so tambm importantes. Esses podem ser baseados no reuso de um SO conhecido (e. g. Linux); na personalizao do SO para o sistema alvo; ou at mesmo no desenvolvimento de um SO novo. Este
59
60
SoC varia, e os recursos disponveis podem ser insuficientes para suportar a execuo de
todas as tarefas necessrias. Com a finalidade de controlar a operao do sistema, um dos
processadores do MPSoC reservado, denominado processador gerente (MP Manager Processor). Dentre as tarefas de controle atribudas ao MP, encontram-se:
ed
R
de
e
fa
c
IP
R
RL
RL
...
ISP
ISP
...
R
RL
ISP
...
ISP
IP
In
te
r
Escalonamento
de Tarefas
R
ISP
IP
MP
...
...
...
Controle
de Recursos
R
RL
...
ISP
ISP
...
Roteador
R
IP
...
Ligao
de Tarefas
Controle de
Configurao
Mapeamento de Tarefas
Migrao
de Tarefas
Processador
Gerente (MP)
ISP
IP
R
RL
MP
Processador
Ncleo de Hardware
Roteador da NoC
Lgica Reconfigurvel
Processador Gerente
61
62
[HU05] e Lin e outros [LIN05] empregam grafos, onde vrtices representam tarefas, e pesos atribudos s arestas representam o volume de dados transmitidos entre as tarefas conectadas. Marcon e outros [MAR05a] usam dois grafos, o primeiro com informao sobre
a dependncia e o volume de comunicao entre as tarefas, e o segundo que contm a ordenao dos pacotes. Em [MAR05b], os Autores apresentam um modelo mais detalhado
que tambm considera os tempos de computao das tarefas. Alm do volume de dados,
Rhee e outros [RHE04] consideram a largura de banda necessria para as comunicaes,
enquanto Srinivasan e Chatha [SRI05] consideram tanto a largura de banda quanto a latncia necessrias para a transmisso dos pacotes atravs da NoC.
No presente trabalho, uma dada aplicao representada por um grafo dirigido, como esboado na Figura 3.2. Neste grafo, vrtices representam tarefas, e arestas indicam as
comunicaes realizadas entre as tarefas das aplicaes. Os vrtices representados por crculos com linha dupla referem-se s tarefas iniciais das aplicaes. Cada aplicao possui apenas uma dada tarefa inicial, a qual iniciada to logo a aplicao seja disparada pelo
usurio. Os demais vrtices indicam tarefas de software e de hardware, representadas pelos
crculos claros e escuros, respectivamente. As arestas entre as tarefas possuem pesos referentes ao volume e taxas de comunicao entre as tarefas, em ambos os sentidos. Cada aresta define assim, um par de tarefas mestre-escravo, onde a tarefa denominada mestre necessita
requisitar o mapeamento da sua escrava, antes da comunicao propriamente dita ser realizada. Tal protocolo discutido em detalhes na Seo 3.5. Conforme a Figura 3.2, cada aresta de um dado grafo de tarefas possui quatro pesos atribudos {Vms, Rms, Vsm, Rsm}, os
quais definem o volume V e a taxa R de transmisso de dados entre as tarefas no sentido
mestre-escrava ms e escrava-mestre sm.
par Mestre-Escrava
Tarefa Inicial
{334, 35, 600, 10}
Tarefa Mestre
{Vms, Rms, Vsm, Rsm}
Tarefa de Software
Tarefa Escrava
{50, 25, 12, 15}
Tarefa de Hardware
63
tempo de projeto, responsvel por dividir uma dada aplicao, em um conjunto de tarefas. Em geral, cada conjunto definido de maneira a otimizar o uso dos recursos da plataforma alvo. Logo, possvel tambm admitir que cada PE pode executar um conjunto de
tarefas, segundo um modelo multitarefa.
O presente trabalho est focado no domnio de aplicaes de fluxo de dados, tais
como processamento para transmisso sem fio de sinais de udio e vdeo, e processamento multimdia. Aplicaes neste domnio so caracterizadas por um processamento local
simples, porm realizado sobre uma grande quantidade de dados. Alm disso, faz-se necessria a garantia de desempenho na transmisso dos dados, tanto quanto no processamento dos mesmos. Nesse caso, o emprego de tcnicas de controle de desempenho do
sistema para garantia dos servios obrigatrio, sobretudo aquelas que visam evitar congestionamentos na NoC.
64
NORTE
OESTE
LESTE
Buffer
Porta de
Entrada
RX
ackRX
DATAin
Porta de
Sada
TX
ackTX
DATAout
TX
ackTX
DATAout
Porta de
Sada
RX
ackRX
DATAin
Porta de
Entrada
LO
Lgica de
Controle
SUL
FIGURA 3.3. NOC HERMES [MOR04]: (A) ROTEADOR E (B) CONTROLE DE FLUXO HANDSHAKE.
Mid
3 NOTIFY {Sid,Sadd}
Tarefa
Mestre
Processador
Gerente (MP)
MP
TASK
TASK
Pacotes GENERAL
TASK
TASK
MP
5 RELEASE {Sid}
GE 4
NE
R
2
NOTIFY {Mid,Madd}
AL
Sid
Tarefa
Escrava
65
66
A Figura 3.5 apresenta um diagrama de interao entre as tarefas de uma dada aplicao alvo, de acordo com os passos anteriores. Considerando as comunicaes entre as
tarefas t0, t2 e t3 do grafo alvo em destaque na figura, cada um dos 7 passos indicado
tendo t2 como tarefa de referncia. No passo 1, t2 aguarda at receber o pacote NOTIFY a
partir de MP com o endereo da sua mestre t0. No passo 2, t2 recebe os pacotes GENERAL
enviados por t0. Em seguida, t2 requisita sua escrava t3 ao MP, no passo 3. Aps o mapeamento de t3, MP envia t2 o endereo da escrava mapeada atravs de um pacote NOTIFY,
recebido por t2 no passo 4. Aps o trmino da comunicao com t3, t2 envia o pacote RELEASE
Tarefa t0
Tarefa t1
Tarefa t2
Tarefa t3
(tarefa inicial)
(escrava de t0)
(escrava de t0)
(escrava de t2)
REQUEST (t1)
REQUEST (t2)
NOTIFY (t0)
NOTIFY (t2)
Passo 1: Inicilizao
GENERAL
NOTIFY (t2)
NOTIFY (t3)
GENERAL
GENERAL
RELEASE (t3)
RELEASE (t2)
Grafo Alvo
NOTIFY (t0)
NOTIFY (t1)
t0
GENERAL
t1
t2
GENERAL
t3
RELEASE (t1)
67
68
PE 0,1
PE 1,1 PE n 1,1
PE 1,0 PE n 1,0
PE 0,0
SC 0,m 2
SC 0,0
SC1,m 2
NC 0,m 2
NC 0,0
NC1,m 2 NC n 1,m 2
NC1,0 NC n 1,0
SC1,0
SC n 1,m 2
SC n 1,0
WC 0,m 1 WC n 2,m 1
WC 0,1 WC n 2,1
WC 0,0 WC n 2,0
EC 0,m 1 EC n 2,m 1
EC 0,1 EC n 2,1
EC 0,0 EC n 2,0
Um dado elemento de processamento representado por PEij, onde i e j referemse a coluna e linha em que o elemento encontra-se na matriz PE, respectivamente, conforme a distribuio apresentada na Figura 3.6. A informao armazenada em PEij contm
seu tipo (i. e. inicial, hardware ou software) e seu estado (i. e. livre ou ocupado).
...
EC0,m-1
WCn-2,m-1
WC0,m-1
SCn-1,m-2
NCn-1,m-2
...
...
EC0,1
...
ECn-2,1
WCn-2,1
WC0,1
PE0,1
PEn-1,1
...
ECn-2,0
WCn-2,0
WC0,0
PE0,0
SCn-1,0
SC1,0
NC1,0
EC0,0
NCn-1,0
PE1,1
SC0,0
NC0,0
PEn-1,m-1
SC1,m-2
NC1,m-2
SC0,m-2
PE1,m-1
...
NC0,m-2
PE0,m-1
ECn-2,m-1
PE1,0
PEn-1,0
FIGURA 3.6. DISTRIBUIO ESPACIAL DOS RECURSOS DE UM MPSOC COM N COLUNAS E M LINHAS.
Os enlaces da NoC so compostos por um par de canais unidirecionais, com sentidos opostos. Os canais da NoC so representados por quatro matrizes: canais para leste
(East Channels - ECij); canais para oeste (West Channels - WCij); canais para norte (North
Channels - NCij); e canais para sul (South Channels - SCij), onde i e j possuem o mesmo significado usado na representao da matriz PE. Cada elemento das matrizes de canais informa o percentual de ocupao da largura de banda disponvel.
69
e outros [MAR05c] empregam fios de controle (separados da NoC) para enviar informaes sobre congestionamentos ao PE fonte do trfego, permitindo que este ajuste sua taxa
de injeo de pacotes. Enquanto isso, [VAN07a] e [CIO04] empregam a mesma rede para
transmisso de pacotes de dados e controle. Em [VAN07a], os Autores usam uma ferramenta denominada Model Predictive Controller, a qual obtm informao sobre o estado de
congestionamento da rede atravs de monitores distribudos sobre a NoC. Ciordas e outros [CIO04] propem um servio de monitoramento genrico, com monitores anexos aos
roteadores da NoC ou s interfaces de rede.
O processador gerente MP realiza o mapeamento das tarefas de acordo com a ocupao dos PEs e dos canais da NoC. Cada matriz de recurso necessita ento ser atualizada em tempo de execuo para prover ao MP uma informao precisa sobre a ocupao
dos recursos. A estimativa da carga dos canais e de congestionamentos pode basear-se em
dois diferentes mtodos (Figura 3.7). O primeiro deles, empregado em [CAR07], monitora
os pacotes de REQUEST e RELEASE recebidos pelo MP. Esta abordagem requer o uso de um
nico monitor, anexo porta local do roteador conectado ao MP. Dessa forma, cada canal
tem sua ocupao atualizada a partir das taxas informadas em pacotes REQUEST. De acordo com o algoritmo de roteamento (nesse caso o xy), a ocupao dos canais devidamente
incrementada com as taxas informadas. O processo inverso realizado quando o monitor
captura um pacote RELEASE. Essa estratgia reflete um esquema de monitoramento centralizado (lado esquerdo da Figura 3.7), onde o desempenho do mapeamento est diretamente
relacionado s taxas estimadas, enviadas ao MP.
Monitoramento Distribudo
R
PE
R
PE
PE
...
PE
R
PE
PE
...
PE
PE
R
PE
R
PE
PE
...
PE
PE
PE
MP
R
PE
R
PE
...
...
...
R
PE
PE
MP
...
PE
PE
...
PE
...
...
PE
PE
...
Monitor
R
PE
...
PE
PE
PE
...
PE
...
...
...
...
Monitoramento Centralizado
...
PE
R
PE
FIGURA 3.7. ESQUEMAS CENTRALIZADO E DISTRIBUDO PARA MONITORAMENTO DA OCUPAO DOS CANAIS DA NOC.
Conforme esboado na parte direita da Figura 3.7, a segunda abordagem de monitoramento investigada insere um monitor em cada uma das portas dos roteadores da
NoC. Este monitoramento distribudo permite medir o trfego real em cada canal da NoC.
Assim como em [VAN07a] e [CIO04], aqui tambm a informao capturada pelos monitores enviada atravs da mesma rede de comunicao de dados. Diferentemente da abor-
70
71
Os experimentos validam a tcnica de mapeamento baseada na ocupao de canais, bem como a estratgia de clusterizao. A dificuldade nessa modelagem refere-se s
medies de tempo (i. e. de mapeamento, de execuo das tarefas), impossibilitadas j que
o programador no tem acesso a informaes de troca de contexto (controlado pelo SO)
entre as threads executadas. Adicionalmente, as instrues disponveis para medies de
tempo possuem preciso na ordem de msegundos apenas, e. g. ferramentas tipo GProf
[FEN08] que permitem obter um relatrio detalhado da execuo das funes do programa aps sua execuo. Assim, as medies so imprecisas nessa modelagem.
72
NoC
Aplicao
Elementos de
Processamento
Algoritmo de
Mapeamento
Mtricas
Tempo de
Simulao
Comportamental
POSIX Thread
Grafo de tarefas
Taxa de Comunicao
Tarefa = Thread
MPSoC Heterogneo
Matriz de Ocupao
Associado a um buffer
FF, PL
MPSoC 8x8
100 Apps
Nvel TLM
SC_Thread
Grafo de tarefas
Taxa de Comunicao
Tarefa = Thread
MPSoC Heterogneo
Matriz de Ocupao
Associado a um buffer
FF, NN,
MACL, MMCL,
PL
mseg
MPSoC 8x8
100 Apps
Nvel RTL
SC_Cthreads
VHDL
Hermes malha
(Roteador + enlace)
Matriz de ocupao dos canais
Descrio VHDL
Grafo de tarefas
Volume de Comunicao
Taxa de Comunicao
Tarefa = Arquivo
MPSoC Heterogneo
Matriz de Ocupao
Associado a um Roteador
PE = Thread
Comportamento da tarefa
FF, NN,
MACL, MMCL,
PL, BN
45 min - 1 h
MPSoC 8x8
20 Apps
73
74
Como mencionado anteriormente, o mapeamento a operao que define o posicionamento das tarefas nos recursos do sistema. A posio de uma dada tarefa pode interferir diretamente no desempenho do sistema, afetando, por exemplo, parmetros como
energia consumida, congestionamento da interface interna de comunicao e tempo total
de execuo das aplicaes. No domnio de aplicaes que apresentam uma carga dinmica de tarefas, o uso de estratgias estticas de mapeamento no adequado. Nesse caso,
estratgias dinmicas de mapeamento necessitam ser empregadas a partir do constante
monitoramento dos recursos do sistema para otimizar o uso dos mesmos e ainda garantir
um bom desempenho.
Em geral, no mapeamento esttico de tarefas o tempo para definir o mapeamento
no to importante quando comparado a um cenrio onde as tarefas necessitam ser mapeadas em tempo de execuo. Em cenrios dinmicos, o tempo de mapeamento ganha
importncia, visto que exerce influncia direta sobre o desempenho do sistema. Nesse caso, o emprego de uma soluo fora bruta para o problema de mapeamento tambm no
indicado, pois tal problema conhecido como um problema de atribuio NP-completo.
De fato, at mesmo em tempo de projeto a soluo fora bruta pode ser proibitiva, visto
que o aumento nas dimenses do MPSoC leva a um crescimento exponencial no tempo
para computar a soluo. Assim, surge a necessidade do estudo de heursticas para o mapeamento de tarefas, que podem apresentar boas solues de mapeamento, muitas vezes
prximas da melhor soluo, e que consomem um tempo reduzido para sua execuo
mesmo para instncias maiores do problema.
Conforme a reviso apresentada no Captulo 2, a maioria das pesquisas em mapeamento de tarefas investiga estratgias estticas de mapeamento [LEI03a] [HU05] [SRI05]
[LIN05] [RUG06] [MUR06b] [MAR07]. Entretanto, o mapeamento dinmico comea a ser
pesquisado [WRO06] [NGO06] [CHO07] [MEH08] [ALF08]. Em sua maioria, os Autores
desconsideram o atraso de mapeamento, e investigam o mapeamento dinmico de tarefas
baseado nas mesmas estratgias antes adotadas em tempo de projeto, diferentemente do
trabalho aqui proposto, que aplica algoritmos gulosos para o mapeamento de tarefas.
75
Tarefa: Uma tarefa T uma tripla T = (Tid, Tex, Tti), onde Tid
Conforme esta definio, os tipos de tarefa esto relacionados arquitetura dos elementos de processamento para a qual ela foi compilada. No caso de um MPSoC homogneo, por exemplo, todas as tarefas so do mesmo tipo porque s existe um tipo de ele-
76
mento de processamento no qual elas podem executar. No presente trabalho, como o MPSoC heterogneo, uma dada tarefa pode ter um entre trs tipos, de acordo com a natureza da sua implementao. So eles: software, hardware e inicial. As tarefas de software so aquelas que devem executar nos processadores do MPSoC, ao passo que tarefas de hardware
so configuradas na lgica configurvel embarcada. Uma tarefa inicial um caso especial
de uma tarefa de software. Como o prprio nome indica, uma tarefa inicial a primeira a
ser executada, quando uma dada aplicao disparada pelo usurio. No caso de um MPSoC com outros tipos de elementos de processamento, o conjunto de tipos possvel deve
ser alterado, portanto.
Definio 2.
m e s uma quadrupla Cms = (Vms, Rms, Vsm, Rsm), onde Vms volu-
dirigido APG = (ST, SC) onde ST conjunto de vrtices que representa o conjunto de tarefas que compem a aplicao; e SC o conjunto de arestas que descreve as comunicaes entre tarefas. As arestas so definidas atravs de um
par ordenado (s, m), onde s a tarefa fonte e m a tarefa destino da comunicao.
A topologia do grafo define a interdependncia entre as tarefas da aplicao. Cada
par de tarefas conectadas denominado par de tarefas comunicantes, onde o sentido da aresta de conexo determina a ordem parcial de alocao das tarefas no sistema. A aresta
dirigida indica que sua tarefa fonte necessita requisitar o mapeamento da tarefa destino,
antes de iniciar a comunicao propriamente dita. Assim, a tarefa fonte recebe a denominao de mestre, ao passo que a tarefa destino dita escrava na comunicao, formando
um par de tarefas mestre-escravo. No presente trabalho, toda e qualquer aplicao pode
conter apenas uma nica tarefa inicial. Este pressuposto adotado em concordncia com a
estratgia de clusterizao, explicada em maiores detalhes a seguir, na Seo 4.2.
Definio 4.
envio de pacotes; PEti {software, hardware, inicial} seu tipo; PEuse {ocu-
77
pado, livre} o estado de ocupao do elemento de processamento; e ST conjunto das tarefas nele mapeadas.
Assim como no caso das tarefas, PEs podem ser classificados em um de trs tipos:
software, hardware ou inicial. No caso em que processadores do sistema so multitarefa, a
ocupao dos recursos deve ser representada por um percentual de uso de memria, ou
de capacidade de processamento, por exemplo. Assume-se no presente trabalho que os
PEs podem conter apenas uma tarefa. Ento, o valor de ocupao indica um entre dois estados possveis: ocupado ou livre. Alm disso, o conjunto de tarefas ST mapeadas no PE ser composto por uma ou nenhuma tarefa.
Definio 5.
junto de sinais/fios que transmitem dados e controles entre dois elementos de processamento. Ele uma dupla C = (Cw, Cuse), onde Cw a largura em bits
do canal, incluindo dados e controles; e Cuse o percentual de uso da largura
tripla L = (Lpe1, Lpe2, Lsc), onde Lpe1 e Lpe2 so os elementos de processamento conectados pelo enlace, e Lsc o conjunto de canais Lsc = {C1, C2, ... ,
Cn} que interconectam Lpe1 e Lpe2, em qualquer sentido possvel.
No presente trabalho, assume-se que cada enlace de comunicao possui apenas um
par de canais de comunicao que permitem a transmisso bidirecional simultnea (do ingls, fullduplex) de dados entre os PEs conectados.
Definio 7.
= <PE, L> onde PE o conjunto de vrtices representando o conjunto dos elementos de processamento do MPSoC, e L o conjunto de arestas que representa os enlaces que interconectam os PEs.
PEs de um dado MPSoC recebem tarefas que so mapeadas para execuo. Alm
de elementos de processamento programveis/configurveis que recebem tarefas, PEs
podem ser IPs fixos que executam operaes especficas, e. g. controle de E/S e armazenamento de dados (i. e. memrias embarcadas). Contudo, quando uma dada tarefa necessita
se comunicar com um desses IPs fixos, a comunicao segue o mesmo protocolo definido
no Captulo anterior. A diferena nesse caso consiste no fato de que a operao de mapeamento no ser realizada para IPs fixos.
78
No presente trabalho, MPSoCs so representados por GMPSoCs de topologia malha, onde cada PE composto no s pelo elemento de processamento em si, mas tambm
pela lgica que o interconecta aos enlaces de comunicao. Enlaces so dispostos nas direes horizontal e vertical de acordo com os eixos x e y em um sistema de coordenadas cartesianas. Um roteador representado pelo seu algoritmo de roteamento. Aqui o algoritmo
de roteamento xy adotado, onde os pacotes so transmitidos entre fonte e destino, primeiro com deslocamentos na direo horizontal x, seguidos de deslocamentos na direo vertical y.
plica, e seja PE = {pe1, pe2, ..., pem} o conjunto de todos os elementos de processamento do GMPSoC = <PE, L>. Um Mapeamento uma funo injetora f: T
PE, que associa tarefas do domnio T elementos de processamento do contra-
domnio PE. Nesse caso, denota-se por f(tx) o elemento de processamento pey que
a funo f associa ao elemento tx:
f: t x T pey = f(t x )
Nesse trabalho, assume-se que as tarefas so mapeadas individualmente. As entradas da funo de mapeamento tratada incluem a tarefa a ser mapeada, e a arquitetura alvo.
A tarefa descrita pelo seu tipo, suas taxas e volumes de comunicao, e ainda pela posio da sua tarefa mestre. A arquitetura descrita de acordo com a Definio 7, ou seja, pela sua topologia, tipos e posio de cada PE, e ainda pela ocupao dos canais de comunicao. A sada da funo de mapeamento constitui-se de uma dada posio, ou seja, um
dado PE, no qual a tarefa deve executar.
O problema de mapeamento consiste em encontrar um mapeamento para a tarefa
que ao mesmo tempo respeite as restries e atenda aos requisitos do sistema. Restries
so informaes que delimitam o sistema. Exemplos comuns compreendem a largura mxima de transmisso de dados, e o consumo mximo de energia. Requisitos so informaes desejadas para os sistemas. Exemplos so baixo consumo de energia ou rea reduzida. O requisito principal adotado aqui consiste em minimizar os congestionamentos nos
enlaces do MPSoC. Com a reduo dos congestionamentos, espera-se indiretamente minimizar o tempo de execuo das tarefas, e ainda otimizar seu consumo de energia.
79
80
o sero diludos pela operao de clculo da mdia. No caso onde a mdia de ocupao
alta, ento pode-se deduzir que existe um ou mais congestionamentos no sistema. A
funo mdia visa, sobretudo, uma distribuio uniforme na ocupao dos canais.
caminho um conjunto de canais PS = {C1, C2, ... , Cn} que possuem a mesma
direo e o mesmo sentido, utilizados na comunicao entre duas tarefas fonte
e destino, conforme o algoritmo de roteamento. Existem segmentos de caminho para cada direo: Leste (PSEC), Oeste (PSWC), Norte (PSNC) e Sul (PSSC).
Definio 10. Caminho de Comunicao: Um dado caminho de comunicao
um conjunto de quatro segmentos de caminhos CP = {PSEC, PSWC, PSNC,
PSSC}, um em cada direo, Leste, Oeste, Norte e Sul.
Nesse trabalho, todas as comunicaes entre as tarefas se do atravs de um dado
caminho de comunicao. Ele formado por quatro segmentos de caminho, cada um em
sua direo. Os canais pertencentes a cada segmento so determinados de acordo com a
posio das tarefas comunicantes e com o algoritmo de roteamento xy adotado. Assim,
caso as tarefas sejam alocadas na mesma coluna de recursos ento os segmentos de caminho na direo horizontal sero conjuntos vazios. O mesmo acontece para os segmentos
verticais se as tarefas estiverem alocadas na mesma linha de PEs.
Dadas duas tarefas, TA e TB, a Equao 4.1 representa o caminho de comunicao
CP(TA,TB) entre tais tarefas, onde PSEC (TA,TB) o segmento de caminho composto pelos
canais da matriz de canais para o Leste (Figura 3.6). PSWC(TA,TB), PSNC (TA,TB) e PSSC(TA,TB)
possuem significado similar. Ainda importante notar que um dado caminho de comunicao contempla ambos os sentidos de transmisso.
EQUAO 4.1.
( , ) = ( , ) ( , ) ( , ) ( , )
81
WC0,2
SC3,2
NC3,2
NC2,2
SC2,2
WC2,2
WC1,2
WC0,0
WC1,0
NC3,1
NC3,0
SC3,0
SC2,0
NC2,0
EC1,0
WC2,1
WC1,1
SC1,0
NC1,0
EC0,0
SC3,1
SC2,1
SC1,1
NC1,1
WC0,1
EC2,1
EC1,1
EC0,1
SC0,0
NC2,1
SC0,1
NC0,1
EC2,2
EC1,2
EC0,2
NC0,0
WC2,3
WC1,3
SC1,2
NC1,2
SC0,2
NC0,2
WC0,3
TB
EC2,3
EC1,3
EC0,3
EC2,0
WC2,0
TA
CP(TA,TB) = {EC0,2; EC1,2; EC2,2; WC2,0; WC1,0; WC0,0; NC0,0; NC0,1; SC3,1; NS3,0}
FIGURA 4.1. CAMINHO DE COMUNICAO CP(TA,TB) ENTRE AS TAREFAS TA E TB, CONFORME ROTEAMENTO XY.
82
Cluster 3
Cluster 2
PEs reservados
para tarefas iniciais
Cluster 0
Cluster 1
FIGURA 4.2. ESTRATGIA DE CLUSTERIZAO PARA O MAPEAMENTO DE TAREFAS INICIAIS DAS APLICAES.
A Figura 4.3 apresenta um exemplo do emprego das duas estratgias para o mapeamento de tarefas iniciais das aplicaes, e seus efeitos sobre uma dada comunicao.
As tarefas so representadas por crculos, onde AiTj refere-se a tarefa j da aplicao i. O
algoritmo de roteamento xy adotado na definio das rotas dos pacotes que compem as
comunicaes. Em (a), as tarefas iniciais de quatro aplicaes (i. e. A0T0, A1T0, A2T0 e A3T0)
foram posicionadas como vizinhas. Em virtude da ordem do mapeamento e do mapeamento inicial empregado (i. e. sem qualquer critrio), a comunicao entre as tarefas A0T0 e
A0T2 deve ocupar seis canais da NoC.
A3T2
A2T3
A3T0
A1T0
A3T0
A3T1
A2T3
A0T2
A0T1
A2T1
A0T0
A3T2
A2T0
A0T3
A2T0
A2T1
A1T1
A0T1
A3T1
A1T2
A0T3
A0T2
A1T0
A0T0
A1T2
A1T1
83
FIGURA 4.4. CAMINHO DA PROCURA POR RECURSO LIVRE REALIZADO POR FIRST FREE.
84
do seu caminho de procura privilegia a proximidade entre as tarefas comunicantes, durante o processo de mapeamento. Para isso, conforme a Figura 4.5, NN inicia sua procura
por um recurso livre, a partir do recurso onde a tarefa que solicitou (i. e. mestre) o mapeamento da escrava encontra-se alocada. A procura segue um caminho circular, onde os
vizinhos so testados de acordo com o nmero de saltos (hops) necessrios para a comunicao. Ou seja, testa-se os vizinhos com 1 hop de distncia, depois os vizinhos com 2 hops,
e assim por diante, variando o nmero de hops (NH na Figura 4.5) at os limites do MPSoC. A procura termina assim que o primeiro vizinho livre, capaz de suportar o tipo da
tarefa a ser executada, for encontrado.
R
Mestre
FIGURA 4.5. CAMINHO DA PROCURA POR RECURSO LIVRE REALIZADO POR NEAREST NEIGHBOR.
85
() = (, ) () (, ), 0 < 1; 0 <
() = max (, ) () (, ), 0 < ; 0 < 1
() = max (, ) () (, ), 0 < ; 0 < 1
A Equao 4.6 permite calcular o mximo global a partir dos mximos locais anteriormente computados, para cada mapeamento k, resultando em um custo CMMCL(k).
EQUAO 4.6.
86
() = min () , 0 <
A partir dos valores para ocupao mdia local, o custo CMACL(k) do mapeamento k
que representa sua ocupao media global pode ser obtida utilizando a Equao 4.12.
EQUAO 4.12.
() = min () , 0 <
87
Conforme a Figura 4.6, em (a) apresenta-se a ocupao dos canais da NoC no instante em que a tarefa TA requisita ao MP a tarefa TB, com taxas de transmisso ms e mr iguais a 30 e 33. MMCL deve encontrar a melhor posio dentre o dois nodos livres. Em
ambas as alternativas (b) e (c), os custos CMMCL calculados resultam em 90% porque em
nenhum dos casos a adio das taxas de comunicao entre TA e TB interferem no canal
que possui a mxima ocupao. Nesse caso a escolha pode ser aleatria, e a alternativa (c)
pode ser selecionada mesmo causando outro pico de ocupao dos canais (i. e. 89%).
20
46
TD
40
TJ
63
29
63
89
TB
59
57
26
67
56
MP
31
TA
TM
56
17
TY
livre
88
32
TA
43
29
TB
Tc
90
19
10
livre
32
67
38
67
46
63
57
26
67
32
MP
31
TJ
TJ
20
32
56
17
TY
63
29
32
90
19
32
31
43
livre
56
TM
CMMCL(c) = 90
(c)
63
29
Tc
MP
26
TD
88
67
46
32
20
32
56
17
TY
57
CMMCL(b) = 90
TM
29
43
(b)
88
32
Tc
90
19
32
TD
63
32
5
67
10
livre
TA
A heurstica MACL tambm pode ser comprometida, pois o uso da mdia como
mtrica pode no apresenta a melhor soluo para mapeamento. Isso ocorre porque a opo que utiliza poucos canais muito ocupados pode resultar em uma mdia menor quando comparada a opes que usam muitos canais pouco ocupados. Entretanto, futuramente no sistema, a escolha da ltima alternativa deve acarretar em maiores congestionamentos a medida que as comunicaes entre as tarefas comeam a compartilhar uma quantia
maior de canais.
Conforme a Figura 4.7, em (a) apresenta-se a ocupao dos canais da NoC no instante em que a tarefa TA requisita ao MP a tarefa TB. MACL deve encontrar a melhor posio dentre as duas possveis (b) e (c). A alternativa (a) deve ser escolhida porque apresenta a menor mdia CMACL, entretanto ela deve causar congestionamentos porque um dos
canais tem ocupao 131%. Enquanto isso, a alternativa (b) embora resulte em uma mdia
maior, apresenta uma distribuio mais justa quanto ocupao dos canais.
88
20
46
98
8
livre
TJ
TA
TB
63
63
29
98
livre
57
MP
26
38
TY
56
17
36
4
TM
29
TA
131
57
TB
88
32
12
19
Tc
43
63
MP
26
TY
TJ
56
17
46
TD
5
8
livre
20
32
32
63
29
32
12
19
32
43
livre
29
TM
CMACL(c) = 37
(c)
63
57
Tc
88
MP
26
TD
46
56
17
TY
20
32
TM
29
43
CMACL(b) = 35
(b)
88
32
12
19
32
Tc
63
32
TD
38
17
TJ
13
TA
Como o tempo necessrio para realizar o mapeamento pode ser proibitivo nas
heursticas que consideram todos os canais da NoC, tais como MMCL e MACL, o algoritmo Path Load (PL) proposto. Ele considera somente os canais que sero usados pela tarefa que est sendo mapeada, ou seja, aqueles que compem seu caminho de comunicao.
Contudo ainda todos os possveis mapeamentos so avaliados.
O mapeamento segundo o mtodo PL computa a soma local SumREC(k) das ocupaes dos canais para cada uma das matrizes, de acordo com as Equaes 4.14 4.17. Entretanto, tais somas consideram apenas os canais que compem o caminho de comunicao
(Definio 10) entre as tarefas mestre e escrava.
EQUAO 4.14.
EQUAO 4.15.
EQUAO 4.16.
EQUAO 4.17.
() = (, ) () (, ) , 0 < 1; 0 <
() = (, ) () (, ) , 0 < 1; 0 <
() = (, ) () (, ) , 0 < ; 0 < 1
() = (, ) () (, ) , 0 < ; 0 < 1
A partir das somas locais, o custo CPL(k) que representa a soma global calculado
atravs da Equao 4.18, para um dado mapeamento k.
EQUAO 4.18.
() = () + () + () + ()
Finalmente, o mapeamento selecionado aquele que apresenta a menor soma global, conforme a Equao 4.19.
89
EQUAO 4.19.
() = min () , 0 <
90
Adicionalmente, antes de mapear a tarefa faz-se necessrio verificar se existem recursos disponveis. Em caso positivo, o mapeamento pode seguir normalmente. Do contrrio, a tarefa necessita ser escalonada. Conforme mencionado anteriormente, a estratgia
de escalonamento implementada baseia-se em um conjunto de trs filas, uma para cada
tipo de tarefa, sem poltica de preempo. No Algoritmo 4.1, o bloco SE na linha 10 verifica a disponibilidade de recursos e escalona da tarefa se necessrio.
ALGORITMO 4.1. TESTES REALIZADOS PARA REUSO E ESCALONAMENTO DE TAREFAS.
1
2
3
4
5
6
7
8
9
10
11
12
PE = 0
//
INICIA PELO PE 0
(, ) =
O segundo parmetro diz respeito ao nmero total de canais que compem o MPSoC. Dado um MPSoC malha com dimenses x e y, o nmero total de canais pode ser obtido a partir da Equao 4.21.
91
(, ) = 4 2 2
EQUAO 4.21.
EQUAO 4.22.
EQUAO 4.23.
O mtodo mais simples implementado para o mapeamento de tarefas apresentado no Algoritmo 4.2. Para realizar o mapeamento de acordo com o mtodo First Free, necessrio percorrer os elementos de processamento, e to logo um recurso livre e compatvel (i. e. do mesmo tipo da tarefa) seja encontrado, ele deve ser retornado. Considerando o
Algoritmo 4.2, pode-se observar que o lao ENQUANTO da linha 4 , no pior caso, executado para todos os PEs do MPSoC. Generalizando para um MPSoC com dimenses idnticas (i. e. x = y), ento x2 iteraes sero realizadas conforme representado abaixo. Tal fato
confere complexidade quadrtica O(x2) ao algoritmo FF.
(, , ) = (, )
=
= 2 =
( 2 )
92
PE=0 //
INICIA PELO PE 0
// SELECIONA PRIMEIRO RECURSO LIVRE COM TIPO COMPATVEL AO DA TAREFA A SER MAPEADA
SE (PE.estado == LIVRE) E (PE.tipo == tarefa.tipo) ENTO Retorna(PE)
PE =PE+1 //
FIM ENQUANTO
PROXIMO PE
( 2 )
ALGORITMO 4.3. MAPEAMENTO SEGUNDO O MTODO NN DE REFERNCIA.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PE = MestrePE //
NumeroHOPs = 1 //
DISTANCIA
// SELECIONA PRIMEIRO VIZINHO LIVRE COM TIPO COMPATVEL AO DA TAREFA A SER MAPEADA
SE (PE.estado == LIVRE) E (PE.tipo == tarefa.tipo) ENTO Retorna(PE)
FIM PARA
NumeroHOPs=NumeroHOPs+1
FIM ENQUANTO
93
No Algoritmo 4.4, o bloco ENQUANTO (na linha 5) pode ser executado para todos
os elementos de processamento, de acordo com a Equao 4.20. Enquanto isso, o bloco
PARA
aninhado (na linha 14) executado para todos os canais do MPSoC de acordo com a
Equao 4.21. O nmero mximo de iteraes realizadas pelo algoritmo MMCL pode ser
obtido atravs do produto entre estes dois parmetros, como apresentado a seguir. Adicionalmente, generalizando para o caso onde o MPSoC possui ambas as dimenses iguais
(i. e. x = y), o algoritmo MMCL apresenta complexidade O(x4).
(, , ) = (, ) (, )
= () (4 2 2)
= 4 2 2 2 2 2 2
( 4 )
= 4 4 4 3 =
ALGORITMO 4.4. MAPEAMENTO SEGUNDO O MTODO MMCL PROPOSTO.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
PE = 0 // INICIA PELO PE 0
minimoMAXIMO = 1000000; //
SE CANAL NO CAMINHO
UM MAXIMO MENOR
FIM SE
PE=PE+1 //
PROXIMO PE
FIM ENQUANTO
Retorna(PEAlvo) //
Como pode ser notado, os Algoritmos 4.4 e 4.5 so bastante semelhantes. Na heurstica Minimum Average Channel Load, ao invs de considerar o mximo na ocupao dos
canais, considera-se a mdia. Por isso, MACL (Algoritmo 4.5) acumula a ocupao de todos os canais da NoC para cada possvel mapeamento, e em seguida calcula a media (na
linha 19). No ltimo bloco SE (na linha 21), o mapeamento que apresentou menor mdia
selecionado. Assim como no caso de MMCL, o algoritmo proposto para a heurstica MACL tambm apresenta complexidade O(x4), visto que ambos apresentam os mesmos blocos aninhados, como os mesmo nmeros de iteraes para o pior caso.
94
(, , ) = (, , )
= (, ) (, )
= () (4 2 2)
= 4 2 2 2 2 2 2
( 4 )
= 4 4 4 3 =
ALGORITMO 4.5. MAPEAMENTO SEGUNDO O MTODO MACL PROPOSTO.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PE = 0 // INICIA PELO PE 0
minimaMEDIA = 1000000; //
//
SE CANAL NO CAMINHO
MDIA TEMPORRIA
MDIA MENOR
FIM SE
PE=PE+1 //
PROXIMO PE
FIM ENQUANTO
Retorna(PEAlvo) //
O Algoritmo 4.6 representa a heurstica Path Load. No bloco PARA da linha 14 pode-se notar que apenas os canais que compem o caminho de comunicao so considerados. Para cada um deles, o mapeamento emulado atravs da funo AtualizaCanal(C,T),
selecionado ser aquele que apresentar o menor somatrio da ocupao dos canais, conforme o ltimo bloco SE (na linha 19).
Na linha 5, o bloco ENQUANTO pode ser executado, no pior caso, para todos os elementos de processamento do MPSoC (Equao 4.20). O bloco PARA aninhado (na linha
14), por sua vez, ser executado no pior caso para o maior caminho de comunicao possvel. Esse dado pela Equao 4.22, que indica a distncia mxima entre duas tarefas em
um MPSoC malha, de acordo com o algoritmo de roteamento xy. Sendo assim, o nmero
95
mximo de iteraes realizadas por PL pode ser obtido como apresentado abaixo. Veja
que o algoritmo PL apresenta uma complexidade O(x3), intermediria quelas apresentadas pelos algoritmos NN e MACL/MMCL, respectivamente O(x2) e O(x4).
(, , ) = (, ) (, )
= () ( + + 2)
= 2 + 2 + 2
( 3 )
= 2 3 + 2 2 =
ALGORITMO 4.6. MAPEAMENTO SEGUNDO O MTODO PL PROPOSTO.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
PE = 0 // INICIA PELO PE 0
minimoSOMATORIO = 1000000;
//
FIM SE
PE=PE+1 //
PROXIMO PE
FIM ENQUANTO
Retorna(PEAlvo) //
O Algoritmo 4.7 descreve a heurstica Best Neighbor. Nesse caso, conforme a linha
9, o somatrio da ocupao dos canais do caminho de comunicao computado apenas
para uma dada lista de vizinhos, obtida atravs da funo CalculaListaVizinhos(), toda
vez que uma nova iterao faz-se necessria. Assim como em NN, a lista de vizinhos
que permite o andamento circular na procura de uma posio para a tarefa.
Na linha 5 do algoritmo, o bloco ENQUANTO pode ser executado no pior caso para
todas as distncias possveis, dada pela Equao 4.21. O bloco PARA (na linha 9) executado para a lista de vizinhos cujo valor mximo representado pela Equao 4.23. O bloco
PARA
da linha 18 executado apenas uma nica vez, e por isso desconsiderado no clcu-
lo do nmero de iteraes mximo a serem realizadas por BN. Veja abaixo que BN e NN
apresentam a mesma complexidade O(x2).
96
(, , ) = (, , )
= (, ) (, )
= ( + + 2) ( + 2)
=
( 2 )
= 4 2 4
ALGORITMO 4.7. MAPEAMENTO SEGUNDO O MTODO BN PROPOSTO.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
CalculaListaVizinhos(NumeroHOPs,TaskMestre) //
PARA (PE na ListaDeVizinhos) //
SOMATORIO MENOR
FIM SE
FIM PARA
// SE CALCULOU SOMATRIO ENTAO TEM UM VIZINHO LIVRE E O MELHOR FOI ESCOLHIDO
SE (minimoSOMATORIO < 100000) ENTO Retorna(PEAlvo)
NumeroHOPs=NumeroHOPs+1
//
FIM ENQUANTO
Retorna(PEAlvo) //
A Tabela 4.1 apresenta um quadro comparativo entre os algoritmos de mapeamento aqui propostos e implementados. Todos eles so empregados para o mapeamento individual das tarefas de acordo com uma viso local da aplicao, que inclui apenas a informao sobre a comunicao entre as tarefas solicitada e solicitante. Com relao NoC, as
heursticas MACL e MMCL valem-se da viso global da ocupao de todos os canais, enquanto PL e BN atm-se apenas ao caminho de comunicao refletindo uma viso local,
portanto. No caso da viso sobre os PEs, dentre os algoritmos congestion-aware, apenas BN
pode no avaliar todos os possveis mapeamentos (i. e. viso parcial), a exemplo do que
deve acontecer quando os algoritmos de referncia NN e FF so utilizados.
97
Objetivo
do algoritmo
Funo
Custo
Caminhamento
na procura
Viso Aplicao
(Grafo)
Viso da NoC
(Ocupao?)
FF
Referncia
No se aplica
Fixo coluna
por coluna
Local
No se aplica
Parcial
Local
No se aplica
Parcial
O(x )
O(x )
1,2
Referncia
Aproximar as tarefas
comunicantes
No se aplica
MMCL
Reduzir os congestionamentos na
NoC atravs da eliminao de
picos de ocupao
Mxima
ocupao
dos canais
Mesmo de FF
Local
Global
Global
O(x )
MACL
Reduzir os congestionamentos na
NoC atravs da distribuio
homognea da ocupao dos canais
Ocupao
mdia
dos canais
Mesmo de FF
Local
Global
Global
O(x )
PL
Reduzir os congestionamentos e
o tempo de mapeamento
considerando apenas os canais do
caminho de comunicao
Somatrio
da ocupao
dos canais
Mesmo de FF
Local
Local
Global
O(x )
BN
Reduzir os congestionamentos e
o tempo de mapeamento
considerando apenas alguns
recursos vizinhos na sua procura
Somatrio
da ocupao
dos canais
Mesmo de
NN
Local
Local
Parcial
O(x )
NN
Varivel e
Circular
Complexidade
Estimada
98
Os experimentos realizados so divididos em duas partes. A primeira delas, apresentado no presente Captulo, visa a comparao entre as heursticas de mapeamento congestion-aware propostas (i. e. MMCL, MACL, PL e BN) frente aos algoritmos de referncia
FF e BN. Ao contrrio dos propostos, os algoritmos First Free e Nearest Neighbor no possuem funo custo de congestionamento para a definio do mapeamento de uma dada
tarefa. Estes foram implementados justamente para seu emprego como referncia nas avaliaes. A segunda parte de experimentos apresentada no prximo Captulo. Ela visa a
comparao entre as heursticas propostas, com mapeamento tarefa a tarefa, e heursticas
globais, onde todas as tarefas de uma dada aplicao so mapeadas simultaneamente.
Antes da discusso dos experimentos, faz-se necessria a apresentao da arquitetura alvo (Seo 5.1), vlida para as duas partes de experimentos. Ela discute ambas as
modelagens, da NoC descrita em VHDL, e dos elementos de processamento descritos em
SystemC. As co-simulaes realizadas so baseadas no simulador ModelSim SE 6.4 da Mentor Graphics Corporation [MEN08]. O relgio de operao adotado opera segundo uma freqncia fixada em 100MHz.
99
...
...
PE
R
PE
...
Elemento de
Processamento
(PEthread)
PE
R
PE
PE
...
PE
Roteador
Hermes
PE
IR
PE
...
IR
PE
PE
MP
R
PE
Roteador
Hermes
R
PE
PE
PE
...
...
PE
...
...
SystemC RTL
Processador
Gerente - MP
(MPthread)
Buffer de Pacotes
Fila de Tarefas de SW
Fila de Tarefas de HW
Recebimento
de Pacotes
Decodificador
de Pacotes
Algoritmo de
Mapeamento de
Tarefas
Gerador de
Pacotes
(NOTIFYs)
Matrizes de
Ocupao
100
Etapa 1.
pela UDP, seus atributos so capturados. Os pacotes recebidos podem ser do tipo
REQUEST
ficador do PE, o tipo do pacote e os identificadores das tarefas envolvidas na comunicao (i. e. mestre e escrava).
Etapa 2.
refa. Para isso, verifica-se a existncia de tarefas em cada uma das filas. De acordo
com a Figura 5.3, se a tarefa lida da fila encontrar-se j mapeada no sistema, apenas os pacotes NOTIFYs so enviados. Com isso, os atrasos de mapeamento e configurao so eliminados. Caso contrrio, deve-se verificar se existem recursos compatveis livres. Em caso negativo, a tarefa continua na fila de escalonamento. De
outra forma, a heurstica de mapeamento utilizada para selecionar um dos recursos livres para alocar a tarefa. Na seqncia, a tarefa configurada nesse recurso.
Aps sua configurao, ela deve ser inicializada.
Incio
Leitura da Fila de
Escalonamento
Mapeada?
Sim
Envia pacotes
NOTIFYs e Retira
Tarefa da Fila
No
Continua na
Fila de
Escalonamento
No
Recursos
Livres?
Configura tarefa
no Recurso
Sim
Seleciona
Recurso Livre
(Mapeamento)
101
SP1
25 flits transmitidos
(50 ciclos de relgio)
SPm
SPm+1
SPm+2
SPn
SPn+1
SPn+2
SP = 100 ciclos
86 ciclos
Incio da
comunicao
entre ta e tb.
36 ciclos
Incio da
comunicao
entre ta e tc.
50 ciclos
Trmino da
comunicao
entre ta e tb.
FIGURA 5.4. GERAO DE TRFEGO DE TA PARA TB (7%) E TC (25%), SEGUNDO UM SP = 100 CICLOS DE RELGIO.
102
mentos foram utilizados perodos na ordem de 10.000 ciclos de relgio, no qual uma taxa de
envio de 24% implica na transmisso de pacotes de 2400 flits a cada SP. A estratgia empregada para a gerao de pacotes nas PEthread segue uma distribuio temporal Pareto
On-Off.
HW
SW
HW
SW
INI
HW
SW
SW
SW
MP
R Roteador
MP Processador Gerente
FIGURA 5.5. MPSOC HETEROGNEO 8X8: POSICIONAMENTO DOS PES DE ACORDO COM SEU TIPO.
A disposio dos PEs da Figura 5.5 busca distribuir uniformemente os PEs sobre a
rea do MPSoCs, de acordo com seu tipo. Ao todo, so 64 PEs, sendo 16 dedicados execuo de tarefas de hardware, e 47 PEs que suportam a execuo de tarefas de software.
Um dos PEs reservado para as funcionalidades do processador gerente. Dentre os 47
PEs de software, alguns so reservados ao mapeamento de tarefas iniciais das aplicaes.
A quantia desses recursos foi variada entre 9 e 15, indicando um paralelismo na execuo
de at 15 aplicaes simultneas.
103
Cenrio A.
Inicial
SW
HW
FIGURA 5.6. CENRIO A: APLICAO COM GRAFO COM TOPOLOGIA PIPELINE. A TAXA RMS VARIADA ENTRE 5 E 30%.
Cenrio B.
Inicial
SW
HW
{VFD,TFD, VDF,TDF}
0[
0[
1[
1[
2[
2[
3[
5[
6[
2, 1000, 15%,
1, 1000, 15%,
3, 1000, 15%,
4, 1000, 15%,
5, 1000, 15%,
6, 1000, 15%,
9, 1000, 15%,
8, 1000, 15%,
7, 1000, 15%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
F id da tarefa Fonte
D id da tarefa Destino
VFD Volume de F para D
TFD Taxa de F para D
VDF Volume de D para F
TDF Taxa de D para F
FIGURA 5.7. CENRIO B: APLICAO COM GRAFO COM TOPOLOGIA RVORE. A TAXA VARIADA ENTRE 5 E 20%.
104
Cenrio C.
2
1
5
3
4
8
4
0
1
1
1
2
4
5
5
0
6
0
2
3
1
6
8
Task Graph For Free ou simplesmente TGFF [DIC98] uma ferramenta que permite a gerao automtica de um conjunto de grafos. Para isso ela baseia-se em um conjunto de parmetros, incluindo os nmeros mnimo e mximo de vrtices, e o intervalo para variao dos pesos nas arestas. O TGFF foi empregado em alguns dos trabalhos sobre mapeamento de tarefas revisados no Captulo 2, dentre eles [LEI03b] [HU04] [LIN05] [WRO06] [CHO07].
105
FIGURA 5.9. OCUPAO ( MDIA E MXIMO) DOS CANAIS DA NOC AO LONGO DO TEMPO, PARA O CENRIO C.
106
A Figura 5.9 diz respeito s simulaes do Cenrio C, composto por grafos de aplicaes gerados a partir da ferramenta TGFF. O algoritmo FF apresentou a pior soluo em
termos de ocupao dos canais. Enquanto isso, os algoritmos BN, NN e PL apresentam as
melhores solues, as quais resultam em uma baixa media de ocupao, e poucas saturaes de canais, ou seja, poucos picos de ocupao maiores que 50% da largura de banda
disponvel. A complexidade dos algoritmos MMCL e MACL penaliza seus tempos de execuo, o que pode ser observado nos grficos destas heursticas que gastam maior tempo para executar todas as 20 aplicaes.
A avaliao das heursticas apenas baseada nos grficos da Figura 5.9 no permite
preciso, visto que ela depende dos critrios adotados pelo observador, e ainda corresponde s medies obtidas de um nico cenrio. Uma avaliao mais completa apresentada no grfico da Figura 6.1, que considera todos os cenrios simulados. Nos Cenrios
A e B deste grfico possvel verificar que a ocupao mdia dos canais da NoC cresce me-
FF
MMCL
MACL
NN
PL
BN
20
15
10
5
0
Pipe5% Pipe10% Pipe15% Pipe20% Pipe25% Pipe30% Tree5% Tree10% Tree15% Tree20%
Gene
Cenrio C
FIGURA 5.10. OCUPAO MDIA DOS CANAIS DA NOC (PERCENTUAL DA LARGURA DE BANDA DISPONVEL).
Alm disso, com relao ao resultado apresentado quando o algoritmo FF empregado, todos os demais algoritmos implementados reduzem a ocupao mdia. Conforme a mdia geral de todas as simulaes, MMCL e MACL reduzem a ocupao dos canais em aproximadamente 14% (em comparao a FF). Esse resultado bom, mas pior que
o obtido quando NN, um algoritmo que no considera a ocupao dos canais usado.
Enquanto isso, Best Neighbor apresenta resultados semelhantes aos obtidos por Nearest
Neighbor, com ganhos na ordem de 29% comparados a First Free.
A heurstica PL, por sua vez, tem os melhores resultados nas simulaes. De acordo com a mdia geral, PL apresenta um ganho de 31% na ocupao dos canais quando
comparada a FF. Seu resultado em mdia 2% melhor que aquele obtido por NN. Avali-
107
ando apenas o Cenrio C, quando Path Load empregado, pode-se observar um ganho de
48% relativo FF, e at 6,5% relativo NN.
Alm da mdia, o desvio padro na ocupao tambm importante. Ele indica a distribuio do trfego na NoC. Nesse caso, valores baixos representam uma distribuio
homognea de trfego, enquanto valores altos sugerem que alguns canais possuem cargas
altas, enquanto outros no esto sendo usados. Para os trs cenrios simulados (Figura
5.11), as heursticas MMCL e MACL obtiveram um ganho de aproximadamente 10% com
relao ao algoritmo FF. Novamente, NN, PL e BN foram os algoritmos com melhores resultados. Ainda assim, PL apresentou um menor desvio padro na ocupao dos canais,
em mdia 22% melhor que o apresentado por FF. Comparado ao NN, PL apresenta uma
ganho de 2,5%. Nos experimentos do Cenrio C, o ganho de Path Load atinge reduo de
FF
MMCL
MACL
NN
PL
BN
20
15
10
5
0
Pipe5% Pipe10% Pipe15% Pipe20% Pipe25% Pipe30% Tree5% Tree10% Tree15% Tree20%
Gene
FIGURA 5.11. DESVIO PADRO NA OCUPAO DOS CANAIS DA NOC (PERCENTUAL DA LARGURA DE BANDA DISPONVEL).
108
A Tabela 5.1 apresenta os valores capturados para a latncia mdia dos pacotes
transmitidos em cada uma das simulaes. Na maioria delas, Path Load apresenta o melhor resultado, embora muito prximo daqueles apresentados pelos algoritmos NN e BN.
A ltima linha da Tabela apresenta o ganho de cada uma das heursticas compara ao algoritmo FF, calculado atravs da mdia de todos os experimentos. Os algoritmos MMCL e
MACL apresentam reduo de aproximadamente 6% e 8%, respectivamente no tempo para transmitir os pacotes. Enquanto isso, os demais algoritmos obtm resultados mais significativos. NN, BN permitem reduo nas latncias na ordem de 15%, sendo que PL
(16%) mais uma vez apresenta os melhores resultados.
TABELA 5.1. LATNCIA MDIA DOS PACOTES (EM CICLOS DE RELGIO).
Taxas
FF
NN
MMCL
MACL
PL
BN
5%
164
141
152
156
142
147
10%
269
239
255
258
239
238
15%
371
334
350
356
328
330
20%
527
431
479
478
425
450
25%
656
542
645
579
531
531
30%
815
665
781
711
673
664
16,00%
4,94%
9,40%
16,51%
15,75%
5%
156
143
147
153
146
146
10%
271
247
255
246
233
242
15%
370
327
349
352
329
330
20%
514
433
447
493
430
434
12,36%
8,56%
5,12%
13,28%
12,23%
343
286
319
313
285
291
16,65%
6,82%
8,56%
16,88%
15,13%
14,98%
6,15%
8,07%
15,59%
14,66%
Cenrios
A. 20 aplicaes com
grafo Pipeline
B. 20 aplicaes com
grafo rvore
20 Aplicaes do TGFF
Os resultados apresentados so relevantes, pois a latncia consiste em um parmetro que exerce grande influncia sobre o desempenho de sistemas com requisitos de qualidade de servio (QoS). Congestionamentos em sistemas dessa natureza podem acarretar
na perda de pacotes, inaceitvel em aplicaes com deadlines estritos (e. g. de tempo real).
109
No presente trabalho, duas mtricas relativas ao nvel de congestionamento no sistema so empregadas. A primeira delas mede o nmero de congestionamentos detectados ao
longo da simulao, ou seja, o nmero de canais saturados. O emprego dos monitores distribudos foi imprescindvel para esse tipo de medio. Os monitores detectam quando um
determinado flit no pode ser enviado, identificando uma situao de congestionamento.
Nesse caso, o uso dos monitores ganhou um significado similar ao definido por Marescaux [MAR05c], van den Brand [VAN07a] e Ciordas [CIO04], nos quais essas estruturas
tem seu emprego fundamentado na descoberta de situaes de congestionamento para
posterior adequao de trfego.
O grfico da Figura 5.12 apresenta o nmero total de congestionamentos detectados durante cada uma das simulaes. Conforme o grfico, pode-se notar que houve uma
reduo significativa no nmero de congestionamentos. Considerando a mdia de todos
os experimentos, quando Minimum Average Channel Load e Minimum Maximum Channel
Load so empregados, pode-se obter 38% e 45% de reduo no nmero de congestionamentos apresentados por FF. NN e BN, por sua vez, permitem uma reduo de aproximadamente 70%, enquanto PL reduz em 77% os congestionamentos. Analisando apenas o
Cenrio C, a heurstica PL permite a obteno de resultados ainda melhores, com um ganho de 89% no nmero de congestionamentos comparado ao algoritmo FF, resultando em
um ganho de at 40% relativo ao NN.
Congestionamentos Detectados
(Nmero de canais Saturados)
1600
FF
1400
MMCL
MACL
NN
PL
BN
1200
1000
800
600
400
200
0
Pipe5% Pipe10% Pipe15% Pipe20% Pipe25% Pipe30% Tree5% Tree10% Tree15% Tree20%
Gene
FIGURA 5.12. NMERO DE CONGESTIONAMENTOS DETECTADOS DURANTES AS SIMULAES DOS TRS CENRIOS.
O segundo parmetro de desempenho relativo ao nvel de congestionamento mede o tempo perdido durante os congestionamentos. Esta nova mtrica visa avaliar o tempo
perdido, dada a deteco de uma situao de congestionamento. Em suma, enquanto o
primeiro parmetro apresentado responsabiliza-se por identificar quando ocorrem congestionamentos, esse segundo parmetro conta quando tempo cada flit teve de esperar at
poder ser transmitido atravs da NoC.
110
Tempo de Congestionamento
(Nmero de Ciclos de Relgio)
2000000
FF
1750000
MMCL
MACL
NN
PL
BN
1500000
1250000
1000000
750000
500000
250000
0
Pipe5% Pipe10% Pipe15% Pipe20% Pipe25% Pipe30% Tree5% Tree10% Tree15% Tree20% Gene
FIGURA 5.13. TEMPO PERDIDO DURANTE OS CONGESTIONAMENTOS PARA OS TRS CENRIOS DE SIMULAO.
A heurstica Path Load apresenta um ganho relativo ao FF na ordem de 87%, e ainda com 30% de ganho comparado ao algoritmo Nearest Neighbor. Considerando apena os
resultados do Cenrio C, onde as aplicaes so bastante diversificadas quanto topologia, volumes e taxas de transmisso, o algoritmo congestion-aware Path Load permite reduzir o nmero de congestionamentos em 92%.
Os resultados de latncia e congestionamentos so significativos. medida que a
ocupao dos canais da NoC foi reduzida, os pacotes podem ter menor latncia de transmisso, e ainda os congestionamentos na rede podem ser reduzidos em at 90% como visto, cumprindo com o objetivo das heursticas congestion-aware.
111
dida que o volume de dados aumenta, o atraso inserido pelas heursticas pode ser amortizado. Alm disso, medida que a taxa aumentada, o tempo de execuo total do experimento reduzido. Isso acontece porque o volume de dados conservado nos experimentos de cada cenrio, apenas a taxa alterada.
Como os tempos de computao das heursticas MACL e MMCL so grandes, nos
experimentos, o tempo total de execuo apresentados quando essas heursticas so empregadas foi ainda maior que o apresentado por FF. Contudo, o tempo de execuo sofre
em mdia uma penalidade de 0,3% para MMCL, e de 0,08% para o emprego de MACL.
TABELA 5.2. TEMPO DE EXECUO TOTAL DO SISTEMA (EM CICLOS DE RELGIO) PARA CADA SIMULAO REALIZADA.
Cenrios
Taxas
FF
NN
MMCL
MACL
PL
BN
5%
10354395
10331940
10422508
10385617
10381836
10337634
10%
5243932
5268352
5349822
5299382
5285767
5261327
15%
3631240
3581285
3617405
3542790
3538877
3650616
20%
3206935
2997971
3159016
3323047
3064465
3094128
25%
2812327
2700104
2818192
2584887
2595065
2724354
30%
2695070
2466313
2507255
2664381
2568793
2710888
5%
9444023
9441226
9550022
9508053
9479805
9450054
10%
4898498
4882671
4988130
4968061
4937693
4892786
15%
3443958
3409391
3513331
3486856
3438662
3420585
20%
3672616
3540024
3562495
3671807
3596780
3574463
3217520
3104678
3291088
3226601
3139558
3084661
1,70%
-0,30%
-0,08%
1,13%
0,80%
A. 20 aplicaes com
grafo Pipeline
B. 20 aplicaes com
grafo rvore
C.
20 Aplicaes do TGFF
No caso dos demais algoritmos, foi possvel obter uma reduo no tempo total de
execuo. Na mdia de todas as simulaes, as heursticas PL e BN apresentam uma reduo de aproximadamente 1% no tempo de execuo, enquanto NN permite 1,7% de ganho
comparado ao First Free. No Cenrio C, o desempenho da heurstica BN melhor que as
demais. Enquanto PL e NN apresentam respectivamente tempos de execuo 2,4% e 3,5%
menores que aquele apresentado por FF, Best Neighbor resulta em uma reduo de 4,1%.
importante notar que em todos os experimentos o tempo para mapear cada uma
das tarefas foi considerado, assim com o tempo para configur-la no sistema. De maneira
contrria ao proposto por Kim [KIM05], Ngouanga [NGO06] e Wronski [WRO06], aqui
no foi assumido que o tempo de execuo das heursticas pode ser desconsiderado. A
Tabela 5.3 apresenta os tempos mdios obtidos para cada algoritmo de mapeamento, bem
como o tempo estimado para a configurao das tarefas no sistema.
112
Complexidade da Heurstica
(MPSoC com dimenso x)
FF
20
O(x )
NN
15
O(x )
MMCL
1.000
O(x )
MACL
1.600
O(x )
PL
500
O(x )
BN
100
O(x )
Configurao HW
13.000
Configurao SW
1.000
2
2
4
4
3
2
113
FF
NN
MMCL
MACL
PL
BN
1,00
0,70
0,86
0,85
0,69
0,70
1,00
0,80
0,88
0,90
0,78
0,80
1,00
0,85
0,94
0,92
0,84
0,85
1,00
0,66
1,33
0,89
0,98
1,19
1,00
0,31
0,55
0,62
0,23
0,29
1,00
0,17
0,53
0,47
0,12
0,17
1,00
1,00
1,25
1,14
1,09
1,03
1,00
0,98
1,00
1,00
0,99
0,99
Alm do tempo de execuo das heursticas, outro fator que pode ter influenciado
nos resultados de tempo total de execuo diz respeito modelagem adotada para as aplicaes. Vale aqui ressaltar que as operaes de escrita e leitura das tarefas foram ambas
implementadas como no-bloqueantes. Se o recebimento das mensagens no-bloqueante,
ento o efeito de um congestionamento sobre o tempo de execuo das tarefas menor
que no caso onde a tarefa fica bloqueada esperando para enviar um dado pacote. O mesmo acontece no caso de um recebimento de um pacote. Infelizmente, essa possvel falha
foi detectada apenas ao final do trabalho. Sendo assim, o emprego de comunicaes bloqueantes uma sugesto de trabalho futuro para a obteno de melhores resultados.
Alm dos experimentos apresentados anteriormente, outras variaes foram realizadas. A primeira delas aumenta o nmero de recursos dedicados ao mapeamento de tarefas iniciais das aplicaes de 9 para 15 PEs iniciais. Conforme os resultados obtidos, o
desempenho de todas as heursticas piorou aproximadamente 40%. Em termos de ocupao mdia dos canais, os algoritmos NN, PL e BN apresentam ganhos com relao a FF de
15%, 14% e 16% respectivamente (valores anteriores eram em torno de 30%). A diferena
entre os novos valores e os atuais pode ser obtida atravs da comparao com os valores
relacionados na Tabela 5.4. O ganho em termos do desvio padro na ocupao de aproximadamente 9% (valores anteriores eram em torno de 20%), enquanto que a latncia dos pacotes apresenta em mdia um ganho de 10% comparado ao FF (valores anteriores eram em
torno de 15%). O nvel de congestionamento tambm sofreu impacto semelhante, com reduo de desempenho de 80% para 50% no nmero de canais saturados, e de 70% para 60%
em termos de tempo perdido em congestionamentos.
114
No caso das simulaes com 15 aplicaes simultneas executando sobre o MPSoC, os ganhos relativos a todos os parmetros investigados so menores. Isso ocorre
porque quanto mais aplicaes compartilham o MPSoC, maior a tendncia de que tais aplicaes fiquem espalhadas sobre sua superfcie. Assim sendo, independentemente do
algoritmo empregado no mapeamento, se as possibilidades de mapeamento so reduzidas, ento provavelmente os resultados obtidos sero similares.
Uma alternativa para melhorar um dado mapeamento das tarefas em tempo de
execuo consiste no emprego da estratgia de migrao das tarefas. Em um determinado
momento o mapeamento de uma dada tarefa no pode ser otimizado, por exemplo, porque s resta um recurso livre, e este se encontra distante da posio onde a tarefa mestre
est alocada. Se algum tempo depois, um recurso mais prximo for liberado, a tcnica de
migrao pode ser empregada para (re)mapear a tarefa que estava distante, neste novo recurso (mais prximo).
Uma segunda variao dos experimentos investiga o emprego das informaes obtidas pelos monitores distribudos na deciso de mapeamento. A expectativa de obter melhor desempenho no se confirmou. Nos experimentos, os resultados alternam valores
melhores e piores que os obtidos nas simulaes baseadas no esquema de monitor centralizado. Alm disso, as variaes entre os dois resultados foram mnimas. Uma causa identificada para tal comportamento consiste na modelagem das aplicaes. Cada uma delas
gera o trfego a partir dos parmetros de volume e taxa passados nos arquivos de configurao (modelagem RTL na Seo 3.7.3). Esse trfego pode ser dito bem comportado
porque representa exatamente as taxas e volumes passados nos arquivos. Assim, a ocupao medida nos monitores distribudos muito prxima daquela que foi passada nos pacotes REQUEST, a partir dos quais o monitor centralizado estima a ocupao dos canais.
Um possvel experimento que pode resultar em uma melhor avaliao do uso dos
monitores distribudos consiste em inserir constantes de erro nas taxas informadas pelas
aplicaes. Assim, os valores informados no seriam exatos e as medies dos monitores
distribudos seriam mais precisas que aquelas estimadas pelo monitor centralizado. Esse
experimento, no entanto, no foi realizado devido ao tempo restrito para defesa da tese.
Assim sendo, sua realizao torna-se uma sugesto para trabalho futuro.
115
116
117
tema so tidos como alvo. Como o volume de dados gerados pelas aplicaes no so determinados pelo MPSoC, a reduo do volume transmitido deve implicar a reduo da
distncia (i. e. hops) entre as tarefas comunicantes. Em ambos os trabalhos, portanto, a estratgia adotada para reduzir tanto a energia consumida na comunicao quanto os congestionamentos na NoC passa pela reduo da distncia entre as tarefas comunicantes.
Para comparar as estratgias de mapeamento necessrio portar o mapeamento
realizado atravs do CAFES, para a plataforma de simulao aqui proposta. A estratgia
adotada no presente trabalho baseia-se em um arquivo de mapeamento que informa ao
processador gerente, durante a simulao, o mapeamento de cada uma das tarefas obtido
no CAFES. Os parmetros de desempenho empregados nesse grupo de experimentos incluem alm daqueles utilizados nos experimentos anteriores, a energia total consumida na
execuo do sistema, obtida atravs das estimativas realizadas pela ferramenta CAFES. A
arquitetura alvo desse segundo grupo de experimentos a mesma descrita na avaliao
apresentada no Captulo anterior (Seo 5.1).
118
que seja selecionada uma soluo em um mnimo local reduzida. O mtodo termina
quando a temperatura estiver prxima de zero e nenhuma soluo melhor for encontrada.
10
6
5
11
12
FIGURA 6.1. GRAFO QUE REPRESENTA O DECODIFICADOR MPEG-4 COMPOSTO POR 13 TAREFAS.
119
Ao lado de cada grafo das Figuras, uma lista de comunicaes apresentada, onde
cada uma das linhas representa uma dada aresta do grafo. A interpretao das linhas F
[D,VFD,TFD,VDF,TDF] indica uma comunicao entre as tarefas F e D (i. e. fonte e destino),
com volume V e taxa T de transmisso, em ambos os sentidos dados pelos ndices FD e DF
(i. e. fonte para destino e destino para fonte). Conforme apresentado na Seo 3.2, a qual
discute a representao das aplicaes, as comunicaes podem ocorrer nos dois sentidos.
Nesse caso, a indicao das arestas apenas informa qual a ordem parcial de mapeamento
no sistema, em outras palavras, ela informa quem a tarefa mestre da comunicao.
A segunda aplicao modelada, o decodificador VOP (do ingls, Video Object Plane
Decoder ou VOPD) apresenta um alto nvel de paralelismo entre suas tarefas. O decodificador requer alto desempenho e uma grande largura de banda para transmisses de vdeo
em alta definio (e. g. HD). O grafo da Figura 6.2 representa a aplicao do decodificar
VOP, composta por 13 tarefas. Esta aplicao foi empregada em vrios trabalhos sobre
mapeamento de tarefa, incluindo [VAN02] [MUR04a] [JAL04] [MAR05d] e [BER05].
10
11
12
FIGURA 6.2. GRAFO QUE REPRESENTA O DECODIFICADOR VOP COMPOSTO POR 13 TAREFAS.
A aplicao denominada Multi-Window Display (ou MWD) tem seu grafo exposto na Figura 6.3. Ele composto por 12 vrtices (ou tarefas). As taxas e volumes adotados
so apresentados na listagem ao lado do grafo. Esta aplicao foi empregada nos estudos
de caso dos trabalhos apresentados por Jalabert, Bertozzi e outros [JAL04] [BER05]. Contudo, nenhuma descrio da aplicao de suas tarefas foi encontrada nesses trabalhos ou
mesmo em outros da literatura revisada.
120
10
11
FIGURA 6.3. GRAFO QUE REPRESENTA A APLICAO MWD COMPOSTA POR 12 TAREFAS.
Romberg um mtodo baseado em aproximaes sucessivas empregado no clculo da integral de uma dada funo [BUR04]. Conforme o grafo da Figura 6.4, a implementao desta aplicao sugere um fluxo de dados no formato de um tringulo retngulo.
Embora um grafo com 10 tarefas seja adotado, o nmero de linhas empregadas no clculo
da Integral de Romberg (ou simplesmente RBERG) pode ser variado de acordo com a preciso desejada. Essa aplicao foi utilizada em [MAR05d].
FIGURA 6.4. GRAFO QUE REPRESENTA A APLICAO DA INTEGRAL DE ROMBERG COMPOSTA POR 10 TAREFAS.
121
mogneo com dimenses reduzidas, o qual suporta apenas o mapeamento individual das aplicaes estudadas. Assim, pode-se avaliar os mapeamentos de
acordo com a aplicao a ser mapeada, investigando qual o impacto no nvel
de conectividade das tarefas sobre o mapeamento, e ainda se os algoritmos gulosos apresentam resultados satisfatrios frente queles apresentado quando a
ferramenta CAFES usada.
Cenrio E.
ente para suportar o mapeamento de todos os 8 grafos de aplicaes que compem o experimento. Assim, espera-se avaliar como se d o compartilhamento
de recursos do MPSoC por vrias aplicaes, sendo utilizadas as heursticas
gulosas aqui propostas, bem como as apresentadas por Marcon.
122
O mapeamento resultante para as heursticas PL e BN foram idnticos para as quatro aplicaes utilizadas. Comparando o nmero de hops necessrios para realizar todas as
comunicaes, para todas as quatro aplicaes o algoritmo Simulated Annealing apresentou
o melhor resultado, seguido das heursticas congestion-aware PL e BN. O pior desempenho
foi anotado pelo algoritmo Tabu Search no que diz respeito ao nmero de hops resultantes.
Simulated Annealing
Tabu Search
T0
T2
T4
T0
T3
T8
T6
T5
T1
T11
T7
T12
T9
T10
T11
T2
T6
T10
T1
T3
T8
T0
T7
T12
T3
T4
T12
T6
T1
T9
T10
T7
T5
T2
T11
MPEG-4
T9
nmero de hops = 50
T3
T9
T11
T2
T10
T8
T1
T5
T7
T0
T4
T6
T8
nmero de hops = 40
T7
T6
T4
T11
T8
T0
T1
T10
T9
T3
T2
T5
nmero de hops = 44
T11
T10
T4
T5
T9
T3
T6
T7
T8
T2
T0
T1
MWD
nmero de hops = 28
nmero de hops = 26
T3
nmero de hops = 34
T0
T2
T6
T1
T5
T8
T0
T4
T7
T2
T1
T4
T7
T5
T3
T5
T7
T4
T1
T9
T6
T8
T9
T0
T2
T3
RBERG
T9
nmero de hops = 42
T4
T5
T6
T7
T3
T9
T10
T12
T1
T8
T11
T0
T2
nmero de hops = 36
T6
T4
T3
T2
T7
T5
T1
T9
T8
T10
T11
T8
T6
nmero de hops = 52
T7
T8
T12
T6
T2
T11
T4
T5
T9
T10
T3
T1
VOPD
nmero de hops = 40
T0
T12
nmero de hops = 38
T0
nmero de hops = 46
FIGURA 6.5. DISTRIBUIO DAS TAREFAS DE ACORDO COM OS ALGORITMOS DE MAPEAMENTOS INVESTIGADOS.
As heursticas propostas obtiveram seu pior resultado para o mapeamento da aplicao MPEG-4, a qual possui uma tarefa que centraliza vrias comunicaes, ou seja,
conectada a diversas outras tarefas (tarefa 1 no grafo da Figura 6.5). Esse caso expe uma
desvantagem no emprego de algoritmos gulosos. A viso local empregada por essa tcnica no permite identificar que a tarefa T1 necessita ser mapeada em uma posio central
para que seja possvel a alocao das suas escravas ao seu redor. O mesmo no acontece
com o algoritmo SA, que possui conhecimento completo da topologia da aplicao.
A avaliao dos algoritmos apenas pelo nmero hops resultante no permite afirmar que um dado mapeamento ser o melhor ou pior que outro em termos de congestionamentos ou energia consumida. No caso do congestionamento preciso avaliar se as ta-
123
refas mapeadas mais prximas so realmente aquelas que demandam maior taxa de comunicao. No caso da energia, ao invs da taxa, o volume de comunicao ganha importncia. Portanto, faz-se necessria uma avaliao mais aprofundada dos resultados, conforme apresentado a seguir.
PL
BN
mSA
18
16
14
12
10
8
6
4
2
0
mTS
25
20
15
10
5
0
MPEG-4
MWD
RBERG
VOPD
PL
MPEG-4
BN
MWD
mSA
mTS
RBERG
VOPD
FIGURA 6.6. OCUPAO DOS CANAIS (MDIA E DESVIO PADRO) DA NOC PARA OS ALGORITMOS INVESTIGADOS.
Pode-se notar na Figura 6.6, que embora o algoritmo Simulated Annealing implementado por Marcon (i. e. mSA) tenha resultado em um nmero de hops menor para todas
as aplicaes, apenas para a MPEG-4 ele obteve o melhor desempenho para a ocupao
dos canais, mesmo assim com pouca vantagem relativa aos demais algoritmos. Provavelmente, tal efeito ocorreu porque apenas nessa aplicao o algoritmo mSA teve um resultado muito melhor que os demais algoritmos.
Na aplicao da Integral de Romberg, os algoritmos gulosos PL e BN apresentaram
melhores resultados. O algoritmo Tabu Search implementado por Marcon (i. e. mTS) apresentou a menor ocupao dos canais nas aplicaes MWD e VOPD, mesmo resultando em
um maior nmero de hops para tais aplicaes. Os algoritmos Path Load e Best Neighbor no
apresentaram bons resultados para a aplicao VOPD. Como pode ser visto na Figura 6.5,
124
PL
BN
mSA
mTS
PL
300
BN
mSA
mTS
250
400
200
300
150
200
100
100
50
0
MPEG-4
MWD
RBERG
VOPD
MPEG-4
MWD
RBERG
VOPD
FIGURA 6.7. LATNCIA DOS PACOTES ( MDIA E DESVIO PADRO) NA NOC PARA OS ALGORITMOS INVESTIGADOS.
Nos grficos ainda possvel notar que a aplicao RBERG resultou nas maiores
mdias de latncia. Este efeito acontece porque tal aplicao possui um alto grau de conectividade entre suas tarefas. Todas as suas tarefas esto conectadas a pelo menos outras
duas tarefas, sendo que a tarefa T5 (Figura 6.4), por exemplo, est conectada a seis tarefas.
Com isso, a ocupao dos canais alta, influindo diretamente sobre a latncia dos pacotes.
Com relao aos desvios na latncia, a aplicao VOPD apresenta os piores resultados dentre as aplicaes investigadas. Como o desvio padro alto no foi detectado apenas para o caso onde as heursticas gulosas so aplicadas, ento a causa desse efeito no
pode ser atribuda ao mapeamento da tarefa T7. Assim sendo, este resultado deve ter sua
justificativa baseada na natureza da aplicao, seja pela topologia do seu grafo ou pelas
taxas e volumes aplicados.
125
PL
BN
mSA
mTS
2000
140000
PL
120000
BN
mSA
mTS
100000
1500
80000
1000
60000
40000
500
20000
0
0
MPEG-4
MWD
RBERG
VOPD
MPEG-4
MWD
RBERG
VOPD
Dentre todas as aplicaes, MPEG foi aquela com maiores valores de congestionamento. Uma possvel justificativa para isso consiste no alto grau de conectividade da tarefa T1 da aplicao (Figura 6.1). Alm disso, MPEG apresenta a maior diferena de resultados entre as heursticas propostas PL/BN e os algoritmos propostos por Marcon. A provvel causa tambm a tarefa T1. Quando ela requisitada, o algoritmo guloso proposto
define seu mapeamento baseado na comunicao entre ela e sua mestre, no caso a tarefas
T0. Assim, quando a tarefas T1 comea a requisitar suas escravas, faltam posies ao seu
redor para posicionamento de todas as suas sete escravas.
126
PL
700000
BN
mSA
mTS
600000
500000
400000
300000
200000
100000
0
MPEG-4
MWD
RBERG
VOPD
= + +
127
NoC quadrada onde ambas as parcelas so idnticas, ou seja, ELVbit = ELHbit. Alm disso, a
energia consumida no enlace local tambm assumida como insignificante (ECbit = 0).
Dadas as afirmaes anteriores, a energia consumida na transmisso de um bit entre duas tarefas mapeadas nos recursos Ri e Rj se d atravs da Equao 6.2. Nessa equao, NR representa o nmero de roteadores intermedirios necessrios para a transmisso.
Ele indica a distncia entre as tarefas, definida pelas suas posies e ainda pelo algoritmo
de roteamento adotado pela NoC.
EQUAO 6.2.
, = , ( + ) + , 1
Em geral, a comunicao entre duas tarefas contm vrios bits. Para obter a energia
total da comunicao EAB entre duas tarefas TA e TB, a Equao 6.3 multiplica a energia de
transmisso de um nico bit pelo volume total de bits VAB a serem transmitidos entre tais
tarefas.
EQUAO 6.3.
= ,
Por fim, para obter a energia dinmica total relativa s comunicaes entre todas
as tarefas do sistema necessrio aplicar o somatrio da energia para cada par de tarefas
comunicantes, de acordo com Equao 6.4. Nessa equao, CT representa o conjunto de
todas as tarefas que compem o sistema. Esse conjunto contm informao sobre os volumes de comunicao.
EQUAO 6.4.
= (,)
, , > 0
Vista a modelagem de energia consumida, seguem os resultados. A Figura 6.10 apresenta os valores de energia consumida na comunicao resultante para os mapeamentos obtidos a partir do emprego de cada algoritmo investigado. Conforme esperado, o desempenho do algoritmo mSA o melhor. Contudo, com exceo da aplicao MPEG-4, as
demais heursticas congestion-aware apresentaram resultados bons, muito prximos daqueles obtidos por mSA e mTS.
Nas aplicaes RBERG e MWD, as heursticas gulosas apresentaram resultados
melhores que os obtidos com o algoritmo mTS. No caso da aplicao MPEG-4, o resultado
das heursticas propostas foi aproximadamente 40% pior. Como mencionado anteriormente, o problema ocorrido no caso das heursticas gulosas foi o mapeamento da tarefa
T1 da aplicao MPEG-4. Como pode ser notado, seu efeito foi exercido em todos os parmetros de desempenho investigados.
128
PL
1000000
mSA
BN
mTS
800000
600000
400000
200000
0
MPEG-4
MWD
RBERG
VOPD
PL
BN
mSA
mTS
1,07
1,06
1,00
0,96
0,97
0,92
1,00
0,94
1,01
1,01
1,00
1,01
0,99
0,99
1,00
1,00
1,45
1,34
1,00
0,95
1,66
1,35
1,00
0,98
1,14
1,14
1,00
1,26
1,04
1,03
1,00
1,01
1,38
1,38
1,00
1,11
Com relao ao nvel de congestionamento, PL e BN sofreram uma penalidade relativamente alta, na ordem de at 45% no nmero de canais saturados, e de at 66% no
tempo perdido devido a congestionamentos. Este resultado no reflete o esperado, j que
as heursticas propostas so orientadas ao congestionamento. Uma possvel causa para esse efeito reside na estratgia gulosa, que se vale de informao parcial para o mapeamento
das tarefas, uma a uma.
129
Por outro lado, como esperado as heursticas propostas por Marcon, apresentam
os melhores resultados em termos de energia consumida na comunicao. Neste parmetro, PL e BN apresentam um consumo de energia 38% pior que o apresentado por mSA. O
valor calculado para ambas as heursticas idntico porque a estimativa de energia realizada pela ferramenta CAFES em seu modelo CWM, que estima a energia com base no
mapeamento das tarefas, sem considerar a natureza dinmica das aplicaes.
O emprego de um mapeamento global de aplicaes pode comprometer o desempenho de sistemas dinmicos, devido a sua complexidade. Alm disso, ele exige um nmero de recursos livres suficiente para mapear toda a aplicao. Enquanto isso, as heursticas propostas so rpidas, e ainda permitem que uma aplicao seja mapeada parcialmente, mesmo que ainda no existam recursos para todas as suas tarefas. Adicionalmente,
as tarefas da aplicao podem comear a executar, at mesmo antes do mapeamento completo da aplicao. Nesse ltimo caso, apenas as tarefas que necessitam executar num dado instante estaro mapeadas no MPSoC, evitando assim desperdcio de recursos.
Os valores obtidos levam ao questionamento de qual estratgia poderia ser empregada para reduzir os congestionamentos no sistema, se as heursticas congestion-aware
no forem efetivas para um determinado caso. Uma alternativa sugere o uso da tcnica de
migrao de tarefas. Tal estratgia muito empregada visando a distribuio de carga nos
processadores do sistema. No entanto, seu emprego pode ser adaptado para um cenrio
no qual a migrao das tarefas realizada para corrigir o mapeamento de uma dada tarefa, quando detectado que sua posio est gerando congestionamentos no sistema. Como a migrao de tarefas no faz parte do escopo do presente trabalho, uma sugesto para trabalhos futuros consiste na investigao do emprego desta tcnica.
130
FIGURA 6.11. DISTRIBUIO DAS TAREFAS PARA O MAPEAMENTO SOB UM MPSOC 9X9.
131
PL
BN
mSA
mTS
1,07
1,13
1,13
1,00
1,18
1,27
1,36
1,00
1,07
1,10
1,16
1,00
1,03
1,11
1,05
1,00
1,90
2,03
2,63
1,00
2,48
3,17
4,58
1,00
0,93
0,92
1,59
1,00
1,04
1,03
1,02
1,00
1,18
1,13
1,35
1,00
132
Com relao ao tempo de execuo, conforme esperado, os algoritmos gulosos apresentaram tempos maiores de execuo para o sistema completo. importante relembrar que tambm nesses experimentos os atrasos de mapeamento e configurao so considerados em PL e BN, enquanto que em mSA e mTS eles so nulos. Assim sendo, uma
penalidade de 4% no tempo de execuo dos algoritmos gulosos no significativa, visto
que os tempos de mapeamento para mSA e mTS devem ser grandes, embora no tenham
sido medidos no presente trabalho. Essa medio exige uma manipulao de cdigo fonte
da ferramenta CAFES, atividade que se encontra fora do escopo do trabalho.
Em termos de energia consumida na comunicao, os algoritmos energy-aware no
apresentaram resultados semelhantes. Enquanto mTS apresentou um valor baixo para
consumo de energia, mSA apresentou o pior resultado. Deve-se lembrar que nos experimentos do Cenrio D, o algoritmo mSA apresentou os melhores resultados, mas no Cenrio E seus resultados foram os piores dentre os quatro mapeamentos obtidos.
133
134
7. CONCLUSES E TRABALHOS
FUTUROS
135
Modelo de aplicao A terceira contribuio consiste na modelagem das aplicaes. Conforme o Captulo 3, uma dada aplicao representada aqui atravs de um grafo, que indica seu conjunto de tarefas, e as conexes entre as mesmas. Cada conexo contm informao sobre os volumes e taxas de comunicao entre as tarefas conectadas. Tais
valores expressam estimativas, nas quais os algoritmos de mapeamento propostos baseiam sua deciso. Completando a descrio do sistema, foi definido o protocolo de comunicao entre as tarefas, baseado principalmente nos pacotes de controle, enviados ao processador gerente para requisitar uma dada tarefa, ou para liberar determinado PE.
Proposta de heursticas congestion-aware A principal contribuio do trabalho
consiste na proposta de quatro heursticas para o mapeamento de tarefas. Tal mapeamento realizado em tempo de execuo, sob demanda da aplicao. Os algoritmos implementados baseiam-se na ocupao dos canais da NoC para decidir o melhor mapeamento
para a tarefa. Dessa forma, tais heursticas visam reduzir o nvel de congestionamento na
NoC, assim evitando perda de desempenho nas aplicaes. Dentre as heursticas propostas no Captulo 4, constam: MMCL, MACL, PL e BN. MMCL emprega como funo custo
a ocupao mxima em todos os canais da NoC, enquanto MACL avalia a ocupao mdia
para todos os canais. PL e BN so heursticas que avaliam a ocupao apenas considerando os canais que pertencem ao caminho de comunicao entre as tarefas mestre (que solicitou)
e escrava (solicitada).
Uso de monitores O emprego de monitores nos canais da NoC foi outra contribuio do trabalho. Esses mdulos, inseridos nas portas dos roteadores da NoC, permitem a medio da ocupao real dos canais da NoC, em tempo de execuo. Alm disso,
os monitores so empregados nas avaliaes relacionadas ocupao dos canais da NoC,
e ainda na medio do nvel de congestionamentos no sistema.
Estudo da complexidade dos algoritmos Foi apresentado um estudo da complexidade dos algoritmos implementados, que permitem obter uma estimativa da curva de
crescimento do tempo para obter um dado mapeamento, de acordo com o algoritmo implementado e com as dimenses do MPSoC alvo.
Avaliao das heursticas A avaliao das heursticas apresentada no Captulo 5
outra contribuio. Ela permite a comparao entre os algoritmos implementados. Para
isso, so considerados parmetros de desempenho que incluem a ocupao dos canais da
NoC, a latncia resultante dos pacotes transmitidos, o nvel de congestionamento na NoC
e o tempo total de execuo do sistema. Na segunda parte da avaliao (Captulo 6), investiga-se o emprego dos algoritmos propostos, os quais aplicam uma abordagem gulosa
(mapeiam uma tarefa por vez), frente os algoritmos que mapeiam a aplicao completa.
136
1.
Moraes, F.; Calazans, N.; Mller, L.; Brio, E.; Carvalho, E. Dynamic and Partial Reconfiguration in FPGA SoCs: Requirements and Tools. In: New Algorithms, Architectures and Applications for Reconfigurable Computing. Rosenstiel, W.; Lysaght, P. (Org.). Springer Verlag, 2005.
ISBN: 1-4020-3127-0.
2.
Mller, L.; Soares, R.; Carvalho, E.; Grehs, I.; Calazans, N.; Moraes, F. Infrastructure for Dyth
namic Reconfigurable Systems: Choices and Trade-offs. In: 19 Symposium on Integrated
Circuits and System Design (SBCCI). Ouro Preto, MG, Brasil. Agosto, 2006. pp.44-49.
3.
Mller, L.; Grehs, I.; Carvalho, E.; Soares, R.; Calazans, N.; Moraes, F. A NoC-based Infrastructure to Enable Dynamic Self Reconfigurable Systems. In: Reconfigurable Communicationcentric SoCs (ReCoSoC). Montpellier, Frana. Junho, 2007. pp.23-30.
4.
Carvalho, E.; Moraes, F. Congestion-aware Task Mapping in Heterogeneous MPSoCs. In: International Symposium on System-on-Chip (SoC). Tampere, Finlndia. Novembro, 2008. pp.-.
5.
Carvalho, E.; Calazans, N.; Moraes, F. Heuristics for Dynamic Task Mapping in NoC-based Heth
terogeneous MPSoCs. In: 18 Annual IEEE/IFIP International Workshop on Rapid Systems Prototyping (RSP). Porto Alegre, RS, Brasil. Maio, 2007. pp.34-40.
6.
Carvalho, E.; Calazans, N.; Moraes, F. Congestion-Aware Task Mapping in NoC-based MPSoCs
with Dynamic Workload. In: IEEE Computer Society Annual Symposium on VLSI 2007 (ISVLSI).
Porto Alegre, RS, Brasil. Maio, 2007. pp.459-460.
7.
Carvalho, E.; Moraes, F. Dynamic Task Mapping in NoC-based Heterogeneous MPSoCs. In:
XXII South Symposium on Microelectronics (SIM). Porto Alegre, RS, Brasil. Maio, 2007.
pp.147-150.
137
7.2. Concluses
No que diz respeito ao cenrio atual em MPSoCs, pode-se concluir que, em geral,
as propostas tanto acadmicas quanto industriais so baseadas em MPSoCs homogneos
[TIL07] [HAL06] [WOS07] [LIN05]. Estes so mais adequados para operaes de migrao
de tarefas, por exemplo. Contudo, o emprego de MPSoCs heterogneos torna-se importante para suportar uma grande variedade de aplicaes de um dado domnio.
Com relao infra-estrutura de comunicao, a maioria dos trabalhos investigados adota NoCs [KUM02] [ZEF03] [MOR04] [COR06]. Seu emprego torna-se imprescindvel em CIs de grande porte frente s limitaes impostas pelos barramentos, principalmente relativas baixa escalabilidade e ao pouco paralelismo suportado na comunicao.
Hoje, existem alguns MPSoCs industriais, como os propostos pela Intel [VAN07b],
pela Tilera [TIL07], a arquitetura picoArray [DUL05], e o processador CELL da IBM
[KIS06]. Por exemplo, os MPSoCs da Intel e da Tilera possuem 80 e 64 ncleos de processamento, respectivamente. Certamente, o desenvolvimento e a implementao de um sistema dessa complexidade consiste em um processo bastante desafiador. Alm disso, o gerenciamento dinmico dos recursos de um MPSoC tambm crucial, visto que deve permitir o uso efetivo de todo o poder de processamento disponibilizado. A maioria desses
MPSoCs grandes (e. g. da Intel e da Tilera), ainda no chegou ao consumidor. Talvez uma
possvel causa para tal efeito seja a falta de gerenciamento eficiente para tais sistemas, ou
falta de modelos de programao adequados, dentre outras. De fato na literatura revisada,
para o caso do MPSoC Intel, o mapeamento de tarefas realizado manualmente nos estudos de caso apresentados. Isso evidencia a necessidade de pesquisas na rea de gerenciamento dinmico de MPSoCs.
O trabalho proposto foi desenvolvido no sentido de contribuir com o gerenciamento dinmico de sistemas MPSoCs. Uma dentre as operaes importantes o mapeamento de tarefas. Na maioria dos trabalhos encontrados na literatura prope-se solues
para o mapeamento esttico de tarefas [HU03] [RHE04] [MUR04a] [RUG06] [MEH07],
mas recentemente, alguns trabalhos comeam a investigar tambm o mapeamento dinmico [NGO06] [WRO06] [CHO07]. Enquanto as estratgias estticas no so adequadas
para o emprego em cenrios onde a carga das aplicaes e suas tarefas dinmica, as pesquisas em mapeamento dinmico ainda refletem seus passos iniciais.
No presente trabalho, foram propostas e avaliadas quatro heursticas de mapeamento ditas congestion-aware. Em aplicaes de comunicao intensiva, tais como aplicaes de fluxo de dados, a manuteno da ocupao da infra-estrutura de comunicao
138
fundamental. A ocorrncia de congestionamentos pode acarretar problemas na transmisso de vdeo e udio, por exemplo. Para essa classe de aplicaes os mtodos congestionaware so aplicveis.
As heursticas propostas atendem ao compromisso de reduo de congestionamento versus tempo total de execuo. Os mapeamentos congestion-aware propostos reduzem de forma efetiva os parmetros congestionamento, ocupao dos canais e latncia dos
pacotes, frente implementao de referncia (FF). Um breve resumo aponta para uma
reduo mdia de quase 90% nos congestionamentos, de 31% na ocupao dos canais da
NoC, e de 15% na latncia dos pacotes.
Com relao ao tempo de execuo total do sistema, no primeiro momento as heursticas PL e BN apresentaram uma penalidade na ordem de 8% e 2%, respectivamente.
Quando o volume de dados transmitidos nas simulaes foi multiplicado 10 vezes, os resultados para as mesmas heursticas apresentaram um ganho de 1,3% no tempo de execuo. Assim, pode-se estimar que para grandes volumes de dados o tempo de execuo ser ainda menor. Ou seja, atrasos inseridos pela operao de mapeamento, bem como pela
configurao, devem se tornar insignificantes. Volumes maiores de dados no foram simulados devido ao tempo excessivo para execuo das simulaes.
Na segunda avaliao realizada, a estratgia gulosa foi posta prova. Nesse caso a
expectativa era de que o resultado dos algoritmos gulosos fosse pior que aquele obtido
quando o mapeamento global da aplicao fosse empregado. O mapeamento global baseado no conhecimento de toda a aplicao, incluindo sua topologia e volumes de comunicao. Enquanto isso, os algoritmos implementados apenas baseiam-se na informao
local sobre as comunicaes da tarefa a ser mapeada. De fato, os resultados obtidos na estratgia gulosa so inferiores, contudo a diferena entre os resultados foi pequena, ao contrrio do esperado. Assim sendo, o emprego da estratgia gulosa indicado, ao passo que
pode reduzir o tempo de mapeamento, e ainda suporta uma baixa penalidade comparada
ao desempenho da estratgia global. O emprego de algoritmos como Simulated Annealing
e Tabu Search provavelmente deve resultar em tempos proibitivos de mapeamento, dado
um cenrio dinmico.
Como mencionado, o mapeamento congestion-aware baseado na taxa de comunicao entre as tarefas. Enquanto isso, no trabalho de Marcon usado como referncia
[MAR07], o volume de comunicao considerado. Possivelmente, uma forma de otimizar as heursticas propostas consiste em considerar ambos, o volume e a taxa de comunicao durante a deciso de mapeamento. A taxa de comunicao influi nos congestionamento e tambm na dissipao de potncia, enquanto o volume por sua vez, importante
139
140
Ajustar as heursticas de mapeamento para utilizar uma funo custo multiobjetivo, que considere alm da ocupao dos canais, tambm o volume de dados
comunicados, ou os deadlines das tarefas para o caso de aplicaes de tempo real.
consumo de energia no sistema, bem como da dissipao de potncia. O emprego de estratgias de variao dinmica de voltagem e freqncia, bem como clock gating atrativo
para emprego em MPSoCs que contm muito ncleos, visto que sua heterogeneidade deve permitir que cada um deles opere de acordo com caractersticas diferentes de voltagem
e freqncia.
A modelagem de aplicaes para MPSoCs complicada, visto que tais sistemas,
em geral, visam um domnio vasto de aplicaes. Nesse caso, o emprego de aplicaes
sintticas geradas a partir da ferramenta TGFF parece satisfatrio, j que podem ser obtidas aplicaes com grafos bem variados e com taxas de transmisso distintas. Mas, alm
disso, o emprego de aplicaes reais e de benchmarks faz-se necessrio. Aqui, apenas quatro aplicaes reais foram usadas. Assim sendo, sugesto para trabalhos futuros a investigao de outras aplicaes que podem ser adaptadas para execuo no sistema. Adicionalmente, necessria a avaliao do mapeamento proposto, conforme o emprego de possveis benchmarks, a serem investigados.
141
Uma ltima sugesto para trabalho futuro o desenvolvimento de uma ferramenta para automatizar a gerao dos cenrios de teste (i. e. caractersticas do MPSoC e da aplicaes), a simulao do MPSoC de acordo com as heursticas, e a avaliao dos resultados. Alm disso, a ferramenta deve permitir que o usurio adicione seus prprios algoritmos para o mapeamento de tarefas. Enquanto a ferramenta no disponibilizada, o acesso aos cdigos fonte e maiores esclarecimentos podem ser obtidos diretamente com o
Autor, via e-mail ewerson.carvalho@pucrs.br.
142
REFERNCIAS BIBLIOGRFICAS
[AHM04]
Ahmadinia, A.; Bobda, C.; Bednara, M.; Teich, J. A New Approach for On-line Placement
on Reconfigurable Devices. In: International Parallel and Distributed Processing Symposium: Reconfigurable Architectures Workshop (IPDPS-RAW). New Mexico, EUA.
Abril, 2004. pp.134a-140a.
[ALF08]
Al Faruque, M.A.; Krist, R.; Henkel, J. ADAM: Run-time Agent-based Distributed Application Mapping for on-chip Communication. In: ACM/IEEE Design Automation Conference (DAC). CA, EUA. Julho, 2008. pp.760-765.
[ARA08]
Arafeh, B.; Day, K.; Touzene, A. A multilevel partitioning approach for efficient tasks allocation in heterogeneous distributed systems. Journal of Systems Architecture, Vol.54(5).
Maio, 2008. pp.530-548.
[BAK99]
[BAR07]
Barcelos, D.; Brio, E.; Wagner, F. A Hybrid Memory Organization to Enhance Task Migration and Dynamic Task Allocation in NoC-based MPSoCs. In: Chip in Rio - Symposium on Integrated Circuits and Systems Design (SBCCI). Rio de Janeiro, Brasil. Setembro, 2007. pp.282-287.
[BAZ00]
Bazargan, K.; Kastner, R.; Sarrafzadeh, M. Fast Template Placement for Reconfigurable
Computing Systems. IEEE Design & Test of Computers, Vol.17(1). Janeiro-Maro, 2000.
pp.68-83.
[BEN02]
Benini, L.; De Micheli, G. Networks on chips: a new SoC paradigm. IEEE Computer
Magazine, Vol.35(1). Janeiro, 2002. pp.70-78.
[BEN04]
Benini, L.; Bertozzi, D. Xpipes: A Network-on-Chip Architecture for Gigascale Systems-onChip. In: Design, Automation and Test in Europe (DATE). Paris, Frana. Fevereiro,
2004. pp.18-31.
143
[BER01]
Bergamaschi, R.; Bhattacharya, S.; Wagner, R.; Fellenz, C.; Muhlada, M.; White, F.;
Daveau, J.; Lee, W. Automating the design of SOCs using cores. IEEE Design & Test of
Computers, Vol.18(5). Setembro-Outubro, 2001. pp.32-45.
[BER05]
Bertozzi, D.; Jalabert, A; Murali, S.; Tamhankar, R.; Stergiou, S.; Benini, L.; De Micheli,
G. NoC Synthesis Flow for Customized Domain Specific Multiprocessor Systems-on-Chip.
IEEE Transactions on Parallel and Distributed Systems. Vol.16(2). Fevereiro, 2005.
pp.113-129.
[BER06]
Bertozzi, S.; Acquaviva, A.; Bertozzi, D.; Poggiali, A. Supporting task migration in multi-processor systems-on-chip: a feasibility study. In: Design, Automation and Test in Europe (DATE). Munich, Alemanha. Maro, 2006. pp.15-20.
[BRI07]
Brio, E.; Barcelos, D.; Wronski, F.; Wagner, F. Impact of Task Migration in NoC-based
MPSoCs for Soft Real-time Applications. In: IFIP International Conference on Very
Large Scale Integration of System on Chip (VLSI-SoC). Atlanta, EUA. Outubro, 2007.
pp.296-299.
[BRI08]
Brio, E.; Barcelos, D.; Wagner, F. Dynamic Task Allocation Strategies in MPSoC for Soft
Real-time Applications. In: Design, Automation and Test in Europe (DATE). Munich,
Alemanha. Maro, 2008. pp.1386-1389.
[BUR00]
Burd, T.; Brodersen, R. Design issues for dynamic voltage scaling. In: International
Symposium on Low Power Electronics and Design (ISLPED). Rapallo, Italia. Julho,
2000. pp.9-14.
[BUR04]
Burden, R.; Faires, J. Study Guide for Numerical Analysis. McGraw-Hill. Ed. 8. NewYork, EUA. Dezembro, 2004. ISBN 0-534-39200-8.
[BUT97]
[CAR07]
Carvalho, E.; Calazans, N.; MORAES, F. Heuristics for Dynamic Task Mapping in NoCbased Heterogeneous MPSoCs. In: Annual IEEE/IFIP International Workshop on Rapid
Systems Prototyping (RSP). Porto Alegre, Brasil. Maio, 2007. pp.34-40.
[CHA84]
[CHO07]
144
[CIO04]
Ciordas, C.; Basten, T.; Radulescu, A.; Goossens, K.; Meerbergen, J. An event-based
network-on-chip monitoring service. In: High-Level Design Validation and Test Workshop (HLDVT). California, EUA. Novembro, 2004. pp.149-154.
[COR01]
Cormen, T.; Leiserson, C.; Rivest, R.; Stein, C. Introduction to Algorithms. 2a Ed. MIT
Press and McGraw-Hill. Setembro, 2001. ISBN 978-0-262-53196-2.
[COR06]
[CRA77]
Cray Research, Inc. Cray-1 Computer System Hardware Reference Manual. Technical
Report 2240004 REV. C. Novembro, 1977. 204p.
[DEH98]
DeHon, A. Comparing Computing Machines. SPIE Configurable Computing: Technology and Applications. Vol.3526. Novembro, 1998. pp.124-133.
[DIC98]
Dick, R.; Rhodes, D.; Wolf, W. TGFF: task graphs for free. In: International Workshop
on Hardware/Software Co-design (CODES/CASHE). Washington, EUA. Maro, 1998.
pp.97-101.
[DUL05]
Duller, A.; Towner, D.; Panesar, G.; Gray, A.; Robbins, W. picoArray Technology: The
Tool's Story. In: Design, Automation and Test in Europe (DATE). Munich, Alemanha.
Maro, 2005. pp.106-111.
[FAR07]
[FEN08]
Fenlason, J.; Stallman, R. GNU gprof: The GNU Profiler. ltimo acesso: Agosto, 2008.
Disponvel em http://www.cs.utah.edu/dept/old/texinfo/as/gprof_toc.html
[FET06]
Fettweis, G. and Meyr, H. 4G applications, architectures, design methodology and tools for
MPSoC. In: Design, Automation and Test in Europe (DATE). Munich, Alemanha.
145
GAPH. Atlas - An Environment for NoC Generation and Evaluation. ltimo acesso: Setembro, 2008. Disponvel em http://www.inf.pucrs.br/~gaph/AtlasHtml/AtlasIndex_us.html
[GAR73]
Garey, M.R.; Graham, R.L.; Ullman, J.D. An Analysis of Some Packing Algorithms. In:
Combinatorial Algorithms. New York: Algorithmics Press. Junho, 1973. pp.39-47.
[GAR79]
Garey, M.R.; Johnson, D.S. Computers and Intractability: A Guide to the Theory of NPCompleteness. W.H. Freeman. Janeiro, 1979. ISBN 0-7167-1045-5. A2.5: ND43.
[GHE05]
[GLO97]
Glover, F., Laguna, M. Tabu Search. Ed.1. Kluwer Academic Publishers. Norwell,
MA. Junho, 1997. ISBN 079239965X, 978079239965.
[GOR06]
Gordon, M.; Thies, W.; Amarasinghe, S. Exploiting Coarse-Grained Task, Data, and Pipeline Parallelism in Stream Programs. In: International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). San Jose, EUA.
Outubro, 2006. pp.151-162.
[GT07]
Gtz, M.; Dittmann, F. Dynamic Relocation of Hybrid Tasks: A Complete Design Flow.
In: Reconfigurable Communication-centric SoCs (ReCoSoc). Montpellier, Frana. Junho, 2007. pp.31-38.
[GSC07]
Gschwind, M.; Erb, D.; Manning, S.; Nutter, M. An Open Source Environment for Cell
Broadband Engine System Software. IEEE Computer, Vol.40(6). Junho, 2007. pp.37-47.
[HAL06]
Halfhill; T.R. Ambric's New Parallel Processor - Globally Asynchronous Architecture Eases
Parallel Programming. Microprocessors Report. Outubro, 2006. Disponvel em
http://www.ambric.com/pdf/MPR_Ambric_Article_10-06_204101.pdf
[HAN04a]
Handa, M.; Vemuri, R. A Fast Algorithm for Finding Maximal Empty Rectangles for Dynamic FPGA Placement. In: Design, Automation and Test in Europe (DATE). Paris,
Frana. Fevereiro, 2004. pp.744-745.
[HAN04b] Handa, M.; Vemuri, R. Hardware Assisted Two Dimensional Ultra Fast Placement. In:
International Parallel and Distributed Processing Symposium: Reconfigurable Architectures Workshop (IPDPS-RAW). New Mexico, EUA. Abril, 2004. pp.140-147.
146
[HAN05]
Hansson, A.; Goossens, K.; Radulescu, A. A unified approach to constrained mapping and
routing on networkon-chip architectures. In: IEEE/ACM/IFIP international conference on
Hardware/software codesign and system synthesis (CODES+ISSS). New Jersey, EUA.
Setembro, 2005. pp.75-80.
[HEN03]
Henkel, J. Closing the SoC design gap. IEEE Computer, Vol.36(9). Setembro, 2003.
pp.119-121.
[HL07]
Holzenspies, P.K.F.; Smit, G.J.M.; Kuper, J. Mapping streaming applications on a reconfigurable MPSoC platform at run-time. In: International Symposium on System-on-Chip
(SoC). Tampere, Finlndia. Novembro, 2007. pp.1-4.
[HL08]
Hlzenspies, P.K.F.; Hurink, J.L.; Kuper, J.; Smit, G.J.M. Run-time Spatial Mapping of
Streaming Applications to a Heterogeneous Multi-Processor System-on-Chip (MPSOC). In:
Design, Automation and Test in Europe (DATE). Munich, Alemanha. Maro, 2008.
pp.212-217.
[HU03]
Hu, J.; Marculescu, R. Energy-Aware Mapping for Tile-based NOC Architectures Under
Performance Constraints. In: Asia and South Pacific Design Automation Conference
(ASP-DAC). Kitakyushu, Japo. Janeiro, 2003. pp.233-239.
[HU04]
Hu, J.; Marculescu, R. Energy-Aware Communication and Task Scheduling for Networkon-Chip Architectures under Real-Time Constraints. In: Design, Automation and Test in
Europe (DATE). Paris, Frana. Fevereiro, 2004. pp.234-239.
[HU05]
Hu, J.; Marculescu, R. Energy- and Performance-Aware Mapping for Regular NoC Architectures. IEEE Transaction on Computer-Aided Design of Integrated Circuits and Systems, Vol.24(4). Abril, 2005. pp.551-562.
[JAL04]
Jalabert, A.; Murali, S.; Benini, L.; De Micheli, G. XpipesCompiler: a Tool for Instantiating Application Specific Networks on Chip. In: Design, Automation and Test in Europe
(DATE). Paris, Frana. Fevereiro, 2004. pp.884-889.
[JER05]
Jerraya, A.; Tenhunen, H.; Wolf, W. Guest Editors' Introduction: Multiprocessor Systems-on-Chips. IEEE Computer, Vol.38(7). Julho, 2005. pp.36-40.
[JER06]
Jerraya, A.; Bouchhima, A. and Ptrot, F. Programming models and HW-SW interfaces
abstraction for multi-processor SoC. In: ACM/IEEE Design Automation Conference
(DAC). San Francisco, EUA. Julho, 2006. pp.280-285.
[KAL05a]
Kalte, H.; Porrmann, M. Context Saving and Restoring for Multitasking in Reconfigurable
147
Systems. In: Conference on Field Programmable Logic and Applications (FPL). Tampere, Finlndia. Agosto, 2005. pp.223-228.
[KAL05b]
Kalte, H.; Lee, G.; Porrmann, M.; Rckert, U. REPLICA: A Bitstream Manipulation Filter for Module Relocation in Partial Reconfigurable Systems. In: International Parallel and
Distributed Processing Symposium: Reconfigurable Architectures Workshop (IPDPSRAW). Colorado, EUA. Abril, 2005. pp.151b-157b.
[KAL06a]
Kalte, H.; Porrmann; M. REPLICA2Pro: task relocation by bitstream manipulation in virtex-II/Pro FPGAs. In: Conference on Computing frontiers Conference On Computing
Frontiers. Ischia, Itlia. Maio, 2006. pp.403-412.
[KAL06b]
Kalte, H.; Koester, M.; Kettelhoit, B.; Porrmann. M.; Rckert, U. A Comparative Study
on System Approaches for Partially Reconfigurable Architectures. In: Engineering of Reconfigurable Systems and Algorithms (ERSA). Las Vegas, EUA. Junho, 2006. pp.70-76.
[KIM03]
Kim, J.; Shivle, S.; Siegel, H.; Maciejewski, A.; Braun, T.; Schneider, M.; Tideman, S.;
Chitta, R.; Dilmaghani, R.; Joshi, R.; Kaul, A.; Sharma, A.; Sripada, S.; Vangari, P.; Yellampalli, S. Dynamic Mapping in a Heterogeneous Environment with Tasks Having Priorities and Multiple Deadlines. In: International Parallel and Distributed Processing Symposium (IPDPS). Nice, Frana. Abril, 2003. pp.98-112.
[KIM05]
Kim, J.; Siegel, H.; Maciejewski, A.; Eigenmann, R. Dynamic Mapping in Energy Constrained Heterogeneous Computing Systems. In: International Parallel and Distributed
Processing Symposium (IPDPS). Colorado, EUA. Abril, 2005. pp.64-73.
[KIM07]
Kim, J.; Shivle, S.; Siegel, H.; Maciejewski, A.; Braun, T.; Schneider, M.; Tideman, S.;
Chitta, R.; Dilmaghani, R.; Joshi, R. Dynamically mapping tasks with priorities and multiple deadlines in a heterogeneous environment. Journal of Parallel and Distributed Computing, Vol.67(2). Fevereiro, 2007. pp.154-169.
[KIR83]
[KIS06]
Kistler, M.; Perrone, M.; Petrini, F. Cell Multiprocessor Communication Network: Built for
Speed. IEEE Micro, Vol.26(3). Maio/Junho, 2006. pp.10-23.
[KUM02]
Kumar, S.; Jantsch, A.; Soininen, J.-P.; Forsell, M.; Millberg, J.-P.; berg, J.; Tiensyrj, K.;
Hemani, A. A network on chip architecture and design methodology. In: IEEE Computer
Society Annual Symposium on VLSI (ISVLSI). Pittsburgh, EUA. Abril, 2002. pp.105112.
148
[LEI03a]
Lei, T.; Kumar, S. A Two-step Genetic Algorithm for Mapping Task Graphs to Network on
Chip Architecture. In: Euromicro Symposium on Digital System Design: Architectures,
Methods and Tools (DSD). Turquia. Setembro, 2003. pp.180-187.
[LEI03b]
Lei, T.; Kumar, S. Algorithms and Tools for Networks on Chip based System Design. In:
Chip in Sampa - Symposium on Integrated Circuits and Systems Design (SBCCI). So
Paulo, SP, Brasil. Setembro, 2003. pp.163-168.
[LIN05]
Lin, L.; Wang, C.; Huang, P.; Chou, C.; Jou, J. Communication-driven task binding for
multiprocessor with latency insensitive network-on-chip. In: Asia and South Pacific Design Automation Conference (ASP-DAC). Shanghai, China. Janeiro, 2005. pp.39-44.
[MAN05]
Manolache, S.; Eles, P.; Peng, Z. Fault and Energy-Aware Communication Mapping with
Guaranteed Latency for Applications Implemented on NoC. In: ACM/IEEE Design Automation Conference (DAC). CA, EUA. Junho, 2005. pp.266-269.
[MAR01]
Martin, G.; Chang, H. System-on-Chip design. In: 4th International Conference on ASIC. Shanghai, China. Outubro, 2001. pp.12-17.
[MAR04]
Marescaux, T.; Nolleta, V.; Mignoleta, J.; Bartica, A.; Moffata, J.; Avasarea, P.; Coenea,
P.; Verkesta, D.; Vernaldea, S.; Lauwereinsa, R. Run-time support for heterogeneous multitasking on reconfigurable SoCs. Integration, the VLSI Journal, Vol.38(1). Outubro,
2004. pp.107-130.
[MAR05a]
Marcon, C.; Borin, A.; Susin, A.; Carro, L.; Wagner, F. Time and Energy Efficient Mapping of Embedded Applications onto NoCs. In: Asia and South Pacific Design Automation Conference (ASP-DAC). Shanghai, China. Janeiro, 2005. pp.33-38.
[MAR05b]
Marcon, C.; Calazans, N.; Moraes, F.; Susin, A.; Reis, I.; Hessel, F. Exploring NoC mapping strategies: an energy and timing aware technique. In: Design, Automation and Test
in Europe (DATE). Munich, Alemanha. Maro, 2005. pp.502-507.
[MAR05c]
Marescaux. T.; Rngevall, A.; Nollet, V.; Bartic, A.; Corporaal, H. Distributed congestion control for packet switched networks on chip. In: Parallel Computing Conference
(PARCO). Malaga, Espanha. Setembro, 2005. pp. 761-768.
[MAR05d] Marcon, C.; Palma, J.; Calazans, N.; Moraes, F.; Susin, A. Modeling the Traffic Effect for
the Application Cores Mapping Problem onto NoCs. In: IFIP International Conference on
Very Large Scale Integration of System on Chip (VLSI-SoC). Perth, Australia. Outubro,
2005. pp.179-194.
149
[MAR06]
Martin, G. Multicore This, Multiprocessor That: Its all MPSoC. SOCcentral. Julho,
2006.
ltimo
acesso:
Setembro,
2008.
Disponvel
em
http://www.soccentral.com/results.asp?CatID=488&EntryID=19537
[MAR07]
Marcon, C.; Moreno, E.; Calazans, N.; Moraes, F. Evaluation of Algorithms for Low
Energy Mapping onto NoCs. In: IEEE International Symposium on Circuits and Systems (ISCAS). Louisiana, EUA. Maio, 2007. pp.389-392.
[MAR08]
Marcon, C.; Moreno, E.; Calazans, N.; Moraes, F. Comparison of NoC Mapping Algorithms Targeting Low Energy Consumption. IET Computers & Digital Techniques, V
2(6). Novembro, 2008. pp.471-482.
[MEH07]
Mehran, A.; Saeidi, S.; Khademzadeh, A.; Afzali-Kusha, A. Spiral: A heuristic mapping
algorithm for network on chip. IEICE Electronics Express. Vol.4(15). Agosto, 2007.
pp.478-484.
[MEH08]
Mehran, A.; Khademzadeh, A.; Saeidi, S. DSM: A Heuristic Dynamic Spiral Mapping
algorithm for network on chip. IEICE Electronics Express. Vol.5(13). Julho, 2008. pp.464471.
[MEN08]
[MIH03]
[ML06]
Mller, L.; Soares, R.; Carvalho, E.; Grehs, I.; Calazans, N.; Moraes, F. Infrastructure
for Dynamic Reconfigurable Systems: Choices and Trade-offs. In: Chip in the Mountains Symposium on Integrated Circuits and Systems Design (SBCCI). Ouro Preto, Brasil.
Agosto, 2006. pp.44-49.
[ML07]
Mller, L.; Grehs, I.; Carvalho, E.; Soares, R.; Calazans, N.; Moraes, F. A NoC-based Infrastructure to Enable Dynamic Self Reconfigurable Systems. In: Reconfigurable Communication-centric SoCs (ReCoSoC). Montpellier, Frana. Junho, 2007. pp.23-30.
[MOR04]
Moraes, F.; Calazans, N.; Mello, A.; Mller, L.; Ost, L. Hermes: an Infrastructure for Low
Area Overhead Packet-switching Networks on Chip. Integration, the VLSI Journal,
Vol.38(1). Outubro, 2004. pp.69-93.
[MUR04a]
Murali, S.; De Micheli, G. Bandwidth-Constrained Mapping of Cores onto NoC Architectures. In: Design, Automation and Test in Europe (DATE). Paris, Frana. Fevereiro,
150
2004. pp.896-901.
[MUR04b]
Murali, S.; De Micheli, G. SUNMAP: a tool for automatic topology selection and generation for NoCs. In: ACM/IEEE Design Automation Conference (DAC). CA, EUA. Junho, 2004. pp.914-919.
[MUR05]
Murali, S.; Benini, L.; De Micheli, G. Mapping and physical planning of networks-on-chip
architectures with quality-of-service guarantees. In: Asia and South Pacific Design Automation Conference (ASP-DAC). Shanghai, China. Janeiro, 2005. pp.27-32.
[MUR06a]
Murali, S.; Coenen, M.; Radulescu, A.; Goossens, K.; De Micheli, G. Mapping and configuration methods for multi-use-case networks on chips. In: Asia and South Pacific Design Automation Conference (ASP-DAC). Yokohama, Japo. Janeiro, 2006. pp.146-151.
[MUR06b]
Murali, S.; Coenen, M.; Radulescu, A.; Goossens, K.; De Micheli, G. A methodology for
mapping multiple use-cases onto networks on chips. In: Design, Automation and Test in
Europe (DATE). Munich, Alemanha. Maro, 2006. pp.118-123.
[NGO06]
Ngouanga, A.; Sassatelli, G.; Torres, L.; Gil, T.; Soares, A.; Susin, A. A contextual resources use: a proof of concept through the APACHES platform. In: IEEE Workshop on
Design and Diagnostics of Electronic Circuits and Systems (DDECS). Praga, Repblica
Tcheca. Abril, 2006. pp.42-47.
[NOL05a]
Nollet, V.; Avasare, P.; Mignolet, J.; Verkest, D. Low Cost Task Migration Initiation in a
Heterogeneous MP-SoC. In: Design, Automation and Test in Europe (DATE). Munich,
Alemanha. Maro, 2005. pp.252-253.
[NOL05b]
Nollet, V.; Marescaux, T.; Avasare, P.; Mignolet, J-Y. Centralized Run-Time Resource
Management in a Network-on-Chip Containing Reconfigurable Hardware Tiles. In: Design,
Automation and Test in Europe (DATE). Munich, Alemanha. Maro, 2005. pp.234-239.
[OH98]
Oh, J.; Pedram, M. Gated Clock Routing Minimizing the Switched Capacitance. In: Design, Automation and Test in Europe (DATE). Paris, Frana. Fevereiro, 1998, pp.692697.
[ORS05]
Orsila, H.; Kangas, T.; Hmlinen, T. Hybrid Algorithm for Mapping Static Task Graphs
on Multiprocessor SoCs. In: International Symposium on System-on-Chip (SoC). Tampere, Finlndia. Novembro, 2005. pp.146-150.
[ORS06]
Orsila, H.; Kangas, T.; Salminen, E.; Hmlinen, T. Parameterizing Simulated Annealing for Distributing Task Graphs on Multiprocessor SoCs. In: International Symposium
151
Orsila, H.; Kangas, T.; Salminen, E.; Hmlinen, T.; Hnnikinen, M. Automated
Memory-Aware Application Distribution for Multi-Processor System-On-Chips. Journal of
Systems Architecture, Vol.53(11). Novembro, 2007. pp.795-815.
[OST05]
Ost, L.; Mello, A.; Palma, J.; Moraes, F.; Calazans, N. MAIA - A Framework for Networks on Chip Generation and Verification. In: Asia and South Pacific Design Automation Conference (ASP-DAC). Shanghai, China. Janeiro, 2005. pp.49-52.
[RHE04]
Rhee. C.; Jeong, H.; Ha, S. Many-to-Many Core-Switch Mapping in 2-D Mesh NoC Architectures. In: IEEE International Conference on Computer Design: VLSI in Computers
& Processors (ICCD). CA, EUA. Outubro, 2004. pp.438-443.
[RHO01]
Rhoads, S. Plasma - most MIPS I(TM) opcodes: Overview. Setembro, 2007. ltimo acesso: Janeiro, 2008. Disponvel em: http://www.opencores.org/projects.cgi/web/mips/overview
[RUG06]
Ruggiero, M.; Guerri, A.; Bertozzi, D.; Poletti, F.; Milano, M. Communication-aware allocation and scheduling framework for stream-oriented multi-processor systems-on-chip. In:
Design, Automation and Test in Europe (DATE). Munich, Alemanha. Maro, 2006.
pp.3-8.
[SAE07]
Saeidi, S.; Khademzadeh, A.; Mehran, A. SMAP: An Intelligent Mapping tool for Network on Chip. In: International Symposium on Signals, Circuits and Systems (ISSCS).
Iasi, Romania. Julho, 2007. pp.1-4.
[SAI07a]
Saint-Jean, N.; Sassatelli, G.; Benoit, P.; Torres, L.; Robert, M. HS-Scale: a HardwareSoftware Scalable MP-SOC Architecture for embedded Systems. In: IEEE Computer Society Annual Symposium on VLSI (ISVLSI). Porto Alegre, Brasil. Maro, 2007. pp.21-28.
[SAI07b]
Saint-Jean, N.; Jalier, C.; Sassatelli, G.; Benoit, P.; Torres, L.; Robert, M. HS Scale: A
run-time adaptable MP-SoC architecture. In: Reconfigurable Communication-centric
SoCs (ReCoSoC). Montpellier, Frana. Junho, 2007. pp.39-46.
[SAI08]
Saint-Jean, N.; Benoit, P.; Sassatelli, G.; Torres, L.; Robert, M. "MPI-Based Adaptive Task
Migration Support on the HS-Scale System". In: IEEE Computer Society Annual Symposium on VLSI (ISVLSI). Montpellier, Frana. Abril, 2008. pp.105-110.
[SAS07]
Sassatelli, G.; Saint-Jean, N.; Woszezenki, C.; Grehs, I.; Moraes, F. Architectural Issues
in Homogeneous NoC-Based MPSoC. In: Annual IEEE/IFIP International Workshop on
Rapid Systems Prototyping (RSP). Porto Alegre, Brasil. Maio, 2007. pp.139-142.
152
[SHI04]
Shin, D.; Kim, J. Power-aware communication optimization for networks-on-chips with voltage scalable links. In: IEEE/ACM/IFIP international conference on Hardware/software
codesign and system synthesis (CODES+ISSS). Stockholm, Sweden. Setembro, 2004.
pp.170-175.
[SIA05]
[SIA99]
[SMI04a]
Smit, L.T.; Smit, G.J.M.; Hurink, J.L.; Broersma, H.; Paulusma, D.; Wolkotte. P.T. Runtime assignment of tasks to multiple heterogeneous processors. In: PROGRESS workshop
on embedded systems. Nieuwegein, Holanda. Outubro, 2004. pp.185-192.
[SMI04b]
Smit, L.T.; Smit, G.J.M.; Hurink, J.L.; Broersma, H.; Paulusma, D.; Wolkotte. P.T. Runtime mapping of applications to a heterogeneous reconfigurable tiled system on chip architecture. In: International Conference on Field-Programmable Technology (FPT). Brisbane, Austrlia. Dezembro, 2004. pp.421-424.
[SMI05]
Smit, L.T.; Hurink, J.L.; Smit, G.J.M. Run-time mapping of applications to a heterogeneous
SoC. In: International Symposium on System-on-Chip (SoC). Tampere, Finlndia.
Novembro, 2005. pp.78-81.
[SRI05]
Srinivasan, K.; Chatha, K. A technique for low energy mapping and routing in network-onchip architectures. In: International Symposium on Low Power Electronics and Design
(ISLPED). CA, EUA. Agosto, 2005. pp.387-392.
[STE06]
Streichert, T.; Strengert, C.; Haubelt, C.; Teich, J. Dynamic task binding for hardware/software reconfigurable networks. In: Chip in the Mountains - Symposium on Integrated Circuits and Systems Design (SBCCI). Ouro Preto, Brasil. Agosto, 2006. pp.3843.
[STE95]
Sterling, T.; Savarese, D.; Becker, D.; Dorband, J.; Ranawake, U.; Packer, C. BEOWULF: A Parallel Workstation for Scientific Computation. In: International Conference
on Parallel Processing (ICPP). Illinois, EUA. Agosto, 1995. pp.11-14.
[TIL07]
Tilera Corporation. TILE64 Processor. Product Brief Description. Santa Clara, CA,
EUA. Agosto, 2007. 2p.
[VAN02]
Van der Tol, E.; Jaspers, E. Mapping of MPEG-4 Decoding on a Flexible Architecture Plat-
153
form. In: SPIE Conference on Visualization and Data Analysis (SPIE 4674). San Jose,
CA, USA; Janeiro, 2002. pp.1-13.
[VAN07a]
van den Brand, J.W.; Ciordas, C.; Goossens, K.; Basten, T. Congestion-controlled besteffort communication for networks-on-chip. In: Design, Automation and Test in Europe
(DATE). Munich, Alemanha. Abril, 2007. pp.1-6.
[VAN07b]
Vangal, S.; Howard, J.; Ruhl, G.; Dighe, S.; Wilson, H.; Tschanz, J.; Finan, D.; Iyer, P.;
Singh, A.; Jacob, T.; Jain, S.; Venkataraman, S.; Hoskote, Y.; Borkar, N. An 80-Tile
1.28TFLOPS Network-on-Chip in 65nm CMOS. In: IEEE International Solid-State Circuits Conference (ISSCC). CA, EUA. Fevereiro, 2007. pp.5-7.
[VAN08]
Vangal, S.; Howard, J.; Ruhl, G.; Dighe, S.; Wilson, H.; Tschanz, J.; Finan, D.; Singh, A.;
Jacob, T.; Jain, S.; Erraguntla, V.; Roberts, C.; Hoskote, Y.; Borkar, N.; Borkar, S. An
80-Tile Sub-100-W TeraFLOPS Processor in 65-nm CMOS. IEEE Journal of Solid-State
Circuits, Vol.43(1). Janeiro, 2008. pp.29-41.
[WEN07]
Wentzlaff, D.; Griffin, P.; Hoffmann, H.; Bao, L.; Edwards, B.; Ramey, C. On-Chip Interconnection Architecture of the Tile Processor. IEEE Micro, Vol.27(5). SetembroOutubro, 2007. pp.15-31.
[WIR98]
Wirthlin, M.; Hutchings, B. Improving Functional Density Using Run-Time Circuit Reconfiguration. IEEE Transactions on Very Large Scale Integration (VLSI) Systems,
Vol.6(2). Julho, 1998. pp.247-256.
[WOL08]
[WOS07]
Woszezenki, C. Alocao de Tarefas e Comunicao entre Tarefas em MPSoCs. Dissertao de Mestrado, Programa de Ps-Graduao em Cincia da Computao, PUCRS.
Orientador: Fernando Gehm Moraes. Porto Alegre, Brasil. Fevereiro, 2007. 121p. Disponvel em http://www.inf.pucrs.br/~moraes/my_pubs/papers/dissertacao_cris.pdf
[WRO06]
Wronski, F.; Brio, E.; Wagner, F. Evaluating Energy-aware Task Allocation Strategies for
MPSoCS. In: IFIP Working Conference on Distributed and Parallel Embedded Systems (DIPES). Braga, Portugal. Outubro, 2006. pp. 215-224.
[WU03]
Wu, D.; Al-Hashimi, B.; Eles, P. Scheduling and Mapping of Conditional Task Graphs for
the Synthesis of Low Power Embedded Systems. In: Design, Automation and Test in Europe (DATE). Munich, Alemanha. Maro, 2003. pp.90-95.
154
[ZEF03]
Zeferino, C.; Susin, A. SoCIN: a Parametric and Scalable Network-on-Chip. In: Chip in
Sampa - Symposium on Integrated Circuits and Systems Design (SBCCI). So Paulo,
Brasil. Setembro, 2003. pp.169-174.
[ZEF04]
Zeferino, C.; Kreutz, M.; Susin, A. RASoC: A router soft-core for networks-on-chip. In:
Design, Automation and Test in Europe (DATE). Paris, Frana. Fevereiro, 2004.
pp.198-203.
155
156
Inicial
SW
HW
5%,
5%,
5%,
5%,
5%,
5%,
5%,
5%,
5%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
PIPE 10%
0 [ 1, 2000, 10%,
1 [ 2, 2000, 10%,
2 [ 3, 2000, 10%,
3 [ 4, 2000, 10%,
4 [ 5, 2000, 10%,
5 [ 6, 2000, 10%,
6 [ 7, 2000, 10%,
7 [ 8, 2000, 10%,
8 [ 9, 2000, 10%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
PIPE 15%
0 [ 1, 2000, 15%,
1 [ 2, 2000, 15%,
2 [ 3, 2000, 15%,
3 [ 4, 2000, 15%,
4 [ 5, 2000, 15%,
5 [ 6, 2000, 15%,
6 [ 7, 2000, 15%,
7 [ 8, 2000, 15%,
8 [ 9, 2000, 15%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
PIPE 20%
0 [ 1, 2000, 20%,
1 [ 2, 2000, 20%,
2 [ 3, 2000, 20%,
3 [ 4, 2000, 20%,
4 [ 5, 2000, 20%,
5 [ 6, 2000, 20%,
6 [ 7, 2000, 20%,
7 [ 8, 2000, 20%,
8 [ 9, 2000, 20%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
PIPE 25%
0 [ 1, 2000, 25%,
1 [ 2, 2000, 25%,
2 [ 3, 2000, 25%,
3 [ 4, 2000, 25%,
4 [ 5, 2000, 25%,
5 [ 6, 2000, 25%,
6 [ 7, 2000, 25%,
7 [ 8, 2000, 25%,
8 [ 9, 2000, 25%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
PIPE 30%
0 [ 1, 2000, 30%,
1 [ 2, 2000, 30%,
2 [ 3, 2000, 30%,
3 [ 4, 2000, 30%,
4 [ 5, 2000, 30%,
5 [ 6, 2000, 30%,
6 [ 7, 2000, 30%,
7 [ 8, 2000, 30%,
8 [ 9, 2000, 30%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
PIPE 5%
0 [ 1, 2000,
1 [ 2, 2000,
2 [ 3, 2000,
3 [ 4, 2000,
4 [ 5, 2000,
5 [ 6, 2000,
6 [ 7, 2000,
7 [ 8, 2000,
8 [ 9, 2000,
157
Inicial
SW
HW
TREE 10%
0 [ 2, 1000, 10%,
0 [ 1, 1000, 10%,
1 [ 3, 1000, 10%,
1 [ 4, 1000, 10%,
2 [ 5, 1000, 10%,
2 [ 6, 1000, 10%,
3 [ 9, 1000, 10%,
5 [ 8, 1000, 10%,
6 [ 7, 1000, 10%,
{VFD,TFD, VDF,TDF}
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
TREE 15%
0 [ 2, 1000, 15%,
0 [ 1, 1000, 15%,
1 [ 3, 1000, 15%,
1 [ 4, 1000, 15%,
2 [ 5, 1000, 15%,
2 [ 6, 1000, 15%,
3 [ 9, 1000, 15%,
5 [ 8, 1000, 15%,
6 [ 7, 1000, 15%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
TREE 5%
0 [ 2, 1000,
0 [ 1, 1000,
1 [ 3, 1000,
1 [ 4, 1000,
2 [ 5, 1000,
2 [ 6, 1000,
3 [ 9, 1000,
5 [ 8, 1000,
6 [ 7, 1000,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%,
5%,
5%,
5%,
5%,
5%,
5%,
5%,
5%,
TREE 20%
0 [ 2, 1000, 20%,
0 [ 1, 1000, 20%,
1 [ 3, 1000, 20%,
1 [ 4, 1000, 20%,
2 [ 5, 1000, 20%,
2 [ 6, 1000, 20%,
3 [ 9, 1000, 20%,
5 [ 8, 1000, 20%,
6 [ 7, 1000, 20%,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
10,
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
5%]
158
1
0
2
2
App0
0 [2, 150, 22%, 170, 20%]
0 [1, 340, 10%, 300, 15%]
1 [3, 470, 10%, 410, 20%]
1 [4, 300, 15%, 480, 15%]
2 [5, 380, 10%, 230, 10%]
2 [6, 240, 5%, 140, 5%]
3 [9, 210, 15%, 280, 25%]
5 [8, 190, 25%, 340, 20%]
6 [7, 120, 20%, 360, 25%]
App1
0 [1, 260, 25%, 230, 20%]
1 [2, 330, 20%, 280, 5%]
2 [3, 310, 10%, 190, 5%]
2 [4, 190, 10%, 200, 5%]
2 [6, 180, 5%, 220, 15%]
4 [5, 190, 10%, 200, 10%]
4 [7, 260, 15%, 300, 15%]
App2
0 [1, 240, 20%, 250, 10%]
0 [2, 260, 15%, 230, 20%]
1 [3, 330, 25%, 320, 10%]
1 [5, 280, 5%, 280, 5%]
3 [4, 260, 30%, 300, 15%]
2
2
7
8
App5
0 [1, 330, 30%, 320, 10%]
0 [2, 330, 5%, 320, 15%]
1 [3, 170, 25%, 310, 5%]
1 [4, 170, 5%, 310, 6%]
4 [5, 180, 10%, 180, 15%]
4 [6, 310, 15%, 290, 10%]
6 [7, 250, 15%, 170, 15%]
6 [8, 180, 10%, 250, 10%]
App6
0 [1, 320, 15%, 320, 10%]
1 [2, 160, 10%, 160, 5%]
1 [3, 190, 10%, 200, 6%]
1 [4, 310, 5%, 190, 7%]
4 [5, 310, 15%, 190, 15%]
4 [6, 180, 10%, 170, 10%]
6 [7, 330, 5%, 320, 25%]
6 [8, 300, 25%, 200, 5%]
App4
0 [1, 240, 25%, 240, 10%]
1 [2, 190, 15%, 200, 5%]
1 [3, 180, 5%, 180, 5%]
1 [4, 240, 5%, 250, 5%]
4 [5, 310, 10%, 190, 6%]
4 [6, 200, 15%, 270, 10%]
4 [7, 200, 5%, 170, 10%]
2 [8, 260, 30%, 300, 20%]
App3
0 [1, 260, 20%, 260, 10%]
1 [2, 200, 15%, 170, 5%]
1 [3, 330, 10%, 320, 10%]
3 [4, 180, 15%, 170, 10%]
3 [5, 190, 5%, 160, 15%]
2 [6, 260, 15%, 230, 15%]
2 [7, 320, 5%, 320, 5%]
2 [8, 310, 5%, 190, 5%]
App7
0 [1, 280, 25%, 280, 25%]
0 [4, 150, 5%, 200, 10%]
1 [2, 260, 15%, 300, 5%]
2 [3, 260, 30%, 160, 15%]
3 [6, 180, 15%, 170, 5%]
4 [5, 260, 25%, 230, 15%]
App8
0 [1, 150, 15%, 200, 5%]
0 [2, 310, 15%, 170, 15%]
2 [3, 150, 10%, 200, 5%]
2 [4, 290, 5%, 290, 10%]
2 [5, 180, 5%, 170, 6%]
1 [6, 310, 6%, 170, 15%]
1 [7, 190, 10%, 160, 10%]
1 [8, 150, 13%, 200, 5%]
App9
0 [1, 280, 35%, 280, 10%]
1 [2, 200, 20%, 170, 5%]
2 [3, 160, 10%, 210, 10%]
2 [4, 270, 15%, 220, 5%]
2 [5, 280, 5%, 280, 6%]
4 [6, 190, 25%, 200, 6%]
4 [7, 180, 5%, 170, 7%]
4 [8, 190, 7%, 240, 7%]
0
0
0
1
2
4
App10
0 [1, 190, 15%, 200, 20%]
0 [2, 160, 15%, 160, 15%]
1 [3, 330, 10%, 320, 5%]
1 [4, 260, 15%, 160, 15%]
4 [5, 190, 15%, 290, 5%]
4 [6, 260, 15%, 160, 10%]
App12
0 [1, 210, 14%, 230, 13%]
0 [2, 250, 13%, 300, 10%]
0 [3, 210, 5%, 230, 15%]
2 [4, 330, 17%, 320, 19%]
2 [5, 170, 10%, 280, 12%]
3 [6, 310, 14%, 250, 15%]
3 [7, 250, 10%, 300, 10%]
App13
0 [1, 240, 15%, 240, 15%]
0 [2, 200, 10%, 170, 5%]
0 [3, 250, 5%, 300, 5%]
3 [4, 260, 25%, 230, 35%]
5
5
App11
0 [1, 250, 30%, 200, 25%]
1 [2, 310, 25%, 250, 5%]
2 [3, 200, 20%, 170, 10%]
3 [4, 240, 25%, 240, 15%]
4 [5, 180, 10%, 250, 15%]
App14
0 [1, 230, 20%, 160, 4%]
1 [2, 230, 5%, 160, 5%]
1 [3, 240, 12%, 250, 15%]
1 [4, 240, 5%, 250, 5%]
3 [5, 190, 10%, 200, 27%]
0
0
App15
0 [1, 270, 15%, 200, 5%]
0 [2, 190, 15%, 210, 15%]
0 [3, 260, 5%, 260, 10%]
2 [4, 330, 10%, 280, 25%]
1 [5, 280, 5%, 280, 5%]
1 [6, 260, 13%, 210, 10%]
1 [7, 270, 8%, 220, 5%]
6 [8, 240, 15%, 250, 10%]
6 [9, 310, 15%, 190, 25%]
App16
0 [1, 190, 30%, 200, 5%]
0 [2, 310, 5%, 290, 5%]
0 [3, 330, 5%, 280, 25%]
1 [4, 190, 15%, 290, 25%]
4 [5, 190, 15%, 200, 40%]
App18
0 [1, 190, 30%, 200, 20%]
0 [6, 310, 5%, 250, 15%]
1 [2, 300, 20%, 270, 10%]
2 [3, 190, 15%, 240, 5%]
2 [4, 200, 5%, 170, 7%]
3 [5, 250, 20%, 170, 20%]
4 [7, 200, 25%, 270, 35%]
App17
0 [1, 290, 25%, 290, 5%]
0 [5, 150, 15%, 200, 35%]
1 [2, 190, 10%, 210, 3%]
1 [3, 330, 15%, 320, 7%]
1 [4, 190, 5%, 240, 5%]
App19
0 [1, 190, 15%, 200, 10%]
0 [2, 190, 10%, 200, 12%]
0 [3, 210, 5%, 230, 4%]
1 [4, 330, 10%, 280, 15%]
1 [5, 310, 12%, 190, 10%]
3 [6, 280, 25%, 280, 15%]
159
A.4.1. MPEG-4
A primeira aplicao empregada nos Cenrios D e E dos experimentos foi a
MPEG-4. Seu grafo baseado no diagrama de blocos desta aplicao, apresentado em
[VAN02], e reproduzido na Figura abaixo, onde os crculos indicam os identificadores atribudos s tarefas.
7
1
8
11
12
10
6
5
160
11
10
12
A Figura abaixo apresenta o mesmo diagrama de blocos da aplicao MPEG-4, agora conforme a modelagem adotada pela ferramenta CAFES, quando o modelo CWM
empregado.
161
A.4.2. VOPD
A aplicao VOPD tambm foi empregada nos Cenrios D e E dos experimentos
do Captulo 6. O grafo dessa aplicao anteriormente apresentado (Figura 6.2) foi baseado
no diagrama de blocos desta aplicao, apresentado abaixo, obtido a partir de [VAN02].
Os crculos indicam os identificadores atribudos s tarefas.
12
162
10
11
A Figura abaixo apresenta o mesmo diagrama de blocos, agora em sua representao conforme a modelagem de aplicaes adotada no presente trabalho. Trata-se da mesma Figura 6.2. Ela apresentada aqui, apenas com o objetivo de facilitar sua comparao
com a Figura anterior.
10
11
12
163
A.4.3. MWD
O grafo abaixo representa a aplicao MWD (Multi-Window Display). Este grafo foi
obtido a partir do trabalho de Bertozzi e outros [BER05]. Os crculos menores dizem respeito aos identificadores atribudos a cada uma das tarefas que compem esta aplicao.
4
5
0
1
7
6
8
3
9
11
10
164
10
11
Na Figura abaixo apresenta-se o mesmo grafo da aplicao MWD, nesse caso descrito conforme a modelagem CWM da ferramenta CAFES.
A Figura a seguir apresenta o resultado de mapeamento obtido atravs da ferramenta CAFES para a aplicao MWD, de acordo com o algoritmo Simulated Annealing.
165
166
A Figura a seguir apresenta o resultado de mapeamento obtido atravs da ferramenta CAFES para a aplicao Romberg, considerando o algoritmo de mapeamento Tabu
Search.
167
MWD
MPEG-4
VOPD
168
Integral de Romberg