Noia: Uma Ferramenta para Análise de Networks-on-chip Irregulares, Teses de Engenharia de Telecomunicações. Universidade Federal de Alagoas (UFAL)
jBarrosl
jBarrosl

Noia: Uma Ferramenta para Análise de Networks-on-chip Irregulares, Teses de Engenharia de Telecomunicações. Universidade Federal de Alagoas (UFAL)

43 páginas
32Número de visitas
Descrição
Monografia apresentada ao Curso de Engenharia de Computação do Departamento de Engenharia de Teleinformática da Universidade Federal do Ceará, como requisito parcial para obtenção do Título de Bacharel em Engenharia...
20 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 43
Esta é apenas uma pré-visualização
3 mostrados em 43 páginas
Baixar o documento
Esta é apenas uma pré-visualização
3 mostrados em 43 páginas
Baixar o documento
Esta é apenas uma pré-visualização
3 mostrados em 43 páginas
Baixar o documento
Esta é apenas uma pré-visualização
3 mostrados em 43 páginas
Baixar o documento

UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE TECNOLOGIA

DEPARTAMENTO DE ENGENHARIA DE TELEINFORMÁTICA CURSO DE ENGENHARIA DE COMPUTAÇÃO

ALAN CADORE PINHEIRO

NOIA: UMA FERRAMENTA PARA ANÁLISE DE NETWORKS-ON-CHIP IRREGULARES

FORTALEZA 2016

ALAN CADORE PINHEIRO

NOIA: UMA FERRAMENTA PARA ANÁLISE DE NETWORKS-ON-CHIP IRREGULARES

Monografia apresentada ao Curso de Engenharia de Computação do Departamento de Engenharia de Teleinformática da Universidade Federal do Ceará, como requisito parcial para obtenção do Título de Bacharel em Engenharia de Computação.

Orientador: Prof. Dr. Jarbas Aryel Nunes da Silveira

FORTALEZA 2016

Alan Cadore Pinheiro NoIA: uma ferramenta para análise de networks-on-chip irregulares/ Alan Cadore Pinheiro. – Fortaleza, 2016- 41 p. : il.(alguma color.); 30 cm. Orientador:Prof. Dr. Jarbas Aryel Nunes da Silveira Monografia apresentada ao Curso de Engenharia de Computação do Departamento de Engenharia de Teleinformática da Universidade Federal do Ceará, como requisito parcial para obtenção do Título de Bacharel em Engenharia de Computação. – Universidade Federal do Ceará Centro de Tecnologia Departamento de Engenharia de Teleinformática Curso de Engenharia de Computação, 2016. 1. Palavra-chave1. 2. Palavra-chave2. I. Jarbas Aryel Nunes da Silveira. II. Universidade Federal do Ceará. III. Centro de Tecnologia. IV. NoIA: Uma Ferramenta para Análise de Networks-on-Chip Irregulares CDU

ALAN CADORE PINHEIRO

NOIA: UMA FERRAMENTA PARA ANÁLISE DE NETWORKS-ON-CHIP IRREGULARES

Monografia apresentada ao Curso de Engenharia de Computação do Departamento de Engenharia de Teleinformática da Universidade Federal do Ceará, como requisito parcial para obtenção do Título de Bacharel em Engenharia de Computação.

Trabalho aprovado em ___/___/_____.

BANCA EXAMINADORA

Prof. Dr. Jarbas Aryel Nunes da Silveira (Orientador)

Universidade Federal do Ceará (UFC)

<Nome do Primeiro examinador da banca> <IES do primeiro membro>

<Nome do Segundo examinador da banca> <IES do segundo membro>

RESUMO

Palavras-chave: Palavra1. Palavra Chave2. Palavra3. Palavra Chave Quatro.

ABSTRACT

Keywords: Keyword1. Keyword2. Word3. Keyword four.

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.1.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2 Organização deste Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . 15 2.1 Sistemas Intrachip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Redes Intrachip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.2 Topologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.2.1 Malha Regular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2.2.2 Torus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.2.3 Árvore Binária . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.3 Redes Irregulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.4 Memorização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.5 Controle de fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.5.1 Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.5.2 Baseado em Créditos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.6 On-Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.7 Chaveamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2.7.1 Chaveamento por Circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2.7.2 Chaveamento por Pacote . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2.7.3 Store and Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.7.4 Virtual Cut Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.7.5 Wormhole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.8 Arbitragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.8.1 Round Robin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.8.2 First Come First Serve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.9 Roteamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.9.1 Algoritmos Determinísticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.9.2 Algoritmos Adaptativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.9.3 Algoritmos para Redes Irregulares . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.9.3.1 UP*/DOWN* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.9.3.2 Segment-based Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.9.4 Implementação dos Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.2.9.4.1 Region-based Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 MATERIAIS E MÉTODOS . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.1 Geração de Topologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Algoritmos Implementados . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.1 SBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.2 Computação de Caminhos . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.3 RBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.4 Métricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.5 Interface Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4 DISCUSSÃO DOS RESULTADOS . . . . . . . . . . . . . . . . . . . . . 39

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

11

1 INTRODUÇÃO

Nas últimas décadas, a tecnologia acompanhou a Lei de Moore, a qual prevê que a quantidade de transistores em um circuito integrado irá duplicar a cada ano. Elementos com funcionalidades diferenciadas e com maior poder de processamento funcionaram como uma alavanca para o desenvolvimento de sistemas mais eficientes. Nessa linha de avanço, temos os sistemas embarcados que são desenvolvidos para um propósito específico. Dimensionando recursos e restringindo suas funcionalidades.

Os sistemas embarcados atuais vêm utilizando sistemas intrachip, em inglês System-on-Chip (SoC), de forma diversificada e em larga escala. Um SoC é composto por diferentes componentes agrupados de forma a termos sistemas complexos e completos em um único chip. Tais componentes necessitam ser interconectados por uma estrutura de comunicação robusta e eficiente. A modelagem e desenvolvimento desta estrutura implica não somente na performance de todo o chip, mas também no consumo de potência, nos requisitos de tolerância a falhas, na dimensão física, no custo e tempo de projeto.

Com o avançar da tecnologia, a área ocupada por um transistor está cada vez menor, permitindo que a quantidade de elementos dentro de um único chip cresça consideravelmente. Como consequência disso, o nível de integração dos circuitos se intensifica de forma que a comunicação entre esses elementos se torna ineficiente. Pois as soluções tradicionais, como conexões por barramento e ponto-a-ponto, acabam se comportando como um gargalo, em termos de comunicação.

Diante dessa limitação, surge o conceito de redes intrachip, em inglês Network-on-Chip (NoC), que seguem os conceitos de redes de chaveamento de computadores. Uma NoC é constituída de roteadores interligados por meio de links e cada roteador está interligado a um elemento de processamento da SoC. Esses roteadores se conectam segundo uma topologia, por exemplo, malha regular que se assemelha a uma grelha ou torus, onde é uma malha regular em que os roteadores das extremidades se conectam aos seus opostos. Também são implementados algoritmos de roteamento e técnicas de chaveamento. Assim, a NoC atua gerenciando toda a comunicação entre os elementos da SoC.

As NoCs irregulares são assim chamadas por apresentarem falhas na sua topologia, sendo classificadas como uma derivação das NoCs regulares (totalmente conectadas). Essas falhas acontecem em links ou roteadores.Essa irregularidade na topologia limita o conjunto de algoritmos de roteamento aplicáveis. Gerando a necessidade da implementação de algoritmos adaptativos. Estes algoritmos precisam ser robustos e escaláveis para se adequar à topologia aplicada.

Como forma de avaliar a performance desses algoritmos na rede são necessárias métricas analíticas e de simulação. Por meio das métricas analíticas é medida a eficiência do roteamento utilizando, não sendo necessário realizar simulações, apenas é executado o

12 Capítulo 1. Introdução

algoritmo de roteamento e definido os caminhos entre os roteadores.

Por outro lado, as métricas extraídas de simulações revelam o desempenho da rede. Geralmente demandam um tempo maior para serem geradas, pois, além da execução do algoritmo de roteamento, também é necessário simular a NoC, injetar tráfego e finalmente extrair os dados.

Este trabalho foca na ferramenta que gera métricas analíticas, utilizando o algoritmo SBR (MEIJA et al, 2006), em inglês Segment-based Routing, em conjunto com o mecanismo de roteamento RBR (MEIJA et al, 2009), em inglês Region-based Routing, que implementa o algoritmo SBR.

Também apresenta um recurso visual para análise do comportamento resultante do processamento do algoritmo na topologia dada, onde, além de visualizar a forma da topologia, é possível observar a formação de segmentos, o posicionamento de restrições, a formação de regiões, os pesos dos links e as métricas analíticas. Por fim, é gerada uma tabela de roteamento que é usada para fins de simulação.

1.1 Objetivos

Os objetivos gerais e específicos deste trabalho são apresentados a seguir.

1.1.1 Objetivo Geral

O objetivo principal deste trabalho é a construção da ferramenta NoIA e análise das métricas analíticas geradas por esta ferramenta gráfica para diferentes topologias de entrada. Visando uma previsão do desempenho das NoCs referentes a essas topologias, que irão utilizar as tabelas de roteamento geradas pela ferramenta.

1.1.2 Objetivos Específicos

• Implementar o algoritmo de roteamento SBR;

• Implementar o mecanismo de roteamento RBR;

• Visualizar as topologias de NoCs e suas falhas;

• Visualizar o resultado da segmentação;

• Visualizar as regiões formadas;

• Gerar métricas analíticas;

• Analisar resultados.

1.2. Organização deste Trabalho 13

1.2 Organização deste Trabalho

Este trabalho está organizado em 5 capítulos. O capítulo 2 trata da fundamentação teórica sobre redes intrachip. O capítulo 3 trata da metodologia usada para o desenvolvimento da ferramenta e materiais para avaliação dos seus resultados. No capítulo 4 são apresentados e discutidos os resultados deste trabalho. Por fim, no capítulo 5 é apresentada a conclusão deste trabalho.

15

2 FUNDAMENTAÇÃO TEÓRICA

2.1 Sistemas Intrachip

Com o avanço tecnológico dos circuitos integrados foi elevado o nível de integração permitindo, assim, o desenvolvimento de um sistema que embarca mais de uma unidade de hardware, cada uma projetada de forma independente. Esses sistemas são chamados de sistemas intrachip (SoC) e têm alta integração entre os seus elementos heterogêneos (PASRICHA; DUTT, 2008).

Essas unidades de hardware são chamadas de propriedade intelectual, do inglês Intellectual Property (IP), e precisam de uma estrutura de comunicação que permita a comunicação entre esses IPs. Essa estrutura deve garantir o correto fluxo de dados da origem ao destino de cada envio, bem como oferecer garantias sobre o atraso e a vazão (PASRICHA; DUTT, 2008).

Uma das estruturas de comunicação mais usadas é a barramento. Nela os elementos são conectados por meio de uma conexão compartilhada e somente um elemento pode fazer uma transmissão por vez. A Figura 1 ilustra um exemplo de barramento.

Figura 1 – Barramento

Fonte: (PASRICHA; DUTT, 2008).

Essa concorrência de recurso limita o paralelismo e reduz o desempenho (PASRICHA; DUTT, 2008). No caso de aplicações que possuam um número considerável de processadores, o barramento se torna proibitivo. Inclusive, sendo o barramento tradicional, se torna inadequada às características de comunicação de um SoC (NICOPOULOS; NARAYANAN; DAS, 2010). Em aplicações que utilizam altas frequências, essa estrutura de comunicação se torna mais complexa de se operar devido às conexões dos módulos que causam descontinuidades de impedância (DALLY; TOWELS, 2003).

Visando contornar essas barreiras emergentes, um novo conceito foi proposto: uma arquitetura baseada em redes de computadores para gerenciar a comunicação entre os

16 Capítulo 2. Fundamentação Teórica

elementos de processamento. Esse tipo rede de interconexão chaveada é conhecida como Network-on-Chip (NoC). Uma NoC contribui com um alto grau de paralelismo, alta escalabilidade e reusabilidade da arquitetura de comunicação (CARDOZO, 2005).

2.2 Redes Intrachip

2.2.1 Conceitos

A NoC é constituída de roteadores e links. Geralmente o par IP-Roteador é referenciado como nó ou nodo (BENINI; MICHELLI, 2006). A NoC atua como uma rede de roteadores interligados que se conectam aos elementos de uma SoC. Utiliza-se conceitos de redes de computadores e sistemas distribuídos. O projetista precisa atentar em reduzir a área de silício ocupada e o consumo de energia. Esses pontos não são preocupantes em redes de computadores tradicionais (TEDESCO, 2005).

Na transmissão de informações na NoC, são considerados quatro unidades de comunicação: a mensagem, que é o conjunto de dados enviado entre IPs; o pacote, o qual é uma parte da mensagem sendo enviada e que é trabalhada pelo algoritmo de roteamento, também é adequada às restrições da rede; o flit, do inglês flow control unit, que é a unidade de divisão dos pacote e a unidade em que o controle de fluxo age; o phit, do inglês phyisical unit, é a unidade física em que atravessa o link num ciclo de relógio. A Figura 2 mostra essas unidades relacionadas entre si.

Figura 2 – Relação entre unidades de comunicação

Fonte: (PASRICHA; DUTT, 2008).

As principais vantagens de uma NoC são: escalabilidade, paralelismo, reusabilidade, decisões de roteamento distribuídos e baixo consumo de potência. Entretanto, existem algumas desvantagens como: área de silício ocupada, latência dos pacotes e a complexidade na fase de projeto (TEDESCO, 2005).

Uma NoC é definida em dois aspectos: a topologia e os mecanismos de comunicação. Esses mecanismos são divididos em memorização, controle de fluxo, chaveamento, arbitragem e roteamento.

2.2. Redes Intrachip 17

2.2.2 Topologia

A topologia diz respeito à interligação dos nodos através dos links. A escolha da topologia é muito importante, pois, dependendo da topologia escolhida, temos uma grande ou baixa diversidade de caminhos entre nodos de origem e nodos de destino e temos uma grande ou pequena distância de roteamento. Com base na topologia são escolhidos os algoritmo de roteamento e controle de fluxo.

Existem as topologias diretas e indiretas. No caso das diretas, todos os roteadores estão ligados a um elemento de processamento. Logo, qualquer roteador pode ser uma origem ou um destino numa transmissão da dados. Esses roteadores se conectam a um número limitado de roteadores vizinhos.

Em se falando de topologias indiretas, os roteadores não estão obrigatoriamente ligados a um IP. Portanto, existem os roteadores intermediários, que não se conectam diretamente a um IP, e os terminais que têm um de seus links conectados a um IP.

A seguir são exemplificados duas topologias diretas (malha regular e torus clássica) e uma indireta (árvore binária).

2.2.2.1 Malha Regular

É a topologia mais comumente utilizada. Os roteadores que não estão nas extremidades possuem cinco conexões, uma para o elemento de processamento e quatro para conectar-se aos roteadores adjacentes. Os nodos das laterais possuem quatro conexões (sendo uma para o IP) e os dos cantos possuem três conexões, com uma conexão para o elemento de processamento.

Essa estrutura permite a incorporação de vários elementos de processamento em uma estrutura regular (REDDY et al., 2014). A Figura 3 exemplifica uma topologia de malha regular de dimensão 4.

Figura 3 – Topologia malha regular

Fonte: (PASRICHA; DUTT, 2008).

18 Capítulo 2. Fundamentação Teórica

2.2.2.2 Torus

Essa estrutura se assemelha à malha regular, diferenciando no fato de que os roteadores das extremidades se conectam com os roteadores da extremidade oposta (REDDY et al., 2014). Com isso, todos os roteadores da topologia têm cinco links, sendo um para o elemento de processamento e os outros quatro para roteadores vizinho (e de extremidade oposta). A Figura 4 ilustra uma topologia torus clássica de dimensão 4.

Figura 4 – Topologia torus regular

Fonte: (DALLY; SEITZ, 1986).

2.2.2.3 Árvore Binária

A árvore binária segue a forma de uma árvore em que os elementos de processamento estão nas folhas, portanto, no nível mais baixo. Cada elemento da rede é representado pelo par (nível, posição). Onde nível indica a posição vertical na árvore e posição representa a localização da esquerda para a direita. A figura 5 exemplifica uma árvore binária.

Figura 5 – Topologia árvore binária

Fonte: (REDDY et al., 2014).

2.2.3 Redes Irregulares

Redes irregulares podem derivadas de topologias regulares. Essa irregularidade se dá devido a falhas decorrentes de links e/ou roteadores. Tais falhas são provenientes de

2.2. Redes Intrachip 19

defeitos de fabricação ou falhas ocasionadas em tempo real. Neste trabalho trataremos de redes irregulares provenientes de falha em links. A figura 6 exemplifica uma topologia irregular derivada de uma malha regular de dimensão 4x3.

Figura 6 – Rede irregular

Fonte: Elaborada pelo autor.

2.2.4 Memorização

A memorização é o mecanismo que trata do armazenamento do pacote no caminho de envio. Portanto, influencia na eficiência do compartilhamento da largura de banda dos links.

Esse armazenamento é feito por meio de buffers. Os buffers armazenam pacotes ou flits que não podem avançar de imediato e estão localizados na porta de entrada ou de saída do roteador (JERGER; PEH, 2009).

São defininas três possíveis arquiteturas: enfileiramento de entrada, enfileiramento de saída e enfileiramento combinado, o qual é de entrada e saída.

2.2.5 Controle de fluxo

O controle de fluxo é o mecanismo que controla a alocação de recursos na rede. Ou seja, indica quando os recursos estão livres para serem usados, bem como determina a forma como são compartilhados entre as mensagens em tráfego.

Um controle de fluxo que tende ao ideal minimiza a latência das mensagens em baixa carga e engrandece a vazão por meio de um eficiente compartilhamento de recurso. Logo, é determinante no consumo de potência e energia na rede (JERGER; PEH, 2009).

No ato de injeção de uma mensagem na rede, esta é segmentada em pacotes que são constituídos por flits. Esses flits são organizados em flits de cabeçalho, intermediários e terminais. Os flits de cabeçalho indicam o destino da mensagem, a sua origem e o tamanho do pacote. Flits intermediários são os dados propriamente ditos do pacote. Por fim, os flits terminais são indicadores do fim do pacote.

Os flits são comumente definidos como a menor divisão de um pacote, sendo constituídos por somente um phit (JERGER; PEH, 2009).

20 Capítulo 2. Fundamentação Teórica

2.2.5.1 Handshake

Nessa técnica ocorre uma verificação e confirmação para alocação de flits em buffer. Quando o roteador de origem precisa enviar um flit para o roteador de destino, é enviado um sinal de requisição através da linha de requisição. Caso o roteador de destino tenha recurso disponível, é retornado um sinal de confirmação, através da linha de confirmação, indicando a permissão de envio e, então, ocorre o envio do flit. Esse procedimento se repete para cada envio de flit.

2.2.5.2 Baseado em Créditos

Essa técnica trabalha com uma linha de indicação de dado para transmissão e um conjunto de linhas que indicam o valor do crédito. O crédito é uma grandeza que indica a o espaço livre existente no buffer do roteador receptor (JERGER; PEH, 2009).

Enquanto houver sinalização de dado a ser enviado e o valor de crédito for maior que zero, flits são enviados ao roteador receptor e o valor de crédito é decrementado. Da mesma forma que, se o roteador receptor enviar mensagem a um próximo roteador, o valor de crédito é incrementado.

A figura 7 exemplifica um controle de fluxo baseado em créditos.

Figura 7 – Controle baseado em créditos

Fonte: (JERGER; PEH, 2009).

2.2.6 On-Off

Nessa técnica há uma semelhança com a técnica baseada em créditos, diferenciando no modo como se indica uma permissão de envio de dado. Essa indicação se dá por meio de um sinal que indica um estado OFF quando não se é permitido o envio de dados e um estado ON o qual indica a permissão do envio de dados.

Esses estados estão relacionados aos limites superior e inferior, respectivamente, da capacidade do buffer. Esses limites são determinados com base no atraso da recepção do sinal OFF, o que permite que um flit enviado durante o atraso tenha espaço no buffer do receptor. A figura 8 ilustra o controle de fluxo on-off.

2.2. Redes Intrachip 21

Figura 8 – Controle on-off

Fonte: (JERGER; PEH, 2009).

2.2.7 Chaveamento

O chaveamento é o mecanismo que define como uma mensagem será transmitida pela rede passando pelos roteadores.

2.2.7.1 Chaveamento por Circuito

Inicialmente o cabeçalho do pacote percorre a rede reservando o caminho entre o roteador de origem e o roteador de destino. Após o caminho ser reservado por completo, o restante do pacote é transmitido por meio desse caminho. Os recursos não mais usados pelo pacote são liberados na medida que o final do pacote avança na rede. Nesse processo de construção do caminho pode ocorrer deadlock num caso de concorrência cíclica de recursos. O algoritmo de roteamento é quem deve evitar isso.

Com o uso desse caminho reservado, não há necessidade do uso de buffers nos nodos intermediários e, portanto, só ocorre latência de transmissão nesses nodos intermediários. Diminuindo, assim, atrasos e a área ocupada pela rede.

Apesar de existir um atraso inicial de configuração, no caso de mensagens grandes, esse custo é considerado reduzido (JERGER; PEH, 2009). Um detalhe a ser considerado é que, quando um caminho está reservado, seus recursos são bloqueados para novos caminhos que iniciam uma concorrência desses recursos. Se torna recomendada em redes de fluxo constante ou com transações infrequentes e volumosas (NURMI et al., 2004).

2.2.7.2 Chaveamento por Pacote

Os pacotes avançam usando o mínimo necessário de recurso e liberam o que não é mais usado. Não há caminho pré definido ou fixo, logo, a rede tem mais recursos livres para o tráfego de pacotes, em contraste com o chaveamento por circuito (CARDOZO, 2005).

Os roteadores têm que ter suporte a memorização. Apesar de ocorrer um aumento no desempenho, já não existem mais previsões de latência, comparado com o chaveamento por circuito.

22 Capítulo 2. Fundamentação Teórica

2.2.7.3 Store and Forward

O roteador tem um buffer que comporta o pacote por inteiro (JARGER; PEH, 2009). O pacote só é repassado para o próximo roteador se ele estiver totalmente armazenado no buffer atual e se o buffer do próximo roteador já puder comportá-lo (DALLY; TOWLES, 2003).

O buffer precisa ter grande armazenamento, pois, ele deve ser dimensionado com base no maior pacote da rede, no caso de um tráfego de pacotes de tamanhos diferentes. Com isso pode haver desperdícios e a pode ser mais um parâmetro para o aumento da latência.

2.2.7.4 Virtual Cut Through

Nessa técnica o pacote avança assim que o próximo buffer puder comportar todo o conteúdo do buffer atual. Inclusive, o pacote não precisa estar inteiramente no buffer atual (KERMANI; KLEINROCK, 1979).

Com relação à tecnica store and forward, ocorre uma redução de latência mas os buffers tem requisitos semelhantes.

2.2.7.5 Wormhole

Essa técnica permite que os flits do pacote avancem assim que houver algum espaço livre no buffer do roteador seguinte, não sendo preciso alocar totalmente o conteúdo do roteador atual ou que o pacote esteja integralmente nesse buffer atual para prosseguir. Essa característica permite buffers menores, comparados às técnicas anteriores. Os flits avançam de forma sequencial, resultando na possibilidade do pacote ficar distribuído pela rede (DALLY; SEITZ, 1986).

No caso de recurso ocupado, o flit fica no aguardo da liberação desse recurso para poder prosseguir na transmissão. Isso implica no canal, reservado por esse flit, permanecer ocupado (JERGER; PEH, 2009). Isso faz com que a técnica também seja passível de deadlocks.

Wormhole é uma das técnicas mais utilizadas em NoCs, fornecendo um baixo consumo de potência e menor área (AGARWAL; ISKANDER; SHANKAR, 2009).

2.2.8 Arbitragem

É o mecanismo que resolve a concorrência de recurso, no caso de flits de portas de entrada diferentes solicitarem uma mesma porta de saída. Nas subseções seguintes são apresentados os mecanismos de arbitragem Round Robin e First Come First Serve.

2.2.8.1 Round Robin

Esse mecanismo consiste de um árbitro circular, o qual dispõe a prioridade para todas as portas de entrada de forma igualitária, sendo considerado fortemente justo (DALLY; TOWLES, 2003). Em uma sequência de portas, que seguem uma ordem de prioridade, a

2.2. Redes Intrachip 23

primeira porta terá prioridade sobre as outras e quando atendida passará a ter a menor prioridade diante das demais. Então, a segunda porta, agora, passa a ter a maior prioridade e assim por diante (JERGER; PEH, 2009).

2.2.8.2 First Come First Serve

Nesse mecanismo ocorre um enfileiramento de prioridades segundo a chegada das requisições de recurso. Ou seja, comparando com estrutura de dados, se assemelha a uma fila, na qual o primeiro que chega é o primeira a ser atendido (JERGER; PEH, 2009).

2.2.9 Roteamento

O algoritmo de roteamento é responsável por determinar por onde a mensagem deve continuar sua transmissão pela rede até atingir seu nodo de destino. Um algoritmo de roteamento ideal deve conseguir evitar deadlocks em qualquer situação. Um deadlock é a situação em que ocorre dependência cíclica nos recursos da rede. Por exemplo, um pacote que tem links reservados e está em espera da liberação de um novo link, sendo que este novo link está ocupado por outro pacote que precisa de um desses recursos ocupados pelo primeiro pacote.

2.2.9.1 Algoritmos Determinísticos

Algoritmos determinísticos são aqueles em que já se tem conhecimento de qualquer caminho origem-destino. Qualquer que seja o par origem-destino, sempre resultará em somente um caminho possível para esse par.

Um algoritmo determinístico muito usado é o DOR (Dimension Order) XY. Nesse algoritmo é verificada a posição do nodo destino e comparada com a posição do nodo atual toda vez que um pacote avança na rede.

Considerando que cada roteador está posicionado segundo um par coordenado (X,Y), o avanço na rede se dá primeiro na direção do eixo X e depois na direção do eixo Y. Nesse procedimento ocorre a comparação da posição X do par coordenado do nodo destino com a posição X do nodo atual. No momento em que esses valores se igualam, o pacote pode trafegar no sentido de Y até igualar a posição Y do nodo atual com a posição Y do nodo destino.

Algoritmos DOR não são indicados para uso em redes irregulares, pois, não são adaptativos. Ou seja, não conseguiriam adaptar-se a um caminho que tivesse uma falha no seu percurso. Portanto, para esses casos, são utilizados algoritmos adaptativos.

2.2.9.2 Algoritmos Adaptativos

Algoritmos que permitem a adaptabilidade devido a falhas ou tráfego na rede são denominados algoritmos adaptativos. Esses algoritmos também podem ser classificados desta

Até o momento nenhum comentário
Esta é apenas uma pré-visualização
3 mostrados em 43 páginas
Baixar o documento