Escolar Documentos
Profissional Documentos
Cultura Documentos
Natal-RN
Dezembro de 2018
Samuel da Silva Oliveira
Linha de pesquisa:
Sistemas Integrados
Orientador
Prof. Dr. Márcio Eduardo Kreutz
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
Resumo
Abstract
4 Topologias Diretas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
5 Topologia Indireta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
6 Topologia Irregular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
10 Roteadores Rasoc (a), Tonga (b) e Mago (c) (KREUTZ et al., 2005b) . . p. 37
NoC – Network-on-Chip
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
CF – Controle de FLuxo
CV – Canais Virtuais
IP – Intellectual Property
RR – Round-Robin
NS – Nanossegundos
T1 – Roteadores do Tipo 1
T2 – Roteadores do Tipo 2
CI – Circuito Integrado
1 Introdução p. 18
2 Referencial Teórico p. 22
2.2 Redes-em-Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
2.3 Heurísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
3 Trabalhos Relacionados p. 31
4 Método Proposto p. 45
6 Resultados p. 58
6.2 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60
6.2.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60
7 Considerações Finais p. 84
Referências p. 86
1 Introdução
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.
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.
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).
• É 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 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
2 Referencial Teórico
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
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).
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
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
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).
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.
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.
2.3 Heurísticas
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;
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;
• 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.
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.
(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
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
roteadores.
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.
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
(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
(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.
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.
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.
(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.
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.
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.
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
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.
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) .
No de Pctes
X Latência do Pcte
Latência Média =
i=1
No de Pctes
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
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
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
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
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.
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.
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
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.
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.
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
6 Resultados
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.
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 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.
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
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.
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.
Abaixo podem ser visualizados os grafos utilizados nas aplicações que contém 10
tarefas.
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
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.
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
Figura 27: Gráfico com os valores comparativos de área para um grafo com 10 aplicações e
deadline médio
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.
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.
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 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 33: Gráfico com os valores comparativos de latência para um grafo com 15 aplicações
e deadline longo
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.
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.
Figura 36: Gráfico com os valores comparativos de latência para um grafo com 15 aplicações
e deadline médio
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 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.
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
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.
7 Considerações Finais
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.
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
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.
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.
CARDOZO, R. S. et al. Tonga: A low cost router for nocs. In: WORKSHOP IBERCHIP.
[S.l.: s.n.], 2004. v. 10.
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.
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.
ITRS. ITRS. mar. 2018. Mar., 2018. Disponível em: <http://www.itrs2.net/>. Acesso
em Março 14, 2018.
88
KHAN, S. et al. An efficient algorithm for mapping real time embedded applications on
noc architecture. IEEE Access, IEEE, 2018.
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.
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.; 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.
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.
MCMENAMIN, A.; AUDSLEY, N. C. Partial paging for real-time noc systems. OSPERT
2015, p. 13, 2015.
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.
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.
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 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.