• Nenhum resultado encontrado

Com a finalidade de alcan¸car elevadas taxas de transferˆencia efetivas, prop˜oe-se a solu¸c˜ao 4 que utiliza um dispositivo FPGA com camada MAC interna para prover a comunica¸c˜ao via Ethernet, assim como ilustrado na figura 3.6. Essa solu¸c˜ao ´e constitu´ıda do dispositivo FPGA da fam´ılia Stratix III (EP3SL150F1152C2) [102], de um componente externo espec´ıfico para implementar apenas a camada PHY Ethernet, de um CI Marvell 88E1111, e do conector MagJack, vide figura 3.2. Para implementar a camada MAC Ethernet no FPGA, foi utilizada a TSE MAC [102], a qual permite a comunica¸c˜ao half e full duplex, 10/100/1000 Mbps e opera com buffers internos ao FPGA, que podem variar entre 4 KB e 4 MB para os modos Rx e Tx. A TSE MAC Ethernet ´e parametrizada pelo Nios II e possui trˆes barramentos [111]: i) barramento Avalon Streaming para envio de dados (source); ii) barramento Avalon Streaming para recep¸c˜ao de dados (sink); e iii) um barramento Avalon memory-mapped para parametriza¸c˜ao inicial da TSE MAC e controle.

Figura 3.6: Diagrama da solu¸c˜ao baseada em FPGA com MAC Ethernet interna.

3.3 Estudo de Caso 1: WebServer - Custo versus

Taxa de Transferˆencia Efetiva

Para avaliar e comparar a complexidade versus a taxa de transferˆencia efetiva entre as solu¸c˜oes propostas e aquelas j´a dispon´ıveis na literatura, foi desenvolvida uma aplica¸c˜ao web-server utilizando o HTTP. Neste caso, cada uma das solu¸c˜oes hospedou uma p´agina HTML que permite o upload (cliente→ servidor) de dados, armazenados em um cart˜ao de mem´oria SD (secure digital card). A aplica¸c˜ao con-siste de um RTOS (real time operating system) e uma aplica¸c˜ao de File System, al´em dos protocolos TCP/IP. A tabela 3.2 apresenta os resultados de taxa de trans-ferˆencia efetiva para as solu¸c˜oes listadas na se¸c˜ao 3.2. Em termos de desempenho, as aplica¸c˜oes envolvendo FPGA apresentam melhorias expressivas, chegando a alcan¸car 2,23 Mbps neste estudo de caso.

Um outro parˆametro de an´alise importante para a escolha de uma determinada solu¸c˜ao ´e o seu custo, posto que garante uma boa aceita¸c˜ao no mercado de um produto que venha a utilizar a Ethernet para transmitir dados. Neste contexto, os custos de cada solu¸c˜ao foram levantados, considerando pre¸cos unit´arios em d´olar de todos os componentes de cada solu¸c˜ao [112]. No levantamento, n˜ao foram con-siderados os gastos com transporte e impostos. Apesar dos custos de produ¸c˜ao se reduzirem consideravelmente quando o n´umero de unidades produzidas ultrapassa alguns milhares, a presente an´alise fornece uma boa indica¸c˜ao do que ´e esperado, uma vez que as rela¸c˜oes n˜ao sofrem grandes altera¸c˜oes.

A figura 3.7 apresenta uma compara¸c˜ao entre os custos de cada solu¸c˜ao, junta-mente com as taxas de transferˆencia efetivas. O custo apresentado est´a normalizado

pela solu¸c˜ao 2 que apresentou o maior valor (US$ 72,52). O custo dos dispositivos FPGA capazes de implementar as solu¸c˜oes 3 e 4 firam obtidos de um represen-tante local da Altera [113]. Mesmo sabendo que a sintetiza¸c˜ao das solu¸c˜oes FPGA em circuito integrado de aplica¸c˜ao espec´ıfica - Application-Specific Integrated Cir-cuit (ASIC) pode reduzir os custos de produ¸c˜ao em at´e 20 vezes, essa situa¸c˜ao n˜ao foi considerado neste trabalho. Conforme ´e observado, a solu¸c˜ao 4 apresenta a me-lhor rela¸c˜ao entre taxa de transferˆencia efetiva e custo total. Ainda neste gr´afico ´e interessante notar que a solu¸c˜ao 2, mesmo sendo atualmente a mais empregada em sistemas embarcados de baixo custo, apresenta a pior rela¸c˜ao entre taxa trans-ferˆencia efetiva e custo total. Entretanto, o que justifica o seu uso seria a facilidade de integra¸c˜ao e utiliza¸c˜ao, enquanto as outras solu¸c˜oes apresentam uma complexi-dade maior na sua integra¸c˜ao. Os resultados apresentados indicam uma vantagem significativa na utiliza¸c˜ao das solu¸c˜oes propostas, que oferecem um ganho expressivo de desempenho e conferem custo menor ao projeto.

1 2 3 4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Solução Custo normalizado T

axa de transferência efetiva - Mbps

0 0.5 1 1.5 2 2.5 Custo Taxa

Figura 3.7: Compara¸c˜ao entre custo normalizado e taxa de transferˆencia efetiva para as solu¸c˜oes analisadas.

No intuito de fornecer ind´ıcios relevantes para a tomada de decis˜ao em rela¸c˜ao ao uso das solu¸c˜oes discutidas nesta contribui¸c˜ao, algumas observa¸c˜oes feitas ao longo das pesquisas, no que tange ao tempo de desenvolvimento e complexidade de implementa¸c˜ao associado `as quatro solu¸c˜oes analisadas, s˜ao reunidas na tabela 3.3. Note que B: Baixo, M: M´edio e A: Alto.

Tabela 3.2: Taxas de transferˆencia efetivas em Mbps

Solu¸c˜ao 1 2 3 4

HTTP 0,390 0,060 0,763 2,230

Tabela 3.3: Compara¸c˜ao entre as solu¸c˜oes analisadas

Solu¸c˜ao 1 2 3 4

Complexidade de Implementa¸c˜ao M B M M Tempo de Desenvolvimento M B A A

3.4 Estudo de Caso 2: Autentica¸c˜ao via Ethernet

- An´alise da Taxa de Transferˆencia Efetiva

Esta se¸c˜ao apresenta uma an´alise da taxa de transferˆencia efetiva de dados para as solu¸c˜oes 3 e 4 propostas na se¸c˜ao 3.2. Primeiramente, ´e realizado um estudo de caso da implementa¸c˜ao de um sistema de autentica¸c˜ao de impress˜oes digitais baseado em Ethernet e, em seguida, ´e discutido o limitante superior alcan¸cado para a taxa de transferˆencia efetiva.

3.4.1 Sistema de Autentica¸c˜ao de Impress˜oes Digitais

Para avaliar a taxa de transferˆencia efetiva das quatro solu¸c˜oes, um sistema de autentica¸c˜ao de impress˜oes digitais, vide figura 3.8, foi projetado. Nesta aplica¸c˜ao, as esta¸c˜oes clientes (aparelhos de leitura de digitais baseados em FPGA) se comunicam atrav´es de uma interface Ethernet com um servidor (computador de uso pessoal), o qual armazena a identifica¸c˜ao de cada usu´ario. Se a digital escaneada conferir com uma armazenada no servidor, ´e enviado ao dispositivo uma confirma¸c˜ao de autentica¸c˜ao autorizando o acesso.

Figura 3.8: Sistema de autentica¸c˜ao biom´etrica.

Para essa aplica¸c˜ao, os seguintes casos para an´alise foram considerados: i) trans-ferˆencia de dados com autentica¸c˜ao e ii) transtrans-ferˆencia de dados sem autentica¸c˜ao. Para tanto, um socket para conex˜ao TCP/IP (transmission control protocol/internet

protocol) foi implementado. Atrav´es dessa conex˜ao, o cliente envia uma informa¸c˜ao para o servidor, o qual executa a aplica¸c˜ao, desenvolvida em Linux, que, por sua vez, retorna a autentica¸c˜ao. Deste modo, ´e poss´ıvel avaliar a taxa de transferˆencia efetiva e de pico da conex˜ao. A taxa de transferˆencia efetiva ´e expressa por

R = nB(NT X+ NRX) ∆tT X+ ∆tRX

bps, (3.1)

em que nB = 8 ´e o n´umero de bits por Byte, NT X e NRX s˜ao os n´umeros de Bytes transmitidos e recebidos, ∆tT X e ∆tRX s˜ao os intervalos de tempo medidos para transmitir os dados e receber a autentica¸c˜ao.

A escolha do tamanho do pacote TCP/IP correspondeu ao limite imposto pelo MTU (maximum transmission unit) para, sobretudo, evitar a fragmenta¸c˜ao do pa-cote. As medi¸c˜oes de tempo de execu¸c˜ao da aplica¸c˜ao para estima¸c˜ao da taxa de transferˆencia efetiva foram realizadas com o dispositivo FPGA, pois os v´arios pro-cessos executados pelo computador poderiam interferir na correta aferi¸c˜ao do tempo. As duas fun¸c˜oes principais codificadas para envio e recebimento das mensagens s˜ao listadas a seguir:

1 i n t enviar ( i n t sock , char stream [ size1 ]) {

2 i f ( send ( sock , stream , size1 , 0) != size1 ) {

3 printf ( " Erro ao enviar stream ! \ n " ) ;

4 exit (1) ;

5 }

6 } 7

8 i n t receber ( i n t sock , char stream [ size2 ]) {

9 i f ( recv ( sock , stream , size2 , 0) != size2 ) {

10 printf ( " Erro ao receber a u t e n t i c a c a o \ n " ) ;

11 exit (1) ;

12 }

13 }

Utilizando as considera¸c˜oes acima, foi codificado um aplicativo em linguagem “C” para ser executado em Linux, cuja fun¸c˜ao ´e receber um stream, contendo 1400 Bytes, e enviar uma autentica¸c˜ao de 80 Bytes, caso o dado recebido esteja correto para autentica¸c˜ao. De posse do aplicativo, os seguintes testes foram executados:

1. o FPGA envia um stream e recebe a autentica¸c˜ao. O tempo para envio e recebimento foi medido pelo dispositivo FPGA;

2. o dispositivo FPGA ´e empregado para medir o intervalo de tempo necess´ario para o envio do stream, sem a autentica¸c˜ao. Neste caso, NRX = 0 e ∆tRX = 0, ou seja, n˜ao ´e considerado o tempo de recebimento da autentica¸c˜ao.

Com a finalidade de possibilitar a reprodu¸c˜ao dos testes, os trechos dos c´odigos para o servidor, baseados no computador de uso pessoal, e para o cliente, baseados no FPGA, ser˜ao listados.

Segue lista de trecho do c´odigo do aplicativo executado pelo servidor, note que na linha 11 ´e realizado o teste de autentica¸c˜ao.

1 #d e f i n e size1 80 2 #d e f i n e size2 1400

3 ...

4 i n t main () {

5 char enviado [ size1 ] , recebido [ size2 ] , autentic [ size2 ]; 6 i n t sock ;

7 menset ( autentic , ’a ’ , size2 ) ;

8 sock = socket ( PF_INET , SOCK_STREAM , I P P R O T O _ T C P) ;

9 ...

10 receber ( sock , recebido ) ;

11 i f (! strcmp ( recebido , autentic ) )

12 enviar ( sock , enviado ) ;

13 ret urn (0) ;

14 }

Para o caso com autentica¸c˜ao, segue a lista com o trecho do c´odigo do aplicativo executado pelo Nios II no cliente:

1 #d e f i n e size1 80 2 #d e f i n e size2 1400

3 ...

4 i n t main () {

5 char enviado [ size1 ] , recebido [ size2 ] , autentic [ size2 ]; 6 i n t sock ;

7 menset ( autentic , ’a ’ , size1 ) ;

8 sock = socket ( PF_INET , SOCK_STREAM , I P P R O T O _ T C P) ;

9 ...

10 enviar ( sock , enviado ) ;

11 receber ( sock , recebido ) ;

12 ret urn (0) ;

13 }

Para o caso sem autentica¸c˜ao, segue a lista com o trecho do c´odigo do aplicativo executado pelo Nios II no cliente:

1 #d e f i n e size1 1400

2 ...

3 i n t main () {

4 char enviado [ size1 ]; 5 i n t sock ;

6 menset ( autentic , ’a ’ , size1 ) ;

7 sock = socket ( PF_INET , SOCK_STREAM , I P P R O T O _ T C P) ;

8 ...

9 enviar ( sock , enviado ) ;

10 ret urn (0) ;

11 }

A tabela 3.4 apresenta os valores obtidos nos testes de autentica¸c˜ao utilizando as solu¸c˜oes 3 e 4 propostas e baseadas em FPGA, vide se¸c˜oes 3.2.3 e 3.2.4. Observe que os resultados alcan¸cados com o uso de sockets se mostraram muito inferiores `a especifica¸c˜ao da interface Ethernet do FPGA (10/100/1000 Mbps), cerca de 2,9 Mbps e 4 Mbps, quando a solu¸c˜ao 3 ´e considerada e cerca de 11 Mbps e 29 Mbps quando a solu¸c˜ao 4 ´e considerada. ´E importante destacar aqui que uma taxa efetiva de 29 Mbps pode ser considerado elevad´ıssima para os sistemas embarcados atuais. Tabela 3.4: Limite superior da taxa de transferˆencia efetiva no n´ıvel do protocolo TCP

Solu¸c˜ao 3 Solu¸c˜ao 4 Com Autentica¸c˜ao 2,9 Mbps 11 Mbps

Sem Autentica¸c˜ao 4,0 Mbps 29 Mbps

3.4.2 Taxa de Transferˆencia Efetiva M´axima

Para verificar a taxa de transferˆencia efetiva m´axima da TSE MAC, implementou-se a configura¸c˜ao loopback atrav´es do desenvolvimento de um hard-ware espec´ıfico em Verilog, vide figura 3.9. Assim, quando um stream de dados ´e enviado para o dispositivo FPGA, este simplesmente retorna o mesmo stream de dados, o que possibilita calcular o intervalo do tempo de transmiss˜ao deste stream de dados e a obten¸c˜ao da taxa de transferˆencia efetiva m´axima.

O hardware foi conectado aos barramentos de fluxo de dados (sink e source), ligando-os diretamente (em loopback). O barramento Avalon memory-mapped de instru¸c˜oes permaneceu conectado ao Nios II, possibilitando que ele parametrizasse a TSE MAC.

Como nesta configura¸c˜ao a comunica¸c˜ao entre as camadas L2 e a pilha TCP/IP foi rompida, ent˜ao a rela¸c˜ao IP com o endere¸co MAC (MAC-address) do FPGA passou a ser desconhecida pela tabela ARP (address resolution protocol ) do computador. Assim, foi necess´ario restabelecer a rela¸c˜ao IP - MAC, para o melhor esclarecimento e para possibilitar o entendimento dos testes, segue o comando executado no computador:

Figura 3.9: TSE MAC Ethernet em loopback

O comprimento do stream enviado pode ser aleat´orio, mas por simplicidade escolheu-se um datagrama, to tipo ping, de 1400 Bytes. O comando a ser executado no computador, Linux, para gerar este datagrama ´e:

ping < ip do FPGA >−s1400.

O software Wireshark [114, 115] foi utilizado para a valida¸c˜ao desta imple-menta¸c˜ao. Com ele foi poss´ıvel verificar o cabe¸calho Ethernet e conferir se o quadro transmitido tem como endere¸co f´ısico de origem aquele da placa de rede do computa-dor e se o quadro de informa¸c˜ao recebido tem o endere¸co f´ısico do FPGA, validando a implementa¸c˜ao e os testes.

O resultado obtido com esse teste est´a apresentado na tabela 3.5. O fato de sintetizar a MAC internamente ao FPGA possibilitou o projeto de um hardware espec´ıfico para a avalia¸c˜ao do limite superior da taxa de transferˆencia efetiva de at´e 412 Mbps, taxa que supera as aplica¸c˜oes atuais. Deve-se ressaltar que o valor de 412 Mbps seria impens´avel utilizando-se outro dispositivo que n˜ao seja um FPGA com as parametriza¸c˜oes discutidas.

Na literatura, s˜ao poucas as discuss˜oes sobre solu¸c˜oes para interface Ethernet de baixo custo para sistemas embarcados. Os valores de taxa obtidos s˜ao aproximada-mente 3500 vezes maior do que as solu¸c˜oes comuaproximada-mente utilizadas com conversores Ethernet/Serial, 115,2 Kbps, e, aproximadamente, 43000 vezes maior do que as interfaces de 9600 bps, as quais dominam o mercado de sistemas embarcados.

Tabela 3.5: Limite superior da taxa de transferˆencia efetiva no n´ıvel do protocolo IP

Solu¸c˜ao 4 TSE MAC loopback 412 Mbps

3.5 Sum´ario

O presente cap´ıtulo discutiu a implementa¸c˜ao de quatro solu¸c˜oes para a imple-menta¸c˜ao de interfaces de comunica¸c˜ao com o protocolo Ethernet quando sistemas embarcados s˜ao considerados. As solu¸c˜oes propostas, as quais fazem uso de disposi-tivos FPGA, oferecem ganhos consider´aveis para aplica¸c˜oes em sistemas embarcados que demandam elevada taxa de transferˆencia efetiva.

Apesar de existirem solu¸c˜oes para sistemas embarcados baseadas em microcon-troladores de baixo custo com interfaces Ethernet, tais dispositivos oferecem taxas de transferˆencia efetivas bastante limitadas. Para lidar com essa constata¸c˜ao, o presente cap´ıtulo apresentou propostas capazes de atingir 29 Mbps, com a possibi-lidade de se chegar a taxas de transferˆencia efetivas t˜ao elevadas quanto 412 Mbps. As rela¸c˜oes entre complexidade de desenvolvimento e taxa de transferˆencia efetiva evidenciam que as solu¸c˜oes propostas s˜ao promissoras para sistemas embarcados que demandem elevada taxa de transferˆencia efetiva.

No documento Fabrício Pablo Virgínio de Campos (páginas 61-71)