57
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA – UEFS Daniel dos Anjos Costa PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- ADAPTATIVO PARA REDES EM CHIP FEIRA DE SANTANA 2010

PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA – UEFS

Daniel dos Anjos Costa

PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI-

ADAPTATIVO PARA REDES EM CHIP

FEIRA DE SANTANA

2010

Page 2: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

Daniel dos Anjos Costa

PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI-

ADAPTATIVO PARA REDES EM CHIP

Monografia apresentada à disciplina Trabalho

de Conclusão de Curso do Curso de

Graduação em Engenharia da Computação da

Universidade Estadual de Feira de Santana

como requisito parcial para obtenção do Grau

de Engenheiro da Computação.

Prof. Orientador: Angelo Amancio Duarte

Feira de Santana

Page 3: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

DANIEL DOS ANJOS COSTA

PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI-

ADAPTATIVO PARA REDES EM CHIP

Monografia apresentada à disciplina Trabalho de Conclusão de Curso ao Curso de Engenharia

da Computação da Universidade Estadual de Feira de Santana como requisito parcial para

obtenção do Grau de Engenheiro da Computação.

_________________________________________________________

Doutor Angelo Amâncio Duarte

Professor do Departamento de Tecnologia da UEFS

Orientador

__________________________________________________________

Doutor Anfranserai Morais Dias

Professor do Departamento de Tecnologia da UEFS

__________________________________________________________

Doutor Wagner Luiz Alves de Oliveira

Professor do Departamento de Tecnologia da UEFS

Feira de Santana, _______ de _______________ de _______.

Page 4: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

Dedico a todos que de uma forma ou de outra contribuíram para a confecção deste trabalho. Em especial a Deus, a minha família, ao professor Angelo Duarte e outros professores e amigos do curso de Graduação em Engenharia da Computação da Universidade Estadual de Feira de Santana.

Page 5: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

RESUMO

As principais conquistas tecnológicas do Século XX se deram no campo da distribuição de

informações, do processamento e mobilidade. Entra neste cenário a tecnologia de fabricação

de circuitos integrados (CIs), que evoluiu ao ponto de dificultar alguns dos principais

paradigmas subjacentes ao projeto de sistemas digitais complexos. Dentre estes, um dos mais

relevantes, é o uso de barramento como meio de interconexão intra-chip. As redes-em-chip ou

NoCs (Networks-on-Chip) apresentam-se como a melhor alternativa para a interconexão de

componentes nos futuros sistemas integrados em um único chip. Trata-se de arquiteturas de

comunicação que adaptam conceitos oriundos de redes de computadores e de sistemas

paralelos e distribuídos para o ambiente intra-chip. O presente trabalho contribui com uma

proposta de arquitetura para um roteador toro, com algoritmo de roteamento semi-adaptativo.

Além dos detalhes arquiteturais, este trabalho apresenta resultados das simulações e dos testes

de validação do projeto.

Palavras chave - Redes-em-Chip. Sistemas Integrados. NoCs.

Page 6: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

ABSTRACT

The major technological achievements of the twentieth century occurred in the field of

distributing of information, processing and mobility. It comes in the scenery the

manufacturing technology of integrated circuits (ICs), which evolved to the point of hindering

some of the major paradigms underlying the design of complex digital systems. Among these

is the use of bus for intra-chip interconnections. Networks-on-chip, or (NoCs) are the best

alternative for interconnecting components in the future integrated systems on a single chip.

They are communication architectures that adapting concepts from computer networks and

parallel and distributed systems into the intra-chip domain. This work proposed an

architecture for a torus router, with a semi-adaptive algorithm routing. Besides the

architectural details, this work presents simulations results and validation tests of the project.

Keywords - Network-on-Chip. Integrated Systems. NoCs.

Page 7: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

LISTA DE FIGURAS

FIGURA 1 - ILUSTRAÇÃO DE UMA REDE EM CHIP. ....................................................................... 15

FIGURA 2 - ESTRUTURA DE UMA MENSAGEM. ............................................................................ 16

FIGURA 3 - (A) FORMATO DE UMA REDE GRADE 3 X 3, (B) FORMATO DE UMA REDE TORÓIDE (C)

FORMATO DE UMA REDE HIPERCUBO. FONTE: (ZEFERINO, 2003), (CARARA, 2004). .... 17

FIGURA 4 - CONTROLE DE FLUXO BASEADO EM SLACK BUFFER. FONTE: (MELLO, 2002),

(CARARA, 2004). ............................................................................................................ 19

FIGURA 5 - ESTRUTURA DE UM ROTEADOR, COM DESTAQUE PARA O MÓDULO DE CONTROLE DE

CHAVEAMENTO. ................................................................................................................. 19

FIGURA 6 – ESTRATÉGIA DA FIFO. ............................................................................................ 22

FIGURA 7 - ESTRATÉGIA SAFC. ................................................................................................ 22

FIGURA 8 - ESTRATÉGIA SAMQ. ............................................................................................... 23

FIGURA 9 - ESTRATÉGIA DAMQ. .............................................................................................. 24

FIGURA 10 - OITO POSSÍVEIS MUDANÇAS DE DIREÇÃO PARA REDES COM TOPOLOGIA GRADE OU

TORO.................................................................................................................................. 25

FIGURA 11 - (A) AS RETAS CONTÍNUAS REPRESENTAM OS CAMINHOS PERMITIDOS E AS RETAS

PONTILHADAS, OS NÃO PERMITIDOS; (B) SEIS EXEMPLOS DE MOVIMENTAÇÃO DOS PACOTES

NA REDE............................................................................................................................. 26

FIGURA 12 - (A) AS RETAS CONTÍNUAS (CAMINHOS PERMITIDOS) E, AS RETAS PONTILHADAS

(NÃO PERMITIDOS); (B) DOIS EXEMPLOS DE MOVIMENTAÇÃO DOS PACOTES NA REDE

ROTEADOS PELO ALGORITMO WEST-FIRST. ......................................................................... 27

FIGURA 13 - (A) AS RETAS CONTÍNUAS (CAMINHOS PERMITIDOS) E AS RETAS PONTILHADAS (NÃO

PERMITIDOS). (B) QUATRO EXEMPLOS DE MOVIMENTAÇÃO DOS PACOTES NA REDE

ROTEADOS PELO ALGORITMO NORTH-LAST. ........................................................................ 28

FIGURA 14 - (A) AS RETAS CONTÍNUAS (CAMINHOS PERMITIDOS) E AS RETAS PONTILHADAS (NÃO

PERMITIDOS); (B) QUATRO EXEMPLOS DE MOVIMENTAÇÃO DOS PACOTES NA REDE

ROTEADOS PELO ALGORITMO NEGATIVE-FIRST. .................................................................. 29

FIGURA 15 - ABORDAGENS PARA IMPLEMENTAÇÃO DE ÁRBITROS: (A) CENTRALIZADA; (B)

DISTRIBUIDA. FONTE: (ZEFERINO, 2003). ....................................................................... 30

FIGURA 16 - PORTAS DE COMUNICAÇÃO DO ROTEADOR. ........................................................... 32

FIGURA 17 - VISÃO EM ALTO NÍVEL DA ARQUITETURA DO ROTEADOR. ...................................... 33

Page 8: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

FIGURA 18 - ILUSTRAÇÃO DA ARQUITETURA DE UM TERMINAL DO ROTEADOR. ......................... 34

FIGURA 19 - ARRUMAÇÃO DOS BITS DO PACOTE PARA: (A) O CABEÇALHO; (B) O CONTEÚDO DA

MENSAGEM; (C) E O TERMINADOR. ..................................................................................... 35

FIGURA 20 - DIAGRAMA DE SEQÜÊNCIA ILUSTRANDO OS PASSOS DA SINCRONIZAÇÃO NO

MOMENTO DA TRANSFERÊNCIA. ......................................................................................... 36

FIGURA 21 - ARQUITETURA DO ÁRBITRO DE ENTRADA. .................................................... 38

FIGURA 22 - ILUSTRAÇÃO DA ARQUITETURA DO MÓDULO DE ROTEAMENTO. .................. 38

FIGURA 23 - ORGANIZAÇÃO DOS BITS DE ENDEREÇO. ................................................................ 39

FIGURA 24 - ORGANIZAÇÃO DOS BITS DE ROTA. ........................................................................ 39

FIGURA 25 - ILUSTRAÇÃO DA ARQUITETURA DO ÁRBITRO DE SAÍDA. ........................................ 41

FIGURA 26 - ARQUITETURA DA MATRIZ CROSSBAR. ............................................................ 42

FIGURA 27 - SIGNIFICADO DOS 11 BITS QUE PASSAM PELO CROSSBAR 5X5. ............................ 43

FIGURA 28 - ARQUITETURA DO AMBIENTE DE SIMULAÇÃO PARA OS EXEMPLOS I, II E III. ......... 44

FIGURA 29 - ARQUITETURA DO AMBIENTE DE SIMULAÇÃO PARA A SIMULAÇÃO IV. .................. 46

FIGURA 30 - MOMENTO DE SINCRONIZAÇÃO (SINAIS DE ENTRADA VAL E ACK) E ENTRADA DO

PACOTE PELO TERMINAL LOCAL DO ROTEADOR. ............................................................. 47

FIGURA 31 - MOMENTO DE SINCRONIZAÇÃO (SINAIS DE SAÍDA VAL E ACK) E SAÍDA DO PACOTE

PELO TERMINAL LESTE DO ROTEADOR. ............................................................................ 48

FIGURA 32 - SIMULAÇÃO DE CONGESTIONAMENTO COM O CORTE DA CONEXÃO NOS MÓDULOS

DE SAÍDA DO TERMINAL LESTE. ................................................................................... 48

FIGURA 33 - MOMENTO DE SINCRONIZAÇÃO (SINAIS DE ENTRADA VAL E ACK), ENTRADA DO

PACOTE PELO TERMINAL LOCAL DO ROTEADOR. ............................................................. 49

FIGURA 34 - MOMENTO DE SINCRONIZAÇÃO (SINAIS DE SAÍDA VAL E ACK) E SAÍDA DO PACOTE

PELO TERMINAL OESTE DO ROTEADOR. ........................................................................... 50

FIGURA 35 – ENTRADA DO PACOTE PELO TERMINAL LOCAL, E IMEDIATAMENTE DEPOIS,

DESCARTE DO MESMO PACOTE. .......................................................................................... 51

FIGURA 36 - MOMENTO QUE O PACOTE ENTRA NA REDE, PELO TERMINAL LOCAL DO

ROTEADOR (0, 1), E SAÍ PELO TERMINAL LESTE. .......................................................... 52

FIGURA 37 - MOMENTO QUE O PACOTE ENTRA PELO TERMINAL OESTE DO ROTEADOR (1, 1),

E SAÍ PELO TERMINAL LESTE. ...................................................................................... 52

FIGURA 38 - MOMENTO QUE O PACOTE ENTRA PELO TERMINAL OESTE DO ROTEADOR (2, 1),

E SAÍ PELO TERMINAL NORTE. ..................................................................................... 52

Page 9: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

FIGURA 39 - MOMENTO QUE O PACOTE ENTRA PELO TERMINAL SUL DO ROTEADOR (2, 2), E

SAÍ DA REDE PELO TERMINAL LOCAL. ......................................................................... 53

FIGURA 40 - RESUMO DO PERCURSO DO PACOTE PELA REDE 3X3. .............................................. 53

Page 10: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

LISTA DE TABELAS

TABELA 1 - MUDANÇAS DE DIREÇÃO ILUSTRADAS NA FIGURA 10. ............................................ 25

TABELA 2 - TABELA DE PERCURSOS DOS EXEMPLOS DA FIGURA 11B. ........................................ 26

TABELA 3 - TABELA DE PERCURSOS DOS EXEMPLOS DA FIGURA 12B. ........................................ 27

TABELA 4 - TABELA DE PERCURSOS DOS EXEMPLOS DA FIGURA 13B. ........................................ 28

TABELA 5 - TABELA DE PERCURSOS DOS EXEMPLOS DA FIGURA 14B. ........................................ 29

Page 11: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

SUMÁRIO

1 INTRODUÇÃO .............................................................................................................. 13

2 FUNDAMENTAÇÃO TEÓRICA ................................................................................. 15

2.1 TOPOLOGIAS DE REDES EM CHIP ............................................................................ 16

2.2 CONTROLE DE FLUXO ................................................................................................ 17

2.2.1 CONTROLE DE FLUXO HANDSHAKE .................................................................... 17

2.2.2 CONTROLE DE FLUXO BASEADO EM CRÉDITOS ............................................. 18

2.2.3 CONTROLE DE FLUXO BASEADO EM SLACK BUFFER .................................... 18

2.3 CHAVEAMENTO ........................................................................................................... 19

2.4 MEMORIZAÇÃO ............................................................................................................ 21

2.5 ALGORITMOS DE ROTEAMENTO ............................................................................. 24

2.5.1 ALGORITMO DE ROTEAMENTO XY..................................................................... 26

2.5.2 ALGORITMO DE ROTEAMENTO WEST-FIRST .................................................... 27

2.5.3 ALGORITMO DE ROTEAMENTO NORTH-LAST ................................................... 28

2.5.4 ALGORITMO DE ROTEAMENTO NEGATIVE-FIRST ............................................ 29

2.6 ARBITRAGEM ................................................................................................................ 30

3 DESENVOLVIMENTO ................................................................................................. 32

3.1 TERMINAIS DO ROTEADOR ....................................................................................... 33

3.2 ÁRBITRO DE ENTRADA .............................................................................................. 37

3.3 MÓDULO DE ROTEAMENTO ...................................................................................... 38

3.4 ÁRBITRO DE SAÍDA ..................................................................................................... 41

3.5 MATRIZ CROSSBAR ...................................................................................................... 42

4 TESTES FUNCIONAIS ................................................................................................. 44

4.1 PRIMEIRA SIMULAÇÃO .............................................................................................. 46

Page 12: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

4.2 SEGUNDA SIMULAÇÃO .............................................................................................. 48

4.3 TERCEIRA SIMULAÇÃO .............................................................................................. 50

4.4 QUARTA SIMULAÇÃO ................................................................................................. 51

5 CONSIDERAÇÕES FINAIS ......................................................................................... 54

6 REFERÊNCIAS ............................................................................................................. 56

Page 13: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

13

1 INTRODUÇÃO

Podemos ver durante a evolução do Homem, que cada um dos três séculos anteriores

foi basicamente dominado por uma única tecnologia (TANENBAUM, 1994). O Século XVIII

foi à época dos grandes sistemas mecânicos que acompanharam a Revolução Industrial. O

Século XIX foi à era das máquinas a vapor. As principais conquistas tecnológicas do Século

XX se deram no campo da aquisição, do processamento e da distribuição de informações.

Essa nova tendência de tecnologia leva o Homem a desenvolver novos equipamentos

com cada vez mais poder de processamento, robustez e mobilidade. Devido a um mercado

capitalista bastante competitivo, os dispositivos digitais tem se tornado cada vez mais

complexos e com mais funcionalidades. Desde o inicio da eletrônica digital e da indústria de

computadores, houve uma tendência persistente e consistente de reduzir o tamanho dos

circuitos eletrônicos digitais.

As novas tecnologias de fabricação de circuitos integrados têm permitido o projeto de

sistemas completos em um único chip, os quais são denominados Systems-on-Chip (SoCs).

Sua metodologia de projeto baseia-se no reuso de blocos previamente projetados e

verificados. Esses componentes reutilizáveis são denominados núcleos (ou blocos de

propriedade intelectual – IP Blocks). Atualmente, são utilizadas duas abordagem para

interconexão dos IP Blocks: canais ponto-a-ponto dedicados e canais multiponto

compartilhados, conhecido como barramento (ZEFERINO, 2003).

As arquiteturas de comunicação baseadas no barramento, que estão na maioria dos

SoCs, não atenderão às demandas de desempenho desses sistemas. Como solução, são

apresentadas as Redes em Chips ou Networks-on-Chip (NoCs), que oferecem melhor solução

para desempenho e comunicação.

As NoCs consistem em arranjos de roteadores e enlaces, que interligam os núcleos do

SoC e, esses núcleos se comunicam através do envio e do recebimento de mensagens pela

rede. As NoCs tem como principal vantagem o uso do paralelismo na comunicação. Essa nova

abordagem aplica os conceitos das redes de interconexão para computadores paralelos, sendo

que os núcleos são considerados como os computadores, os quais são interconectados através

de uma rede formada por roteadores e canais ponto a ponto.

Como o contexto apresentado é bastante amplo, este trabalho foca na construção de

um roteador para redes em chip com roteamento semi-adaptativo. Esse roteador terá na sua

Page 14: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

14

implementação um algoritmo que é capaz de encaminhar pacotes pela rede, podendo até

mudar suas decisões de roteamento para refletir mudanças na topologia ou no tráfego.

O resultado final do trabalho foi testado individualmente e, em uma rede com

topologia toróide 3x3. O roteador implementado, foi desenvolvido em Verilog (linguagem de

descrição de hardware) e sua verificação funcional foi feita em SystemVerilog (linguagem de

desenvolvimento, verificação e testbench de hardware). O software de simulação foi o

ModelSim ALTERA STARTER EDITION 6.4a, da Mentor Graphics Corporation.

Este trabalho está dividido da seguinte maneira: o segundo capítulo contém a

Fundamentação Teórica, dando foco às arquiteturas de rede em chip e aos algoritmos de

roteamento; no capítulo três está o Desenvolvimento com a arquitetura do roteador

implementado; o capítulo quatro apresenta alguns Testes Funcionais do roteador; e finalmente

no capítulo cinco as Considerações Finais do trabalho.

Page 15: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

15

2 FUNDAMENTAÇÃO TEÓRICA

Este capítulo apresenta os conceitos teóricos envolvidos no trabalho, que auxiliou na

construção do roteador. Ele abrange boa parte das arquiteturas propostas na literatura para

redes em chip.

As redes em chip são compostas por componentes de processamento e chaveamento.

Por exemplo, na rede ilustrada na Figura 1 podemos ver os componentes de chaveamento

(representado na figura pela letra R de roteador), que possui ligações para quatro outros

dispositivos de chaveamento vizinhos e, para um núcleo local (representado na figura pela

letra N). Os núcleos são responsáveis pela execução das tarefas do sistema, enquanto que os

componentes de chaveamento, também chamados de roteadores, são responsáveis pela

transferência de mensagens entre os núcleos.

Figura 1 - Ilustração de uma rede em chip.

Em uma rede em chip, os roteadores e os núcleos nela conectados são interligados por

meio de canais ponto a ponto unidirecionais e assíncronos (ZEFERINO, 2003). Os canais são

fios que transportam o conteúdo da mensagem, a banda lateral e os sinais de sincronismo. A

banda lateral é utilizada para transferir informações adicionais, como os bits de

enquadramento da mensagem, bits de paridade ou bits de sinalização de erro.

Cada mensagem é constituída por três partes: um cabeçalho (header), o corpo da

mensagem (payload), e por fim um terminador (trailer). O cabeçalho contém informações que

ajudarão no encaminhamento da mensagem pela rede. O corpo da mensagem é o conteúdo

Page 16: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

16

que deve ser transferido (conhecido também como carga útil), e o terminador sinaliza o final

da mensagem. Ele pode ser até a última palavra da carga útil, desde que haja alguma

informação adicional de enquadramento, como um bit especial, que só é ativado no final da

mensagem (ZEFERINO, 2003). Na Figura 2 está ilustrada a estrutura de uma mensagem.

Figura 2 - Estrutura de uma mensagem.

Geralmente, as mensagens são quebradas e transmitidas em pacotes. Um pacote é

constituído por uma seqüência de flits (flow control unit), cuja largura depende da largura

física do canal. Um flit é a menor unidade de dados, sobre a qual é realizado o controle de

fluxo (CARARA, 2004), (ZEFERINO, 2003).

Uma rede em chip pode ser caracterizada pela sua topologia e pelas estratégias

utilizadas para controle de fluxo, chaveamento, memorização, roteamento e arbitragem. Essas

características são discutidas a seguir.

2.1 TOPOLOGIAS DE REDES EM CHIP

Assim como uma rede de interconexão para computadores paralelos, uma rede em

chip é caracterizada pela sua topologia e pelos mecanismos de comunicação utilizados. A

representação desse tipo de estrutura é por um grafo G(N, C), onde, N representa o conjunto

de nós da rede e, C representa o conjunto de canais de comunicação, representando o conjunto

de arestas do grafo (ZEFERINO, 2003). As redes são classificadas em diretas e indiretas.

Nas redes diretas, cada dispositivo de chaveamento possui um dispositivo de

processamento associado, e esse par pode ser visto como um elemento único dentro do

sistema, conhecido também por nó da rede (CARARA, 2004). Ao contrário das redes diretas,

as redes indiretas os roteadores não são acoplados a processadores, formando um único nó

(ZEFERINO, 2003). Em redes indiretas, cada nó de chaveamento possui um conjunto de

portas bidirecionais para ligações com outros nós de chaveamento e/ou com os nós de

Page 17: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

17

processamento, e somente alguns nós de chaveamento têm ligação com os de processamento.

A topologia da rede é definida pela estrutura de interconexão desses nós.

As topologias de redes diretas mais utilizadas são a grade (ou malha), toróide e

hipercubo, todas ilustradas na Figura 3.

Figura 3 - (a) Formato de uma rede grade 3 x 3, (b) formato de uma rede toróide (c) formato de uma

rede hipercubo. Fonte: (ZEFERINO, 2003), (CARARA, 2004).

2.2 CONTROLE DE FLUXO

O controle de fluxo lida com a alocação dos recursos (filas e canais) necessários para

uma mensagem avançar pela rede, efetuando a regulação de tráfego nos canais (CULLER,

1999). Serve, para fazer o sincronismo entre dois roteadores durante uma transferência,

ajustando a taxa de saída de um roteador origem, à taxa de entrada de um roteador destino,

evitando, assim, a perda de pacotes durante a transmissão (CARARA, 2004).

Os métodos mais conhecidos para controle de fluxo são: handshake, baseado em

crédito e baseado em Slack Buffer. A implementação desses métodos depende da estrutura do

enlace, mas o procedimento é semelhante.

2.2.1 Controle de fluxo handshake

A característica desse protocolo é que ele necessita pelo menos dois ciclos de clock

para a transmissão de cada flit (CARARA, 2004). Toda vez que o transmissor deseja

Page 18: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

18

transmitir uma mensagem, ele emite um sinal indicando que tem dado válido na linha de

transmissão. O receptor percebendo esse sinal, verifica se tem condição de armazenar esse

dado, caso tenha, ele armazena o dado e emite um outro sinal indicando que o dado está

armazenado. O transmissor mantém o dado na linha de transmissão até receber a confirmação

de armazenamento, recebendo a confirmação, ele envia o próximo obedecendo mesmo

procedimento.

2.2.2 Controle de fluxo baseado em créditos

No controle de fluxo baseado em crédito, o transmissor informa ao receptor (por um

sinal de controle), que tem dados válidos a serem transferidos na linha de transmissão. O

receptor percebendo essa solicitação verifica se tem condição de armazenar os dados, caso

tenha, ele ativa o sinal de credito, simbolizando que está preparado para recebê-los. Enquanto

o receptor tiver espaço para armazenar dados, ele mantém o sinal de credito ativo (BOLOTIN,

2004), (CARARA, 2004). O sinal de credito é desativado quando o buffer do receptor fica

cheio, logo, transmissor mantém o dado na linha de transmissão até o receptor indicar,

novamente através do sinal de crédito, que está apto a receber os dados.

2.2.3 Controle de fluxo baseado em Slack Buffer

Também chamado de controle de fluxo on/off, trata-se de uma abordagem alternativa

para o controle de fluxo baseado em crédito. O buffer pode ser visto como um reservatório

com marcas de nível alto e baixo. Essas duas marcas indicam o limite máximo e o limite

mínimo de armazenamento, respectivamente. Quando o buffer do receptor estiver na região

abaixo da marca de nível baixo, ele sinaliza ao transmissor (com o sinal GO) que pode enviar

dados, pois ele tem espaço para armazená-los. De maneira análoga, quando o buffer do

receptor estiver em nível alto, o receptor ativa o sinal de STOP, informando que a

transferência tem que parar até o buffer alcançar o nível baixo, conforme ilustrado na Figura

4.

Page 19: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

19

Figura 4 - Controle de fluxo baseado em slack buffer. Fonte: (MELLO, 2002).

Sinais redundantes de GO podem ser enviados em qualquer lugar abaixo da marca de

nível alto, enquanto os sinais de STOP podem ser enviados em qualquer lugar acima da marca

de nível baixo, sem nenhum efeito prejudicial (CARARA, 2004).

2.3 CHAVEAMENTO

O chaveamento é o mecanismo interno do roteador, que define a forma pela qual os

dados são transferidos de um canal de entrada para um dos seus canais de saída. Na Figura 5

está ilustrado um roteador com destaque a estrutura de chaveamento.

Figura 5 - Estrutura de um roteador, com destaque para o módulo de controle de chaveamento.

Page 20: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

20

Existem dois métodos básicos utilizados para a transferência dos dados, que são:

chaveamento por circuito e chaveamento por pacotes.

No método chaveamento por circuito, é estabelecido um caminho completo entre o

roteador de origem e o roteador de destino, antes de iniciar do envio da mensagem (BASTOS,

2006). Para estabelecer esse caminho, inicialmente, é inserido na rede o cabeçalho da

mensagem com o endereço do destinatário e, alguns sinais de controle. Esse cabeçalho avança

pela rede reservando canais físicos para o estabelecimento do circuito. Quando o caminho é

estabelecido, a mensagem pode ser enviada, sendo que qualquer outro pedido de comunicação

que utilize os canais alocados, não será aceito. O caminho somente é desfeito quando toda a

mensagem chegar ao seu destino.

A idéia básica do chaveamento por pacotes, é que a mensagem tem que ser dividida

em pequenos pacotes. Observando o cabeçalho do pacote, o roteador decide para onde o

enviar, não existindo um caminho pré-definido. Em relação ao chaveamento por circuito, a

grande vantagem desse método, é que o canal só permanece ocupado enquanto o pacote está

sendo transferido, e a desvantagem é a necessidade de buffers para o armazenamento

temporário de pacotes.

Os modos mais usados de chaveamento de pacotes são: store-and-forward, virtual cut-

through e wormhole.

• Store-and-forward - O modo de chaveamento store-and-forward garante que todo

pacote será recebido e armazenado por inteiro, antes de ser enviado ao próximo

roteador (BASTOS, 2006). Sua principal vantagem é a simplicidade, pois

tipicamente é utilizado um buffer FIFO para armazenamento temporário.

Entretanto, como desvantagem, essa política pode criar maior latência na rede e os

pacotes têm que ter tamanhos menores que o tamanho máximo do buffer.

• Virtual cut-through - É um aperfeiçoamento do modo store-and-forward do ponto

de vista de eficiência. Sua vantagem é a redução da latência na comunicação. O

pacote pode ser repassado adiante, logo que o roteador seguinte confirmar que tem

condição de recebê-lo por inteiro (MELLO, 2006).

• Wormhole – O modo wormhole visa reduzir a quantidade de memória para

armazenar pacotes em um roteador. Os pacotes são divididos em pedaços menores

denominados flits que trafegam pela rede em modo pipeline (BASTOS, 2006).

Como a informação de roteamento é incluída no flit de cabeçalho, os flits do

Page 21: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

21

conteúdo da mensagem devem seguir os flits de cabeçalho através da rede, logo, os

flits do conteúdo da mensagem, ficam armazenados ao longo do trajeto pela rede,

por essa razão, se diz que os flits trafegam em modo pipeline.

A grande vantagem da utilização desse modo de chaveamento é a possibilidade de

construção de roteadores pequenos e rápidos, pois os requisitos de buffers são

menores que os dos modos anteriores (ZEREFINO, 2003). A desvantagem é que

se o flit do cabeçalho ficar bloqueado em um roteador, conseqüentemente

bloqueará um número arbitrário de roteadores por onde ele passou. Outra

desvantagem é a possível ocorrência de deadlock.

2.4 MEMORIZAÇÃO

Nas arquiteturas com chaveamento por pacotes, o roteador deve garantir o

armazenamento temporário dos pacotes destinados às saídas que já estejam sendo utilizadas,

com outros pacotes. Para o caso ideal todos os roteadores teriam capacidade de

armazenamento infinita, garantindo que nenhum pacote fosse bloqueado por outro enquanto

sua saída não fosse liberada. Todavia, a memória do roteador é limitada e, o bloqueio de um

pacote pode ser inevitável.

A organização dos buffers dentro do roteador tem um impacto significativo no seu

desempenho. Há várias estratégias de memorização, dentre os quais pode-se destacar o

armazenamento na entrada, esse tipo de armazenamento consiste em inserir buffers

independentes em cada uma das portas de entrada do roteador (BASTOS, 2006). As formas

mais comuns de implementação, estão descritas a seguir: First In First Out (FIFO), Statically

Allocated, Fully Connected (SAFC), Statically Allocated Multi-Queue (SAMQ) e

Dynamically-Allocated, Multi-Queue (DAMQ).

A estratégia FIFO é a que possui um funcionamento mais simples e de menor custo,

pois os buffers têm características de fila, ou seja, os dados são escritos e lidos na mesma

ordem. (BASTOS, 2006). Mas essa estratégia tem o problema do bloqueio da cabeça da fila

(Head Of Line ou HOL), onde um pacote bloqueado por necessitar de uma saída em uso (por

outro pacote) impede que outros pacotes, atrás dele, avancem para uma porta de saída

Page 22: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

22

qualquer que esteja disponível naquele instante (CULLER, 1999). A estratégia FIFO é

ilustrada na Figura 6.

Figura 6 – Estratégia da FIFO.

A estratégia SAFC ameniza o bloqueio da cabeça da fila dividindo o buffer de entrada

em N slots que possuam tamanho igual a 1/N do tamanho do buffer original (ZEFERINO,

2003). A desvantagem da SAFC é o custo adicional referente ao controle da crossbar, que

passará a ter uma estrutura de N2xN, e ao controle dos N buffers por porta de entrada. Além

disso, a taxa de utilização dos buffers é limitada a 1/N do espaço de armazenamento total. Na

Figura 7 é ilustrado o esquema da estratégia SAFC. O controle de fluxo torna-se mais

complexo, pois é realizado individualmente para os N slots, de cada fila de entrada.

Figura 7 - Estratégia SAFC.

Page 23: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

23

O contrário do modelo SAFC, a estratégia SAMQ foi proposta para simplificar o

crossbar que era de N2xN agora ficará NxN (ZEFERINO, 2003). Isso é possível adicionando

multiplexadores às saídas dos buffers de entrada direcionadas à mesma porta, conforme

ilustrado na Figura 8. Alguns problemas da estratégia SAFC são eliminados quando se utiliza

a SAMQ, já que o custo do crossbar é reduzido. Entretanto, os outros problemas relacionados

ao modelo SAFC continuam, como por exemplo, os espaços alocados estaticamente.

Figura 8 - Estratégia SAMQ.

A estratégia DAMQ propõe espaços de armazenamento associado a uma porta de

entrada e, particionando de forma dinâmica entre as portas de saída, conforme a demanda dos

pacotes recebidos (BASTOS, 2006). A Figura 9 ilustra essa estratégia. As vantagens desse

modelo é que ele evita o problema do bloqueio do HOL e, o controle de fluxo é mais simples

que das estratégias SAFC e SAMQ. Como desvantagem, cita-se a implementação física mais

complexa para o gerenciamento dos buffers, pois sua implementação é baseada na idéia de

listas encadeadas.

Page 24: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

24

Figura 9 - Estratégia DAMQ.

2.5 ALGORITMOS DE ROTEAMENTO

O roteamento é o processo que determina para qual roteador vizinho a mensagem deve

ser enviada, baseando-se no endereço do cabeçalho da mesma. Um dos objetivos mais

importantes, em relação ao algoritmo de roteamento, é garantir que ele evite problemas como:

livelock e deadlock.

O livelock é um problema do mecanismo de roteamento. Esse problema ocorre quando

o pacote mantém-se trafegando permanentemente pela rede, porque os canais necessários para

que ele chegue ao roteador de destino, encontra-se sempre indisponível (ZEFERINO, 2003).

Geralmente esse problema ocorre em algoritmos tolerantes a falhas, pois geram caminhos

não-mínimos.

O deadlock ocorre quando há uma dependência cíclica na rede. Cada mensagem

garante a alocação de um canal e requer o uso de outro canal já alocado a outra mensagem. O

deadlock é o mais grave de todos os problemas descritos anteriormente, pois, além de impedir

que uma mensagem chegue ao seu destinatário, ele pode levar à paralisação da rede

(TANENBAUM, 2000).

Page 25: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

25

Em topologia de grade e toro, um pacote pode seguir por quatro possíveis direções:

Leste (East), Oeste (West), Norte (North) e Sul (South). No caminho percorrido pela

mensagem, oito possíveis mudanças de direção podem ser tomadas, como mostra a Figura 10.

Na Tabela 1 podemos acompanhar as mudanças de direção ilustradas na Figura 10.

Figura 10 - Oito possíveis mudanças de direção para redes com topologia grade ou toro.

Tabela 1 - Mudanças de direção ilustradas na Figura 10.

Numeração Mudança de direção 1 Oeste – Sul 2 Norte – Oeste 3 Leste – Norte 4 Sul – Leste 5 Norte – Leste 6 Leste – Sul 7 Sul – Oeste 8 Oeste – Norte

Se pelo menos duas mudanças de direção forem proibidas, pode-se dizer que o

algoritmo é livre de deadlock (ZEFERINO, 2003).

Nas próximas seções serão apresentados quatro algoritmos de roteamento: o XY

(determinístico; west-first; north-last; e negative-first (os três últimos parcialmente

adaptativos). Os algoritmos parcialmente adaptativos funcionam de maneira semelhante,

diferenciando-se nas suas direções proibidas.

Esses algoritmos funcionam com a idéia de coordenadas cartesianas de duas

dimensões. Cada roteador possui um endereço físico único, conhecido como coordenada

fonte (source) e, os cabeçalhos dos pacotes, as coordenadas destino (target), representadas

respectivamente por: (XF, YF) e (XD, YD).

Page 26: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

26

2.5.1 Algoritmo de roteamento XY

O algoritmo XY roteia, inicialmente, o pacote na direção X, até que cheguem à

coordenada XD, para depois serem roteados na direção Y, até chegar à coordenada YD (ponto

de destino do pacote). As mudanças de direção para o eixo X, quando um pacote está na

direção Y são proibidas, sendo sinalizadas pelas linhas pontilhadas na Figura 11a. Na Tabela

2 estão os percursos exemplificado na Figura 11b, cuja as rotas foram geradas pelo algoritmo

XY.

A grande vantagem do algoritmo XY é a sua fácil implementação, além de ser livre de

deadlock, pois proíbe a mudança de percurso do eixo Y para o X.

Figura 11 - (a) As retas contínuas representam os caminhos permitidos e as retas pontilhadas, os não

permitidos; (b) Seis exemplos de movimentação dos pacotes na rede.

Tabela 2 - Tabela de percursos dos exemplos da Figura 11b.

Caminhos Fonte (XF, YF) Destino (XD, YD) (0, 0) - (1, 0) (0, 0) (1, 0)

(2, 1) - (3, 1) - (3, 0) (2, 1) (3, 0) (3, 0) - (2, 0) - (2, 1) (3, 0) (2, 1) (1, 2) - (0, 2) - (0, 1) (1, 2) (0, 1)

(3, 3) - (3, 2) (3, 3) (3, 2) (0, 3) - (1, 3) - (2, 3) - (2, 2) (0, 3) (2, 2)

Page 27: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

27

2.5.2 Algoritmo de roteamento west-first

No algoritmo west-first, se XD ≤ XF, os pacotes são roteados deterministicamente,

como no algoritmo XY, pois sempre irão tomar a direção oeste primeiro (redes em grade).

Entretanto, quando o XD > XF o pacote pode tomar as direções norte, sul e leste. As direções

proibida para esse tipo de algoritmo são a 2 e a 7, conforme ilustrado na Figura 12a, pelas

setas pontilhadas. Na Figura 12b estão ilustrados dois exemplos de movimentação dos pacotes

na rede, e na Tabela 3 estão os percursos dos mesmos.

Figura 12 - (a) As retas contínuas (caminhos permitidos) e, as retas pontilhadas (não permitidos); (b)

Dois exemplos de movimentação dos pacotes na rede roteados pelo algoritmo west-first.

Tabela 3 - Tabela de percursos dos exemplos da Figura 12b.

Caminhos Fonte (XF, YF) Destino (XD, YD) (2, 2) - (1, 2) - (0, 2) - (0, 3) (2, 2) (0, 3)

(0, 1) - (1, 1) - (1, 0) - (2, 0) - (2, 1) - (3, 1) (0, 1) (3, 1)

Page 28: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

28

2.5.3 Algoritmo de roteamento north-last

No algoritmo north-last se YD ≥ YF, os pacotes são roteados deterministicamente,

como no algoritmo XY, pois sempre irão tomar a direção norte, se necessário, por último.

Entretanto, quando o YD < YF o pacote pode tomar as direções oeste, sul e leste. As direções

proibida para esse tipo de algoritmo são a 2 e a 5, conforme ilustrado na Figura 13a, pelas

setas pontilhadas. Na Figura 13b estão ilustrados dois exemplos de movimentação dos pacotes

na rede, e na Tabela 4 estão os percursos dos mesmos.

Figura 13 - (a) As retas contínuas (caminhos permitidos) e as retas pontilhadas (não permitidos). (b)

Quatro exemplos de movimentação dos pacotes na rede roteados pelo algoritmo north-last.

Tabela 4 - Tabela de percursos dos exemplos da Figura 13b.

Caminhos Fonte (XF, YF) Destino (XD, YD) (3, 0) - (2, 0) - (1, 0) - (0, 0) - (0, 1) (3, 0) (0, 1) (0, 3) - (1, 3) - (1, 2) - (2, 2) - (2, 1) (0, 3) (2, 1)

Page 29: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

29

2.5.4 Algoritmo de roteamento negative-first

No algoritmo negative-first, os pacotes são roteados primeiro nas direções negativas,

isto é, para as direções sul ou oeste. Se (XD ≤ XF e YD ≥ YF) ou (XD ≥ XF e YD ≤ YF) então os

pacotes são roteados deterministicamente, como o algoritmo XY. As direções proibida para

esse tipo de algoritmo são a 2 e a 6, conforme ilustrado na Figura 14a pelas setas pontilhadas.

Na Figura 14b estão ilustrados dois exemplos de movimentação dos pacotes na rede, e na

Tabela 5 estão os percursos dos mesmos.

Figura 14 - (a) As retas contínuas (caminhos permitidos) e as retas pontilhadas (não permitidos); (b)

Quatro exemplos de movimentação dos pacotes na rede roteados pelo algoritmo negative-first.

Tabela 5 - Tabela de percursos dos exemplos da Figura 14b.

Caminhos Fonte (XF, YF) Destino (XD, YD) (3, 3) - (2, 3) - (2, 2) - (1, 2) - (1, 1) (3, 3) (1, 1)

(2, 0) - (1, 0) - (0, 0) - (0, 1) (2, 0) (0, 1)

Page 30: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

30

2.6 ARBITRAGEM

O processo de arbitragem decide quais entradas utilizarão o recurso compartilhado a

cada instante. Em um roteador geralmente, os recursos compartilhados são as saídas, pois

muitas vezes, mais de um pacote podem requerer simultaneamente uma mesma saída. Para

resolver esse problema entra em ação o mecanismo de arbitragem do roteador, que escolhe

um pacote para utilizar o canal de saída. O mecanismo de arbitragem tem que possuir um

critério de escolha que seja livre de starvation, ou seja, ele tem que evitar que um pacote

nunca seja selecionado para utilizar o canal requisitado (SANTOS, 2004), (BASTOS, 2006).

As duas principais formas de implementação do mecanismo de arbitragem são:

centralizada ou distribuída. Na forma centralizada, os mecanismos de roteamento e de

arbitragem são implementados de forma monolítica, ou seja, juntos em um único módulo,

conforme ilustrado na Figura 15a. Enquanto, na forma distribuída, o roteamento e a

arbitragem são implementados de forma independente, para cada porta do roteador, como

ilustrado na Figura 15b. A abordagem distribuída aumenta a capacidade de processamento,

pois cada fila de entrada tem seu próprio mecanismo de roteamento. No entanto, para

algoritmos de roteamento adaptativos, a abordagem distribuída apresenta problemas, pois para

esse tipo de roteamento é preciso um árbitro com visão global.

Figura 15 - Abordagens para implementação de árbitros: (a) centralizada; (b) distribuida. Fonte:

(ZEFERINO, 2003).

A arbitragem centralizada permite que o árbitro receba requisições de maneira

simultânea e independente. Este esquema consiste de um único módulo que recebe as

Page 31: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

31

requisições dos buffers das portas de entrada do roteador e seleciona um (de acordo com sua

política de arbitragem), para que possa ser iniciada a transmissão.

Existem vários tipos de política de prioridade e cada uma dessas políticas tem

diferentes características, quanto ao desempenho e à complexidade de implementação. As

principais estão descritas abaixo:

• Prioridade estática: a mais simples de ser implementado, pois o árbitro aplica níveis

fixos e prioridade para as requisições. Esse tipo de política de arbitragem está sujeita a

starvation, pois uma requisição com menor prioridade pode ficar sempre esperando

para ser atendida;

• Round-Robin: Essa política utiliza um esquema de prioridades dinâmicas, baseado em

uma fila circular, onde todas as requisições tem o mesmo nível de prioridade;

• Randômica: Essa política seleciona um dos canais de entrada de maneira aleatória, ou

seja, sem a necessidade de se basear em informação alguma relativa à rede. Tem como

principal vantagem rapidez na escolha de um canal; e

• Oldest-First: Nessa política, o canal escolhido é o que tem mais tempo na fila de

espera. Uma maneira simples de implementá-la é manter um contador para cada canal

de entrada, o canal escolhido será sempre o que tiver o contador com valor maior.

Neste capítulo foi apresentada toda a parte teórica, com boa parte da arquitetura

disposta na literatura, que auxiliou na construção do roteador tratado neste trabalho. Nos

próximos capítulos, será apresentada a construção do roteador com roteamento semi-

adaptativo, juntamente com a construção da rede toro 3x3, e por fim, os testes do roteador,

juntamente com as considerações finais do trabalho.

Page 32: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

32

3 DESENVOLVIMENTO

Neste capítulo será apresentada a arquitetura do roteador com roteamento semi-

adaptativo. Serão mostradas as estratégias utilizadas para a topologia, o controle de fluxo, o

chaveamento, a memorização, o roteamento e a arbitragem do roteador.

O roteador foi construído para ser alocado em uma topologia toróide, descrita e

ilustrada na seção 2.1 (Figura 3b). Essa topologia tem por característica a simetria entre os

roteadores. Cada roteador tem dez portas (cinco de entrada e cinco de saída), divididas em

pares denominados Norte (North), Sul (South), Leste (East), Oeste (West) e Local. Conforme

ilustrado na Figura 16.

Figura 16 - Portas de comunicação do roteador.

Basicamente, o roteador implementado é formado por cinco grandes módulos

(ilustrados na Figura 17), que são:

• TERMINAIS – responsáveis pela comunicação com os roteadores vizinhos, o controle

de fluxo dos dados e armazenamento temporário;

• MATRIZ CROSSBAR – responsável em fazer a conexão entre as entradas e as saídas

do roteador;

• ÁRBITRO DE ENTRADA – responsável em armazenar temporariamente os

endereços dos pacotes, e repassá-los ao MÓDULO DE ROTEAMENTO.

• MÓDULO DE ROTEAMENTO – responsável em dizer para qual roteador vizinho o

pacote será enviado, de acordo com as informações contidas no cabeçalho do pacote;

• ÁRBITRO DE SAÍDA – coordena a alocação dos canais de saída do roteador.

Page 33: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

33

Figura 17 - Visão em alto nível da arquitetura do roteador.

Quando um TERMINAL recebe dados para serem transferidos, ele repassa o endereço

de destino desses dados (que está no cabeçalho de cada pacote, descrito no inicio do capítulo

2) para o ÁRBITRO DE ENTRADA, que pode receber simultaneamente novos endereços dos

cinco TERMINAIS DE ENTRADA. Ele por sua vez, armazena essa informação

temporariamente, e a repassa ao MÓDULO DE ROTEAMENTO. O ÁRBITRO DE

ENTRADA utiliza uma política de arbitragem conhecida como round-robin, para escolher

qual endereço será repassado primeiro. Recebendo o endereço do pacote, o MÓDULO DE

ROTEAMENTO calcula uma rota para o mesmo, ou seja, ele vai dizer para qual roteador

vizinho o pacote será enviado, ou para seu respectivo núcleo.

Depois que a rota é gerada, a mesma é repassada ao ÁRBITRO DE SAÍDA, que por

sua vez armazena temporariamente essa rota até o canal de saída ficar liberado. Quando o

ÁRBITRO aloca uma saída, ele a repassa a MATRIZ CROSSBAR que fará a conexão do

canal de entrada com o de saída, iniciando o trafego.

Nas próximas seções serão apresentadas as arquiteturas dos módulos internos,

juntamente com suas funcionalidades.

3.1 TERMINAIS DO ROTEADOR

Os TERMINAIS do roteador regulam o tráfego de entrada e saída de dados no

roteador. Eles possuem as seguintes funcionalidades:

Page 34: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

34

• Comunica-se com um outro TERMINAL do roteador vizinho;

• Faz a sincronização dos sinais de controle para a transferência dos dados;

• Identifica e armazena temporariamente os dados válidos, enquanto acontece

todo o processo de liberação de tráfego, feitos pelo ÁRBITRO DE

ENTRADA, MÓDULO DE ROTEAMENTO, ÁRBITRO DE SAÍDA e

MATRIZ CROSSBAR;

• Identifica congestionamento na rede;

• Interrompe o armazenamento dos dados quando o buffer fica cheio;

• Retoma a transferência sem perdas dos dados quando o buffer se esvazia; e

• Descarta os pacotes que não podem ser roteados;

Um TERMINAL é formado por quatro outros sub-módulos, que são: Input Flow

Controller (IFC), Output Flow Controller (OFC), uma memória First In First Out (FIFO),

com capacidade de armazenamento de 64 palavras de 10 bits, e um módulo Verificador de

Falhas (VF). A Figura 18 ilustra a arquitetura de um TERMINAL.

A arquitetura usando memória FIFO é a mais simples e de menor custo, pois os dados

são escritos e lidos na mesma ordem (ZEFERINO, 2003). Isso impede que outros pacotes

atrás dele avancem para uma porta de saída qualquer que esteja disponível naquele instante

(ilustrado na seção 2.4 Figura 6).

Figura 18 - Ilustração da arquitetura de um terminal do roteador.

Page 35: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

35

Cada flit dos pacotes contém 10 bits (decisão de projeto). O bit 9 e o bit 8 são os bits

de enquadramento do pacote, conhecidos como bop (begin-of-packet) e eop (end-of-packet),

simbolizando o inicio e o fim do pacote, respectivamente (ZEFERINO, 2003). No cabeçalho

do pacote, os bits de 7 a 0, contém o endereço de destino do pacote. Esse endereço está no

padrão XY (explicado na seção 2.5): os bits de 7 a 4 indicam a coordenada X, enquanto os de

3 a 0 indicam a coordenada Y, conforme ilustrado na Figura 19a.

.

Figura 19 - Arrumação dos bits do pacote para: (a) o cabeçalho; (b) o conteúdo da mensagem; (c) e o

terminador.

Na Figura 19b é ilustrada a organização dos bits durante a transmissão da carga útil da

mensagem. Nesse momento os bits bop e eop terão valor lógico “0”. No último flit da

mensagem, o bit eop tem nível lógico “1”, conforme ilustrado na Figura 19c.

Os blocos IFC e o OFC regulam a entrada e a saída dos dados no roteador,

respectivamente. Uma transferência de dados começa no momento em que o bloco IFC,

receber o sinal VAL em nível lógico alto, que significa que existem dados válidos a serem

transferidos. Se o módulo IFC estiver preparado para recebê-los, ele irá ativar o sinal ACK

(acknowledgement), indicando ao módulo OFC do roteador vizinho, que pode iniciar a

transferência. Todo o processo de transferência é ilustrado no diagrama de seqüência da

Figura 20.

Page 36: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

36

Figura 20 - Diagrama de seqüência ilustrando os passos da sincronização no momento da

transferência.

O bop vem acompanhado do endereço do pacote, conforme ilustrado na Figura 19a.

Esse endereço é repassado para o ÁRBITRO DE ENTRADA pelos sinais END (com 8 bits) e

REC, que tem a função de sinalizar por um pulso de clock que tem endereço novo, a ser

processado.

No momento que o sinal de bop é reconhecido, imediatamente o sinal WR é ativado,

iniciando assim a gravação dos dados na FIFO. Se a FIFO alcançar seu limiar máximo, o

bloco IFC desativa o sinal ACK, indicando ao roteador emissor que seu buffer está cheio.

Essa técnica é conhecida como controle de fluxo baseado em slack buffer, conforme

explicado na seção 2.2.3. Para retomar a transferência, o módulo IFC reativa o sinal de ACK,

indicando ao roteador emissor que está preparado para continuar a transferência dos dados.

Quando o sinal de eop é identificado durante a transmissão, imediatamente o sinal VAL

(ativado pelo emissor) e o sinal ACK (ativado pelo receptor), são desativados e a transferência

é encerrada.

Page 37: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

37

O módulo OFC tem dois sinais, vindos do ÁRBITRO DE SAÍDA, que se chamam

TRANS e DESCARTAR. O sinal de TRANS indica que tudo está pronto para a transferência

e, que pode iniciar a leitura do pacote na FIFO. O sinal DESCARTAR indica o descarte do

pacote, pois não houve rota para o mesmo ser enviado.

O módulo OFC também emite um sinal chamado LIVRE. Esse sinal indica ao

ÁRBITRO DE SAÍDA, quando o OFC está ocupado (transitando ou descartando dados) ou

livre esperando uma solicitação.

O último módulo a ser explicado é o VF, que nada mais é do que dois contadores, um

de 8 bits e outro 10 bits (decisão de projeto). O módulo VF recebe como entrada os sinais

VAL e ACK ligados a OFC. Ele inicia a contagem (do contador de 8 bits) quando o módulo

OFC ativa o sinal VAL, e zera a contagem quando recebe o sinal de ACK do roteador

vizinho. Caso, o sinal ACK não seja ativado até o estouro do contador, o módulo VF ativa o

sinal FALHA, indicando que há um congestionamento nessa direção. Quando o sinal FALHA

é ativado, todo o processo de enviar o endereço ao MÓDULO DE ROTEAMENTO é refeito,

para que a mesma possa calcular uma nova rota. O segundo contador (com 10 bits) inicia a

sua contagem imediatamente depois, que o sinal FALHA é ativado. O estouro do segundo

contador desativa o sinal FALHA.

3.2 ÁRBITRO DE ENTRADA

Sua principal função é armazenar temporariamente os endereços dos pacotes, enviados

pelos TERMINAIS e, repassá-los ao MÓDULO DE ROTEAMENTO, juntamente

identificação do TERMINAL de entrada dos dados. Sua lógica interna é bastante simples,

pois só tem 5 registradores de 8 bits (um para cada TERMINAL de entrada), ligados a uma

única saída por um multiplexador. A escolha de quem vai usar a saída, é feita pelo mecanismo

de arbitragem, usando uma política de arbitragem conhecida como Round-Robin, descrita na

seção 2.6. Essa estratégia foi utilizada, pela sua simplicidade e, por ser livre de starvation. Na

Figura 21 está ilustrada a arquitetura do ÁRBITRO.

Page 38: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

38

Figura 21 - Arquitetura do ÁRBITRO DE ENTRADA.

3.3 MÓDULO DE ROTEAMENTO

É um dos módulos mais importantes do roteador, pois ele tem que gerar uma rota de

destino para o pacote, a qual deverá estar livre de livelock e deadlock, além de gerar rotas

alternativas ou indicar o descarte do pacote. A Figura 22 ilustra a arquitetura do MÓDULO

DE ROTEAMENTO, juntamente com seus sinais de entrada e saída.

O MÓDULO recebe três sinais como parâmetros, informando qual é o endereço local

do roteador (sinal END LOCAL com 8 bits), e a dimensão da rede que o roteador está

inserido (sinais SIZE X e SIZE Y). O endereço local obedece ao mesmo padrão dos endereços

que vem no cabeçalho dos pacotes (padrão explicado na seção 2.5). Os quatro últimos bits são

os da coordenada X, e os quatro primeiro da coordenada Y, conforme ilustrado na Figura 23.

Logo, os roteadores implementados suportam, até uma rede 16x16.

Figura 22 - Ilustração da arquitetura do MÓDULO DE ROTEAMENTO.

Page 39: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

39

Figura 23 - Organização dos bits de endereço.

O sinal END DESTINO, vem do módulo do ÁBITRO DE ENTRADA. Por ele trafega

os endereços de destino dos pacotes que chegam por seus respectivos TERMINAIS.

Os sinais de saída do MÓDULO DE ROTEAMENTO são o TE_TS (Terminal de

Entrada e Terminal de Saída, com seis bits) e REC_OUT. Esses dois sinais informam ao

ÁRBITRO DE SAÍDA a rota, ou o descarte do pacote. Os bits de 5 a 3, do sinal TE_TS,

indicam o canal de entrada dos dados, e os bits de 2 a 0 o canal que deve sair os dados,

conforme ilustrado na Figura 24.

Figura 24 - Organização dos bits de rota.

O último sinal que não foi descrito na Figura 22, é o sinal FALHA (com quatro bits).

Esse sinal indica para MÓDULO DE ROTEAMENTO quais saídas estão congestionadas.

Todas as saídas, menos a saída LOCAL emitem o sinal FALHA. Essa entrada está

diretamente ligada a quatro módulos VF (Verificador de Falhas), cada qual monitora os sinais

de sincronismo nas saídas NORTE, SUL, LESTE e OESTE do roteador. O MÓDULO DE

ROTEAMENTO desconsidera a saída que estiver com sinal FALHA ativo.

O algoritmo de roteamento escolhido foi o west-first (seção 2.5.2). Isso foi feito

porque esse algoritmo de roteamento tem a capacidade de gerar rotas alternativas, caso o

caminho determinístico esteja com problemas.

O primeiro passo é verificar se o pacote está direcionado, a algum roteador que

pertença ao escopo da rede. Caso contrário, o pacote é descartado automaticamente, pois

nunca chegará ao seu destino. Esse cálculo é feito com o auxilio dos paramentos de entrada,

SIZE X e SIZE Y. O segundo passo do algoritmo é verificar se o endereço de destino do

Page 40: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

40

pacote, coincide com o endereço local do roteador: se isso acontecer o pacote é enviado para a

porta de saída LOCAL.

A idéia principal do algoritmo west-first é sempre enviar primeiro o pacote na direção

OESTE, depois para as outras direções, mas para isso tem que obedecer as quatro

recomendações abaixo:

1. O pacote tem que passar por menos roteadores, até seu destino, tomando a

direção OESTE.

2. O pacote tem que entrar pelo TERMINAL LESTE ou LOCAL.

3. Não pode haver falha assinalada ao TERMINAL OESTE.

4. O pacote não pode ter entrado pelo TERMINAL OESTE.

Toda vez que o pacote entra pelo TERMINAL LOCAL do roteador, ele está entrando

na rede, e por essa razão esse pacote pode tomar qualquer direção, inclusive a direção

OESTE. Quando o pacote entra pelo TERMINAL LESTE, significa dizer que ele foi lançado

na direção oeste, por outro roteador, logo pode continuar na mesma direção.

Se as condições para enviar o pacote ao TERMINAL OESTE não forem aceitas, o

pacote é roteado deterministicamente. Mas sempre levando em conta quais TERMINAIS

estão congestionados, e também observando por onde o pacote entrou, pois o pacote não pode

sair pelo mesmo TERMINAL que entrou. Caso o MÓDULO DE ROTEAMENTO não

encontre uma rota, ele tenta enviar o pacote para o canal de saída que estiver sem FALHAS

assinaladas (excluindo o TERMINAL de entrada do pacote, o LOCAL e o OESTE).

Acabando as opções de roteamento o pacote é descartado.

Page 41: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

41

3.4 ÁRBITRO DE SAÍDA

O ÁRBITRO DE SAÍDA tem que coordenar a alocação dos canais de saída do

roteador. Na Figura 25 é ilustrada a arquitetura do ÁRBITRO DE SAÍDA. Basicamente, nele

existem três módulos internos chamados de MÓDULO DE ENTRADA, MÓDULO DE

SAÍDA e REGISTRADOR DE SAÍDAS.

Figura 25 - Ilustração da arquitetura do Árbitro de Saída.

O MÓDULO DE ENTRADA tem a função de receber as rotas geradas pelo

MÓDULO DE ROTEAMENTO, armazená-las segundo seu terminal de entrada, e indicar

(pelo sinal de REC_OUT) quais são válidas. Essa organização é feita em registradores com

seis bits chamados de REG_N, REG_S, REG_E, REG_W, REG_L. Esses registradores são

diretamente ligados ao MÓDULO DE SAÍDA. Esse segundo módulo, utiliza uma política de

arbitragem conhecida como Round-Robin, descrita na seção 2.6. Ele fica sempre atento as

saídas que estão livres e, através de uma seleção por fila circular, irá escolher qual entrada

será escolhida. Essa política de arbitragem foi escolhida por ser simples e por evitar o

starvation.

O último módulo é conhecido como REGISTRADOR DE SAIDAS, ele tem a função

de armazenar quais saídas foram requisitadas para uso. Ele recebe os sinais de FALHA, vindo

dos módulos VF (Verificador de Falha), e ACK, vindo dos TERMINAIS. Esses dois sinais

indicam quando a saída está desocupada.

Page 42: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

42

3.5 MATRIZ CROSSBAR

A MATRIZ CROSSBAR tem a função de fazer o chaveamento dos pacotes, ou seja,

ela vai fazer a interconexão do canal de entrada de dados com o canal de saída. Sua função é

organizar o chaveamento, e interromper imediatamente, a conexão com o fim da transferência

do pacote (evitando assim que duas ou mais saídas possam estar refletindo os dados de uma

mesma entrada).

A Figura 26 ilustra a arquitetura da matriz de interconexão. Ela contém um módulo

chamado CONTROLE CENTRAL, e dois módulos CROSSBAR 5x5. O CONTROLE

CENTRAL recebe as rotas do ÁRBITRO DE SAÍDA, e ativa os OPCODE dos módulos

CROSSBAR 5x5. O primeiro módulo CROSSBAR 5x5, recebe sinais de 11 bits vindos dos

TERMINAIS, obedecendo a ordem ilustrada na Figura 27.

Figura 26 - Arquitetura da MATRIZ CROSSBAR.

Page 43: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

43

Figura 27 - Significado dos 11 bits que passam pelo CROSSBAR 5x5.

Como mostra a Figura 27, do bit 7 ao 0 são os bits que trafegam os dados válidos. Os

bits 9 e 8 são os bits de enquadramento do pacote, respectivamente. Pelo último bit trafega o

sinal de VAL (sinal mencionado na seção 3.1). Pelo segundo módulo CROSSBAR 5x5 entra o

sinal ACK, que vem do roteador vizinho.

Neste capítulo foi apresentada toda a implementação do trabalho, que envolve a

arquitetura escolhida e as estratégias utilizadas no roteador. Nos próximos capítulos serão

apresentados, os resultados obtidos e algumas simulações.

Page 44: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

44

4 TESTES FUNCIONAIS

Neste capítulo serão apresentadas quatro simulações distintas de uso do roteador: as

três primeiras simulações serão com um roteador individual, e as últimas, com nove

roteadores interligados formando uma rede toro 3x3.

No primeiro exemplo, simulamos uma transmissão normal de dados, com o objetivo

de mostrar que o roteador tem a capacidade de direcionar e transmitir pacotes. No segundo

exemplo, simulamos um congestionamento em uma das portas do roteador, com o intuito de

mostrar que o roteador pode direcionar e transmitir pacotes para caminhos diferentes, quando

necessário. Para o terceiro exemplo, introduzimos no roteador um pacote com endereço de

destino que está fora do escopo da rede, com o intuito de mostrar que o roteador tem a

capacidade de descartar o pacote, quando necessário. E por fim, o quarto exemplo efetua a

transmissão de um pacote por uma rede 3x3 de roteadores, com o objetivo de mostrar o

funcionamento dos roteadores em rede.

Para os três primeiros exemplos foi, criado um ambiente de simulação, que está

ilustrado na Figura 28.

Figura 28 - Arquitetura do ambiente de simulação para os exemplos I, II e III.

Page 45: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

45

No ambiente de simulação desenvolvido, temos um roteador (com seus cinco módulos

TERMINAIS de entrada e saída de dados), acoplado a mais 5 SIMULADORES DE

TERMINAL. Esses novos blocos acoplados ao roteador têm a função de coordenar a entrada

e a saída dos dados, como um TERMINAL de um roteador vizinho.

De modo geral, o processo de simulação se resume aos seguintes passos:

1. Adicionar um pacote ao SIMULADOR DE TERMINAL, no modelo aceito pelo

roteador (com cabeçalho, carga útil e terminador), conforme ilustrado na Figura 19;

2. Acionar o SIMULADOR DE TERMINAL para que ele coordene a entrada dos dados

no roteador; e

3. Monitorar as saídas do roteador para verificar se a transferência foi efetuada com

sucesso.

Nas duas primeiras simulações, foram usados pacotes com o mesmo endereço destino,

mas com conteúdos diferentes. Para que possamos acompanhar as mudanças de caminho dos

pacotes.

Para a última simulação, novamente foi desenvolvido um novo ambiente de

simulação, dessa vez com nove roteadores interligados na topologia toro-2D, formando uma

rede 3x3, conforme ilustrado na Figura 29. Nos TERMINAIS LOCAIS de cada roteador,

foram acoplados SIMULADORES DE TERMINAL, simulando um núcleo ligado ao

roteador. Logo, só monitoraremos as entradas e saídas dos TERMINAIS LOCAIS de cada

roteador.

Page 46: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

46

Figura 29 - Arquitetura do ambiente de simulação para a simulação IV.

4.1 PRIMEIRA SIMULAÇÃO

Para esse exemplo, foi configurado o roteador para ter o endereço local (1, 1),

obedecendo ao padrão do projeto (ilustrado na Figura 23), logo, ele receberá “00010001”

como entrada. Também lhe foi passado por configuração, que ele está em uma rede 3x3 (pelos

sinais SIZE X e SIZE Y explicados na seção 3.3). Inicialmente, o roteador é inicializado

(resetado), para que se estabilizem seus sinais internos.

O pacote introduzido no roteador tem a seguinte seqüência de flits:

545 – 10 – 20 – 30 – 40 – 50 – 60 – 70 – 80 – 90 – 256

Page 47: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

47

O cabeçalho do pacote está direcionado ao roteador (2, 1), logo, tem representação

binária “1000100001” (545 em decimal), seguindo o padrão ilustrado na Figura 19a. O bit

nove e o bit oito (do cabeçalho) são os bits de enquadramento do pacote: bop e eop. Do bit 7

ao bit 4 estão os bits da coordenada X e, do bit 3 ao 0 a coordenada Y. O último flit do pacote

tem representação binária “0100000000”, também seguindo o padrão aceito pelo projeto

(ilustrado na Figura 19c), onde o eop tem valor lógico “1”.

O pacote será armazenado no módulo SIMULADOR DE TERMINAL, acoplado ao

TERMINAL LOCAL, que é por onde o pacote entrará no roteador. Como o roteador tem

endereço (1, 1), o pacote (2, 1) e o TERMINAL DE ENTRADA é o LOCAL, logo, o pacote

deverá sair pelo TERMINAL LESTE, pois o roteador de destino do pacote é vizinho direto

(pelo TERMINAL LESTE) do roteador transmissor.

Depois que o pacote é inserido no SIMULADOR DE TERMINAL, ele se encarrega de

introduzi-lo no roteador. Na Figura 30 podemos ver o momento que o pacote entra pelo

TERMINAL LOCAL do roteador. No instante de 2400ps o sinal VAL é ativado pelo

SIMULADOR DE TERMINAL, indicando que tem dado a ser transferido para o roteador. No

instante 2550ps, o roteador emite o sinal ACK sinalizando que está preparado para recebe o

dado. E no momento 2650ps inicia-se a transferência dos dados.

Figura 30 - Momento de sincronização (sinais de entrada VAL e ACK) e entrada do pacote pelo

terminal LOCAL do roteador.

Depois da entrada do pacote, o roteador se encarregará de encaminhá-lo a um de seus

vizinhos. Na Figura 31 está ilustrado a sincronização dos sinais de saída VAL e ACK,

seguidos da saída do pacote pelo TERMINAL LESTE. No instante de 3900ps, o sinal VAL é

ativado pelo roteador, indicando que tem dado a ser transferido para o roteador vizinho do seu

lado LESTE (que está sendo substituído pelo SIMULADOR DE TERMINAL, como mostra a

Figura 28). No instante 4050ps, o SIMULADOR DE TERMINAL (acoplado ao TERMINAL

LESTE do roteador) emite o sinal ACK, sinalizando que está preparado para recebe o dado. E

no momento 4200ps inicia-se a transferência dos dados.

Page 48: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

48

Figura 31 - Momento de sincronização (sinais de saída VAL e ACK) e saída do pacote pelo terminal

LESTE do roteador.

Na Figura 31 podemos ver que antes do pacote entrar totalmente pelo TERMINAL

LOCAL do roteador, já se inicia a transferência de saída do pacote pelo TERMINAL LESTE.

Com isso podemos concluir que o pacote saiu pelo TERMINAL esperado.

4.2 SEGUNDA SIMULAÇÃO

Para o exemplo II, foi interrompida a comunicação entre o TERMINAL LESTE do

roteador e o SIMULADOR DE TERMINAL, acoplado a ele (com o auxilio de tristates),

conforme ilustrado na Figura 32.

Figura 32 - Simulação de congestionamento com o corte da conexão nos módulos de saída do

TERMINAL LESTE.

Page 49: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

49

O pacote que entrará no roteador terá o mesmo endereço de destino do exemplo

anterior (2, 1). Logo, ele terá que sair pelo mesmo TERMINAL do exemplo anterior

(TERMINAL LESTE), pois, o endereço do roteador é (1, 1) e, o TERMINAL de entrada é o

LOCAL. Adicionando essa interrupção ao TERMINAL LESTE, o roteador entenderá que este

caminho está congestionado, logo terá que encontrar um caminho alternativo.

De acordo com a topologia da rede (toro), se esse pacote tomar a direção OESTE, ele

terá que percorrer no mínimo dois roteadores até chegar ao seu destino, enquanto nas direções

NORTE ou SUL teria que percorrer três roteadores. Logo, o primeiro caminho alternativo

oferecido pelo MÓDULO DE ROTEAMENTO, será pelo TERMINAL OESTE.

O pacote será introduzindo no SIMULADOR DE TERMINAL acoplado ao

TERMINAL LOCAL. E em seguida, o pacote será transmitido ao roteador, que por sua vez,

se encarregará de direcioná-lo a um de seus roteadores vizinhos. O pacote que entrará no

roteador tem a seguinte seqüência de flits:

545 – 110 – 120 – 130 – 140 – 150 – 160 – 170 – 256

Todo o processo, descrito na seção anterior, de sincronização e inserção do pacote no

TERMINAL LOCAL do roteador pode ser visualizado na Figura 33. No momento 8700ps o

sinal VAL é ativado pelo SIMULADOR DE TERMINAL, acoplado ao TERMINAL LOCAL

do roteador. O roteador responde com o sinal ACK, no momento 8850ps, indicando que está

preparado para iniciar a transferência. E finalmente, a transferência inicia no instante 8950ps.

Figura 33 - Momento de sincronização (sinais de entrada VAL e ACK), entrada do pacote pelo

terminal LOCAL do roteador.

Na Figura 34 podemos ver o pacote saindo do roteador pelo TERMINAL OESTE. Nos

momentos 36800ps e 36950ps, há o sincronismo dos sinais VAL e ACK, respectivamente. E

no instante 37100ps, inicia-se a saída do pacote pelo TERMINAL OESTE.

Page 50: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

50

Figura 34 - Momento de sincronização (sinais de saída VAL e ACK) e saída do pacote pelo terminal

OESTE do roteador.

Observando a linha temporal das Figura 33 e Figura 34, da entrada do pacote, até a sua

saída, demorou exatamente 28150ps, ou seja, aproximadamente 281 pulsos de clock. Isso

aconteceu porque o roteador persistiu na tentativa de enviar o pacote pelo TERMINAL

LESTE por 256 pulsos (que é exatamente o tempo de estouro do contador presente no módulo

VF do TERMINAL LESTE, explicado na seção 3.1). Depois dessa tentativa, a nova rota foi

calculada e o pacote foi transferido com sucesso.

O resultado do experimento está de acordo com o esperado, logo pudemos concluir

que o roteador encontrou um caminho alternativo, para o pacote em questão, e o transferiu

sem perdas de carga útil.

4.3 TERCEIRA SIMULAÇÃO

Para o exemplo III, inserimos um pacote com endereço de destino “11111111”, ou

seja, (15, 15) obedecendo ao padrão aceito pelo roteador, ilustrado na Figura 19a. O roteador

foi configurado para estar em uma rede 3x3, logo esse pacote deverá ser descartado, pois

nunca achará o roteador de destino. Esse teste tem o objetivo de demonstrar uma situação de

descarte de pacote. O pacote que entrará no roteador tem a seguinte seqüência de flits:

767 – 110 – 120 – 130 – 140 – 150 – 160 – 170 – 256

O cabeçalho do pacote é 767 (em decimal) e em binário, “1011111111”. O bit 9 e o 8

são os bits de enquadramento do pacote: bop e o eop. Do bit 7 ao 4 temos a coordenada X (15

em decimal) e, do bit 3 ao 0 a coordenada Y (15 em decimal).

Esse pacote como os outros das simulações anteriores, é inserido no módulo

SIMULADOR DE TERMINAL acoplado ao TERMINAL LOCAL. Esse módulo é

Page 51: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

51

responsável em transferir o pacote ao roteador. Dentro do roteador, o pacote é transmitido

para um de seus vizinhos ou descartado, dependendo da situação.

Na Figura 35 podemos ver o momento da sincronização dos sinais de VAL e ACK

(nos tempos 2200ps e 2350ps, respectivamente). Logo depois da sincronização dos sinais

VAL e ACK, o pacote entra no roteador, no instante 2450ps, pelo TERMINAL LOCAL.

Figura 35 – Entrada do pacote pelo TERMINAL LOCAL, e imediatamente depois, descarte do

mesmo pacote.

Na mesma figura, podemos observar que antes do pacote entrar completamente no

roteador, já se inicia o seu descarte. No instante 3200ps, o TERMINAL LOCAL do roteador,

recebe o sinal DESCARTAR, enviado pelo ÁRBITRO DE SAIDA. Esse sinal informa ao

TERMINAL que o pacote deve ser descartado. Imediatamente depois do recebimento desse

sinal, o TERMINAL LOCAL inicia a leitura de sua FIFO, para que seja apagado o pacote.

Com isso, concluímos que em situações onde é impossível a transferência do pacote,

o roteador tem a capacidade de descartá-lo.

4.4 QUARTA SIMULAÇÃO

Como foi dito na introdução do capítulo 4, para esse quarto teste foi criado um

ambiente de simulação com nove roteadores, formando uma rede toro 3 x 3 (Figura 29). Nos

TERMINAIS LOCAIS de cada roteador foram acrescentados SIMULADORES DE

TERMINAL, para coordenar a entrada e saída dos pacotes na rede. Os outros terminais dos

roteadores estão interligados normalmente, segundo a topologia da rede.

Nesse último teste introduzimos um pacote ao roteador (1, 0) com destino ao roteador

(2, 2) e, para está simulação não submetemos situações de congestionamento à rede, logo o

pacote será roteador deterministicamente. O pacote tem a seguinte seqüência de flits:

Page 52: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

52

546 – 123 – 4 – 56 – 98 – 45 – 33 – 99 – 0 – 1 – 256

Nas Figura 36, 37, 38 e 39 podemos acompanhar o percurso do pacote pela rede,

destacado de branco em cada uma das figuras. Na Figura 36 o pacote entra na rede pelo

TERMINAL LOCAL do roteador (0, 1), e saí pelo TERMINAL LESTE.

Figura 36 - Momento que o pacote entra na rede, pelo TERMINAL LOCAL do roteador (0, 1), e saí

pelo TERMINAL LESTE.

Na Figura 37 podemos observar a entrada do pacote no roteador (1, 1), pelo

TERMINAL OESTE e, sua saída pelo TERMINAL LESTE.

Figura 37 - Momento que o pacote entra pelo TERMINAL OESTE do roteador (1, 1), e saí pelo

TERMINAL LESTE.

A Figura 38 ilustra a entrada do pacote pelo TERMINAL OESTE, do roteador (2, 1), e

sua saída pelo TERMINAL NORTE.

Figura 38 - Momento que o pacote entra pelo TERMINAL OESTE do roteador (2, 1), e saí pelo

TERMINAL NORTE.

Page 53: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

53

Por fim, a Figura 39 ilustra a entrada do pacote pelo TERMINAL SUL, do roteador

(2, 2), e a sua saída da rede pelo TERMINAL LOCAL.

Figura 39 - Momento que o pacote entra pelo TERMINAL SUL do roteador (2, 2), e saí da rede pelo

TERMINAL LOCAL.

Na Figura 40 podemos ver de forma resumida o caminho do pacote pela rede 3x3

montada para a simulação IV. Conclui-se, portanto, que os roteadores têm capacidade de

transportar pacotes aos seus destinos, mantendo a integridade dos seus dados.

Figura 40 - Resumo do percurso do pacote pela rede 3x3.

Page 54: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

54

5 CONSIDERAÇÕES FINAIS

O objetivo desse trabalho foi a construção de um roteador para redes em chip com

algoritmo semi-adaptativo. Esse roteador tem capacidade alterar a rota dos pacotes, caso

exista um congestionamento na rede. Por essa razão utilizamos no MÓDULO DE

ROTEAMENTO um algoritmo de classificação sem-adaptativo, junto com alguns módulos

que auxiliarão nesse processo.

Além dos módulos responsáveis pelo roteamento, construímos os módulos

responsáveis pela comunicação de roteadores vizinhos (conhecidos como TERMINAIS), o

módulo que coordena a alocação dos canais de saída (ÁRBITRO DE SAIDA) e o módulo que

é responsável em fazer a interconexão dos canais de entrada com os de saída (MATRIZ

CROSSBAR). Para o roteador utilizamos a estratégia de armazenamento na entrada, com os

buffers no modelo FIFO (seções 2.4.1 e 3.1), juntamente com Controle de Fluxo Baseado em

Slack Buffer (seções 2.2.3 e 3.1).

No MÓDULO DE ROTEAMENTO, foi utilizado o algoritmo west-first, que tem por

característica ser semi-adaptativo e livre de deadlook (seções 2.5.2 e 3.3). No ÁRBITRO DE

SAÍDA, foi utilizada uma política de arbitragem centralizada, conhecida como Round-Robin,

que evita o starvation (seções 2.6 e 3.4). E, na MATRIZ CROSSBAR, foi utilizado um

conjunto de multiplexadores interligados, formando uma estrutura que possibilita a

interligação dos canais de entrada com os de saída do roteador.

Em todo o processo de construção do roteador, houve uma preocupação com o

funcionamento correto de cada módulo individualmente e, em conjunto dentro do roteador.

Neste documento foram relatados alguns testes funcionais do roteador individualmente e, em

uma rede 3x3 toro. O roteador e a rede 3x3 com topologia toro funcionaram corretamente em

todos os experimentos. Mas não podemos valida-los por completo, pois para isso, é necessário

aplicar todas as possíveis entradas ao roteador e, observar se seu comportamento está de

acordo com o esperado.

Trabalhos de pesquisa referentes à continuidade deste Trabalho de Conclusão, a serem

desenvolvidos a médio e a longo prazo, compreendem:

• Implementação e executar os planos de teste dos módulos internos e, do roteador

como um todo;

Page 55: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

55

• Implementação da estratégia de Canais Virtuais à rede, para diminuir o número de

pacotes bloqueados (HOL) e reduzir o congestionamento na rede; e

• Adaptação da arquitetura do roteador para melhoramento do armazenamento na

entrada, utilizando as arquiteturas SAFC, SAMQ ou DAMQ (seção 2.1.4.1). Essa

modificação tem o objetivo de diminuir a latência no trafego dos pacotes e evitar o

problema HOL.

Page 56: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

56

6 REFERÊNCIAS

BASTOS, E.. Mercury: Uma Rede Intra-chip com Topologia Toro 2D e Roteamento Adaptativo. 2006. 160f. Dissertação (Mestrado em Ciência da Computação)- Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre, 2006. BOLOTIN, E.; CIDON, I; GINOSAR, R.; KOLODNY, A. QNoC: QoS architecture and design process for Network on Chip. The Journal of Systems Architecture, v.20(2-3), 2004, pp. 105-128. CARARA, E.. Uma Exploração Arquitetural de Redes Intra-chip com Topologia Malha e

Modo de Chaveamento Wormhole. 2004. 65f. Trabalho de Conclusão de Curso (Especialização em Ciência da Computação)- Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre, 2004. CULLER, D. E.; SINGH, J. P.; GUPTA, A.. Parallel Computer Architecture: AHardware/Software Approach. San Francisco, California, Ed. Morgan Kaufmann Publishers, 1999. MELLO, A. Qualidade se serviço em redes Intra-Chip: Implementação e avaliação sobre a rede Hermes. Dissertação de mestrado, Porto Alegre, Brasil, Pontifícia Universidade Católica do Rio Grande do Sul, 2006. MELLO, A.; MOLLER, L.. Arquitetura Multiprocessada em SoCs: Estudo de diferentes topologias de conexão. Trabalho de Conclusão II, Porto Alegre, Brasil, Pontifícia Universidade Católica do Rio Grande do Sul - PPGCC - FACIN, 2002. SANTOS, F.; ZEFERINO, C. A.; SUSIN, A. A.. Uma Arquitetura de Roteador

parametrizável para a Síntese de Redes-em-Chip. In: IV Congresso Brasileiro de Computação - CBComp 2004 p. 269-274, 2004. TANENBAUM, A. S. Redes de Computadores, 4ª ed. Rio de Janeiro: Editora Campus, 1994. TANENBAUM, A. S. Sistemas Operacionais: projeto e implementação. 2ª ed. Porto Alegre: Bookmam, 2000.

Page 57: PROJETO DE UM ROTEADOR COM ROTEAMENTO SEMI- … DE UM ROTEADOR COM ROT… · de uma rede formada por roteadores e canais ponto a ponto. Como o contexto apresentado é bastante amplo,

57

ZEFERINO, C. Redes-em-Chip: Arquiteturas e Modelos para Avaliação de Área e Desempenho. 2003. 242f. Tese de Doutorado (Doutorado em Ciência Computação)- Universidade Federal do Rio Grande do Sul, Porto Alegre, Brasil, 2003.