• Nenhum resultado encontrado

Otimização de topologia irregular para aplicações tempo real e não tempo real em MP-SoCs baseadas em redes-em-chip

N/A
N/A
Protected

Academic year: 2021

Share "Otimização de topologia irregular para aplicações tempo real e não tempo real em MP-SoCs baseadas em redes-em-chip"

Copied!
105
0
0

Texto

(1)

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

(2)

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áInformá-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

(3)

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

Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Prof. Ronaldo Xavier de Arruda - CCET

(4)
(5)
(6)

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.

(7)

precisam e, quando não as encontram, as criam. George Bernard Shaw

(8)

Resumo

Com o avanço nas arquiteturas multiprocessadas as redes-em-chip se tornaram uma solu-ção viável na etapa de comunicasolu-çã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.

(9)

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.

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

CI – Circuito Integrado

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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.

(22)

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 funciofuncio-namento 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.

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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 rotearotea-dores 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

(28)

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

(29)

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

(30)

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:

(31)

• 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.

(32)

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

(33)

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

(34)

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

(35)

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.

(36)

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

(37)

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,

(38)

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

(39)

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

(40)

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

(41)

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 comunicomuni-caçã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.

(42)

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.

(43)

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

(44)
(45)

T ab ela 1: T rabalhos Relacionados x Métrica s Utilizadas T rabalhos/Métricas DSE T op ologia Irregular Latência Média Roteadores Heterogêneos P acotes R T Área ( ABABEI , 2010) X X X ( MESQUIT A et al., 2016) X X X ( CHOUDHAR Y; GA UR; L A XMI , 2011) X X ( TOSUN; AR; OZDEMIR , 2012) X X X ( MILF ONT 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 ( SA YUTI; INDR USIAK , 2013) X X ( SHI , 2009) X X ( L V et al. , 2008) X ( DRIDI et al. , 2017) X X ( CORRÊA , 2007) X X ( BR UCH , 2015) X X ( MURALI; BENINI; MICHELI , 2005) X X X ( CAR V ALHO , 2 009) X X X Este T rabalho X X X X X X

(46)

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

(47)

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.

Latência Média = Node Pctes X i=1 Latência do Pcte 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

(48)

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

(49)

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.

bN

o de Cores

2 c ≤ N

o de Roteadores ≤ No de Cores

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

(50)

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

(51)

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.

(52)
(53)

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 roterote-ador 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.

Referências

Documentos relacionados

In this context, the objective of this study was to investigate the relationship of accelerated aging to the results of physiological performance obtained in the vigor tests

Um algoritmo de tratamento para a rizartrose deve ter em conta não só o estádio da doença mas também deve ter em consideração certas características do doente (idade, sexo, grau

A taxa do INR ideal para os paci- entes com disfunção ventricular e insuficiência cardíaca também não foi estimada por meio de estudos prospectivos e randomizados, e a taxa

Durante a pandêmia poderá prorrogar o período estabelecido de 14 dias para fazer os procedimentos de registro de mudança.. As consultas feitas diretamente no guichê do serviço

Education... Tecnologia e metamorfose da cognição e da sensibilidade A racionalidade técnica presente nas condições de produção, difusão e acesso a mercadorias simbólicas,

Duguet (1991: 88) sugere que talvez possamos, no caso específico de Averty, contrapor a ideia cinematográfica de um hors-champ (fora de campo) pela ideia mais apropriada de

As subparcelas foram quatro clones de café Conilon (Coffea Canephora Pierre) identificados como: 120, 100, 11 e 16. As parcelas consistiram de três sistemas de manejo de água

Novamente, confirmam-se resultados previamente conhecidos a respeito da componente esperada e também da surpresa (estes últimos robustos); verificou-se também significância