Você está na página 1de 105

Universidade Federal do Rio Grande do Norte

Centro de Ciências Exatas e da Terra


Departamento de Informática e Matemática Aplicada
Programa de Pós-Graduação em Sistemas e Computação
Mestrado Acadêmico em Sistemas e Computação

Otimização de Topologia Irregular Para


Aplicações Tempo Real e Não Tempo Real em
MP-SoCs Baseadas em Redes-em-Chip

Samuel da Silva Oliveira

Natal-RN
Dezembro de 2018
Samuel da Silva Oliveira

Otimização de Topologia Irregular Para Aplicações


Tempo Real e Não Tempo Real em MP-SoCs Baseadas
em Redes-em-Chip

Dissertação de Mestrado apresentada ao Pro-


grama de Pós-Graduação em Sistemas e
Computação do Departamento de Informá-
tica e Matemática Aplicada da Universidade
Federal do Rio Grande do Norte como re-
quisito parcial para a obtenção do grau de
Mestre em Sistemas e Computação.

Linha de pesquisa:
Sistemas Integrados

Orientador
Prof. Dr. Márcio Eduardo Kreutz

PPgSC – Programa de Pós-Graduação em Sistemas e Computação


DIMAp – Departamento de Informática e Matemática Aplicada
CCET – Centro de Ciências Exatas e da Terra
UFRN – Universidade Federal do Rio Grande do Norte

Natal-RN
Dezembro / 2018
Universidade Federal do Rio Grande do Norte - UFRN
Sistema de Bibliotecas - SISBI
Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Prof. Ronaldo Xavier de Arruda - CCET

Oliveira, Samuel da Silva.


Otimização de topologia irregular para aplicações tempo real
e não tempo real em MP-SoCs baseadas em redes-em-chip / Samuel
da Silva Oliveira. - 2018.
104f.: il.

Dissertação (Mestrado em Sistemas e Computação) -


Universidade Federal do Rio Grande do Norte, Centro de Ciências
Exatas e da Terra, Departamento de Informática e Matemática
Aplicada, Programa de Pós-graduação em Sistemas e Computação.
Natal, 2018.
Orientador: Márcio Eduardo Kreutz.

1. Computação - Dissertação. 2. Redes-em-chip - Dissertação.


3. Topologia irregular - Dissertação. 4. Exploração de espaço
projeto - Dissertação. I. Kreutz, Márcio Eduardo. II. Título.

RN/UF/CCET CDU 004

Elaborado por Joseneide Ferreira Dantas - CRB-15/324


Dedico este trabalho a minha família, em especial a meu pai Luiz, minha mãe Socorro e
minha esposa Jayne.
Agradecimentos

Ao longo dessa jornada turbulenta ocorreram vários problemas e tiveram momentos


difíceis que eu poderia ter desistido. Agradeço primeiramente a Deus que me deu ânimo,
sabedoria e forças para continuar. Aos meus pais por sempre acreditarem em mim e
saberem que eu era capaz. A minha esposa que me apoiou durante todo o percusso. Ao
professor Kreutz pela confiança e oportunidade que me concedeu em ser seu orientando.
As professoras Monica e Marjory pela paciência em me ouvir e me ajudar com ideias
e lições. Aos amigos Jefferson, Hiago, Raul e Adelino que sempre contribuíram no que
podiam e não me deixaram desanimar. Ao Eduardo que sempre respondia meus e-mails
e me socorria. A UFRN, DIMAp e ao LaSIC por me acolherem e cederem seus espaços
para estudos e pesquisas. Aos meus familiares e amigos que me acompanham e torciam
por mim, sou grato a todos vocês.
As pessoas que vencem neste mundo são as que procuram as circunstâncias de que
precisam e, quando não as encontram, as criam.

George Bernard Shaw


Otimização de Topologia Irregular Para Aplicações
Tempo Real e Não Tempo Real em MP-SoCs Baseadas
em Redes-em-Chip

Autor: Samuel da Silva Oliveira


Orientador(a): Prof. Dr. Márcio Eduardo Kreutz

Resumo

Com o avanço nas arquiteturas multiprocessadas as redes-em-chip se tornaram uma solu-


ção viável na etapa de comunicação das mesmas. Devido existirem vários tipos de arquite-
turas de comunicação entre as redes-em-chip, algumas usam topologias regulares, que são
mais comuns e fáceis de se projetar. Outras, no entanto preveem alguma irregularidade
nos padrões de comunicação, assim utilizam topologias irregulares. Uma boa exploração
de espaço de projeto pode levar a configurações mais otimizadas. Este trabalho propõe
uma rede com topologia irregular otimizada, onde a comunicação é baseada em tabelas de
roteamento e uma ferramenta que busca realizar essa exploração através de um Algoritmo
Genético. A rede proposta nesse trabalho apresenta roteadores heterogêneos (que podem
ajudar na otimização da rede) e oferece suporte a pacotes tempo real e não tempo real.
O objetivo principal desse trabalho consiste na proposta de uma exploração de espaço de
projeto que objetiva encontrar redes otimizadas para latência média, uma maior porcen-
tagem de pacotes tempo real entregues dentro do prazo estipulado e um ganho em área,
através da diminuição do número de roteadores.

Palavras-chave: Rede-em-Chip, Topologia Irregular, Exploração de Espaço Projeto.


Optimization of Irregular Topology for Real-Time and
No-Real-Time Applications in MP-SoCs Based on
Networks-on-Chip

Author: Samuel da Silva Oliveira


Supervisor: Prof. Dr. Márcio Eduardo Kreutz

Abstract

With the evolution of multiprocessing architectures, Networks-on-Chip (NoCs) have be-


come a viable solution for the communication subsystem. Since there are many possible
architectural implementations, some use regular topologies, which are more common and
easier to design. Others however, follow irregularities in the communication pattern, tur-
ning into irregular topologies. A good design space exploration can give us the configura-
tion with better performance among all architectural possibilities. This work proposes a
network with optimized irregular topology, where the communication is based on routing
tables and a tool that seeks to perform this exploration through a Genetic Algorithm.
The network proposed in this work presents heterogeneous routers (which can help with
network optimization) and supports real-time and non real- time packets. The goal of this
work is to find a network (or a set of networks), through the design space exploration,
that has the best average latency and the highest percentage of packets that meet their
deadlines.

Keywords: Network-on-Chip, Irregular Topology, Design Space Exploration.


Lista de figuras

1 Exemplo de um MP-SoC conectado através de uma NoC . . . . . . . . p. 23

2 Exemplo de uma arquitetura de roteador . . . . . . . . . . . . . . . . . p. 24

3 Formato de uma mensagem . . . . . . . . . . . . . . . . . . . . . . . . p. 25

4 Topologias Diretas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27

5 Topologia Indireta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27

6 Topologia Irregular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28

7 Permutação dos Roteadores e Links na Aplicação (ABABEI, 2010) . . . p. 32

8 Etapa de Broadcasting nos Roteadores UTNoCs (MESQUITA et al., 2016) p. 33

9 Framework de Simulação IrNIRGAM (CHOUDHARY; GAUR; LAXMI, 2011) p. 34

10 Roteadores Rasoc (a), Tonga (b) e Mago (c) (KREUTZ et al., 2005b) . . p. 37

11 Modelo de Fluxograma de um Algoritmo Genético . . . . . . . . . . . . p. 47

12 Exemplo de um Cromossomo no Nosso GA . . . . . . . . . . . . . . . . p. 48

13 Exemplo de Recombinação Entre Cromossomos . . . . . . . . . . . . . p. 50

14 Exemplo de Mutação Entre Cromossomos . . . . . . . . . . . . . . . . p. 51

15 Exemplo de Uma Topologia Irregular Usando a Arquitetura Proposta . p. 52

16 Modelos de Roteadores Usados . . . . . . . . . . . . . . . . . . . . . . p. 54

17 Tabela de Roteamento do Roteador R2 . . . . . . . . . . . . . . . . . . p. 56

18 Preenchimento das Tabelas de Roteamento . . . . . . . . . . . . . . . . p. 57

19 Ferramentas de Tráfego e Simulação . . . . . . . . . . . . . . . . . . . . p. 59

20 Primeira Aplicação (a) e Segunda Aplicação (b) - 10 Tarefas . . . . . . p. 62

21 Terceira Aplicação (a) e Quarta Aplicação (b) - 10 Tarefas . . . . . . . p. 62


22 Gráfico com os valores comparativos de latência para um grafo com 10
aplicações e deadline longo . . . . . . . . . . . . . . . . . . . . . . . . . p. 64

23 Gráfico com os valores comparativos de entrega de pacotes RT para um


grafo com 10 aplicações e deadline longo . . . . . . . . . . . . . . . . . p. 64

24 Gráfico com os valores comparativos de area para um grafo com 10 apli-


cações e deadline longo . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 65

25 Gráfico com os valores comparativos de latência para um grafo com 10


aplicações e deadline médio . . . . . . . . . . . . . . . . . . . . . . . . p. 67

26 Gráfico com os valores comparativos de entrega de pacotes RT para um


grafo com 10 aplicações e deadline médio . . . . . . . . . . . . . . . . . p. 67

27 Gráfico com os valores comparativos de área para um grafo com 10 apli-


cações e deadline médio . . . . . . . . . . . . . . . . . . . . . . . . . . p. 68

28 Gráfico com os valores comparativos de latência para um grafo com 10


aplicações e deadline curto . . . . . . . . . . . . . . . . . . . . . . . . . p. 70

29 Gráfico com os valores comparativos de entrega de pacotes RT para um


grafo com 10 aplicações e deadline curto . . . . . . . . . . . . . . . . . p. 70

30 Gráfico com os valores comparativos de área para um grafo com 10 apli-


cações e deadline curto . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 71

31 Primeira Aplicação (a) e Segunda Aplicação (b) - 15 Tarefas . . . . . . p. 72

32 Terceira Aplicação (a) e Quarta Aplicação (b) - 15 Tarefas . . . . . . . p. 73

33 Gráfico com os valores comparativos de latência para um grafo com 15


aplicações e deadline longo . . . . . . . . . . . . . . . . . . . . . . . . . p. 74

34 Gráfico com os valores comparativos de entrega de pacotes RT para um


grafo com 15 aplicações e deadline longo . . . . . . . . . . . . . . . . . p. 75

35 Gráfico com os valores comparativos de área para um grafo com 15 apli-


cações e deadline longo . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 75

36 Gráfico com os valores comparativos de latência para um grafo com 15


aplicações e deadline médio . . . . . . . . . . . . . . . . . . . . . . . . p. 77

37 Gráfico com os valores comparativos de entrega de pacotes RT para um


grafo com 15 aplicações e deadline médio . . . . . . . . . . . . . . . . . p. 78
38 Gráfico com os valores comparativos de área para um grafo com 15 apli-
cações e deadline médio . . . . . . . . . . . . . . . . . . . . . . . . . . p. 78

39 Gráfico com os valores comparativos de latência para um grafo com 15


aplicações e deadline curto . . . . . . . . . . . . . . . . . . . . . . . . . p. 80

40 Gráfico com os valores comparativos de entrega de pacotes RT para um


grafo com 15 aplicações e deadline curto . . . . . . . . . . . . . . . . . p. 81

41 Gráfico com os valores comparativos de área para um grafo com 15 apli-


cações e deadline curto . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 81

42 Primeira Aplicação Otimizada - 10 Tarefas - Deadline Longo . . . . . . p. 92

43 Segunda Aplicação Otimizada - 10 Tarefas - Deadline Longo . . . . . . p. 93

44 Terceira Aplicação Otimizada - 10 Tarefas - Deadline Longo . . . . . . p. 93

45 Quarta Aplicação Otimizada - 10 Tarefas - Deadline Longo . . . . . . . p. 94

46 Primeira Aplicação Otimizada - 10 Tarefas - Deadline Médio . . . . . . p. 94

47 Segunda Aplicação Otimizada - 10 Tarefas - Deadline Médio . . . . . . p. 95

48 Terceira Aplicação Otimizada - 10 Tarefas - Deadline Médio . . . . . . p. 95

49 Quarta Aplicação Otimizada - 10 Tarefas - Deadline Médio . . . . . . . p. 96

50 Primeira Aplicação Otimizada - 10 Tarefas - Deadline Curto . . . . . . p. 96

51 Segunda Aplicação Otimizada - 10 Tarefas - Deadline Curto . . . . . . p. 97

52 Terceira Aplicação Otimizada - 10 Tarefas - Deadline Curto . . . . . . p. 97

53 Quarta Aplicação Otimizada - 10 Tarefas - Deadline Curto . . . . . . . p. 98

54 Primeira Aplicação Otimizada - 15 Tarefas - Deadline Longo . . . . . . p. 98

55 Segunda Aplicação Otimizada - 15 Tarefas - Deadline Longo . . . . . . p. 99

56 Terceira Aplicação Otimizada - 15 Tarefas - Deadline Longo . . . . . . p. 99

57 Quarta Aplicação Otimizada - 15 Tarefas - Deadline Longo . . . . . . . p. 100

58 Primeira Aplicação Otimizada - 15 Tarefas - Deadline Médio . . . . . . p. 100

59 Segunda Aplicação Otimizada - 15 Tarefas - Deadline Médio . . . . . . p. 101

60 Terceira Aplicação Otimizada - 15 Tarefas - Deadline Médio . . . . . . p. 101


61 Quarta Aplicação Otimizada - 15 Tarefas - Deadline Médio . . . . . . . p. 102

62 Primeira Aplicação Otimizada - 15 Tarefas - Deadline Curto . . . . . . p. 102

63 Segunda Aplicação Otimizada - 15 Tarefas - Deadline Curto . . . . . . p. 103

64 Terceira Aplicação Otimizada - 15 Tarefas - Deadline Curto . . . . . . p. 103

65 Quarta Aplicação Otimizada - 15 Tarefas - Deadline Curto . . . . . . . p. 104


Lista de tabelas

1 Trabalhos Relacionados x Métricas Utilizadas . . . . . . . . . . . . . . p. 44

2 Topologias Irregulares com 10 cores e Deadline Longo . . . . . . . . . . p. 63

3 Topologia Mesh 4x4 e Deadline Longo . . . . . . . . . . . . . . . . . . p. 63

4 Teste T - 10 Tarefas - Deadline Longo . . . . . . . . . . . . . . . . . . p. 63

5 Topologias Irregulares com 10 cores e Deadline Médio . . . . . . . . . . p. 66

6 Topologia Mesh 4x4 e Deadline Médio . . . . . . . . . . . . . . . . . . p. 66

7 Teste T - 10 Tarefas - Deadline Médio . . . . . . . . . . . . . . . . . . p. 67

8 Topologias Irregulares com 10 cores e Deadline Curto . . . . . . . . . . p. 69

9 Topologia Mesh 4x4 e Deadline Curto . . . . . . . . . . . . . . . . . . . p. 69

10 Teste T - 10 Tarefas - Deadline Curto . . . . . . . . . . . . . . . . . . . p. 70

11 Topologias Irregulares com 15 cores e Deadline Longo . . . . . . . . . . p. 73

12 Topologia Mesh 4x4 e Deadline Longo . . . . . . . . . . . . . . . . . . p. 74

13 Teste T - 15 Tarefas - Deadline Longo . . . . . . . . . . . . . . . . . . p. 74

14 Topologias Irregulares com 15 cores e Deadline Médio . . . . . . . . . . p. 77

15 Topologia Mesh 4x4 e Deadline Médio . . . . . . . . . . . . . . . . . . p. 77

16 Teste T - 15 Tarefas - Deadline Médio . . . . . . . . . . . . . . . . . . p. 77

17 Topologias Irregulares com 15 cores e Deadline Curto . . . . . . . . . . p. 80

18 Topologia Mesh 4x4 e Deadline Curto . . . . . . . . . . . . . . . . . . . p. 80

19 Teste T - 15 Tarefas - Deadline Curto . . . . . . . . . . . . . . . . . . . p. 80


Lista de abreviaturas e siglas

MP-SoC – Multiprocessor System-on-Chip

NoC – Network-on-Chip

DSE – Design Space Exploration

RT – Real-Time

No-RT – No Real-Time

GA – Genetic Algorithm

EP – Elemento de Processamento

SoC – System-on-Chip

SI – Sistema Integrado

I/O – Input/Output

RR – Round-Robin

FIFO – First In First Out

CF – Controle de FLuxo

CV – Canais Virtuais

CTG – Communication Task Graph

IP – Intellectual Property

UTNoC – Undefined Topology Network on Chip

RR – Round-Robin

SoCINhet – System-on-Chip Interconnection Network Heterogeneous

SoCIN – System-on-Chip Interconnection Network

RTNoC – Real-Time Network-on-Chip

DAS – Double Arbiter and Switching router


QoS – Quality of Service

NSGA-II – Non-dominated Sorting Genetic Algorithm II

RTL – Register Transfer Language

NS – Nanossegundos

TLM – Transaction Level Modeling

T1 – Roteadores do Tipo 1

T2 – Roteadores do Tipo 2

CI – Circuito Integrado

WiNoC – Wireless Network-on-Chip


Sumário

1 Introdução p. 18

1.1 Objetivos e Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . p. 19

1.2 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21

2 Referencial Teórico p. 22

2.1 Comunicação em MP-SoCs . . . . . . . . . . . . . . . . . . . . . . . . . p. 22

2.2 Redes-em-Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22

2.2.1 Comunicação em uma NoC . . . . . . . . . . . . . . . . . . . . p. 23

2.2.2 Arquitetura de uma NoC . . . . . . . . . . . . . . . . . . . . . . p. 26

2.3 Heurísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28

2.3.1 Algoritmo Genético . . . . . . . . . . . . . . . . . . . . . . . . . p. 29

3 Trabalhos Relacionados p. 31

3.1 Topologias Irregulares . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 31

3.2 Redes-em-Chip Heterogêneas . . . . . . . . . . . . . . . . . . . . . . . . p. 35

3.3 Aplicações Com Tarefas Tempo Real . . . . . . . . . . . . . . . . . . . p. 38

3.4 Métodos de Avaliação em NoCs . . . . . . . . . . . . . . . . . . . . . . p. 40

4 Método Proposto p. 45

4.1 Métricas de Avaliação da Rede Proposta . . . . . . . . . . . . . . . . . p. 45

4.2 Exploração do Espaço Projeto . . . . . . . . . . . . . . . . . . . . . . . p. 46

5 Topologia Irregular Proposta p. 52


5.1 Roteadores Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 53

5.2 Roteamento Proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 55

6 Resultados p. 58

6.1 Ferramenta de Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58

6.2 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60

6.2.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60

6.2.2 Testes Com 10 Tarefas - Deadline Longo . . . . . . . . . . . . . p. 62

6.2.3 Testes Com 10 Tarefas - Deadline Médio . . . . . . . . . . . . . p. 66

6.2.4 Testes Com 10 Tarefas - Deadline Curto . . . . . . . . . . . . . p. 69

6.2.5 Testes Com 15 Tarefas - Deadline Longo . . . . . . . . . . . . . p. 72

6.2.6 Testes Com 15 Tarefas - Deadline Médio . . . . . . . . . . . . . p. 76

6.2.7 Testes Com 15 Tarefas - Deadline Curto . . . . . . . . . . . . . p. 79

7 Considerações Finais p. 84

Referências p. 86

Apêndice A -- Topologias Irregulares Otimizadas p. 91


18

1 Introdução

Com o aumento crescente no número de transistores em uma mesma pastilha de silício


foi possível colocar vários processadores em um mesmo chip (ITRS, 2018), caracterizando
assim o que chamamos de sistemas em chip multiprocessados (Multiprocessor System-on-
Chip - MP-SoCs) . Esses sistemas demandam um processamento maior na comunicação,
devido ao número de cores que é utilizado no projeto. Barramento então passou a não
comportar o grande número de cores devido ao aumento do fio e com isso sua capacitância.
Redes-em-Chip (Networks-on-Chip - NoCs) (BENINI; MICHELI, 2002) foram pensadas
para suprir a comunicação em um MP-SoC. As NoCs são escaláveis e isso as tornam uma
solução mais apropriada.

As NoCs são compostas por roteadores que são dispostos em uma topologia, essa
topologia que caracteriza a rede (TOSUN; AR; OZDEMIR, 2012). As mensagens são trocadas
entre os roteadores a fim de se cumprir o percurso entre origem e destino. O modo como
os roteadores se interligam afeta diretamente o desempenho da rede (DAS et al., 2009),
já que os mesmos definem o caminho entre os cores fonte e destino dos pacotes, o que
pode causar um aumento na latência média. Topologias diferentes ocupam áreas diferentes
devido a forma como os roteadores estão dispostos.

Aplicações genéricas são comumente usadas em topologias regulares, devido a sua


natureza simples e fácil implementação. No entanto devido ao padrão de tráfego muitas
vezes alguns roteadores ficam em desuso, acarretando assim uma maior área e consumo de
energia desnecessário, influenciando assim o desempenho. Otimizações podem ser feitas
alterando a localização dos nodos fonte e destino da rede, tendo assim um melhor uso
dos roteadores, acarretando assim em uma menor latência média e consumo de energia.
Uma mudança de topologia também pode melhorar no uso da rede. Topologias irregulares
oferecem uma otimização em latência, área e potência (TOSUN; AR; OZDEMIR, 2012) já que
pode-se utilizar apenas os roteadores que necessários. Em tempo de projeto pode ser feita
uma exploração das possibilidades da localização dos roteadores dentro da topologia. Essa
exploração do espaço de projeto (DSE - Design Space Exploration) realiza uma busca
19

variando a quantidade de roteadores e posições dos nodos fonte e destino pode mostrar
valores que consigam economia de recursos e obter melhores resultados em relação as
métricas que estão sendo priorizadas. Para isso uma ferramenta em alto nível ajudaria
realizando essa exploração de espaço projeto.

1.1 Objetivos e Contribuições

Então é visto que uma busca no espaço de projeto é uma solução adequado a fim de
se otimizar a rede de acordo com as métricas estabelecidas e que topologias irregulares é
uma provável escolha para uma aplicação específica, pois esse tipo de topologia tende a
diminuir os custos em área e latência. Quando se é trabalhado com aplicações que conte-
nham tarefas de tempo real (Real-Time - RT) , a preocupação para que os pacotes com
essa característica cheguem ao seu destino dentro do prazo estipulado é bem maior, já
que o atraso pode acarretar grandes perdas para o funcionamento da aplicação. Diversas
técnicas podem ser usadas para conseguir alcançar esse objetivo de otimização de latên-
cia média e entrega dos pacotes tempo real no prazo. Uma forma de se fazer isso seria
adicionar prioridades aos pacotes RT, para que os mesmos possam ter uma certa prefe-
rência no momento de uma contenção do canal. O uso de uma arquitetura com roteadores
heterogêneos também pode ter um grande impacto na latência final, já que diferentes
tipos roteadores podem obter desempenhos diferentes e uma mescla nesses roteadores na
topologia pode nos dá um aumento de desempenho (KREUTZ et al., 2005b).

Em sua dissertação, Jonathan Mesquita demonstra que é possível gerar uma rede com
topologia irregular capaz de alcançar um desempenho em latência que seja otimizado (de-
sempenho próximo ao grafo de aplicação da rede). Em seu trabalho são utilizadas arquite-
turas homogêneas e apenas pacotes não tempo real (No-Real-Time - No-RT) (MESQUITA,
2016).

Dessa forma esse trabalho se propõe a responder a seguinte pergunta de pesquisa:

• É possível gerar uma rede irregular com melhor possível desempenho de latência
média, quando comparado a uma rede com topologia mesh, uma taxa de entrega de
pacotes tempo real dentro do prazo estipulado que seja mais próxima da totalidade
possível e conseguir um valor em área abaixo ao do grafo da aplicação?

Esse trabalho tem como proposta realizar uma exploração de espaço projeto para
encontrar um conjunto de topologias de redes irregulares otimizadas, a fim de obter um
20

bom desempenho para uma determinada aplicação específica. As redes irregulares aqui
propostas suportam aplicações com tarefas de tempo real e não tempo real. Objetiva-se
então, desenvolver um método para realizar a exploração da arquitetura, para encontrar
redes otimizadas para valores de latência média e pacotes tempo-real que consigam chegar
dentro do prazo estipulado. Além disso é buscada também uma diminuição da área das
redes, através da busca por topologias contendo o menor número de roteadores possível.
Para ajudar nessa tarefa algumas estratégias foram adotadas, como o uso de arquiteturas
com roteadores heterogêneos, onde os mesmos estão em função de melhorar o desempenho
da NoC (CARDOSO et al., 2005); pacotes RT com prioridades, assim em um tráfego muito
alto, os pacotes RT teriam prioridade a passar na porta de um roteador, por exemplo;
canais virtuais preemptivos que ajudariam no tráfego da rede A otimização em si fica por
conta de um algoritmo genético (Genetic Algorithm - GA) . Esse algoritmo recebe como
entrada os valores de latência, deadline e quantidade de roteadores e então o posiciona-
mento e o número dos roteadores são alterados, colocando-se em alguns roteadores mais
de um core associado, para gerar novas redes otimizadas. Esse procedimento é repetido
algumas vezes, até que o algoritmo genético forme uma população e dela crie novos des-
cendentes com novos valores de simulação. O procedimento continua a se repetir até uma
condição de parada ser dada e o algoritmo obter o melhor conjunto de redes irregulares,
dadas as métricas escolhidas para otimização. Topologias irregulares não usam métodos
comuns de roteamento devido a sua natureza arquitetural, portanto nesse trabalho foi
usada uma forma de tabelas de roteamento que ajuda na comunicação entre os roteado-
res, onde cada roteador tem uma tabela armazenada que informa a que distância estão
os outros roteadores da rede.

Para realizar a exploração no espaço de projeto foi usado um algoritmo genético


como heurística. O GA possibilita o percurso no projeto, selecionando as redes irregulares
através das métricas escolhidas e ao mesmo tempo realiza eventuais otimizações. O GA
é portátil e é separado da representação do problema (SOUZA, 2008), o tornando assim
uma boa escolha para esse trabalho.

Para esse trabalho foi desenvolvida uma ferramenta de simulação em SystemC (SYS-
TEMC, 2018). A ferramenta simula as características de uma NoC irregular com seus
padrões de tráfego e gera um resultado com a latência média, porcentagem dos pacotes
entregues dentro do deadline e a quantidade de roteadores utilizados. Foi desenvolvido um
algoritmo genético para ser usado como heurística e realizar a otimização das topologias
irregulares aqui utilizadas.
21

1.2 Organização do trabalho

Os capítulos seguintes desse trabalho estão organizados da seguinte forma: no próximo


capítulo será apresentado alguns conceitos de redes-em-chip, a fim que possa-se entender
melhor como funciona uma NoC e espera-se compreender mais adequadamente as técni-
cas empregadas nesse trabalho e como foi implementada a a rede utilizada nesse projeto.
No terceiro capítulo serão vistos alguns trabalhos que se relacionam com esse, para que
possa-se ver o que tem sido estudado na área. Os trabalhos relacionados se dividem em
três categorias: os trabalhos sobre topologias irregulares, os trabalhos sobre arquiteturas
heterogêneas e os trabalhos sobre aplicações com tarefas tempo real. O quarto capítulo
trata das métricas de avaliações em uma NoC e modos de otimização das mesmas. Nesse
capítulo serão vistos técnicas que podem ser empregadas para melhorar o desempenho
em uma NoC e o funcionamento do GA que é utilizado como forma de heurística nessa
pesquisa, a fim de melhorar o desempenho da rede. O quinto capítulo descreve o funcio-
namento da arquitetura aqui proposta e o funcionamento da rede. Nesse capítulo pode-se
ter uma ideia geral da metodologia usada para a implementação das redes e escolha das
mesmas, também se têm uma boa visão do funcionamento da comunicação dentro da
rede. No sexto capítulo pode-se encontrar alguns resultados preliminares. Esses resulta-
dos foram feitos em uma versão inferior a versão final de como ficará a ferramenta de
simulação. Esses experimentos são feitos tendo como base uma arquitetura puramente
homogênea e conta apenas com pacotes de tempo real. E por último o sétimo capítulo
trata da conclusão e do cronograma das atividades que ainda faltam ser executadas.
22

2 Referencial Teórico

Este capítulo aborda os fundamentos sobre as tecnologias estudadas e apresentadas


nesse trabalho. Abaixo seguem-se concentos que vão desde a explicação de como funci-
ona a comunicação entre os elementos de processamento, até a forma como será feita a
otimização da rede com o uso de heurísticas.

2.1 Comunicação em MP-SoCs

Diversos elementos de processamento (EP) tem sido adicionados a SoCs (System-on-


Chips) (AGARWAL; ISKANDER; SHANKAR, 2009), devido a uma maior integração desses
EPs em uma pastilha de silício e a diminuição do tamanho do transistor (ZEFERINO,
2003). Com isso têm-se o que chamamos de MP-SoCs. Atualmente em um único chip
pode-se ter diversos componentes, como: processadores, memórias, dispositivos de I/O,
etc.

O barramento que até então realizava a comunicação entre esses EPs tornou-se não
tão eficiente, já que o mesmo possui um limite de elementos que podem ser conectados
a ele. Segundo (COTA; AMORY; LUBASZEWSKI, 2011), os barramentos não atendem o de-
sempenho necessário para muitas aplicações e também não fornece a largura de banda,
latência e consumo de energia que são necessários. Portanto, uma nova arquitetura de
comunicação se faz necessária para atender essa demanda de aplicações. As NoCs são ar-
quiteturas escaláveis e reutilizáveis, portanto apresentam vantagens sobre os barramentos
e são uma boa escolha para projetos com MP-SoCs.

2.2 Redes-em-Chip

A figura 1 mostra um exemplo de uma NoC fazendo a comunicação de um MP-SoC.


Uma NoC é composta por um conjunto de roteadores conectados ponto a ponto de forma
que estejam em algum tipo de topologia. Esses roteadores são conectados por sua vez a
23

Figura 1: Exemplo de um MP-SoC conectado através de uma NoC

cores em um sistema integrado (SI) , como dispositivos de entrada e saída (I/O) , memó-
rias, processadores, etc. Esses cores se comunicam entre si trocando mensagens através
dos roteadores. Os roteadores recebem as mensagens do core a que estão interconectados
e as roteiam até chegar no roteador ligado ao core destino das mensagens. (ZEFERINO et
al., 2007) fala que dentre as vantagens da NoC, há duas que tem destaque em relação ao
barramento: o crescimento da largura de banda de acordo com aumento do número de
EPs, enquanto a do barramento é fixa. A outra vantagem é o paralelismo na comunica-
ção que o barramento não oferece, o que gera uma grande diferença na latência média
final. Outras vantagens da NoC são: compartilhamento de fios, possibilitando assim uma
utilização mais eficiente e diminuição da área consumida (BOLOTIN et al., 2004), (DALLY;
TOWLES, 2004); confiabilidade devido a diversas técnicas que podem ser utilizadas que
permitem esse aumento de confiabilidade (VELLANKI; BANERJEE; CHATHA, 2004); e reuso
devido a sua modularização, assim pode-se aproveitar a estrutura de comunicação e os
cores existentes para outra aplicação (BENINI; MICHELI, 2002).

2.2.1 Comunicação em uma NoC

Na figura 2 é mostrado um exemplo do funcionamento interno de um roteador de NoC.


O roteador é o componente responsável por fazer as ligações entre os cores e também
realizar o roteamento das mensagens, para que as mesmas cheguem nos seus destinos
(AGARWAL; ISKANDER; SHANKAR, 2009). Um roteador é composto por um conjunto de
portas de entrada e saída por onde os pacotes trafegam. Existe também uma porta que
é chamada de local, no qual essa porta é a responsável direto pela conexão do core ao
roteador. Essas portas são interligadas internamente por um crossbar, que nada mais é que
24

Figura 2: Exemplo de uma arquitetura de roteador

um núcleo de chaveamento (COTA; AMORY; LUBASZEWSKI, 2011). Como pode ser visto
na figura abaixo, cada porta de entrada é conectada em todas as portas de saída, exceto
na sua própria. O roteador tem como função principal o roteamento dos pacotes que saem
de um core fonte e são enviadas através dos roteadores e enlaces até o core destino. Esse
roteamento é possível através de um algoritmo que lê informações contidas no cabeçalho
do pacote, assim escolhendo uma porta de saída do roteador, para que o pacote possa então
seguir por um caminho até chegar ao core desejado. O algoritmo deve tentar prever e/ou
evitar deadlock e liveloock (ZEFERINO, 2003). O roteamento pode ser determinístico ou
adaptável. Roteamento determinístico é quando os pacotes já saem do roteador sabendo
todo o seu percusso o que ajuda a prevenir deadlock e liveloock. Roteamento adaptável é
quando o pacote vai tomando a decisão de por onde seguir à medida que vai passando de
roteador em roteador, isso pode ser útil em caso de congestionamento da rede.

As mensagens podem ser divididas em pacotes, o que por sua vez podem ser divididos
em flits (MATOS, 2010), como a figura 3 abaixo mostra. O chaveamento é responsável
direto pelo modo que as mensagens serão enviadas pela rede. O chaveamento pode ser
25

Figura 3: Formato de uma mensagem

de dois tipos: no chaveamento por circuito, um caminho dedicado é aberto do roteador


fonte até o destino, assim fazendo que a mensagem percorra esse caminho sem nenhum
desvio e que pacote chegue íntegro até a sua meta. Nesse modelo pode haver um aumento
na latência devido a outra mensagem precisar passar por um roteador que está alocado e
ter que esperar até ficar livre (COTA; AMORY; LUBASZEWSKI, 2011); no chaveamento por
pacote cada pacote é então roteado passando pelos roteadores sem existir a necessidade
da alocação do caminho. Os pacotes podem então tomar caminhos diferentes, dependendo
do algoritmo de roteamento implementado. Nesse caso que não existe um caminho pré
definido e reserva de recursos, um maior uso da rede se torna possível (CARDOSO et al.,
2005). Esse modo de chaveamento possibilita uma latência média menor, já que se é feito
um melhor uso do paralelismo da NoC. Esse modelo de comunicação se assemelha as
redes de computadores, onde as mensagens são transformadas em pacotes e são enviadas
através de um meio de comunicação, tendo uma preocupação com o congestionamento da
rede e integridade do pacote ao chegar no destino.

A arbitragem lida com conflitos internos do roteador. Quando mais de uma porta de
entrada quer enviar um pacote ao mesmo tempo pela mesma porta de saída, é o árbitro
quem decide de quem é a vez de enviar o pacote. Cada porta pode ter o seu árbitro (dis-
tribuído) ou termos um único árbitro por roteador (centralizado). As prioridades podem
ser estáticas e cada porta ter uma prioridade diferente ou pode ser algo dinâmico em que
as prioridades de cada porta variem de acordo com um certo período de tempo (COTA;
AMORY; LUBASZEWSKI, 2011). A exemplo temos a arbitragem do tipo Round-Robin (RR)
, que pode ser chamado de árbitro justo. Esse modelo de arbitragem escolhe uma porta na
rodada para ser a que tem maior prioridade, depois de um período de tempo essa maior
26

prioridade é passada para a porta seguinte e esse ciclo continua infinitamente.

A memorização se dá por buffers ligados as portas de entrada do roteador. Quando


o fluxo de pacotes chegando é muito alto e não dá para alocar esses pacotes nas por-
tas de saída em tempo hábil, esses buffers armazenam os pacotes até eles poderem ser
encaminhados. Geralmente os buffers utilizam modelo FIFO (First In First Out) , onde
o primeiro pacote a entrar é o primeiro a sair. O tamanho e o número de buffers em
uma NoC pode afetar diretamente o desempenho da rede, pode beneficiar na questão do
tráfego e também pode consumir uma área maior ((COTA; AMORY; LUBASZEWSKI, 2011).

O controle de fluxo (CF) tem como objetivo definir como os recursos de rede serão
alocados. Decisões sobre saber de antemão se o canal que irá receber o pacote está livre
ou não é trabalho do controle de fluxo, tentando assim garantir uma melhor performance.
O CF pode ser centralizado ou distribuído. No centralizado as decisões de roteamento são
tomadas globalmente e aplicadas a todos os roteadores. No modo distribuído as decisões
são tomadas em cada roteador individualmente (COTA; AMORY; LUBASZEWSKI, 2011).
Canais virtuais (CV) também é uma técnica de CF. O CV combina técnicas de CF
baseado em créditos e memorização multi-via. Cada canal físico é compartilhado por
vários canais lógicos. Esse compartilhamento ocorre usando multiplexação de tempo. O
objetivo desses canais virtuais é melhorar o desempenho da rede, evitar os deadlocks e
garantir um tráfego seguro (BJERREGAARD; MAHADEVAN, 2006).

2.2.2 Arquitetura de uma NoC

As topologias são parte importante nas NoCs. As topologias definem como os rotea-
dores estão fisicamente interconectados. Os roteadores podem ser representados por um
grafo G = (R,C), onde R é o conjunto de roteadores e C o conjunto dos canais de comuni-
cação. As topologias afetam diretamente o desempenho da rede e também pode interferir
no tipo de roteamento a ser escolhido (DAS et al., 2009), (MATOS, 2010). As topologias
podem ser divididas em diretas e indiretas (JUNIOR, 2010).

Na figura 4 acima pode-se ver alguns exemplos de topologias diretas: (a) Mesh-2D;
(b) Torus; (c) Hipercubo. As topologias diretas são caracterizadas por cada roteador ser
conectado ao EP, constituindo assim um nodo.

Na figura 5 é mostrado um exemplo de topologia indireta, a chamada Árvore Gorda(ZEFERINO,


2003). Nesse tipo de topologia os EPs são ligados apenas há alguns roteadores e esses ro-
teadores são conectados com outros a fim de cada EP consiga enviar mensagem para
27

Figura 4: Topologias Diretas

Figura 5: Topologia Indireta

qualquer outro EP na rede.

As topologias regulares possuem padrões de conexão já definidos entre os roteadores


da rede (DUATO; YALAMANCHILI; NI, 2003). Como as conexões entre os roteadores já é
pré-definida, o endereço desses roteadores podem ser dados por coordenadas. As topolo-
gias regulares são de fácil implementação e reutilizáveis devido a sua estrutura. Diversos
tipos de aplicações podem ser utilizadas com essas topologias. Mas, dada uma aplicação
específica essas topologias podem não ser tão otimizadas, pois o grafo da aplicação pode
conter menos cores que a topologia tem de roteadores. Mesmo os roteadores podendo ser
desligados, ainda sim estarão ocupando área no chip (TOSUN; AR; OZDEMIR, 2012).

Topologias irregulares podem prover essa otimização para aplicações específicas de-
vido à natureza arquitetural desse tipo de topologia. Os roteadores apresentam padrões
diferentes de conexões, assim uma topologia irregular é mais viável para uma aplicação
específica (PASRICHA; DUTT, 2010), como pode ser vista na figura 6.

As topologias irregulares permitem a otimização em latência, área e potência. Dessa


forma essas topologias são um grande objeto de pesquisas na academia e também na
indústria (TOSUN; AR; OZDEMIR, 2012), (OZTURK; DEMIRBAS, 2010). A topologia irregular
28

Figura 6: Topologia Irregular

tem um consegue obter melhores resultados de desempenho para aplicações específicas,


caso a aplicação seja mudada o desempenho pode não ser o mesmo, além disso ela não é
escalável.

2.3 Heurísticas

A exploração do espaço do projeto é uma importante fase para se conseguir redes


que sejam otimizadas para alguma métrica buscada. No entanto, como se trata de um
problema de otimização NP-Completo o uso de heurísticas ajuda na busca exaustiva por
uma solução que seja a mais aceitável para o projeto.

Métodos heurísticos são algoritmos que buscam resolver problemas de forma explo-
ratória. Uma solução ótima nem sempre é alvo desses métodos, podendo apenas visarem
uma solução que seja a mais viável para o problema. Essa característica tem como base a
inteligência humana (BUENO, 2009).

Existem diversos tipos de heurísticas que podem realizar o reagrupamento dos ro-
teadores para achar uma topologia que seja mais adequada ao problema abordado. As
heurísticas podem ser divididas nos seguintes grupos:

• heurísticas de construção: são aquelas soluções que são construídas elemento a ele-
mento, que segue um critério de otimização até achar uma solução que seja viável;

• heurísticas de busca de vizinhança: são as quais partem necessariamente de uma


solução que é inicialmente viável e tenta melhorar essa solução através de troca até
que não seja mais possível haver uma melhorias ou uma condição de parada ser
29

atingida;

• heurísticas sistemáticas: são aquelas que as soluções são percorridas utilizando cri-
térios de ramificação e corte da árvore;

• heurísticas híbridas: é a combinação de duas ou mais heurísticas que tenham estra-


tégias diferentes;

• meta-heurísticas: são heurísticas genéricas que são mais sofisticadas, onde uma heu-
rística é gerenciada por algum tipo de procedimento que inteligentemente visa ex-
plorar o campo de soluções.

Para esse trabalho foram então analisados diversos tipos de heurísticas e o Algoritmo
Genético foi escolhido por ser fácil implementação e poder ser separado do problema, o
que o torna portátil.

2.3.1 Algoritmo Genético

Algoritmo genético é uma técnica de heurística que foi desenvolvida na década de


70 por Holland (HOLLAND, 1992). O algoritmo foi desenvolvido baseado na teoria da
evolução de Charles Darwin. Seguindo os mesmos princípios da teoria de Darwin, os
algoritmos genéticos começam com uma população que competem entre si para então
serem gerados descendentes, esses descendentes sofrem algum tipo de mutação e assim vai
seguindo, para que os cromossomos melhorados possam passar através dos descendentes
até formarem uma população otimizada para um dado problema.

Os GA tem algumas características que são um pouco peculiares em relação a outros


métodos de buscas já existentes:

• são baseados em um conjunto de soluções possíveis;

• não envolvem modelagem do problema;

• o algoritmo apresenta como resultado uma população de soluções;

• trata-se de um método probabilístico.

O GA também possui algumas terminologias que são emprestadas da biologia, tais


como:
30

• população: conjunto de cromossomos ou possíveis soluções;

• cromossomo ou indivíduo: conjunto de genes que representa uma solução para o


problema;

• gene: menor unidade de informação do cromossomo;

• cruzamento: processo de reprodução sexuada em que combinam-se genes de dois


cromossomos para formar um novo indivíduo; mutação: anomalias que causam al-
teração aleatória nos genes;

• geração: iteração do algoritmo genético;

• aptidão ou fitness: indicador qualitativo do indivíduo;

• função objetivo: é a função matemática que avalia o cromossomo em relação ao


problema.
31

3 Trabalhos Relacionados

O estudo sobre topologias irregulares tem tido um crescimento, devido a sua capaci-
dade de otimização. Muitos pesquisadores têm tratado de vários temas relevantes, como
síntese, otimização, roteamento, exploração de espaço e projeto. Neste capítulo serão vis-
tos alguns trabalhos da literatura que tratam sobre síntese e otimização de topologias
irregulares. Também serão abordados nesse capítulo trabalhos que contemplam arquite-
turas heterogêneas de rede e que suportam aplicações com tarefas de tempo real.

3.1 Topologias Irregulares

(ABABEI, 2010) propõe sintetizar uma topologia customizada de uma NoC através
de floorplaning. A síntese é feita usando um simulador programado através da linguagem
C++. O simulador suporta roteadores com um número arbitrário de portas e canais
virtuais. As topologias são verificadas usando precisão de ciclos. Um grafo das tarefas e
comunicações é dado (Communication Task Graph - CTG) e uma floorplan inicial. O
objetivo é gerar M floorplans diferentes a fim de obter melhores resultados de latência
e área. A alocação dos IP/cores para os roteadores é feita para cada floorplan. Quatro
roteadores são colocados nos cantos de cada core. Essa atribuição é feita usando um
algoritmo de correspondência e um grafo bipartido que utiliza dois conjuntos de nós: os
nós que representam os cores da aplicação e os nós que representam os roteadores. Os
IP(Intellectual Property) ou cores são ligados aos roteadores e a criação dos links é feita.
A medida que os que o simulador vai otimizando os floorplans, os links dos roteadores são
removidos, assim também diminuindo o número de portas e a área ocupada. O roteamento
é realizado por tabelas dentro de cada roteador. Após toda a estruturação dos links dos
roteadores, os caminhos de roteamento são calculados e armazenados nas tabelas de cada
roteador. Os experimentos foram feitos usando algumas aplicações variando os números
de cores e a taxa de injeção. Os resultados se mostram satisfatórios quando comparados
com uma topologia regular Mesh. A figura 7 mostra como é realizada a alocação dos
32

roteadores e links e também a otimização dos números de links.

Figura 7: Permutação dos Roteadores e Links na Aplicação (ABABEI, 2010)

As tarefas do grafo são divididas através de um algoritmo de correspondência e um


grafo bipartido, onde cada tarefa é alocada a quatro roteadores, um roteador para cada
canto depois que a tarefa for alocada em uma floorplan. Os links então são montados e
depois reduzidos a fim de uma otimização na área.

A rede chamada UTNoC (Undefined Topology Network on Chip) proposta por (MES-
QUITA et al., 2016) possui uma topologia irregular e cada roteador pode se conectar com
qualquer outro na rede. Cada roteador pode se ligar a apenas um core. O roteamento é
realizado através de tabelas dentro de cada roteador. Cada roteador só tem conhecimento
prévio dos roteadores ligados diretamente a eles, então para a realização da comunicação
integral entre todos os roteadores, cada roteador envia uma mensagem de broadcasting
enviando as informações do roteador de origem, a fim de montar a tabela de roteamento
de cada roteador, contendo a distância de cada roteador que compõe a rede. A figura 8
mostra como funciona a etapa de broadcasting na rede UTNoC. Os roteadores da rede
UTNoC podem ter um número variado de portas, já que cada roteador pode se ligar a
um número variado de roteadores.

Cada roteador envia uma mensagem de broadcasting, essa mensagem é então passada
por todos os outros roteadores e à medida que eles vão recebendo essa mensagem, é feita
uma leitura de um campo que contabiliza por quantos roteadores a mensagem passou
desde a origem, assim então é possível montar uma tabela dentro de cada roteador con-
tendo o nome dos outros roteadores e quantos saltos são necessários para chegar nesses
33

Figura 8: Etapa de Broadcasting nos Roteadores UTNoCs (MESQUITA et al., 2016)

roteadores.

Os experimentos executados tomando como base a rede UTNoC foram rodados em um


simulador desenvolvido em SystemC. A ferramenta de simulação também conta com o uso
de um algoritmo genético para percorrer o espaço de busca procurando redes UTNoCs.
As instâncias da rede são criadas através dos parâmetros da aplicação que são passados
como entrada na ferramenta. As redes têm o comportamento de comunicação simulados
e a latência média é retornada, esse resultado de latência é devolvido a ferramenta de ex-
ploração. Esse valor é usado pelo algoritmo genético para assim escolher novos indivíduos.
A topologia irregular da UTNoC toma como base uma topologia da rede regular Mesh
e são retirados links a fim de otimizar a rede em relação a latência média e obter um
desempenho bem próximo ao do CTG da aplicação. Os experimentos foram executados
em 4 aplicações com taxas de injeções variadas. Os resultados alcançados mostram que é
possível obter uma topologia irregular com um desempenho próximo ao grafo da aplica-
ção, com uma redução no número de conexões e apenas um pequeno aumento na latência
média. Quando comparado a uma Mesh a taxa de latência é bem menor. Diferente do
proposto neste trabalho, onde são considerados roteadores heterogêneos e pacotes RT.

IrNIRGAM é um framework baseado no NIRGAM que oferece suporte a topologias


irregulares que é desenvolvido usando SystemC e C++ para simular o desempenho de uma
34

NoC irregular, que faz a utilização de canais virtuais, arbitragem Round-Robin (RR) e
roteamento baseado em tabelas. A topologia é direta, então cada IP/Core é conetado
diretamente a um único roteador. (CHOUDHARY; GAUR; LAXMI, 2011) apresenta a ferra-
menta IrNIRGAM para simular o comportamento de NoCs com topologias irregulares.
A ferramenta suporta diversas topologias e algoritmos de roteamento e gera como saída
resultados de latência. Parâmetros como topologia, tipo do roteamento, tráfego dos pa-
cotes, dentre outros, são passados ao simulador através de arquivos de configuração. A
ferramenta também pode gerar gráficos das saídas da simulação. A figura 9 mostra como
funciona o framework IrNIRGAM. O IrNIRGAM recebe como entrada um arquivo de con-
figuração, onde é feita a escolha da topologia. Também como entrada é tida a aplicação
específica e o padrão de tráfego. Depois disso o simulador com essas informações realiza
os testes e gera os resultados esperados e também faz a síntese da rede.

Figura 9: Framework de Simulação IrNIRGAM (CHOUDHARY; GAUR; LAXMI, 2011)

Quanto aos experimentos, foram gerados um conjunto de topologias irregulares para


aplicações específicas. A injeção dos flits é feita a cada dois ciclos de clock, mantendo assim
esse intervalo do ínicio ao fim da simulação. As simulações foram realizadas utilizando
10000 ciclos. As comparações de resultados foram feitas em cima de uma Mesh 2D. São
usadas aplicações que tem entre 16 e 81 cores. Os resultados de latência na topologia
irregular têm uma taxa de 9,4 a 18,4 ciclos contra 13,2 a 69 ciclos da Mesh. No quesito
de consumo de energia temos 18,5% a 25,8% da topologia irregular contra 24,6% a 53%
da rede Mesh.
35

(TOSUN; AR; OZDEMIR, 2012) buscando minimizar o consumo de energia e a latência na


comunicação dos pacotes, para isso ele cria topologias irregulares através de dois métodos
distintos. O primeiro método usado é dividido em duas etapas. A primeira parte procura
decompor o grafo da aplicação que é dado em cluster e baseado no grafo da aplicação,
na melhor forma possível e cada core é associado a um roteador. A segunda parte do
primeiro método busca conectar todos os roteadores em uma topologia que possa ter
os menores custos de comunicação. O outro método utiliza um algoritmo genético que
recebe uma aplicação e gera várias soluções de redes. Essas soluções são dadas através de
operadores do algoritmo genético. No final o algoritmo genético retorna a melhor rede,
com os menores custos de comunicação e com a menor quantidade de roteadores possíveis.
Depois que as redes irregulares são criadas, é realizado o floorplaning da rede, com isso é
observado o consumo de energia da rede e os custos de comunicação, a partir daí a melhor
rede é escolhida. Os resultados dos experimentos desse trabalho mostram que a segunda
técnica tem melhores resultados que a primeira.

(MILFONT et al., 2017) procura avaliar restrições de caminhos em topologias irregulares,


através do uso de uma ferramenta que visa garantir o deadlock free e gera métricas para
analisar e avaliar em tempo de projeto a qualidade do roteamento. É utilizado um modelo
de falha para gerar topologias com links falhos, o que permite explorar a manufatura em
cenários usando tecnologia CMOS de 65nm e 22nm, a partir da variabilidade do atraso
de links e da força de correlação espacial. É também usado um algoritmo de segmentação
para diminuir a distância média entre as falhas na topologia. Os resultados experimentais
mostram que a porcentagem de falhas aumenta de forma significativa com a força de
correlação espacial, enquanto a distância entre falhas diminui. Também quanto maior a
porcentagem de falha, maior a distância média de roteamento.

3.2 Redes-em-Chip Heterogêneas

Redes-em-Chip podem ser uma ótima solução para um SoC devido ao seu alto desem-
penho causado pelo paralelismo na comunicação. Entretanto, esse paralelismo demanda
uma quantidade maior de elementos (roteadores) para ajudar na comunicação entre os
cores e com isso têm-se um bom aumento na área do SoC. (CARDOSO et al., 2005) propõe
uma solução envolvendo roteadores de tamanhos heterogêneos, para assim minimizar os
custos em área. A rede considerada compreende um trade-off entre latência e área, bus-
cando assim reduzir a área e manter o desempenho da rede. A rede proposta é chamada
de SoCINhet (System-on-Chip Interconnection Network Heterogeneous) e é baseada na
36

rede SoCIN (System-on-Chip Interconnection Network) (ZEFERINO; SUSIN, 2003). A rede


desenvolvida por (CARDOSO et al., 2005) utiliza dois tipos de roteadores Rasoc (ZEFERINO;
SUSIN, 2003) e Tonga (CARDOZO et al., 2004). O roteador Rasoc tem desempenho melhor
quando comparado ao Tonga, mas ocupa mais área, portanto uma mescla desses dois
roteadores em uma rede pode acarretar em um bom balanço entre área e desempenho. O
roteador Rasoc é compatível com as topologias Mesh e Torus e pode ter até 5 portas bi-
direcionais. Usa roteamento XY, árbitro RR e buffers FIFO. O roteador Tonga é baseado
no Rasoc, a diferença entre eles está na interconexão interna das portas. Na figura 10a e
10b podem ser vistos os roteadores Rasoc e Tonga respectivamente.

Pelos resultados alcançados na sintetização dos roteadores, o roteador Tonga teve


aproximadamente 40% menos área que o roteador Rasoc. A otimização na rede é feita
usando a Busca-Tabu como heurística para percorrer o espaço de busca do projeto a
fim de encontrar melhores resultados de área e latência mesclando o uso dos dois tipos
de roteadores. A rede resultante é uma rede Mesh, devido à natureza arquitetural dos
roteadores. As redes usadas nos experimentos foram descritas em C++ e simuladas em
um simulador descrito em SystemC. Foram usadas redes de tamanhos até 10x10 e os
resultados obtidos mostram uma redução na área de até 35%, conseguindo manter o
desempenho da rede.

(KREUTZ et al., 2005b) também aborda a criação de NoCs usando roteadores hetero-
gêneos, a fim de otimizar a latência e consumo de energia. Um algoritmo de otimização é
empregado para poder posicionar os roteadores da melhor forma possível e poder alcançar
os resultados desejados. É usado o padrão de comunicação da aplicação para ajudar na
busca do melhor posicionamento dos roteadores em relação aos cores, assim permitindo a
avaliação de latência e consumo de energia para diferentes topologias de NoC. (KREUTZ
et al., 2005b) também usa a rede SoCINhet. Além dos roteadores Rasoc e Toga, o roteador
Mago também é utilizado nesse trabalho. O roteador Mago é dentre os três o que tem
melhores valores de aŕea, enquanto o Rasoc mostra um desempenho melhor. A figura 10
mostra como funcionam os roteadores Rasoc, Tonga e Mago.

O roteador Rasoc é um roteador mais comum, o mesmo contém 4 portas para conexões
para outros roteadores e uma porta local, o que aumenta a sua eficiência em desempenho,
mas dá um bom aumento na área do projeto. O roteador Tonga utiliza dois multiplexa-
dores, um para cada duas portas, assim perde-se um pouco no desempenho, mas ganha-se
uma redução em área. O último roteador é o Mago que utiliza um único multiplexador
para as quatro portas de entrada. O ganho em área é muito maior se comparado ao Rasoc,
37

Figura 10: Roteadores Rasoc (a), Tonga (b) e Mago (c) (KREUTZ et al., 2005b)

mas em questão de desempenho as perdas são grandes. Desse modo o Tonga fica como
meio termo entre os três roteadores.

O uso combinado desses três tipos de roteadores na rede e o uso da Busca-Tabu para
a realização da otimização da mesma, consegue gerar um trade-off entre latência média
e consumo de energia. Dada uma aplicação específica e um CTG é feita uma busca pelo
espaço do projeto. Essa busca é feita através de um algoritmo de otimização chamado
Busca-Tabu. A permuta dos roteadores é então testada para serem achados os melhores
resultados para o problema em questão. A busca é então feita levando em consideração
a latência ou consumo de energia como prioridade, assim o algoritmo leva essa métrica
em consideração e devolve uma solução que mostre uma rede otimizada para a prioridade
escolhida. Quando a diminuição de energia é priorizada, a rede é inicialmente composta
por roteadores Mago, já que os mesmos têm as melhores taxas de energia. Caso os valores
de latência não sejam alcançados, alguns roteadores então são trocados a fim de atingir
38

os resultados esperados. Quando a prioridade é latência, a rede inicialmente começa com


todos os roteadores sendo do tipo Rasoc, já que o Rasoc tem melhores valores de latência
média. Caso os resultados para consumo de energia não sejam os esperados, então são
trocados alguns roteadores e acrescentados os outros dois tipos, para assim chegarem aos
valores ideais de energia.

Os roteadores usados no trabalho foram descritos em C++, e foram usados em um


simulador compilado em código C++. Os resultados alcançados foram satisfatórios e
mostram que é possível conseguir um trade-off entre latência média e consumo de energia
para redes com arquiteturas diferentes de roteadores. Os resultados mostram que em uma
rede heterogênea o consumo de energia e a latência conseguem ser menores que em uma
rede homogênea.

(BEN-ITZHAK et al., 2015) apresenta uma nova arquitetura de NoC que utiliza também
roteadores heterogêneos. Esses modelos de roteadores suportam diferentes larguras de
banda e têm números diferentes de canais virtuais por cada porta. Os roteadores utilizam
buffers compartilhados e tem como vantagens desacoplamentos de largura de banda de
entrada e saída, também apresenta um melhor desempenho quando se é comparado a
uma arquitetura de roteador de buffer de entrada. (BEN-ITZHAK et al., 2015) também
introduzem e comprovam formalmente uma nova abordagem que reduz o número médio
de buffers compartilhados que são necessários, sem assim comprometer o desempenho
do roteador. Quando é comparado com um roteador homogêneo com buffer de entrada,
o roteador proposto por (BEN-ITZHAK et al., 2015) consegue melhorar a saturação da
taxa de transferência de 6% a 47% para padrões de tráfego padrão. O roteador também,
atinge uma melhoria significativa no tempo de execução. Também é oferecida uma melhor
escalabilidade, redução de área e energia de 15% a 60% para NoCs com tamanhos entre
4x4 e 16x16.

3.3 Aplicações Com Tarefas Tempo Real

Aplicações com tarefas tempo real demandam um cuidado maior na hora de projetar
a rede-em-chip, já que as mensagens trafegadas tem um prazo de tempo para chegarem
ao destinatário.

Quando se é falado de aplicações de tempo real, pode-se dividir em duas categorias:


hard real time e software real time. A primeira categoria implica que não pode haver algum
atraso na entrega do pacote, o que pode ocasionar um erro fatal no uso do sistema, como
39

por exemplo o atraso no acionamento do airbag de um automóvel. A segunda categoria


aceita atraso na entrega do pacote, esse atraso pode trazer mal funcionamento do sistema,
mas é algo que é aceitável, como por exemplo o atraso do áudio em uma transmissão de
vídeo.

Para essa pesquisa será adotado o uso de aplicações que sejam hard real time.

(SAYUTI; INDRUSIAK, 2013) em seu trabalho propõe uma rede para otimização do
consumo de energia sem sacrificar o tempo de entrega das mensagens. Essa otimização é
feita usando um algoritmo genético, onde os cromossomos desenvolvidos representam a
alocação das tarefas para os cores da aplicação. Esses cromossomos são guiados por uma
função multi-objetiva que combina macro modelos de consumo de energia e análise de
tempo de entrega das mensagens. Os prazos de deadline são bem precisos e um pequeno
atraso pode ser considerado como um descarte total do pacote.

A rede utilizada por (SHI, 2009) é uma NoC homogênea, usando comutação por pacotes
do tipo wormhole e cada core pode executar mais de uma tarefa e usam arbitragem com
prioridade preemptiva. O roteamento usado é do tipo determinístico e canais virtuais com
prioridade preemptiva. O algoritmo genético usado tem como função principal otimizar
a rede, para isso o GA conta com duas funções fitness que buscam encontrar alocações
melhores de tarefas que possam atender as restrições de uma aplicação RT e também
minimizar a dissipação de energia. Os melhores descendentes da população gerada são
escolhidos por torneio e esses são os aptos a gerarem uma nova população.

Duas aplicações de benchmark foram usadas para a realização dos experimentos. Um


deles é baseado em um veículo autônomo realista e consiste em 33 tarefas e 39 mensagens.
O segundo benchmark é baseado em uma aplicação sintética que é constituída de 50
tarefas RT e 50 mensagens RT. Foram usadas redes Mesh-2D 4x4 e 5x5, roteamento XY
e buffers de duas posições por canais virtuais. Para as aplicações testadas o algoritmo
genético conseguiu otimizar as especificações da NoC, de modo que foi possível diminuir
o consumo de energia e manter as restrições de tempo real para as aplicações usadas.

(LV et al., 2008) propõe um simulador que para NoC com comunicações de tempo
real (RTNoC) . O simulador em questão utiliza comutação de pacotes do tipo wormhole.
A ferramenta também é usada para avaliar o desempenho de diversos algoritmos de es-
calonamento para um conjunto de tarefas de tempo real. A topologia escolhida para os
experimentos foi a Mesh-2D pela sua fácil implementação e por ser uma das topologias
mais utilizadas em projetos de redes-em-chip. O roteamento empregado é o XY, onde
primeiro é percorrida a linha e depois a coluna, trançando uma rota do nodo origem
40

até o nodo destino. Os tempos que levam enviando e recebendo pacotes são calculados
dentro do tempo da tarefa. Um conjunto de tarefas são consideradas desejáveis se todas
elas chegam ao destino dentro do prazo estipulado, portanto eles entendem que a tarefa é
escalável. O RTNoC é um simulador de tempo discreto, o tempo avança um intervalo fixo
para cada nova etapa da simulação. A ferramenta de simulação é implementada no Visual
C++ 6.0. O conjunto de tarefas pode ser inserido manualmente ou gerado pelo RTNoC.
A simulação é executada em segundo plano e retorna se a rede é ou não escalonável.
Para os experimentos são gerados 100 conjuntos de tarefas, cada conjunto contendo no
máximo 6 tarefas. Os resultados mostram que a ferramenta de simulação RTNoC é uma
boa ferramenta para simulação de redes que fazem uso de aplicações de tempo real.

(DRIDI et al., 2017) propõe um novo roteador de canal virtual projetado para sistemas
de criticidade mista implantada nas NoCs. O objetivo principal desse roteador é reduzir o
tempo de latência de pior caso na comunicação de sistemas altamente críticos. O segundo
objetivo é melhorar a taxa de utilização da rede e reduzir a latência de comunicação para
fluxos de baixa importância. O roteador proposto é chamado DAS (Double Arbiter and
Switching router) usa as técnicas Wormhole e Store and Forward de forma conjunta para
se adaptar a fluxos não críticos e críticos, respectivamente. Simulações com precisão de
ciclo feitas em SystemC mostram uma taxa de uso da rede de 15%, o atraso na comuni-
cação muita crítica caiu em 80% e o atraso na comunicação não crítica teve um aumento
de 18%, quando comparado a roteadores que usam vários canais virtuais.

3.4 Métodos de Avaliação em NoCs

O uso de redes-em-chips pode ser uma ótima escolha para uso em diversos tipos
de MP-SoCs. Devido a sua natureza, as NoCs concedem grandes vantagens no que diz
respeito a latência, devido ao uso de paralelismo na comunicação, também tem a questão
do reuso de uma mesma NoC para outra aplicação e também a escalabilidade. No entanto
devido ao uso de roteadores a área ocupada pela aplicação é bem maior do que seria se o
barramento fosse usado. O consumo de energia em uma NoC também é maior, já que cada
roteador usado também tem um consumo de energia atrelado a ele. Por isso os projetistas
buscam através de diversas técnicas otimizar a rede segundo algumas métricas desejadas,
assim a rede teria um custo aceitável. Um exemplo seria a otimização de uma rede para
diminuir a área usada, onde a área é uma restrição maior de projeto.

(CORRÊA, 2007) fala que para se cumprir as restrições para NoCs RT dentro do
41

deadline esperado, algumas adaptações devem ser feitas a fim de otimizar a rede, e buscado
manter o desempenho da rede, ao mesmo tempo garantindo a qualidade de serviço (QoS –
Quality of Service) e os deadlines para os pacotes tempo real. A exploração do espaço de
projeto é então feita no nível mais alto de abstração, dessa forma é esperado manter o nível
do projeto e realizar uma busca mais ampla e rápida. Nessa exploração a configuração da
rede tem impacto direto na QoS e nos requisitos temporais. Seu trabalho é baseado na
rede SoCIN, a topologia utilizada é a Mesh-2D, o roteamento é o XY e o chaveamento é
o por pacotes do tipo wormhole. As métricas utilizadas na avaliação de desempenho da
rede foram a arbitragem, a memorização e o controle de fluxo. (CORRÊA, 2007) também
menciona que uma abordagem de permutação dos cores de acordo com a largura de
banda que as mensagens exigem pode ser uma forma de evitar que os pacotes cheguem
fora do deadline. As estratégias utilizadas objetivavam permitir o uso mínimo dos recursos,
para assim atender os requisitos das aplicações RT dentro das exigências da QoS. Como
resultado pode-se ver que as escolhas nos parâmetros da rede tem impacto no desempenho
da aplicação, diminuindo os pacotes que não chegam dentro do prazo de entrega, assim
melhorando a latência e também o consumo de energia.

(BRUCH, 2015) também usa aplicações de tempo real em sua pesquisa e ele busca uma
garantia que esses pacotes RT sejam entregues dentro do tempo de deadline previsto. Para
isso é feito uso de canais virtuais e atribuídos níveis de prioridade para cada pacote. Assim
cada roteador além dos buffers padrões de armazenamento também conta com alguns CV
preemptivos, onde os pacotes RT que tem uma prioridade maior passam a frente dos
pacotes com prioridades mais baixas, dessa forma é garantida uma melhor entrega nesses
pacotes e uma quantidade de deadlines perdidos menores. Na pesquisa do (BRUCH, 2015)
o foco é achar um trade-off entre garantia de prazos, consumo de energia e a quantidade
de canais virtuais utilizados, já que quanto mais canais, mais consumo de energia. Para
isso é usada uma heurística para realizar a alocação de tarefas multiobjetivo baseada no
algoritmo genético NSGA-II Non-dominated Sorting Genetic Algorithm II . A heurística
foi utilizada na identificação de alocações que venham a apresentar um bom compromisso
entre garantia de prazos, consumo de energia e quantidade de canais virtuais que são
utilizados pela arquitetura de comunicação. Nos resultados é visto que a heurística foi
capaz de encontrar alocações com 99,9% de pacotes entregues dentro do prazo. As soluções
de energia estão diretamente ligadas ao número de canais virtuais. As melhores alocações
em quesito de energia eram os que não apresentavam canais virtuais, mas esses apresentam
as maiores perdas nos prazos.

(MURALI; BENINI; MICHELI, 2005) apresentam uma ferramenta chamada SUNMAP,


42

essa ferramenta é capaz de realizar a alocação das tarefas para uma aplicação específica
em uma NoC. A SUNMAP trabalha com diversos tipos de topologias, como topologias
diretas e indiretas, entre elas podemos destacar, Mesh, Torus, Hypercube e. Butterfly. A
ferramenta também conta com vários tipos de roteamento: caminho mínimo, divisão de
tráfego, dimensão ordenada. A SUNMAP também conta com uma heurística de busca
tabu, que tem uma função multi-objetiva que engloba atraso de comunicação média, área
e consumo de energia. A ferramenta recebe como entrada as métricas desejadas, para em
cima disso escolher a melhor topologia. Tais métricas podem ser: minimizar o atraso na
comunicação, área, dissipação de energia, largura de banda, etc. No processo de alocação
são usados alguns modelos de tráfego, como abstração da comunicação entre os cores. O
projeto pode também ser gerado em SystemC, assim podem ser simulados para verificação
se todas as restrições foram atendidas. O objetivo principal da ferramenta é escolher a
melhor topologia para uma dada aplicação e com isso realizar a alocação das tarefas para
rede.

(CARVALHO, 2009) foca na alocação e otimização de MP-SoCs heterogêneos usando


redes-em-chip. O trabalho faz uma investigação e avaliação do desempenho de heurísticas
para a realização da alocação dinâmico de tarefas, com o principal objetivo de minimizar
os congestionamentos que acontecem na comunicação de uma NoC. As tarefas são aloca-
das de acordo com os tráfegos de comunicação e as requisições e ocupações dos canais da
NoC. São utilizadas técnicas de algoritmos gulosos na alocação e as tarefas são alocadas
uma por vez. Então a decisão é baseada na informação local da aplicação, que são apenas
relacionadas a tarefa requisitada. Através dos experimentos realizados com base na mo-
delagem do sistema em um nível RTL (Register Transfer Language) , pode-se então obter
uma redução de até 31% nas cargas dos canais de comunicação, 15% na latência média e
de até 78% nos níveis médios de congestionamento da rede.

A tabela 1 elenca todos os pontos abordados nesse trabalho e relaciona com todos os
trabalhos relacionados apresentados nesse capítulo. Diferente do que foi visto em todos
esses trabalhos relacionados, essa pesquisa abordará estratégias que contará com NoCs de
topologia irregular, e também será feito uso de pacotes tempo real e não tempo real. O
intuito desta pesquisa é o desenvolvimento de uma ferramenta para exploração de espaço
e projeto, para a otimização de topologias irregulares e a diminuição dos custos de latência
média, quantidade dos pacotes tempo real que são entregues fora do prazo. Ao mesmo
tempo que se tem um foque nessas métricas é visado também reduzir a área do chip, para
que que essa área fique a menor possível, respeitando as restrições de projeto. O uso do
algoritmo genético como heurística ajuda a conseguir esses objetivos através da geração
43

de várias permutações da rede e da diminuição do número de roteadores, alocando mais


de um core por roteador, conseguindo assim, uma redução de área.
Tabela 1: Trabalhos Relacionados x Métricas Utilizadas

Trabalhos/Métricas DSE Topologia Irregular Latência Média Roteadores Heterogêneos Pacotes RT Área
( ABABEI , 2010) X X X
( MESQUITA et al., 2016) X X X
( CHOUDHARY; GAUR; LAXMI , 2011) X X
( TOSUN; AR; OZDEMIR , 2012) X X X
( MILFONT et al. , 2017) X
( CARDOSO et al. , 2005) X X X X
( KREUTZ et al. , 2005b) X X X X
(BEN-ITZHAK et al., 2015) X X
( SAYUTI; INDRUSIAK , 2013) X X
( SHI , 2009) X X
( LV et al. , 2008) X
( DRIDI et al. , 2017) X X
( CORRÊA , 2007) X X
( BRUCH , 2015) X X
( MURALI; BENINI; MICHELI , 2005) X X X
( CARVALHO , 2009) X X X
Este Trabalho X X X X X X
44
45

4 Método Proposto

Esse capítulo aborda como é realizada a avaliação da rede aqui proposta. Será mos-
trada a metodologia e o funcionamento da heurística de otimização da rede, que busca
encontrar soluções para a aplicação específica de acordo com a métricas escolhidas.

4.1 Métricas de Avaliação da Rede Proposta

Uma rede-em-chip é uma arquitetura de comunicação capaz de enviar e receber men-


sagens entre os cores de uma determinada aplicação. O principal objetivo de uma NoC é
garantir que todas essas mensagens sejam entregues, assim o sistema pode se comportar
da maneira esperada (RIJPKEMA et al., 2003). Para aplicações com tarefas tempo real essa
preocupação é ainda maior, já que muitas vezes a integridade do sistema depende que to-
das as mensagens RT cheguem aos seus destinos dentro do prazo. Portanto a avaliação de
desempenho de uma rede consiste em verificar se a mesma atende os requisitos necessários
quanto a latência e vazão.

Neste trabalho pretende-se avaliar a latência média da rede, a porcentagem de pacotes


RT que conseguem chegar ao seu destino dentro do deadline e a diminuição da área através
da redução do número de roteadores. Para se calcular a porcentagem RT que conseguiram
chegar ao destino foi implementado um contador em cada porta local, que fica responsável
por contabilizar os pacotes tempo real que chegam ao seu destino. Assim que um pacote RT
chega o contador é incrementado e no final se tem a quantidade de pacotes que chegaram
dentro do prazo estipulado, esse valor é comparado com a quantidade de pacotes enviados
e então é feito o cálculo da porcentagem dos pacotes RT entregues. A área nesse trabalho
será calculada através do número de roteadores. Como a simulação é realizada em SystemC
TLM, não se tem os valores exatos de tamanho para cada roteador e seus componentes.
Por isso é optado calcular a área somando cada unidade de roteador presente na topologia.
A latência basicamente é a quantidade de tempo gasta que um pacote leva para chegar
ao seu destino. Geralmente o valor da latência é calculado em cima dos ciclos de clock
46

que são gastos para um pacote percorrer seu caminho até chegar no destino esperado
(DUATO; YALAMANCHILI; NI, 2003). Para esse trabalho esse valor de latência será medido
em nanossegundos (NS) .

A latência de um pacote individualmente não causa grandes mudanças na rede como


um todo. Por isso quando se é falado em latência de uma rede, geralmente se é referido
a latência média da mesma. Essa latência média é mais significativa para a avaliação do
desempenho da rede (DUATO; YALAMANCHILI; NI, 2003). A latência média pode então
ser obtida através da soma da latência de cada pacote trafegado na rede e dividido pelo
número total de pacotes. Abaixo pode-se ver melhor como essa relação funciona.

No de Pctes
X Latência do Pcte
Latência Média =
i=1
No de Pctes

Nesse trabalho são usadas topologias irregulares, objetivando-se otimizar a rede e


também o desempenho referente a latência média. São usados também roteadores hete-
rogêneos para melhorar a rede proposta aqui, já que diversos tipos de roteadores podem
contribuir para a melhora da latência e área (KREUTZ et al., 2005b). Em relação aos dea-
dlines das mensagens RT, técnicas como canais virtuais e prioridades diferenciadas podem
ajudar a ter uma melhor performance e evitar deadlines perdidos.

4.2 Exploração do Espaço Projeto

A exploração do espaço e projeto nesse trabalho é feita através de um algoritmo


genético. Dada uma aplicação específica e um conjunto de topologias irregulares iniciais,
o GA busca então alterar a permutação dos roteadores dentro da rede e gerar o melhor
conjunto de topologias otimizadas. Para realizar essa otimização o GA leva em conta os
valores de latência média, porcentagem de pacotes que conseguiram atingir o deadline e
a quantidade de roteadores presentes na topologia. A figura 11 através de fluxograma nos
mostra como funciona um algoritmo genético.

O algoritmo genético inicia com uma geração zero, apenas com uma população inicial.
Essa população é então avaliada através de uma função fitness. A avaliação é feita através
das métricas propostas, que são latência média, porcentagem do deadline dos pacotes RT
e o número de roteadores. É atribuída então uma aptidão a cada indivíduo da população e
são escolhidos os melhores para se reproduzirem. Essa escolha é realizada tomando como
métrica principal a quantidade de pacotes RT que cumpriram o deadline, depois são
47

Figura 11: Modelo de Fluxograma de um Algoritmo Genético

observados a latência média e quantidade de roteadores presentes na topologia. Estando


escolhidos, é então feito o cruzamento trocando informações genéticas dos cromossomos.
Depois da nova população ter sido gerada uma mutação é aplicada nessa população. O
número de geração é então incrementado e tudo é repetido até uma condição de parada
ser atingida.

Um cromossomo que é utilizado no algoritmo genético representa uma solução para o


problema. A representação desse cromossomo depende do problema abordado e também
do que se deseja manipular geneticamente (PACHECO et al., 1999). No caso desse trabalho,
um cromossomo seria a representação de uma ligação entre os roteadores para uma rede
irregular, ou seja, basicamente a forma como os roteadores estão interligados fisicamente.

O cromossomo é uma representação de ligação entre os roteadores da rede, então o


cromossomo representa como os roteadores estão ligados entre si. Na figura 12 pode ser
48

Figura 12: Exemplo de um Cromossomo no Nosso GA

visto então um cromossomo com duas fileiras, cada fileira contém os roteadores presentes
na rede e a ligação entre esses roteadores é realizada entre um roteador e o que está
diretamente abaixo dele na outra fileira. Dessa forma os roteadores que não possuírem
ligação entre si, para se comunicar com os outros roteadores é preciso então encaminhar as
mensagens para os roteadores no qual eles se conectam e esses por sua vez enviam até que
as mensagens cheguem no destino final. A população inicial é criada de forma aleatória
e começa com um roteador para cada core no grafo da aplicação e então a função fitness
avalia a rede de acordo com a latência média e deadline. O algoritmo genético fiscaliza se as
topologias criadas são válidas, ou seja, se cada roteador pode se comunicar com qualquer
outro na topologia e também um mesmo roteador só pode aparecer no máximo 4 vezes no
cromossomo, já que um roteador pode se conectar no máximo com outros quatro. O GA
vai então retirando roteadores da topologia para então otimizá-la em espaço. As novas
gerações de topologias vão sendo testadas a fim de encontrar uma topologia que atenda
aos requisitos de latência, área e deadline. Abaixo pode-se ver a relação quanto ao número
de roteadores dentro da topologia.

No de Cores
b c ≤ No de Roteadores ≤ No de Cores
2

O número de roteadores na topologia utilizada aqui, tem então no máximo o mesmo


número de cores da aplicação e no mínimo o piso do número total de cores da aplicação
sobre dois. Inicialmente cada roteador começa com um core associado a ele, então o
algoritmo genético vai retirando roteadores a fim de diminuir a área. No final a topologia
pode ficar com até metade dos roteadores, visto que um número menor de roteadores
poderia comprometer a performance de latência média e deadline dos pacotes RT. Então
a cada execução completa de avaliação do GA um roteador é decrementado da topologia e
a avaliação começa novamente. Esse processo se repete até chegar na quantidade mínima
de roteadores. Dessa forma cada roteador terá no máximo dois cores associados a eles, o
que acarretará em uma redução na área, sem comprometer tanto o desempenho de latência
e deadline. Cada core é ligado na porta local de um roteador, quando é então realizada a
49

redução no número de roteadores, os cores que eram associados a eles são ligados em outros
roteadores, fazendo com que um roteador venha a ter mais de um core conectado a ele.
Cada roteador pode ter um número variado de portas, tendo como limite máximo 4 portas.
Dessa forma pode-se dizer que na rede utilizada aqui, cada roteador tem no máximo ligação
direta com outros quatro. O algoritmo genético também é responsável por mesclar os tipos
de roteadores usados na topologia. Inicialmente a topologia começa utilizando apenas um
tipo de roteador, a cada simulação vão sendo testadas diferentes combinações entre os
tipos de roteadores, para se verificar se houve aumento na performance, esperando assim
se conseguir resultados mais otimizados de simulações.

Depois de todos os indivíduos da população inicial serem testados e terem uma aptidão
atribuída a eles, é então escolhido os indivíduos com os melhores níveis de aptidão a fim
de ser realizado o cruzamento. O cruzamento é realizado através da geração de uma string
de bits aleatórios que variam entre 0 e 1, essa string tem o mesmo tamanho que os pais.
São então gerados dois filhos, o primeiro filho é feito utilizando as posições com valor 1
na primeira linha da string de bits e substituindo pelo número correspondente da mesma
posição do primeiro pai. O restante da fileira que contém valores 0 são substituídos pelos
valores da mesma posição da primeira linha do segundo pai. Para preencher a segunda
linha do primeiro filho é feito o inversão. Os valores que contém 1 são substituídos pelos
valores da mesma posição da segunda linha do segundo pai e os valores restantes são
trocados pelo equivalente da segunda linha do primeiro pai. O segundo filho é gerado de
forma inversa, assim não se corre o risco de repetir conexões já testadas. Na figura 13
abaixo pode ser visto como funcionar uma operação de crossover em nossos cromossomos.

Alguns indivíduos da nova população criada podem então sofrer o que é chamado de
mutação. A mutação nada mais é do que alteração nas características dos cromossomos, a
fim de aumentar a sua diversidade. Esses indivíduos que sofrem mutação são geralmente
uma porcentagem bem pequena e são escolhidos aleatoriamente. Existem diversas formas
de se realizar essa mutação, nesse trabalho será usada a abordagem de troca de genes
(PACHECO et al., 1999). Na etapa de mutação é então trocada o primeiro roteador da
fileira de cima pelo o último da mesma fileira. A figura 14 exemplifica como essa troca é
realizada no processo de mutação.

Como se é visto na figura 14, é feita uma permuta entre o primeiro roteador da
primeira fileira pelo último, alterando assim a conexão entre dois pares de roteadores.

Para finalizar são escolhidos os indivíduos que continuarão a fazer parte da popula-
ção e os que serão eliminados. Nesse trabalho é utilizado o método do elitismo, onde os
50

Figura 13: Exemplo de Recombinação Entre Cromossomos

indivíduos mais aptos são mantidos e os menos aptos são descartados. Esses seres serão
simulados novamente e gerarão uma nova população. Esse procedimento se repete até
uma condição de parada ser atendida.
51

Figura 14: Exemplo de Mutação Entre Cromossomos


52

5 Topologia Irregular Proposta

Uma topologia irregular nada mais é do que uma topologia sem um padrão definido
de interconexão entre os roteadores. Dessa forma em uma topologia irregular cada rote-
ador pode se conectar com qualquer outro roteador dentro da topologia. Contando com
essa irregularidade na topologia pode-se então conseguir desempenhos melhores do que
topologias regulares, para certas aplicações. Nesse capítulo será abordado a forma como
a topologia irregular usada nesse trabalho funciona. Na figura 15 temos um exemplo de
uma topologia irregular usando a arquitetura proposta aqui.

Figura 15: Exemplo de Uma Topologia Irregular Usando a Arquitetura Proposta


53

5.1 Roteadores Propostos

A arquitetura proposta aqui prevê o uso de mais de um core por roteador, de forma que
possa-se obter uma economia na área total ocupada pelo chip. Inicialmente a arquitetura
começa usando um roteador para cada core no grafo da aplicação. Com o uso do do
algoritmo genético o número de roteadores é decrementado e nos roteadores restantes são
adicionados os cores da aplicação de forma que um roteador receba mais de um core, dessa
forma a topologia consegue comportar todos os cores em um número menor de roteadores.

Cada roteador tem um número variado de portas, podendo ter até 4 portas para
comunicação com os demais roteadores e uma porta local para se comunicar com o core
da aplicação. Quando o GA faz a diminuição no número de roteadores e aloca mais de um
core por roteador, é então criada uma outra porta local e alocada ao novo core. Usando
esse método pode-se alocar até dois cores por roteador e são usadas no máximo 4 ligações
de roteador com roteador.

Nessa arquitetura como é disposto o uso de topologia irregulares, técnicas comuns


de roteamento não se aplicam. Então os algoritmos muito usados como o XY, YX, West
First não podem ser aproveitados para o nosso caso. Então foi proposta uma abordagem
de roteamento baseado em tabelas. Cada roteador utiliza uma tabela de roteamento que
contém as informações sobre as posições dos outros roteadores dentro da topologia. O
árbitro utilizado é o Round-Robin, o chaveamento é o Wormhole, o controle de fluxo é o
Handshake.

É proposto nesse trabalho o uso de roteadores heterogêneos para se tentar minimizar


os custos de latência e tentar garantir que os pacotes RT consigam chegar ao seu des-
tino dentro do prazo estabelecido. Então são utilizados 2 tipos de roteadores na nossa
arquitetura. Na figura 16 pode-se ver os roteadores que serão utilizados.

São usados dois tipos de roteadores. Um tipo de roteador simples (figura 16.a) que
tem até 4 portas para comunicação com outros roteadores e uma porta local, um árbitro
centralizado, uma tabela de roteamento e um algoritmo de roteamento. O segundo mo-
delo de roteador (figura 16.b) também faz uso da técnica de controle de fluxo de canais
virtuais. Esse modelo usa dois CVs preemptivos por cada canal físico em cada porta de
entrada do roteador, um árbitro centralizado, uma tabela de roteamento e um algoritmo
de roteamento. O primeiro modelo de roteador que não contém canais virtuais leva 8 ciclos
para atravessar um pacote. O segundo modelo de roteador, que contém canais virtuais
preemptivos leva 3 ciclos para atravessar um pacote.
54

Figura 16: Modelos de Roteadores Usados

A topologia começa usando apenas o primeiro modelo de roteador e à medida que o GA


vai otimizando a topologia, roteadores do segundo tipo são adicionados e com isso forma-se
uma topologia com roteadores mesclados. Os roteadores têm pesos diferentes, já que uns
55

ocupam mais área que outros. É importante levar em consideração o peso dos roteadores
quando se é calculada a área final da rede. Os pacotes RT gerados pela aplicação específica
têm uma prioridade maior em relação aos pacotes comuns que circulam pela rede. Esses
pacotes com níveis de prioridade maior fazem bom uso dos canais virtuais preemptivos e
quando existe um pacote RT e um pacote comum, o pacote RT tem preferência no uso
dos canais.

5.2 Roteamento Proposto

Devido à natureza da topologia, nesse projeto o roteamento não pode contar com os
algoritmos usados em topologias regulares comuns. Para isso uma abordagem de rotea-
mento baseado em tabelas é utilizada para resolver o problema do roteamento.

Cada roteador possui uma tabela com 3 colunas e uma linha para cada roteador na
rede. Na tabela temos informações sobre o roteador de destino, o número da porta de
saída para chegar nesse roteador e número de saltos para conseguir chegar nesse roteador.
A figura 17 mostra como exemplo a tabela de roteamento do roteador R2.

Em cada linha da tabela temos informações sobre cada roteador que compõe a topo-
logia da rede. No exemplo acima têm-se que para chegar no roteador R2 não é necessário
nenhum salto, já que que o pacote já se encontra no roteador de destino. A porta de
saída do roteador R2 mostrada na tabela refere-se qual porta deve ser usada para enviar
os pacotes para o core que está associado a esse roteador. As linhas restantes falam dos
outros roteadores e a que distância esses roteadores estão do roteador R2.

As tabelas em cada roteador são construídas durante a formação da topologia da rede.


Cada tabela contém o endereço de qualquer roteador presente na topologia, portanto
quanto maior for a topologia, maior será a tabela e o seu espaço ocupado dentro do
roteador. Como nesse trabalho a área é medida pela quantidade de roteadores e não pelo
espaço ocupado de fato por cada roteador e seus componentes, esse é um problema que
não será abordado nesse trabalho, mas sim futuramente.

Quando os roteadores são alocados cada um em sua posição eles vão construindo e
mapeando as tabelas ao mesmo tempo. Na figura 18 pode ser visto como isso ocorre.

Na figura 18.a têm-se a rede com todos os roteadores em seu estado inicial e com
suas respectivas tabelas vazias. Na figura 18.b as tabelas começam a ser preenchidas
com os valores referente as posições de cada roteador na topologia e como chegar nesses
56

Figura 17: Tabela de Roteamento do Roteador R2

roteadores. Para formar as tabelas de roteamento é utilizado um algoritmo de caminho


mínimo, assim em cada tabela só teremos uma única rota para cada roteador na rede.

O uso de tabelas para realizar o roteamento na topologia impacta diretamente na


latência da rede, já que as tabelas precisam ser acessadas para se conhecer o caminho que
os pacotes têm que percorrer. Outro impacto direto é no quesito área, já que as tabelas
fazem com que os roteadores tenham um aumento no seu tamanho.
57

Figura 18: Preenchimento das Tabelas de Roteamento


58

6 Resultados

Neste capítulo serão mostrados os resultados obtidos referente as simulações e ex-


perimentos executados. Os resultados alcançados são gerados em redes com topologias
irregulares. Essas redes usam um algoritmo genético para otimizar as ligações entre os
roteadores e diminuir a área da rede através da retirada de roteadores. Os experimentos
focam na latência média da rede e no deadline dos pacotes de tempo real. Também são
utilizados roteadores heterogêneos que também visam a otimização da rede.

Para a obtenção dos resultados foi desenvolvida uma ferramenta em C++ que con-
tribuirá na geração de tráfego da rede. Também foi desenvolvida outra ferramenta em
C++, assistida da biblioteca SystemC, onde a mesma é o simulador das arquiteturas de
redes-em-chip. Os experimentos foram feitos através de explorações do espaço e projeto
da rede, a fim de atender otimização em taxa de latência média e quantidade de pacotes
que conseguiram chegar dentro do prazo estipulado.

6.1 Ferramenta de Simulação

A figura abaixo mostra o diagrama e a relação entre as ferramentas desenvolvidas e


utilizadas. Foram desenvolvidas duas ferramentas. A primeira ferramenta é uma geradora
de tráfego que foi desenvolvida em C++. Um grafo de uma aplicação serve de entrada
para a ferramenta geradora de tráfego contendo o padrão de comunicação da rede, como os
nodos de origem e destino para cada par de comunicação. Então são acrescidos os números
de pacotes a serem transmitidos e o prazo que um pacote RT tem para chegar ao destino
esperado. Esse prazo é dado em nanossegundos. Cada par de comunicação de origem e
destino recebe a mesma quantidade de pacotes a serem trafegado e também a o deadline
dado é o mesmo para todos os pacotes RT da aplicação. Ao final de tudo é gerado um
arquivo contendo todas as informações de tráfego da aplicação. A segunda ferramenta é
o simulador da rede, que foi desenvolvido usando a biblioteca do SystemC, o que garante
uma precisão maior nos resultados. O simulador foi implementado usando SystemC em
59

Figura 19: Ferramentas de Tráfego e Simulação

nível TLM (Transaction Level Modeling) (PANDA, 2001). Essa ferramenta também realiza
a DSE através da junção da simulação da rede em SystemC e do GA que é utilizado para
gerar as topologias otimizadas. O tempo de execução de cada simulação é o mesmo tempo
de prazo de entregas para os pacotes de tempo real. Quando o prazo de deadline acaba a
simulação termina e verifica a quantidade de pacotes RT que conseguiram cumprir esse
tempo. Também é feito o cálculo da latência média para todos os pacotes que foram
entregues durante esse tempo de simulação.

A ferramenta associa cada tarefa ao seu roteador correspondente, por exemplo: a


tarefa 1 é associada ao roteador 1, a tarefa 2 ao roteador 2 e assim por diante. Assim são
criados apenas a quantidade de roteadores necessárias, o que já nos dá uma otimização
em área.

A princípio o algoritmo genético cria uma população aleatória. Cada indivíduo dessa
população é uma representação de uma topologia irregular para a rede. Essas topologias
são então passados para a ferramenta de simulação e a mesma utiliza um algoritmo de
menor caminho para criar as tabelas de roteamento de cada roteador, assim cada roteador
recebe uma tabela que diz a que distância estão os outros roteadores da rede e através
de qual roteador deve ser realizado o acesso. O arquivo contendo as informações sobre o
tráfego da rede é recebido como uma entrada e só depois disso a ferramenta começa a
simular a comunicação na rede. A ferramenta de simulação gera como saída os cromosso-
mos que foram dados inicialmente pelo genético totalmente avaliados. Valores de aptidão
60

são dados para cada métrica que está sendo analisada, servindo como referência maior a
quantidade de pacotes RT que conseguiram cumprir o deadline estipulado.

Cada população contém 50 indivíduos. A cada simulação são escolhidos os 10 melhores


e os 10 piores. Essa escolha é feita baseada na taxa de latência média final (dada em
nanossegundos) e a taxa de pacotes que conseguem cumprir com seu deadline (dada em
porcentagem). Com os 10 melhores é feito o cruzamento, a fim de gerar 10 novos filhos
que irão substituir os 10 piores escolhidos. A mutação ocorre em cima de 50% dos novos
filhos gerados. Esse valor foi escolhido devido a ser um número médio de cromossomos que
seriam afetados e terem seus genes alterados. Essa nova população passará novamente por
simulação, a fim de gerar os resultados e novamente outra população. O processo é então
repetido 50 vezes. Esse é um valor também médio para otimização do problema, já que
um valor maior traria um maior custo computacional e de tempo para se obter a solução
desejada e um valor menor poderia não encontrar uma solução que seja bastante otimizada
para o problema. Para cada otimização completa de conexão entre os roteadores, é também
feita uma otimização nos tipos de roteadores utilizados. É diminuído o roteador do tipo
1 e ao mesmo tempo aumentado o do tipo 2, até que todas as formas de combinações
tenham sidos testadas. Também é realizada uma otimização no número de roteadores,
onde também a cada ciclo de otimização das conexões entre os roteadores e também dos
tipos de roteadores, são retirados roteadores um por um até chegar no limite mínimo
de roteadores estabelecidos. No final é escolhido o indivíduo que apresentou os melhores
valores de latência média, quantidade de pacotes que chegaram ao destino dentro do prazo
e menor número de roteadores.

6.2 Experimentos

Essa seção tratará dos experimentos feitos para validar a rede proposta aqui neste tra-
balho. As subseções falaram da metodologia utilizada para a realização dos experimentos
e também traz os resultados obtidos e suas respectivas análises. As simulações de cada
aplicação levaram em média 12 horas de simulação.

6.2.1 Metodologia

As aplicações utilizadas nesses experimentos são sintéticas e foram criadas através da


ferramenta TGFF (DICK; RHODES; WOLF, 1998). Foram gerados dois conjuntos de aplica-
ções. O primeiro conjunto de aplicações contém 10 tarefas associadas. O segundo conjunto
61

de aplicações contém 15 tarefas associadas. Todos os grafos gerados possuem fluxos de


comunicação diferentes. O volume de dados, a quantidade de pacotes transmitidos e o
prazo de entrega dos pacotes RT são diferentes em cada aplicação.

Os experimentos serão testados a priori com um valor de deadline longo para os


pacotes tempo real, e depois serão testados para mais dois conjuntos, onde o tempo de
deadline é diminuído, a fim de se descobrir quando a rede proposta deixa de atender às
necessidades de projeto. O maior valor de deadline testado para as aplicações é de 12000
nanossegundos, devido a ser um número médio de deadline para aplicações RT e o valor
mais curto de deadline utilizado é de 500 nanossegundos, que é um valor pequeno para
deadline de uma aplicação RT e foi escolhido para saber se a aplicação conseguirá ser
otimizada até esse ponto.

O primeiro conjunto de aplicações contará com o prazo total de deadline que foi
estabelecido pela ferramenta geradora de tráfego. O segundo conjunto apresentará um
deadline médio que terá seu valor diminuído pela metade. O terceiro conjunto contará
com valores que são 10 vezes menores que o primeiro conjunto de deadline.

Os resultados serão mostrados em tabelas. Na tabela será mostrada a aplicação e


os valores de latência e porcentagem dos pacotes RT entregues dentro do deadline. A
tabela contará também com a quantidade de roteadores do tipo 1 (T1) e a quantidade
de roteadores do tipo 2 (T2) . A tabela apresentará o resultado mais otimizado para cada
aplicação.

Cada aplicação também será simulada em uma rede com topologia Mesh 4x4 que
consegue atender a quantidade de tarefas usadas nas topologias irregulares. Os conjuntos
de resultados serão comparados através do Teste T (HSU; LACHENBRUCH, 2014), que é
um teste estatístico muito utilizado na literatura para comparar dois conjuntos de dados.

Após serem mostrados os resultados para todas as aplicações em forma de tabelas,


também serão mostrados gráficos diferentes para cada métrica avaliada. Cada gráfico
apresentará nas comparações entre as topologias irregulares e rede mesh.

As próximas subseções mostram as simulações e resultados quanto aos testes com


diferentes tempos de simulação e diferentes grafos com tamanhos e fluxo de dados variados.
Os grafos referentes as aplicações serão mostradas em forma de imagens. Ao todo são 8
grafos que são divididos com 4 grafos sendo usados com 10 tarefas e 4 com 15 tarefas.
62

6.2.2 Testes Com 10 Tarefas - Deadline Longo

Abaixo podem ser visualizados os grafos utilizados nas aplicações que contém 10
tarefas.

Figura 20: Primeira Aplicação (a) e Segunda Aplicação (b) - 10 Tarefas

Figura 21: Terceira Aplicação (a) e Quarta Aplicação (b) - 10 Tarefas


63

As figuras 20 e 21 mostram os grafos de comportamento das 4 aplicações sintéticas


criadas que possuem 10 tarefas.

A partir de agora serão mostrados os resultados dos experimentos em formato de


tabelas e no final de tudo serão apresentados gráficos, contendo todas as informações
sobre os resultados. As figuras relativas a cada topologia escolhida serão mostrado no
Apêndice A. A tabela 2 mostra os resultados referentes as topologias irregulares. A tabela
3 mostra os resultados na topologia mesh e a tabela 4 faz a comparação desses resultados
através do teste estatístico.

Tabela 2: Topologias Irregulares com 10 cores e Deadline Longo

Aplicação Latência Média Pacotes RT Entregues Roteadores T1 Roteadores T2


1 279,350 100% 5 1
2 188,101 100% 3 3
3 177,907 100% 3 3
4 700,154 100% 4 2

Tabela 3: Topologia Mesh 4x4 e Deadline Longo

Aplicação Latência Média Pacotes RT Entregues


1 418,700 45%
2 306,733 31,33%
3 419,44 30%
4 198,636 18,18%

Tabela 4: Teste T - 10 Tarefas - Deadline Longo

Latência Média Pacotes RT Entregues


0.9975 0.0010

O teste estatístico T utilizado é um teste que tem um nível de confiança de 95%. O


modo do teste escolhido é o pareado e bicaudal. São então comparados os dois conjuntos
de latência média das 4 aplicações, para as redes irregulares e as redes mesh. Também
são analisados os dados do outro conjunto, que consiste da porcentagem dos pacotes de
tempo real que conseguiram ser entregues antes prazo acabar.

A figura 23 mostra os resultados em forma de gráfico para os valores de deadline com


10 aplicações e um deadline longo. Quando se tem um valor abaixo de 0,05 no resultado
do teste T, é porque há uma grande diferença entre os dois conjuntos de dados, como
é o caso da porcentagem de pacotes RT entregues dentro do deadline, cujo resultado da
64

Figura 22: Gráfico com os valores comparativos de latência para um grafo com 10 aplicações
e deadline longo

Figura 23: Gráfico com os valores comparativos de entrega de pacotes RT para um grafo com
10 aplicações e deadline longo

comparação dos conjuntos é 0,0010. Pelas tabelas pode-se observar que nos testes com
topologias irregulares, o algoritmo genético foi capaz de otimizar a rede de de uma forma
que conseguisse entregar todos os pacotes tempo real no tempo estimado. Nas topologias
65

Figura 24: Gráfico com os valores comparativos de area para um grafo com 10 aplicações e
deadline longo

irregulares a aplicação 1 conseguiu entregar 55% a mais de pacotes RT. Na aplicação 2


essa diferença foi de 68,67%. Na aplicação 3 a topologia irregular obteve uma melhora de
70% e na aplicação 4 essa diferença foi de 81,2%. Devido a um longo período de deadline e
também a aplicações não tão grandes foi possível garantir a entrega em todas as aplicações
testadas.

A figura 22 apresenta um gráfico com os valores de latência para comparação da


topologia irregular e mesh. Quanto a análise nos conjuntos que representam os valores
de latência média, o resultado foi 0,9975. Não existe uma grande variação nos dados
desses dois conjuntos, mas, observando as tabelas pode-se perceber que em sua maioria
a aplicação usando topologia irregular conseguiu obter valores maiores no quesito de
latência. Na questão de latência a primeira aplicação teve uma redução de 33,28% em
relação a rede mesh equivalente. A segunda aplicação apresenta uma redução de 38,67%.
A terceira aplicação obteve uma redução de 57,58% na latência média e a quarta aplicação
teve um acréscimo de 252,48% na latência média, se comparado a sua equivalente rede
mesh. Como o deadline era logo as aplicações conseguiram realizar uma maior de entregas
de pacotes e conseguiu obter valores de latência média menores.

A figura 24 específica os valores quanto a área. Em relação a área, os roteadores têm


pesos diferentes já que ocupam espaços diferentes de área. Então se existissem duas redes
que tivessem os mesmos valores em porcentagem de pacotes entregues, latência média
66

e quantidade de roteadores, e mudasse apenas quantos roteadores de cada tipo cada


topologia tem, a rede escolhida seria aquela que contivesse menos roteadores do tipo 2, já
que é o que ocupa mais área dentro do chip. No presente trabalho os valores mostrados
nas tabelas de resultados já são os valores mais otimizados para cada aplicação testada.
Então os tipos de roteadores são levados em conta na hora de escolher a topologia mais
otimizada.

Ainda se tratando de área, pode-se observar que as topologias irregulares conseguiram


ser otimizadas para essas aplicações de modo que os números de roteadores caíssem 40%,
assim obtendo um melhor aproveitamento da área da arquitetura. Se for comparar com
uma topologia mesh, seria preciso uma topologia 4x4 para acomodar todos os 10 cores
das aplicações testadas, então essa redução no número de roteadores é de 62,5%.

6.2.3 Testes Com 10 Tarefas - Deadline Médio

Essa subseção foca nos experimentos e resultados para os mesmos grafos com 10
tarefas, mas com um deadline médio para os pacotes de tempo real. Na tabela 5 pode-
se visualizar os resultados referente as topologias irregulares. Na tabela 6 os resultados
equivalentes usando uma topologia mesh regular e na tabela 7 pode-se observar o teste
estatístico T comparando os resultados dessas duas abordagens. Após as tabelas serão
mostradas as figuras que representam as topologias irregulares otimizadas para cada apli-
cação.

Tabela 5: Topologias Irregulares com 10 cores e Deadline Médio

Aplicação Latência Média Pacotes RT Entregues Roteadores T1 Roteadores T2


1 3120 100% 6 2
2 9140 37,5% 0 10
3 1830 100% 3 4
4 802,789 34,42% 0 10

Tabela 6: Topologia Mesh 4x4 e Deadline Médio

Aplicação Latência Média Pacotes RT Entregues


1 140,700 15%
2 856 12%
3 142,800 12%
4 720,45 9,84%
67

Tabela 7: Teste T - 10 Tarefas - Deadline Médio

Latência Média Pacotes RT Entregues


0.1641 0.0516

Figura 25: Gráfico com os valores comparativos de latência para um grafo com 10 aplicações
e deadline médio

Figura 26: Gráfico com os valores comparativos de entrega de pacotes RT para um grafo com
10 aplicações e deadline médio

A figura 26 apresenta um gráfico que mostra a diferença entre os pacotes RT que


conseguiram ser entregues nas duas topologias testdas. Como pode ser observado nos testes
68

Figura 27: Gráfico com os valores comparativos de área para um grafo com 10 aplicações e
deadline médio

estatísticos, os valores de latência média e porcentagem de pacotes RT entregues ficaram


acima do valor de significância, que é 0,05. Então pode-se dizer que as duas amostras
não têm valores grandes de diferenças nesses conjuntos. Duas aplicações não conseguiram
serem otimizadas suficientes para entregar os pacotes RT cumprindo um valor médio de
deadline. As topologias mesh no entanto não conseguiram 100% em nenhuma. A aplicação
1 conseguiu entregar 85% a mais de pacotes RT do que a sua topologia mesh equivalente.
A segunda aplicação obteve uma vantagem de 25,5% com relação a sua mesh concorrente.
A topologia 3 conseguiu 88% de vantagem se comparada a uma NoC mesh. A última
aplicação utilizando topologia irregular teve um aumento de 34,10%. A segunda aplicação
não conseguiu entregar todos os pacotes dentro do prazo devido a essa aplicação ser a
que mais trafega pacotes. A quarta aplicação é a que contém o grafo com o maior número
de conexões, esse fator foi o responsável pelo algoritmo não conseguir entregar todos os
pacotes RT no prazo.

A figura 25 foca nos resultados de latência para aplicações com 10 tarefas e um valor
médio de deadline. Quanto aos valores de latência média, tivemos casos onde a latência da
arquitetura mesh foi mais eficiente, porém nenhuma das vezes foi conseguido receber todos
os pacotes de tempo real. A primeira aplicação teve um acréscimo de 95,49% na latência.
Para a segunda aplicação esse valor foi para 90,63%. Na terceira aplicação a diferença
continua aumentando e a topologia irregular teve um acréscimo de 92,19%. E na quarta
aplicação teve-se um aumento da latência média. Devido a um deadline já menor, se
69

comparado com os experimentos anteriores, foi possível entregar menos pacotes antes da
simulação da rede acabar, o que pode ter acarretado em maiores valores de latência.

A figura 27 foca nos resultados referentes as áreas das topologias quando começa
inicialmente, quando é otimizada e a topologia da mesh. No quesito área a aplicação 1
conseguiu uma redução de 20% quando comparado a sua quantidade original de roteado-
res. Se comparado a topologia mesh, essa redução foi de 50%. A aplicação 3 conseguiu uma
redução de 30% quando comparada a seu tamanho original de roteadores e uma redução
de 56,25% se comparada a topologia mesh. Por fim as aplicações 2 e 4 não conseguiram
reduzir seu número de roteadores e ainda assim utilizando apenas roteadores com canais
virtuais, ainda não foi possível cumprir com o deadline. De toda forma essas topologias
ainda apresentam uma redução de 37,5% no número de roteadores, em comparação com
uma mesh 4x4, que é a utilizada aqui.

6.2.4 Testes Com 10 Tarefas - Deadline Curto

Essa subseção apresenta os experimentos e resultados relativos aos grafos com 10 ta-
refas, mas dessa vez utilizando um deadline Curto para as simulações. As tabelas de 8
a 10 mostram os valores encontrados de latência e pacotes entregues para as topologias
irregulares otimizadas, para os experimentos com as NoC Mesh e para o teste T compa-
rativo, respectivamente. As figuras 30 a 33 por sua vez mostram as topologias irregulares
otimizadas para cada grafo.

Tabela 8: Topologias Irregulares com 10 cores e Deadline Curto

Aplicação Latência Média Pacotes RT Entregues Roteadores T1 Roteadores T2


1 1530 100% 6 2
2 1058 100% 3 3
3 530 20% 1 9
4 173,757 21,73% 0 10

Tabela 9: Topologia Mesh 4x4 e Deadline Curto

Aplicação Latência Média Pacotes RT Entregues


1 990 1%
2 760 1,33%
3 780 2%
4 522,7 0,75%
70

Tabela 10: Teste T - 10 Tarefas - Deadline Curto

Latência Média Pacotes RT Entregues


0.7983 0.0816

Figura 28: Gráfico com os valores comparativos de latência para um grafo com 10 aplicações
e deadline curto

Figura 29: Gráfico com os valores comparativos de entrega de pacotes RT para um grafo com
10 aplicações e deadline curto

A figura 29 mostra um gráfico que é relativo aos valores de taxas de entrega dos
pacotes RT dentro do deadline, para aplicações com 10 tarefas e um deadline curto. Para
71

Figura 30: Gráfico com os valores comparativos de área para um grafo com 10 aplicações e
deadline curto

um deadline mais Curto o teste T não apresenta grandes variações entre os conjuntos
de latência média e taxa dos pacotes RT entregues. Da mesma forma como no deadline
médio, duas aplicações não conseguiram mesmo depois da otimização entregar todos os
pacotes de tempo real e da mesma forma como nos deadlines longo e médio a topologia
mesh não obteve também uma taxa de 100% de entrega para todas as aplicações testadas.
A aplicação 1 usando topologias irregulares otimizadas conseguiu entregar 99% a mais de
pacotes de tempo real do que a sua contraparte mesh. A segunda aplicação obteve uma
taxa de 98,67% se comparado a topologia mesh usando a mesma aplicação. A aplicação
número 3 conseguiu entregar 18% a mais e a quarta aplicação conseguiu 20,98% a mais se
comparada a topologia mesh. A terceira aplicação dentre todas as outra é a que contém
um deadline menor, por esse motivo não conseguiu entregar todos os pacotes RT. A quarta
aplicação é a que contém um grafo com um maior número de conexões, por esse motivo
não conseguiu ser totalmente otimizada, para esse prazo de deadline.

A figura 28 exibe um gráfico com os valores de latência média para as topologias


irregulares e mesh. Se tratando de valores de latência os resultados são bem equiparados.
Em 50% dos casos a da topologia mesh foi melhor e nos outros 50% a topologia irregular
otimizada se sobressaiu. Mesmo nos casos onde a topologia mesh obteve melhores valores
quanto a latência, ainda não conseguiu ter bons valores referentes a entrega dos pacotes
RT. A primeira aplicação teve um aumento na latência de 35.29% quando comparado a
topologia mesh. A segunda aplicação teve um aumento de 28,16% nos valores de latência.
72

A terceira aplicação obteve uma redução de 47,16% na latência se comparada a topologia


mesh utilizando a mesma aplicação. Na quarta aplicação houve uma redução de 200,82%
no valor da latência média, em comparação a topologia mesh. Mesmo com um deadline
curto o uso dos roteadores do tipo 2 ajudaram a alcançar valores mais otimizados de
latência, fazendo com que em metade dos casos fossem melhores que os da rede mesh.

A figura 30 mostra um gráfico com um comparativo de área para as topologias utili-


zadas. No quesito área, houveram algumas aplicações que conseguiram diminuir a área na
otimização realizada pelo algoritmo genético. A primeira aplicação conseguiu uma redução
de 20% quando comparado as topologias irregulares iniciais que continham 10 roteado-
res e uma redução de 50% quando comparado a topologia mesh utilizada. A aplicação
número 2 obteve uma redução de 40% em relação as primeiras topologias irregulares e
62,5% se comparada a topologia mesh. A terceira aplicação não obteve redução em re-
lação a topologia irregular, mas teve uma redução de 37,5% quando comparado a mesh.
A aplicação número 4 também não obteve redução para a topologia irregular, mas ainda
assim apresenta uma redução de 37,5% em comparação a topologia mesh.

6.2.5 Testes Com 15 Tarefas - Deadline Longo

A partir dessa subseção serão mostrados experimentos utilizando grafos com 15 tarefas
cada. As figuras 34 e 35 mostram os comportamentos dos 4 grafos de 15 tarefas que foram
utilizados para simular esses experimentos.

Figura 31: Primeira Aplicação (a) e Segunda Aplicação (b) - 15 Tarefas


73

Figura 32: Terceira Aplicação (a) e Quarta Aplicação (b) - 15 Tarefas

A seguir poderá serem visualizadas as tabelas de 11 a 13 onde podem serem vistos os


resultados quanto aos experimentos de uma rede contendo 15 elementos de processamento
e um longo valor de deadline. As tabelas 11 e 12 mostram os resultados usando topolo-
gias irregulares e também utilizando rede mesh, respectivamente. A tabela 13 mostra as
estatísticas abordando os conjuntos de dados relativos à latência média e porcentagem de
pacotes entregues. As figuras 36 a 39 mostras as topologias irregulares otimizadas para
essas aplicações e valores de deadline.

Tabela 11: Topologias Irregulares com 15 cores e Deadline Longo

Aplicação Latência Média Pacotes RT Entregues Roteadores T1 Roteadores T2


1 658,867 62,51% 0 10
2 895,676 100% 5 3
3 750,993 100% 3 5
4 488,399 61,90% 0 10
74

Tabela 12: Topologia Mesh 4x4 e Deadline Longo

Aplicação Latência Média Pacotes RT Entregues


1 262,125 19,37%
2 161,375 61,25%
3 192,471 20,58%
4 204,563 36,87%

Tabela 13: Teste T - 15 Tarefas - Deadline Longo

Latência Média Pacotes RT Entregues


0.0152 0.0277

Figura 33: Gráfico com os valores comparativos de latência para um grafo com 15 aplicações
e deadline longo

A figura 34 mostra um gráfico para os resultados dos pacotes RT entregues, usando


aplicações de 15 tarefas e um deadline longo. Os resultados mostrados acima dizem res-
peito a aplicações que utilizam 15 elementos de processamento e tem um deadline longo de
entrega dos pacotes tempo real. A tabela 12 que é referente ao teste estatístico T mostra
que há uma grande diferença entre os conjuntos de dados de latência média e de taxas
de pacotes RT entregues para as topologias irregulares e a topologia mesh. A primeira
aplicação conseguiu uma taxa de entrega dos pacotes tempo real de 43,21% em cima dos
valores da mesma aplicação utilizando a rede mesh. A segunda aplicação obteve uma taxa
de 38,75% maior, quando comparado a topologia mesh. A aplicação número 3 conseguiu
um desempenho a mais de 79,42% em relação a rede mesh. A aplicação número 4 teve
75

Figura 34: Gráfico com os valores comparativos de entrega de pacotes RT para um grafo com
15 aplicações e deadline longo

Figura 35: Gráfico com os valores comparativos de área para um grafo com 15 aplicações e
deadline longo

uma taxa de entrega maior de 25,03% quando comparada a topologia mesh executando
a mesma aplicação. A primeira e quarta aplicação não conseguiram entregar totalmente
os pacotes RT devido a um aumento no número de cores utilizados para os mesmos valo-
res usados para 10 tarefas. A quantidade de vezes que o algoritmo genético atualiza sua
população não foi suficiente para essas aplicações.

A figura 33 exibe um gráfico para valores de latência envolvendo os dois tipos de


76

topologias utilizadas. Se tratando de latência média a topologia mesh conseguiu valores


menores de latência, mas não conseguiu melhores valores de entregas de pacotes RT
dentro do deadline. Quanto a valores de latência a primeira aplicação teve um aumento
de 60,21% de latência, em relação a topologia mesh executando a primeira aplicação.
A segunda aplicação obteve um aumento de 81,98% quando comparado a rede mesh.
A terceira aplicação conseguiu um aumento de 74,37% em relação a topologia mesh. A
quarta aplicação obteve um aumento de 58,11% nos valores de latência média quando
comparado a topologia mesh executando a mesma aplicação. Com um valor longo de
deadline foi possível obter resultados de latência não tão altos, se comparados a rede
mesh, mesmo a aplicação contendo 15 tarefas.

A figura 35 mostra os valores de área e seus comparativos em forma de gráfico. No


que diz respeito a área pode-se observar que a primeira aplicação obteve uma redução de
33,33% se comparado a topologia original e uma redução de 37,5% quando comparado
a topologia mesh. A segunda aplicação teve uma redução de 46,66% na área em relação
a topologia mesh original e uma diminuição de 50% referente a rede mesh. A terceira
aplicação conseguiu reduzir a área em 46,66% em comparação a rede irregular inicial e
uma redução de 50% quando comparado a rede mesh. A quarta aplicação teve a área
diminuída em 33,33% em relação a rede irregular inicial e uma diminuição de 37,5% em
comparação a rede mesh utilizada.

6.2.6 Testes Com 15 Tarefas - Deadline Médio

Nesta subseção serão tratados os experimentos relativos aos grafos com 15 tarefas.
Aqui serão abordadas as simulações envolvendo um deadline médio a fim de analisarmos
se o algoritmo genético conseguirá otimizar a topologia o suficiente de forma que todos
os pacotes RT sejam entregues.

As tabelas de 14 e 15 são responsáveis por mostrar os resultados referente as topologias


irregulares e as topologias mesh equivalente, para cada grafo de aplicação. Também poderá
ser visto, na tabela 16, o teste T que tem por finalidade analisar estatisticamente dois
conjuntos de valores. A figuras 40 a 43 ficam a cargo de mostrar como as topologias
irregulares escolhidas são.
77

Tabela 14: Topologias Irregulares com 15 cores e Deadline Médio

Aplicação Latência Média Pacotes RT Entregues Roteadores T1 Roteadores T2


1 184,467 100% 6 2
2 3720 19,14% 0 10
3 873,848 100% 2 6
4 324,339 35,29% 0 10

Tabela 15: Topologia Mesh 4x4 e Deadline Médio

Aplicação Latência Média Pacotes RT Entregues


1 881,25 9,37%
2 587,50 6,25%
3 831,18 9,41%
4 873,75 9,37%

Tabela 16: Teste T - 15 Tarefas - Deadline Médio

Latência Média Pacotes RT Entregues


0.6284 0.0767

Figura 36: Gráfico com os valores comparativos de latência para um grafo com 15 aplicações
e deadline médio

A figura 37 apresenta um gráfico para as taxas de pacotes RT entregues dentro do


prazo. Esses valores são para aplicações com 15 tarefas e um deadline médio. Pode-se ob-
servar no teste T que não houve uma grande variação de valores em nenhum dos conjuntos,
mas ainda assim pode-se perceber que os valores de latência se encontram equilibrados
78

Figura 37: Gráfico com os valores comparativos de entrega de pacotes RT para um grafo com
15 aplicações e deadline médio

Figura 38: Gráfico com os valores comparativos de área para um grafo com 15 aplicações e
deadline médio

e os de porcentagem dos pacotes de tempo real entregues mostram que as topologias ir-
regulares se saíram melhor. A primeira aplicação teve uma taxa de entrega de pacotes
RT 90,63% melhor do que usando uma topologia mesh. A segunda aplicação teve uma
melhora de 12,89% se comparado a topologia mesh. A terceira aplicação obteve um desem-
penho de 90,59% a mais que a topologia mesh. A quarta aplicação teve uma melhora no
desempenho de 22,92% quando comparado a rede mesh. A segunda e a quarta aplicação
79

são as que possuem os grafos com um maior número de conexões, o que pode ocasionar
um volume maior na rede. Além disso a segunda aplicação é a que possui uma maior
quantidade de pacotes sendo trafegados.

A figura 36 tras um gráfico com um comparativo dos valores de latência para as


topologias irregulares e as redes mesh. Em relação aos valores de latência a aplicação 1
teve uma diminuição na latência de 377,77% em relação a topologia mesh. A aplicação 2
teve um aumento de 84,20% na latência média se comparado a rede mesh. A aplicação
3 teve um aumento na latência de 4,88% em comparação a topologia mesh. A aplicação
4 obteve uma diminuição na latência média de 169,39% em relação a sua contraparte
mesh. Ainda que tenha se usado valores médios de deadline nessa simulação o uso dos
canais virtuais em alguns roteadores asseguraram valores melhores que os da rede mesh
na metade dos casos.

A figura 38 exibe um gráfico com os valores das áreas alcançadas pela otimização
da rede, os valores iniciais de roteadores pra topologia irregular inicial e a quantidade de
roteadores utilizados na topologia mesh. Quanto a área pode-se observar que sempre houve
uma diminuição no número de roteadores, mesmo que não se tenha conseguido entregar
todos os pacotes RT, os valores mostrados ainda assim são das topologias mais otimizadas.
Aplicação 1 teve uma diminuição de 46,66% em relação as primeiras topologias e uma
diminuição de 50% em relação a topologia mesh. A segunda aplicação teve uma diminuição
de 33,33% comparado com as primeiras topologias irregulares e uma diminuição de 37,5%
quando comparado a topologia mesh. A aplicação 3 obteve uma redução de 46,66% no
número de roteadores, em relação as primeiras topologias irregulares e 50% se comparado
a mesh. A quarta aplicação teve uma queda de 33,33% no número de roteadores da
topologia irregular e 37,5% em relação a topologia mesh.

6.2.7 Testes Com 15 Tarefas - Deadline Curto

Aqui serão mostrados os valores de resultados para os experimentos realizados com


grafos de 15 tarefas tendo um Curto valor de deadline para os pacotes de tempo real.
As tabelas 17 e 18 mostram exatamente os valores obtidos para latência e pacotes RT
entregues para as topologias irregulares e as topologias mesh, respectivamente. Pode-se
ser visto também, na tabela 19, os valores de comparação entre conjuntos, feitos pelo teste
T. As figuras 44 a 47 mostram as topologias irregulares otimizadas.
80

Tabela 17: Topologias Irregulares com 15 cores e Deadline Curto

Aplicação Latência Média Pacotes RT Entregues Roteadores T1 Roteadores T2


1 450 100% 6 2
2 566,67 100% 6 2
3 741,765 100% 5 3
4 184,467 88,69% 0 10

Tabela 18: Topologia Mesh 4x4 e Deadline Curto

Aplicação Latência Média Pacotes RT Entregues


1 6 0,625%
2 412,5 0,41%
3 547,1 0,58%
4 618,8 0,625%

Tabela 19: Teste T - 15 Tarefas - Deadline Curto

Latência Média Pacotes RT Entregues


0.6629 0.0001

Figura 39: Gráfico com os valores comparativos de latência para um grafo com 15 aplicações
e deadline curto

A figura 40 exibe um gráfico para a comparação dos pacotes RT que foram entregues
dentro do prazo, em um deadline curto e com aplicações de 15 tarefas. Os resultados
relativos ao teste estatístico mostram que no conjunto de latência média, cujo o p valor foi
0,6629, não houve uma grande variação, e como ser observado nas tabelas os valores estão
81

Figura 40: Gráfico com os valores comparativos de entrega de pacotes RT para um grafo com
15 aplicações e deadline curto

Figura 41: Gráfico com os valores comparativos de área para um grafo com 15 aplicações e
deadline curto

equiparados. Já no conjunto de taxa dos pacotes RT entregue, o p valor é 0,0001, o que


mostra uma grande variação entre os valores dos dois tipos de arquitetura. Esses valores
também podem ser consultados nas tabelas. As topologias irregulares não conseguiram
entregar 100% dos pacotes em apenas uma aplicação. A primeira aplicação obteve uma
taxa de entrega 93375% maior que quando usado a topologia mesh. A segunda aplicação
teve 9959% de pacotes tempo real a mais entregues do que sua contraparte usando a
82

topologia mesh. A terceira aplicação conseguiu ter um desempenho 99,42% melhor que
quando usado rede mesh. A quarta aplicação teve um desempenho de 88,065%, quando
comparado a rede mesh. A quarta aplicação é a segunda que possui um grafo com maior
número de conexões, o que aliada a um Curto valor de deadline e o fato de ter uma grande
quantidade de cores resultou na não entrega de todos os pacotes RT. Uma busca maior
do algoritmo genético poderia otimizar ainda mais essa aplicação.

A figura 39 mostra um gráfico com valores de latência média para as topologias irregu-
lares e mesh. No que diz respeito a latência média os resultados se mostram equilibrados.
A primeira aplicação teve uma latência 98,66% a mais que quando usado topologia mesh.
A segunda aplicação teve um aumento de 27,20% nos valores de latência. A terceira apli-
cação teve um aumento na latência de 26,24% em relação a topologia mesh. A quarta
aplicação conseguiu ter uma melhora de 235,45% nos valores de latência média. Devido
a um curto deadline, as taxas de latência média não conseguiram ser melhores que as da
rede mesh que executavam a mesma aplicação, tendo como exceção a ultima aplicação.

A figura 41 apresenta um gráfico que mostra a comparação da área para um deadline


curto e aplicações com 15 tarefas. No quesito área, com certeza existe uma melhora nas
topologias. A primeira, segunda e terceira aplicação conseguiram uma melhora de 46,66%
em relação as topologias irregulares iniciais e também conseguiram uma redução de 50% se
comparado a topologia mesh. A quarta aplicação obteve uma melhora na área de 33,33%
e 37,5% se comparado a topologia mesh.

Os resultados obtidos em todos os experimentos mostram que as redes irregulares


otimizadas pelo algoritmo genético apresentadas neste trabalho conseguem gerar cenários
mais otimizados, em relação às as redes com topologia mesh. No que diz respeito as
taxas de entrega dos pacotes de tempo real (em casos com taxas variadas de deadline
e grafos com comunicações variadas), conseguem entregar 100% dos pacotes RT dentro
do prazo estipulado. Ainda assim as redes que não conseguem entregar totalmente os
pacotes RT, conseguem uma taxa de entrega maior, quando comparada à rede mesh. No
que diz respeito a latência os resultados foram equilibrados; em algumas aplicações a rede
mesh conseguiu obter melhores resultados, e em outras, as topologias irregulares. Em
relação ao quesito área, as topologias irregulares conseguiram obter uma diminuição no
número de roteadores na maioria dos testes em todas as aplicações, o que acarreta em uma
diminuição da área total da rede. Quando comparado as topologias mesh sempre houve
uma diminuição no número de roteadores, já que para comportar todos os elementos de
processamento das aplicações utilizadas é preciso uma rede 4x4 e as topologias irregulares
83

utilizaram no máximo 10 roteadores.


84

7 Considerações Finais

O uso de redes-em-chip ao invés do barramento para realizar a comunicação entre as


tarefas em um MP-SoC se provou uma boa maneira se obter melhores valores de latência.
O fato de se ter reuso e escalabilidade também contribuem para essa escolha.

O uso de topologias irregulares para aplicações específicas pode oferecer um ganho


em latência, área e potência, por isso as topologias irregulares foram escolhidas para este
trabalho. Uma boa exploração no espaço e projeto da rede pode fornecer informações
sobre o uso da rede. Essas informações são capazes de ajudar na hora da confecção final
do circuito integrado (CI) .

Para se conseguir redes que sejam mais adequadas a aplicações específicas e otimizadas
para que atendam às restrições de projeto, é necessário realizar uma exploração do espaço
de projeto, verificando o maior número possível de configurações, de forma que se possa
encontrar soluções que atendam todas as características esperadas. O grande espaço de
projeto dificulta os testes das redes, inviabilizando uma busca exaustiva. Uma solução
para percorrer esse espaço de busca se dá através do uso de heurísticas que venham a
otimizar esse processo.

Este trabalho fez uma análise no que diz respeito a exploração de espaço do projeto e
ao uso de topologias irregulares para se obter redes com melhores valores de latência, área
e uma maior taxa de pacotes de tempo real entregues dentro do deadline estipulado. As
redes utilizadas aqui são otimizadas através de um algoritmo genético e conta com o uso
de roteadores heterogêneos que buscam otimizar a rede de forma que possa-se alcançar as
métricas desejadas.

Durante o trabalho foram usadas diferentes aplicações, com diferentes padrões de


comunicação e deadlines para os pacotes RT. O algoritmo genético é responsável pela
DSE e busca encontrar redes que sejam as mais otimizadas possíveis no que diz respeito
a latência média, pacotes RT entregues e quantidade de roteadores. O uso de roteadores
heterogêneos também contribui para a otimização da rede, já que um tipo de roteador
85

possui canais virtuais preemptivos, o que tende a diminuir a latência de pacotes de tempo
real.

Os resultados mostrados nesse trabalho mostram que é possível realizar uma DSE
e encontrar redes que sejam otimizadas para diferentes aplicações e prazos de entrega
de pacotes. As redes irregulares, através do algoritmo genético, conseguiram encontrar
topologias que atenderam os requisitos de latência, área e prazo de entrega dos pacotes
RT. Na comparação realizada com as redes mesh, as redes irregulares que usam roteadores
heterogêneos se mostraram superiores e atenderam as restrições de projeto.

Futuramente planeja-se evoluir esse trabalho utilizando redes hibridas que utilizem
roteadores ligados por fio e roteadores que se conectam por pequenas antenas ligadas
aos roteadores, as chamadas WiNoCs (Wireless Network-on-Chip) . Também planeja-
se analisar, além do já proposto nesse trabalho, o consumo de energia para verificar a
eficiência de uma rede hibrida e o uso de roteadores heterogêneos.
86

Referências

ABABEI, C. Efficient congestion-oriented custom network-on-chip topology synthesis.


In: IEEE. Reconfigurable Computing and FPGAs (ReConFig), 2010 International
Conference on. [S.l.], 2010. p. 352–357.

AGARWAL, A.; ISKANDER, C.; SHANKAR, R. Survey of network on chip (noc)


architectures & contributions. Journal of engineering, Computing and Architecture, v. 3,
n. 1, p. 21–27, 2009.

AJABSHIR, V. B.; TOSUN, S. Fault-tolerant routing for irregular-topology-based


network-on-chips. In: IEEE. Computing and Networking (CANDAR), 2014 Second
International Symposium on. [S.l.], 2014. p. 123–129.

ANIRUDH, G. S.; SOUMYA, J. Routing algorithm for application-specific network-on-


chip with irregular core sizes. In: IEEE. Nanoelectronic and Information Systems (iNIS),
2017 IEEE International Symposium on. [S.l.], 2017. p. 56–60.

BEN-ITZHAK, Y. et al. Heterogeneous noc router architecture. IEEE Transactions on


Parallel and Distributed Systems, IEEE, v. 26, n. 9, p. 2479–2492, 2015.

BENINI, L.; MICHELI, G. D. Networks on chip: a new paradigm for systems on chip
design. In: IEEE. Design, Automation and Test in Europe Conference and Exhibition,
2002. Proceedings. [S.l.], 2002. p. 418–419.

BENYAMINA, A. E. H. et al. Mapping real time applications on noc architecture


with hybrid multi-objective algorithm. In: META’10 Intenational Conference on
Metaheuristics and Nature Inspired Computing. [S.l.: s.n.], 2010.

BEREJUCK, M. D. et al. Rede intra-chip com qualidade de serviços para uso em


telecomunicações. Universidade do Vale do Itajaí, 2009.

BJERREGAARD, T.; MAHADEVAN, S. A survey of research and practices of


network-on-chip. ACM Computing Surveys (CSUR), ACM, v. 38, n. 1, p. 1, 2006.

BLICKLE, T. Theory of evolutionary algorithms and application to system synthesis.


[S.l.]: vdf Hochschulverlag AG, 1997.

BOLOTIN, E. et al. Qnoc: Qos architecture and design process for network on chip.
Journal of systems architecture, Elsevier, v. 50, n. 2-3, p. 105–128, 2004.

BRUCH, J. V. Mapeamento estático de tarefas de aplicações de tempo real em sistemas


baseados em redes-em-chip. 2015.

BUENO, F. Métodos heurísticos: Teoria e implementações. Instituto Federal de Santa


Catarina, Araranguá, 2009.
87

CARDOSO, R. et al. Design space exploration on heterogeneous network-on-chip. In:


IEEE. Circuits and Systems, 2005. ISCAS 2005. IEEE International Symposium on.
[S.l.], 2005. p. 428–431.

CARDOZO, R. d. S. Redes-em-chip de baixo custo. 2005.

CARDOZO, R. S. et al. Tonga: A low cost router for nocs. In: WORKSHOP IBERCHIP.
[S.l.: s.n.], 2004. v. 10.

CARVALHO, E. L. d. S. Mapeamento dinâmico de tarefas em mpsocs heterogêneos


baseados em noc. Pontifícia Universidade Católica do Rio Grande do Sul, 2009.

CHOUDHARY, N.; GAUR, M.; LAXMI, V. Irregular noc simulation framework:


Irnirgam. In: IEEE. Emerging Trends in Networks and Computer Communications
(ETNCC), 2011 International Conference on. [S.l.], 2011. p. 1–5.

CHOUDHARY, N. et al. Conjoined irregular topology and routing table generation for
network-on-chip. In: IEEE. India Conference (INDICON), 2009 Annual IEEE. [S.l.],
2009. p. 1–4.

CORRÊA, E. d. F. Redes-em-chip para sistemas embarcados visando a otimização de


medidas de qualidade de serviço para aplicações de tempo real. 2007.

COTA, É.; AMORY, A. de M.; LUBASZEWSKI, M. S. Reliability, Availability and


Serviceability of Networks-on-chip. [S.l.]: Springer Science & Business Media, 2011.

DALLY, W. J.; TOWLES, B. P. Principles and practices of interconnection networks.


[S.l.]: Elsevier, 2004.

DAS, R. et al. Design and evaluation of a hierarchical on-chip interconnect for


next-generation cmps. In: IEEE. High Performance Computer Architecture, 2009. HPCA
2009. IEEE 15th International Symposium on. [S.l.], 2009. p. 175–186.

DICK, R. P.; RHODES, D. L.; WOLF, W. Tgff: task graphs for free. In: IEEE
COMPUTER SOCIETY. Proceedings of the 6th international workshop on
Hardware/software codesign. [S.l.], 1998. p. 97–101.

DRIDI, M. et al. Das: an efficient noc router for mixed-criticality real-time systems. In:
IEEE. 2017 IEEE 35th International Conference on Computer Design (ICCD). [S.l.],
2017. p. 229–232.

DUATO, J.; YALAMANCHILI, S.; NI, L. M. Interconnection networks: an engineering


approach. [S.l.]: Morgan Kaufmann, 2003.

HOLLAND, J. H. Adaptation in natural and artificial systems: an introductory analysis


with applications to biology, control, and artificial intelligence. [S.l.]: MIT press, 1992.

HSU, H.; LACHENBRUCH, P. A. Paired t test. Wiley StatsRef: Statistics Reference


Online, Wiley Online Library, 2014.

ITRS. ITRS. mar. 2018. Mar., 2018. Disponível em: <http://www.itrs2.net/>. Acesso
em Março 14, 2018.
88

JUNIOR, N. A. G. Análise e simulaçao de topologias de redes em chip. 2010.

KASAPAKI, E. et al. Argo: A real-time network-on-chip architecture with an efficient


gals implementation. IEEE Transactions on Very Large Scale Integration (VLSI)
Systems, IEEE, v. 24, n. 2, p. 479–492, 2016.

KHAN, S. et al. An efficient algorithm for mapping real time embedded applications on
noc architecture. IEEE Access, IEEE, 2018.

KHAWAJA, S. G. et al. A novel multiprocessor architecture for k-means clustering


algorithm based on network-on-chip. In: IEEE. Multi-Topic Conference (INMIC), 2016
19th International. [S.l.], 2016. p. 1–5.

KREUTZ, M. et al. Energy and latency evaluation of noc topologies. In: IEEE. Circuits
and Systems, 2005. ISCAS 2005. IEEE International Symposium on. [S.l.], 2005. p.
5866–5869.

KREUTZ, M. et al. Design space exploration comparing homogeneous and heterogeneous


network-on-chip architectures. In: ACM. Proceedings of the 18th annual symposium on
Integrated circuits and system design. [S.l.], 2005. p. 190–195.

KREUTZ, M. E. Método para a otimização de plataformas arquiteturais para sistemas


multiprocessados heterogêneos. 2005.

LAHIRI, K.; RAGHUNATHAN, A.; DEY, S. Design space exploration for optimizing
on-chip communication architectures. IEEE Transactions on Computer-Aided Design of
Integrated Circuits and Systems, IEEE, v. 23, n. 6, p. 952–961, 2004.

LAI, G.; LIN, X. Floorplan-aware application-specific network-on-chip topology synthesis


using genetic algorithm technique. The Journal of Supercomputing, Springer, v. 61, n. 3,
p. 418–437, 2012.

LAI, G.; LIN, X.; LAI, S. Ga-based floorplan-aware topology synthesis of application-
specific network-on-chip. In: IEEE. Intelligent Computing and Intelligent Systems (ICIS),
2010 IEEE International Conference on. [S.l.], 2010. v. 2, p. 554–558.

LEARY, G. et al. Design of network-on-chip architectures with a genetic algorithm-based


technique. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, IEEE,
v. 17, n. 5, p. 674–687, 2009.

LEI, T.; KUMAR, S. A two-step genetic algorithm for mapping task graphs to a network
on chip architecture. In: IEEE. Digital System Design, 2003. Proceedings. Euromicro
Symposium on. [S.l.], 2003. p. 180–187.

LIU, M. Real-Time Communication over Wormhole-Switched On-Chip Networks. Tese


(Doutorado) — Malardalen University Press, 2017.

LV, M. et al. Rtnoc: a simulation tool for real-time communication scheduling on


networks-on-chips. In: IEEE. Computer Science and Software Engineering, 2008
International Conference on. [S.l.], 2008. v. 4, p. 102–105.

MATOS, D. d. S. M. Interfaces parametrizáveis para aplicações interconectadas por uma


rede-em-chip. 2010.
89

MCMENAMIN, A.; AUDSLEY, N. C. Partial paging for real-time noc systems. OSPERT
2015, p. 13, 2015.

MESIDIS, P.-a. Mapping of Real-time Applications on Network-on-Chip based MPSOCS.


Tese (Doutorado) — University of York, 2011.

MESQUITA, J. W. d. Exploração de espaço de projeto para geração de redes em chip de


topologias irregulares otimizadas: a rede UTNoC. Dissertao (Mestrado) — Brasil, 2016.

MESQUITA, J. W. de et al. Design space exploration using utnocs and genetic algorithm.
In: IEEE. Computing Systems Engineering (SBESC), 2016 VI Brazilian Symposium on.
[S.l.], 2016. p. 198–202.

MILFONT, R. et al. Analysis of routing algorithms generation for irregular noc


topologies. In: IEEE. Test Symposium (LATS), 2017 18th IEEE Latin American. [S.l.],
2017. p. 1–5.

MURALI, S.; BENINI, L.; MICHELI, G. D. Mapping and physical planning of


networks-on-chip architectures with quality-of-service guarantees. In: ACM. Proceedings
of the 2005 Asia and South Pacific Design Automation Conference. [S.l.], 2005. p. 27–32.

OZTURK, O.; DEMIRBAS, D. Heterogeneous network-on-chip design through


evolutionary computing. International Journal of Electronics, Taylor & Francis, v. 97,
n. 10, p. 1139–1161, 2010.

PACHECO, M. A. C. et al. Algoritmos genéticos: princípios e aplicações. ICA:


Laboratório de Inteligência Computacional Aplicada. Departamento de Engenharia
Elétrica. Pontifícia Universidade Católica do Rio de Janeiro. Fonte desconhecida, p. 28,
1999.

PANDA, P. R. Systemc: a modeling platform supporting multiple design abstractions.


In: ACM. Proceedings of the 14th international symposium on Systems synthesis. [S.l.],
2001. p. 75–80.

PASRICHA, S.; DUTT, N. On-chip communication architectures: system on chip


interconnect. [S.l.]: Morgan Kaufmann, 2010.

QI, J. et al. A new hierarchical genetic algorithm for low-power network on chip design.
In: IEEE. Intelligent Control and Information Processing (ICICIP), 2010 International
Conference on. [S.l.], 2010. p. 159–162.

REINBRECHT, C. R. W. Desenvolvimento e avaliação de redes-em-chip hierárquicas e


reconfiguráveis para mpsocs. 2012.

RIJPKEMA, E. et al. Trade-offs in the design of a router with both guaranteed


and best-effort services for networks on chip. IEE Proceedings-Computers and Digital
Techniques, IET, v. 150, n. 5, p. 294–302, 2003.

ROMANOV, A. Y.; ROMANOVA, I. Use of irregular topologies for the synthesis of


networks-on-chip. In: IEEE. Electronics and Nanotechnology (ELNANO), 2015 IEEE
35th International Conference on. [S.l.], 2015. p. 445–449.
90

SAYUTI, M. N. S. M.; INDRUSIAK, L. S. Real-time low-power task mapping in


networks-on-chip. In: IEEE. VLSI (ISVLSI), 2013 IEEE Computer Society Annual
Symposium on. [S.l.], 2013. p. 14–19.
SHAH, P.; KANNIGANTI, A.; SOUMYA, J. Fault-tolerant application specific
network-on-chip design. In: IEEE. Embedded Computing and System Design (ISED),
2017 7th International Symposium on. [S.l.], 2017. p. 1–5.
SHI, Z. Real-time communication services for networks on chip. Tese (Doutorado) —
University of York, 2009.
SILVA, J. I. S. da; SILVA, I. S. Malha de interconexão para sistemas em chip único.
SOUZA, S. A. d. Algoritmos genéticos aplicados à proteção e estimação de harmônicos
em sistemas elétricos de potência. Tese (Doutorado) — Universidade de São Paulo, 2008.
SYSTEMC. SYSTEMC. mar. 2018. OMar., 2018. Disponível em: <http://www.
accellera.org/downloads/standards/systemc>. Acesso em Março 16, 2018.
TEDESCO, L. Uma proposta para geração de tráfego e avaliação de desempenho para
nocs. Pontificia Universidade Catolica Do Rio Grande Do Sul: Porto Alegre, p. 125,
2005.
TOSUN, S. et al. Fault-tolerant irregular topology design method for network-on-chips.
In: IEEE. Digital System Design (DSD), 2014 17th Euromicro Conference on. [S.l.],
2014. p. 631–634.
TOSUN, S.; AR, Y.; OZDEMIR, S. Application-specific topology generation algorithms
for network-on-chip design. IET computers & digital techniques, IET, v. 6, n. 5, p.
318–333, 2012.
VELLANKI, P.; BANERJEE, N.; CHATHA, K. S. Quality-of-service and error control
techniques for network-on-chip architectures. In: ACM. Proceedings of the 14th ACM
Great Lakes symposium on VLSI. [S.l.], 2004. p. 45–50.
WETTIN, P. et al. Design space exploration for wireless nocs incorporating irregular
network routing. IEEE Transactions on Computer-Aided Design of Integrated Circuits
and Systems, IEEE, v. 33, n. 11, p. 1732–1745, 2014.
ZEFERINO, C. A. Redes-em-chip: arquiteturas e modelos para avaliação de área e
desempenho. 2003.
ZEFERINO, C. A. et al. Avaliação de desempenho de rede-em-chip modelada em systemc.
In: Proceedings of the 27rd Congress of Brazilian Computer Society-WPerformance. [S.l.:
s.n.], 2007. p. 559–578.
ZEFERINO, C. A.; SANTO, F. G.; SUSIN, A. A. Paris: a parameterizable interconnect
switch for networks-on-chip. In: ACM. Proceedings of the 17th symposium on Integrated
circuits and system design. [S.l.], 2004. p. 204–209.
ZEFERINO, C. A.; SUSIN, A. A. Socin: a parametric and scalable network-on-chip. In:
IEEE. Integrated Circuits and Systems Design, 2003. SBCCI 2003. Proceedings. 16th
Symposium on. [S.l.], 2003. p. 169–174.
91

APÊNDICE A -- Topologias Irregulares


Otimizadas

Aqui serão exibidas as figuras com as topologias mais otimizadas referentes as aplica-
ções contendo 10 e 15 tarefas. As topologias serão mostradas para cada grupo de testes
que foram realizados.

A figura 42 mostra a topologia mais otimizada encontrada para a primeira aplicação


com 10 tarefas e um deadline longo. A figura 43 mostra a topologia para a segunda apli-
cação envolvendo o mesmo caso. A figura 44 mostra a topologia para a terceira aplicação
e a figura 45 a topologia mais otimizada para a quarta aplicação com 10 tarefas e um
deadline longo.

A figura 46 mostra como ficou a topologia mais otimizada para a primeira aplicação
envolvendo 10 tarefas e um deadline médio de entrega dos pacotes de tempo real. A figura
47 apresenta a topologia otimizada para a segunda aplicação que contém 10 tarefas e
utiliza um deadline médio na simulação. A figura 48 exibe a topologia relativa a terceira
aplicação no mesmo cenário e a figura 49 mostra a topologia para a quarta aplicação.

A figura 50 é relativa a topologia mais otimizada da primeira aplicação contendo 10


tarefas em um cenário onde a entrega dos pacotes envolve um curto deadline. A figura
51 mostra como seria a topologia otimizada para a segunda aplicação de 10 tarefas e um
curto prazo de deadline. A figura 52 exibe a melhor topologia para a terceira aplicação do
mesmo cenário. A figura 53 representa a topologia mais otimizada para a quarta aplicação
com 10 tarefas e um curto prazo de entrega dos pacotes de tempo real.

A figura 54 representa a topologia mais otimizada para a primeira aplicação contendo


15 tarefas e um longo deadline para os pacotes RT. A figura 55 apresenta a melhor
configuração de topologia envolvendo a segunda aplicação de 15 tarefas e um deadline
longo. A figura 38 mostra a melhor topologia para a terceira aplicação com 56 elementos
de processamento e um longo deadline. A figura 57 exibe a topologia mais otimizada para
a quarta aplicação nesse mesmo cenário.
92

A figura 58 apresenta a topologia mais otimizada para a primeira aplicação de 15


tarefas com um médio deadline de entrega dos pacotes RT. A figura 59 mostra a melhor
topologia para a segunda aplicação com 15 tarefas, em um cenário com um médio deadline.
A figura 60 exibe a topologia mais otimizada para a terceira aplicação com 15 elementos
de processamento e um deadline médio para os pacotes de tempo real. A figura 61 mostra
a topologia otimizada para a quarta aplicação de 15 tarefas e um médio deadline.

A figura 62 mostra a topologia mais otimizada para a primeira aplicação envolvendo


15 tarefas e um prazo curto de deadline. A figura 63 exibe a melhor topologia para a
segunda aplicação que utiliza 15 tarefas e tem um curto deadline para entrega dos pacotes
RT. A figura 64 apresenta a topologia mais otimizada para a terceira aplicação com 15
elementos de processamento e um curto prazo de deadline. A figura 65 mostra a topologia
otimizada para a quarta aplicação com 15 elementos de processamento e um período curto
de deadline para entrega dos pacotes de tempo real.

Figura 42: Primeira Aplicação Otimizada - 10 Tarefas - Deadline Longo


93

Figura 43: Segunda Aplicação Otimizada - 10 Tarefas - Deadline Longo

Figura 44: Terceira Aplicação Otimizada - 10 Tarefas - Deadline Longo


94

Figura 45: Quarta Aplicação Otimizada - 10 Tarefas - Deadline Longo

Figura 46: Primeira Aplicação Otimizada - 10 Tarefas - Deadline Médio


95

Figura 47: Segunda Aplicação Otimizada - 10 Tarefas - Deadline Médio

Figura 48: Terceira Aplicação Otimizada - 10 Tarefas - Deadline Médio


96

Figura 49: Quarta Aplicação Otimizada - 10 Tarefas - Deadline Médio

Figura 50: Primeira Aplicação Otimizada - 10 Tarefas - Deadline Curto


97

Figura 51: Segunda Aplicação Otimizada - 10 Tarefas - Deadline Curto

Figura 52: Terceira Aplicação Otimizada - 10 Tarefas - Deadline Curto


98

Figura 53: Quarta Aplicação Otimizada - 10 Tarefas - Deadline Curto

Figura 54: Primeira Aplicação Otimizada - 15 Tarefas - Deadline Longo


99

Figura 55: Segunda Aplicação Otimizada - 15 Tarefas - Deadline Longo

Figura 56: Terceira Aplicação Otimizada - 15 Tarefas - Deadline Longo


100

Figura 57: Quarta Aplicação Otimizada - 15 Tarefas - Deadline Longo

Figura 58: Primeira Aplicação Otimizada - 15 Tarefas - Deadline Médio


101

Figura 59: Segunda Aplicação Otimizada - 15 Tarefas - Deadline Médio

Figura 60: Terceira Aplicação Otimizada - 15 Tarefas - Deadline Médio


102

Figura 61: Quarta Aplicação Otimizada - 15 Tarefas - Deadline Médio

Figura 62: Primeira Aplicação Otimizada - 15 Tarefas - Deadline Curto


103

Figura 63: Segunda Aplicação Otimizada - 15 Tarefas - Deadline Curto

Figura 64: Terceira Aplicação Otimizada - 15 Tarefas - Deadline Curto


104

Figura 65: Quarta Aplicação Otimizada - 15 Tarefas - Deadline Curto

Você também pode gostar