• Nenhum resultado encontrado

6 Roteador: Respons´ avel pelo Sistema de Comunica¸ c˜ ao da

6.6 S´ıntese e Simula¸ c˜ ao do Roteador

Com o aux´ılio do software Quartus II Web Edition vers˜ao 5.0, o roteador foi mapeado no FPGA EP2A15B724C7, da fam´ılia APEX II. De 16640 elementos l´ogicos dispon´ıveis, usou-se apenas 483 (2%), e de 492 pinos, utilizou-se 330 (67%). Com rela¸c˜ao ao processo de simula¸c˜ao, foi realizado o seguinte procedimento: gerar um sinal de rel´ogio; enviar um pacote para as sa´ıdas do roteador; gerar um n´ıvel l´ogico alto no sinal PAP de alguma porta (N, S, L, O ou BC); esperar o recebimento de confirma¸c˜ao de armazenamento de pacote sinalizado por um n´ıvel l´ogico alto no sinal PACA correspondente `a porta em quest˜ao;

PROCESS(requisicao_1, requisicao_2, requisicao_3, requisicao_4, pacote_1, pacote_2, pacote_3, pacote_4)

VARIABLE sel_pac_1 : STD_LOGIC_VECTOR(INDICE_PACOTE DOWNTO 0); VARIABLE sel_pac_2 : STD_LOGIC_VECTOR(INDICE_PACOTE DOWNTO 0); VARIABLE sel_pac_3 : STD_LOGIC_VECTOR(INDICE_PACOTE DOWNTO 0); VARIABLE sel_pac_4 : STD_LOGIC_VECTOR(INDICE_PACOTE DOWNTO 0);

BEGIN

pac_1: FOR I IN INDICE_PACOTE DOWNTO 0 LOOP

sel_pac_1(I) := pacote_1(I) and requisicao_1;

END LOOP pac_1;

pac_2: FOR I IN INDICE_PACOTE DOWNTO 0 LOOP

sel_pac_2(I) := pacote_2(I) and requisicao_2;

END LOOP pac_2;

pac_3: FOR I IN INDICE_PACOTE DOWNTO 0 LOOP

sel_pac_3(I) := pacote_3(I) and requisicao_3;

END LOOP pac_3;

pac_4: FOR I IN INDICE_PACOTE DOWNTO 0 LOOP

sel_pac_4(I) := pacote_4(I) and requisicao_4;

END LOOP pac_4;

pacote_selecionado <= sel_pac_1 or sel_pac_2 or sel_pac_3 or sel_pac_4;

END PROCESS;

Figura 6.16: C´odigo VHDL do seletor de pacote

tornar o n´ıvel l´ogico do sinal PAP baixo; esperar o envio de um n´ıvel l´ogico alto no sinal

PAP em uma determinada porta, o que indicaria a tentativa de transferˆencia do pacote

para um outro roteador ou para um bloco de configura¸c˜ao; enviar um n´ıvel l´ogico alto no sinal PACA pertencente `a porta selecionada no item anterior e verificar se o n´ıvel l´ogico do sinal PAP transita de alto para baixo.

6.7

Resultados

Na literatura cient´ıfica existem alguns projetos de roteadores, como o ParIS (ZEFE-

RINO; SANTO; SUSIN, 2004), OS4RS (BARTIC et al., 2003) e o Hot-Potato (NILSSON et al., 2003) mostrados na tabela 6.1. Os roteadores podem ser especificados levando em consi- dera¸c˜ao os seguintes fatores: algoritmo de arbitragem, tamanho do canal, endere¸camento, controle de fluxo, memoriza¸c˜ao e arbitragem.

Tabela 6.1: Especifica¸c˜oes de alguns roteadores

ParIS OS4RS Roteador Roteador

Hot-Potato Proposto

Algoritmo de X–Y Tabelas de Hot–potato X–Y

Roteamento roteamento

Tamanho do 32 bits 16 bits de dados 127 bits 32 bits canal

Endere¸camento 8 bits – 8 bits 8 bits

Controle de Fluxo Handshake Handshake – Handshake

Arbitragem Round-Robin Round-Robin Hop-counter/ Round-Robin stress value

Memoriza¸c˜ao Entrada Sa´ıda Buffer-less Sa´ıda

S´ıntese FPGA-Altera FPGA-Xilinx Synopsys FPGA-Altera

APEX II Virtex2Pro lsi10K APEX II

Portas l´ogicas – 17500 13964 2203

equivalentes (sem RAM)

LUTs / FFs 698 / 113 – – 483 / 169

(sem RAM)

O roteador ParIS possui o algoritmo de roteamento X-Y, 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 entrada e realiza uma arbitragem Round-Robin. A im- plementa¸c˜ao deste roteador possui 698 LUTs e 113 flip-flops, al´em de uma mem´oria RAM utilizada para o armazenamento de pacotes no processo de conten¸c˜ao da rede.

O roteador OS4RS possui um algoritmo de roteamento baseado em tabelas, um canal de comunica¸c˜ao de dados de 16 bits, um controle de fluxo baseado na t´ecnica Handshake, uma memoriza¸c˜ao de pacotes na sa´ıda e realiza uma arbitragem Round-Robin. A im- plementa¸c˜ao deste roteador possui 17500 portas l´ogicas, al´em de uma mem´oria RAM utilizada para o armazenamento de pacotes.

O roteador Hot-Potato possui um algoritmo de roteamento baseado na t´ecnica hot- potato, um canal de comunica¸c˜ao de 127 bits, um endere¸camento de 8 bits, uma me- moriza¸c˜ao Buffer-less e realiza uma arbitragem utilizando contadores e valores de stress (Hop-counter / Stress value). A implementa¸c˜ao deste roteador possui 13964 portas l´ogicas.

O roteador que est´a sendo proposto neste trabalho possui o algoritmo de roteamento X-Y, 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 realiza uma arbitragem Round-Robin. A implementa¸c˜ao do roteador proposto possui 483 LUTs e 169 flip-flops, totalizando 2203 portas l´ogicas, os pacotes s˜ao armazenados em registradores internos n˜ao necessitando de uma estrutura maior de memoriza¸c˜ao como uma RAM, por exemplo.

Deve-se observar que cada um desses roteadores tem um prop´osito diferente, sendo destinados a aplica¸c˜oes espec´ıficas, o que implica em implementa¸c˜oes e solu¸c˜oes de projeto distintas. Al´em disso, foram utilizados diferentes processos para a realiza¸c˜ao da s´ıntese de cada roteador. Contudo, pode-se notar que a arquitetura proposta apresenta uma quantidade significativamente pequena de portas l´ogicas. Isso ocorre porque os modelos de Redes de Petri que podem ser implementados na arquitetura proposta realizam uma comunica¸c˜ao de granularidade fina, ou seja, as informa¸c˜oes necess´arias para um determi-

nado processamento s˜ao enviadas em um ´unico pacote. Assim, a combina¸c˜ao do sistema

de comunica¸c˜ao de granularidade fina com os projetos espec´ıficos dos blocos BCERPs e BCGNs permitiu a redu¸c˜ao no controle de fluxo e na estrutura de memoriza¸c˜ao do roteador.

O projeto do roteador foi mapeado em outros FPGAs para a verifica¸c˜ao da quanti- dade de l´ogica gasta para a sua implementa¸c˜ao e da quantidade de roteadores que podem ser inclu´ıdos em um FPGA. No FPGA EP1S10F780C5, da fam´ılia STRATIX, ´e poss´ıvel o mapeamento de at´e 18 roteadores. Em FPGAs maiores, como o EP2C50F672C6, da fam´ılia CYCLONE II, um roteador utiliza apenas 464 elementos l´ogicos de 50528 dis- pon´ıveis (1%). Neste FPGA ´e poss´ıvel o mapeamento de at´e 100 roteadores.