• No results found

Como comentado no cap´ıtulo 5, os roteadores com cinco e seis canais de comunica¸c˜ao s˜ao utilizados para estender a topologia 2-D original da arquitetura proposta para uma estrutura 3-D.

O roteador com cinco canais de comunica¸c˜ao ´e semelhante ao roteador apresentado nas se¸c˜oes anteriores, sendo respons´avel apenas pelo roteamento de pacotes dentro de sua pr´opria camada.

le, o qual deve ser enviado juntamente com o primeiro pacote, indicando que um segundo pacote ser´a entregue.

Em termos de implementa¸c˜ao, a ´unica diferen¸ca ocorre no bloco respons´avel pela

l´ogica de atualiza¸c˜ao, apresentado na se¸c˜ao 6.5.7. A l´ogica de atualiza¸c˜ao ´e utilizada para modificar a ordem de prioridade com a qual o seletor dinˆamico realiza a arbitragem. Desta forma, deve-se utilizar os sinais de controle para definir a ordem de prioridade desejada.

O roteador com seis canais ´e respons´avel pelo roteamento de pacotes entre as camadas. Quatro canais, como ocorre nos roteadores de cinco canais, referem-se `a comunica¸c˜ao com os roteadores vizinhos do norte, sul, leste e oeste. Os outros dois canais referem-se `a comunica¸c˜ao com a camada imediatamente acima e imediatamente abaixo. Neste caso, n˜ao h´a blocos de configura¸c˜ao acoplados aos roteadores.

Como comentado no cap´ıtulo 5, o bloco de configura¸c˜ao que precisar se comunicar com outros blocos de configura¸c˜ao residentes em outras camadas, dever´a enviar dois pacotes. O primeiro pacote conter´a o endere¸co na camada de origem, um endere¸co na camada de destino e a varia¸c˜ao no eixo z. O endere¸co na camada de origem ´e utilizado para enviar o pacote at´e um roteador de seis canais. O endere¸co na camada de destino ´e utilizado para enviar o pacote de um roteador de seis canais para o bloco de configura¸c˜ao destinat´ario e a varia¸c˜ao no eixo z informa a quantidade de camadas que o pacote dever´a percorrer.

O segundo pacote conter´a a carga ´util e o endere¸co na camada de origem, utilizado

para rotear o pacote (carga ´util) at´e o roteador de seis canais.

Este roteador tamb´em utiliza a t´ecnica de roteamento X-Y, decrementando-se uma posi¸c˜ao de Δx at´e que Δx = 0 e depois, decrementa-se uma posi¸c˜ao de Δy at´e que Δy = 0.

O processo de roteamento, quando Δx > 0 ou Δy > 0, segue o mesmo procedimento do roteador apresentado para a arquitetura 2-D.

A diferen¸ca ocorre quando Δx = 0 e Δy = 0. No roteador convencional, o pacote seria entregue ao bloco de configura¸c˜ao nele conectado. J´a no roteador com seis canais de comunica¸c˜ao, o pacote ser´a enviado ou para uma camada imediatamente acima ou para uma camada imediatamente abaixo. Para tanto, o roteador deve esperar que o bloco de configura¸c˜ao remetente envie o segundo pacote para a composi¸c˜ao de um novo pacote

contendo apenas o endere¸co na camada de destino, a varia¸c˜ao no eixo z e a carga ´util.

origem, 5 bits para a varia¸c˜ao no eixo z e 1 bit para identificar o sentido (camada acima ou abaixo), os dois canais referentes `as camadas possuem 38 bits.

O processo de roteamento entre as camadas ´e semelhante ao processo de roteamento no eixo x ou y, ou seja, o pacote de 38 bits ´e enviado de uma camada para outra decrementando-se uma posi¸c˜ao da vari´avel Δz. Quando Δz = 0, indicando que o pa- cote chegou na camada de destino, o roteador eliminar´a os 6 bits referentes `a varia¸c˜ao e dire¸c˜ao no eixo z, e o pacote, agora contendo 32 bits, ser´a roteado para o bloco de configura¸c˜ao de destino.

Em termos de implementa¸c˜ao, algumas modifica¸c˜oes sobre os blocos apresentados na se¸c˜ao 6.5 s˜ao necess´arios. Como o roteador possui seis canais de comunica¸c˜ao, duas l´ogicas extras de gera¸c˜ao de requisi¸c˜ao e de tratamento de requisi¸c˜ao s˜ao necess´arias. Os dois canais referentes `as camadas imediatamente superior e inferior devem implementar um registrador de 38 bits, cada um. Os canais do norte, sul, leste e oeste implementariam um registrador de 32 bits, cada um.

A l´ogica de roteamento continuaria semelhante, visto que todos os canais realizam o roteamento X-Y. Contudo, a l´ogica deveria ser estendida para o processamento no eixo z. Uma vez identificado que Δx = 0 e Δy = 0, deve-se decrementar uma posi¸c˜ao da vari´avel Δz, e de acordo com o bit referente ao sentido (camada superior ou inferior) a l´ogica de roteamento enviaria um sinal de requisi¸c˜ao para a l´ogica de tratamento do canal apropriado. Se a l´ogica de tratamento estiver dispon´ıvel, um sinal de armazenamento de pacote (PACA) ser´a enviado. Neste instante, a l´ogica de roteamento passar´a para um pr´oximo estado, aguardando que o segundo pacote seja entregue. Assim, no pr´oximo ciclo

de rel´ogio, a l´ogica de roteamento enviaria a carga ´util para o registrador da l´ogica de

requisi¸c˜ao do canal selecionado, iniciando o processo de roteamento entre camadas.

6.9

Coment´arios

Apresentou-se, neste cap´ıtulo, o projeto de um roteador utilizado na implementa¸c˜ao do sistema de comunica¸c˜ao da arquitetura proposta. O roteador implementa o algoritmo de roteamento X-Y, possui um canal de comunica¸c˜ao de 32 bits, um endere¸camento de 8 bits, um controle de fluxo baseado na t´ecnica Handshake, uma memoriza¸c˜ao de pacotes na sa´ıda e utiliza a arbitragem denominada Round-Robin. O roteador proposto apre- senta uma quantidade significativamente pequena de portas l´ogicas. Isso ocorre porque os modelos de Redes de Petri que podem ser implementados na arquitetura proposta re-

alizam uma comunica¸c˜ao de granularidade fina, ou seja, as informa¸c˜oes necess´arias para

um determinado processamento s˜ao enviadas em um ´unico pacote. Assim, combinando

o sistema de comunica¸c˜ao de granularidade fina com os projetos espec´ıficos dos blocos BCERPs e BCGNs pode-se reduzir o controle de fluxo e a estrutura de memoriza¸c˜ao do roteador.

No pr´oximo cap´ıtulo apresenta-se a arquitetura reconfigur´avel desenvolvida para a

7

BCGN: Bloco de Configura¸c˜ao