Buscar

hcf-eri2003

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/256293203
Processadores de Rede: Conceitos, Arquiteturas e Aplicações
Chapter · November 2003
CITATIONS
3
READS
6,385
2 authors:
Henrique Cota Freitas
Pontifícia Universidade Católica de Minas Gerais
130 PUBLICATIONS   506 CITATIONS   
SEE PROFILE
Carlos Augusto Martins
Pontifícia Universidade Católica de Minas Gerais
127 PUBLICATIONS   453 CITATIONS   
SEE PROFILE
All content following this page was uploaded by Henrique Cota Freitas on 16 May 2014.
The user has requested enhancement of the downloaded file.
https://www.researchgate.net/publication/256293203_Processadores_de_Rede_Conceitos_Arquiteturas_e_Aplicacoes?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_2&_esc=publicationCoverPdf
https://www.researchgate.net/publication/256293203_Processadores_de_Rede_Conceitos_Arquiteturas_e_Aplicacoes?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_3&_esc=publicationCoverPdf
https://www.researchgate.net/?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_1&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Henrique-Freitas-3?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_4&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Henrique-Freitas-3?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_5&_esc=publicationCoverPdf
https://www.researchgate.net/institution/Pontificia_Universidade_Catolica_de_Minas_Gerais?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_6&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Henrique-Freitas-3?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_7&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Carlos-Martins-22?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_4&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Carlos-Martins-22?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_5&_esc=publicationCoverPdf
https://www.researchgate.net/institution/Pontificia_Universidade_Catolica_de_Minas_Gerais?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_6&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Carlos-Martins-22?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_7&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Henrique-Freitas-3?enrichId=rgreq-47cf14d7a8dfd5fd432fd1cafa21c842-XXX&enrichSource=Y292ZXJQYWdlOzI1NjI5MzIwMztBUzo5NzUyNzExMDA0NTY5N0AxNDAwMjYzNjgzNDY4&el=1_x_10&_esc=publicationCoverPdf
 127
 
Processadores de Rede: Conceitos, Arquiteturas e 
Aplicações 
Henrique Cota de Freitas, Carlos Augusto Paiva da Silva Martins 
Programa de Pós-graduação em Engenharia Elétrica 
Pontifícia Universidade Católica de Minas Gerais 
30535-610 – Belo Horizonte – MG – Brasil 
{cota,capsm}@pucminas.br 
Abstract. The main goal of this tutorial is to present the main concepts, 
architectures and applications of Network Processors. The sections present an 
introduction to concepts of data communication network, processor 
architectures, Network Processors, commercial Network Processors, 
applications, conferences and related research groups. So, in this tutorial we 
present information about a new segment and model of dedicated processors 
with recent history. 
Resumo. O objetivo principal deste minicurso é apresentar os principais 
conceitos, arquiteturas e aplicações referentes aos Processadores de Rede. As 
seções abordadas apresentam uma introdução aos conceitos de redes de 
comunicação de dados, arquitetura de processadores, Processadores de Rede, 
os Processadores de Rede comerciais, suas aplicações, eventos e grupos de 
trabalhos relacionados. Desta forma, pretendemos disponibilizar informações 
referentes a um novo segmento e modelo de processadores dedicados de 
história recente. 
 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 128
 
1. Introdução 
Os Processadores de Rede [Shah 2001] [Crowley 2002] são objetos de pesquisas 
recentes nas universidades e empresas. Estes processadores surgiram com o objetivo de 
aumentar o desempenho e a qualidade de serviço (QoS: Quality of Service) 
[Tanembaum 1999] [Dantas 2002] [Sitara 2003], diminuindo o tempo de resposta de 
processamento de pacotes e dos dados referentes às redes de comunicação [Tanembaum 
1999] [Dantas 2002]. Desta forma, estes processadores foram projetados utilizando 
modelos de arquiteturas [Patterson 1997] como ASIP (Application Specific Instruction 
Set Processor) e SoC (System-on-Chip) como forma de agregar à técnica de projeto 
RISC (Reduced Instruction Set Computing) maior desempenho computacional. 
Estes processadores possuem o nível ISA (Instruction Set Architecture) 
dedicado para operações de rede. Sendo assim, o conjunto de instruções e a arquitetura 
dos Processadores de Rede são específicos para realizar operações típicas de redes de 
comunicação de dados. 
Durante meados da década de 90 [Lucent 1999], apareceram os primeiros 
projetos de Processadores de Rede. A principal aplicação era em equipamentos de rede 
(roteadores) [Cisco 2001] [Misra 2001], substituindo os processadores GPP´s (General-
purpose processor) [Patterson 1997], largamente utilizados na época. Com isso, foi 
possível aumentar consideravelmente o desempenho destes equipamentos, já que os 
processadores GPP´s ganhavam em flexibilidade mais perdiam em desempenho. Era 
fundamental o desenvolvimento rápido dos Processadores de Rede, uma vez que a 
Internet, principal rede de comunicação de dados no mundo, necessitava de maior 
velocidade e vazão de dados. Os equipamentos de rede, por estarem em pontos de 
concentração, são considerados pontos de gargalo e por isso são constantemente alvos 
de análise de desempenho para melhoria na comunicação de dados. 
Durante o processo de desenvolvimento dos Processadores de Rede, algumas 
empresas se fundiram, são elas: Lucent e Agere [Agere 2001], Motorola [Motorola 
1999] e C-Port [C-Port 2001, 2002], SiTera e Vitesse [Vitesse 2002]. Juntamente com 
estas empresas, outras se destacam na fabricação de Processadores de Rede, tais como: 
Intel [Intel 2000], EZChip [EZChip 2002], IBM [IBM 2002] e Chameleon [Chameleon 
2000]. Esta última foi a primeira empresa a lançar no mercado, um Processador de Rede 
reconfigurável [Compton 2002] [Martins 2002]. Neste curso há uma seção específica 
para descrição de características arquiteturais dos Processadores de Rede comerciais. 
Serão apresentados também, os fundamentos teóricos de referência para o 
projeto de Processadores de Rede. Dentro deste contexto existem os processadores 
dedicados para comunicação de dados. A Motorola classifica duas famílias distintas, 
Processadores de Rede e de comunicação de dados. No entanto, podemos classificar os 
processadores de comunicação de dados como parte da classe de Processadores de 
Rede. 
Algumas universidades iniciaram pesquisas sobre Processadores de Rede por 
volta do ano 2000. Nos Estados Unidos dois grupos fortes estão nas seguintes 
universidades: Washington University in St. Louis e Universityof Washington. Por 
iniciativa de dois professores destas universidades foi criado o Workshop on Network 
Processor que ocorre deste o ano 2002, em sua primeira edição, juntamente com o 
HPCA (High Performance Computer Architecture). 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 129
 
Portanto, um dos principais objetivos deste minicurso é apresentar o tema 
“Processadores de Rede” de forma abrangente, uma vez que não existem publicações 
em formato de minicurso ou livro em língua Portuguesa. Desta forma pretendemos 
contribuir com a divulgação e o incentivo à pesquisa nesta nova área do conhecimento. 
2. Rede de Comunicação de Dados 
Esta seção apresenta resumidamente alguns conceitos de redes de comunicação de 
dados [Tanembaum 1999] [Dantas 2002] que são importantes para o entendimento do 
funcionamento dos Processadores de Rede. Serão apresentados algumas topologias, 
tipos de rede, protocolos e equipamentos de rede que demandam a utilização dos 
Processadores de Rede. 
2.1. Topologias 
A topologia é a maneira como os diversos hosts (computador ou equipamento de rede) 
estão interligados em um meio de comunicação. Portanto, existem topologias em que o 
formato (desenho) de interligação segue um padrão de ligação (topologia regular) e 
topologias onde não é possível definir um formato ou um padrão de ligação (topologias 
irregulares). 
A figura 2.1 ilustra algumas possíveis variações de topologias. 
 
Figure 2.1. Topologias 
Normalmente as topologias irregulares são mais facilmente encontradas na 
Internet, onde existe uma dispersão de topologias e redes de todos os tipos. 
Topologias regulares são muito utilizadas em aplicações específicas, como em 
redes SAN’s e LAN’s (seção 2.2) ou aglomerados (clusters) de computadores, onde o 
desempenho é muito importante e o controle se aplica também em camadas mais baixas 
de abstração. 
Em redes sem fio a topologia pode ou não alterar. A não existência de meio 
físico como cabos, não impede que um determinado host esteja obrigatoriamente 
conectado a um conjunto de outros hosts. Dependendo da amplitude de sua mobilidade, 
o host permanece ou adere à outra topologia. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 130
 
2.2. Tipos de Redes de Comunicação 
Existem basicamente dois modos de comutação [Tanembaum 1999] [Dantas 2002] de 
redes: i) Comutação por circuitos e ii) Comutação por pacotes. 
Comutação por circuitos: Neste caso, podemos fazer uma analogia com as 
centrais telefônicas. Quando um determinado fax disca um número, a central realiza a 
chamada e fecha uma conexão entre os dois pontos. Existem, neste momento, dois 
equipamentos conectados em um circuito físico disponível apenas para trafegar as 
informações referentes à transmissão e recepção de dados entre os dois pontos. Neste 
caso o transmissor possui a segurança de que seus dados serão recebidos pelo 
destinatário, uma vez que o meio oferece a garantia da conexão entre os dois. A 
vantagem é a alta taxa de transmissão de dados e a desvantagem é o alto custo. 
Comutação por pacotes: A grande diferença é que neste caso não existe uma 
conexão disponível apenas para a comunicação de dados entre dois pontos. O que existe 
é o roteamento de dados através de diversos pontos da rede até o ponto destino. Existe 
um compartilhamento do meio físico entre diversas comunicações. Cada host destino 
possui um endereço e é através deste endereço, que as máquinas são identificadas na 
rede. Toda a transmissão de dados é dividida em pacotes. Cada pacote possui um 
cabeçalho de informações, que contém o endereço de destino e de origem além de dados 
referentes ao ordenamento e seqüência dos pacotes. Desta forma quando todos os 
pacotes chegam ao destino, eles podem ser ordenados e interpretados. A grande 
vantagem deste tipo de rede é o custo e a simultaneidade de comunicações. Além do 
baixo custo, vários hosts podem utilizar o mesmo meio para estabelecer a comunicação. 
A desvantagem é o aumento da utilização do meio, causando congestionamento, 
diminui-se a vazão de dados e o tempo de espera para realizar a comunicação aumenta 
muito. 
Algumas definições de redes: 
• WAN (Wide Area Network): Esta sigla é dada para a rede geograficamente 
distribuída. Podemos considerar que a WAN também é a Internet. 
• MAN (Metropolitan Area Network): Sigla para redes metropolitanas. 
• LAN (Local Area Network): Redes locais. Estas redes normalmente 
abrangem salas, prédios e bairros, por exemplo. 
• SAN (System Area Nework): Redes em nível de sistema computacional. São 
redes dedicadas a aglomerados de computadores e ao processamento de alto 
desempenho. 
• WIRELESS: Redes sem fio. Neste caso o meio de transmissão não utiliza 
um meio físico. Ex.: rádio, microondas e laser. 
Redes Ativas [Tennenhouse 1997]: Independente da rede, uma das formas de 
aumentar desempenho e qualidade (QoS: Quality of Service) é através da aplicação do 
conceito de redes ativas. Redes ativas nada mais são do que redes em que roteadores e 
switches (2.4) executam tarefas (computação) a partir de mensagens que atravessam por 
eles. Neste tipo de rede, o pacote possui instruções que, lidas pelo roteador ou switch 
[Wolf 2000] [Ulmer 2002], resultarão em um processamento interno, que pode 
modificar o cabeçalho ou pacote, antes mesmo que chegue ao destino. Um Processador 
de Rede deve dar suporte a redes ativas. A necessidade de qualidade de serviço (QoS) 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 131
 
exige melhorias de desempenho nos equipamentos de rede e a evolução destes 
equipamentos está ligada diretamente aos Processadores de Rede. 
 
Figura 2.2. – Campo de opções da rede ativa 
A figura 2.2 ilustra um campo do protocolo IP (seção 2.3) que pode ser utilizado 
por equipamentos em uma rede ativa. 
2.3. Protocolos 
Os protocolos [Comer 1995] são responsáveis pelo padrão de comunicação entre os 
diversos tipos de hosts [Tanembaum 1999] [Dantas 2002] existentes em uma 
determinada rede de comunicação de dados. Através do protocolo, diferentes tipos de 
equipamentos e redes podem conversar em uma linguagem única. Desta forma é 
possível interpretar recebimentos de pacotes e erros de transmissão, por exemplo. 
A figura 2.3 ilustra o modelo de referência do protocolo OSI (Open Systems 
Interconnection) e protocolo TCP/IP (Transmission Control Protocol / Internet 
Protocol). O modelo OSI foi desenvolvido pela ISO (International Standards 
Organization) com o objetivo de padronizar os protocolos usados nas diversas camadas. 
Através do modelo OSI vários outros protocolos, como o TCP/IP, foram espelhados e 
projetados. 
Cada camada de um protocolo é projetada com uma função específica e a 
camada de rede é responsável pela transferência de pacotes da origem para o destino, ou 
seja, o roteamento dos pacotes. Para que o pacote chegue até o destino é necessário que 
o percurso seja feito através de vários roteadores intermediários. Por isto, é necessário 
que a camada de rede tenha conhecimento da topologia da rede de comunicações, ou 
seja, todo o conjunto de roteadores. As referências [Tanembaum 1999] [Dantas 2002] 
descrevem em detalhes cada uma das camadas mostradas na figura 2.3. 
 OSI TCP/IP 
7 Aplicação Aplicação 
6 Apresentação 
5 Sessão 
4 Transporte Transporte 
3 Rede Inter-rede 
2 Enlace de Dados Host/rede 
1 Física 
Figura 2.3. – Modelos de referência dos protocolos OSI e TCP/IP 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 132
 
2.4. Equipamentos de Rede 
Os equipamentos de rede [Tanembaum 1999] [Cisco 2001] [Misra 2001] [Dantas 2002] 
são responsáveis por definir a arquitetura da rede de comunicação de dados. Através da 
interligação destes equipamentos é possível modelar as topologias e os tipos de rede que 
serão utilizados. Entre os diversos equipamentos de rede selecionamos três que 
julgamos mais relevantes para este minicurso. Abaixo uma breve descrição destes 
equipamentos e a principal camada de protocolo no qualcada um atua: 
O roteador trabalha na camada de redes dos protocolos. As características 
principais de funcionamento são: i) determinar a melhor rota para os pacotes com base 
no melhor caminho (distância e custo); ii) interconectar redes similares ou não e iii) 
filtrar pacotes. 
Os switches são interfaces que operam na camada de enlace dos protocolos de 
comunicação. Suas características principais são: i) Pontes multi-portas com caminhos 
internos paralelos; ii) matriz de comutação interna e iv) não propaga quadros com erros. 
Os hubs são interfaces que trabalham na camada física dos protocolos. Suas 
principais características são: i) Centro de conexões em uma rede local; ii) repetidor 
multi-porta; iii) suporta topologia física em estrela e em barramento. 
2.5. Sumário de Redes 
Na seção sobre Processadores de Rede comerciais, alguns termos que não foram 
abordados nesta seção poderão ser citados. A seguir apresentamos o significado de 
alguns deles [Tanembaum 1999] [Dantas 2002]: 
Frame Relay: Uma linha virtual privada orientada à conexão. 
ETHERNET: Padrão para rede local (LAN) com taxa de transferência de 
10Mbps, utilizando cabos de par trançado, coaxial ou fibra óptica. 
FAST ETHERNET: Padrão baseado na Ethernet com taxa de transmissão de 
100Mbps. 
GIGABIT ETHERNET: Padrão baseado na Ethernet com taxa de transmissão de 
1000Mbps (1Gbps). 
ATM (Asynchronous Transfer Mode): Modo de transmissão assíncrona orientada 
à conexão, que utiliza unidades de células para transmissão da informação. 
SONET (Synchronous Optical Network): É o padrão para transmissão síncrona 
de dados através de fibra óptica. As taxas de transmissão são definidas através de 
tabelas com o nome (Optical Carrier Level). Exemplos: OC-1 = 51,84Mbps, OC-12 = 
622,08Mbps e OC-768 = 40Gbps. 
HDLC (High-Level Data Link Control): Protocolo da camada de enlace de 
dados para comunicação ponto-a-ponto e multiponto. 
DS1: Taxa de transmissão derivada do termo DSX (Digital Signal X). Exemplos 
de taxas: DS0 = 64kbps, DS1 = 1,544Mbps e DS4 = 274,176Mbps. 
RIP (Routing Information Protocol): Protocolo de roteamento de gateway 
interno (camada de redes). Responsável pelo gerenciamento das informações dos 
roteadores. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 133
 
OSPF (Open Shortest Path First): Protocolo de roteamento de gateway interno 
(camada de redes). Este protocolo modela em um grafo o conjunto de redes e roteadores 
para depois, com base nos pesos das arestas, definir a rota a ser seguida pelos pacotes. 
BGP (Border Gateway Protocol): Protocolo de roteamento de gateway externo 
(camada de redes). Funciona de forma similar a um protocolo de gateway interno, 
porém este precisa se preocupar com a política. Ou seja, restrições de roteamento são 
bons exemplos: Não colocar o Iraque em uma rota que começa no Pentágono. 
SNMP (Simple Network Management Protocol): Protocolo da camada de 
aplicação. Destinado ao monitoramento e gerenciamento de uma rede de computadores. 
3. Conceitos de Arquitetura de Processadores 
O objetivo desta seção é apresentar os conceitos gerais de arquitetura de processadores 
[Patterson 1997], descrevendo e comparando algumas abordagens de projeto tais como: 
CISC, RISC, ASIP, ASIC e GPP. Nesta seção será apresentado também, o modelo de 
processador chamado System-on-Chip [Liang 2000] [Mensch 2000] [Kalte 2002], que 
agrega dentro de sua pastilha várias estruturas de um sistema computacional que 
normalmente são acessadas externamente. Devemos ressaltar que esta seção é muito 
importante, uma vez que estes conceitos também se aplicam aos Processadores de Rede. 
3.1. Principais Blocos Construtivos de um Processador 
Um processador é constituído basicamente, pelos seguintes blocos [Patterson 1997]: 
Registradores específicos ou de aplicação geral: Os registradores são unidades 
de armazenamento, baseados em flip-flops, utilizados para a manipulação, 
movimentação e transferência de dados. Podemos ter registradores de aplicação 
específica como registradores de endereço ou registradores de aplicação geral, utilizados 
para manipulação de qualquer tipo de dado. 
Memória interna ou cache de dados e de instruções: Alguns processadores 
possuem memória interna para acesso mais rápido dos dados. No entanto é comum 
encontrarmos cache de dados e de instruções enquanto que o endereçamento de 
memória é feito apenas externamente. De um modo geral, na hierarquia de memória 
temos do melhor para o pior: i) registradores, ii) cache, iii) memória interna, 
iv)memória externa e v) disco. Esta hierarquia é feita com base na velocidade de acesso 
e manipulação de dados e quanto mais próximo da unidade lógica e aritmética, melhor o 
desempenho do processador. A principal função do cache é aproximar os dados, que 
normalmente são acessados na memória. Desta forma o processador acessa o cache 
achando que está acessando a memória. Como o cache é interno ao processador e a 
hierarquia de memória é baseada na proximidade, a utilização do cache aumenta o 
desempenho em relação à memória. Alguns termos técnicos: 
• ROM (Read Only Memory): Memória apenas de leitura; 
• EPROM (Erasable Programmable ROM): Memória ROM que permite 
escrever ou apagar dados. Nesta memória apaga-se o conteúdo através de luz 
ultravioleta. As EEPROM’s (Electric Erasable Read Only Memory) são 
similares, porém utilizam sinais elétricos para apagar os dados. 
• Memória Flash: é uma evolução das memórias EEPROM. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 134
 
• RAM (Random Access Memory): Memória de acesso randômico; 
• SRAM (Static RAM): Memórias RAM que mantêm o dado somente 
enquanto houver alimentação contínua aplicada ao chip. 
• DRAM (Dynamic RAM): O dado é mantido na memória através de estágios 
de refresh periódicos de alimentação. 
• DDR (Double Data Rate): É uma tecnologia de memória nova que dobra a 
vazão de dados para o processador. 
Unidade lógica e aritmética: Este é o bloco responsável por realizar os cálculos 
matemáticos e lógicos do processador. Podemos relacionar, como exemplos, as 
seguintes operações: adição, subtração, multiplicação, AND, OR e NOT. 
Interface para entrada e saída de dados: Um processador precisa ter uma 
interface para receber dados de outros processadores ou equipamentos e periféricos. 
Portanto, é necessário ter uma interface que possibilite este tipo de comunicação. Vários 
processadores utilizam a interface PCI (Peripheral Component Interconnect) e como 
será visto ao longo do curso, esta interface será muito usada pelos Processadores de 
Rede para comunicação com processadores de propósito geral. 
Blocos de controle de dados e de instrução: Todo processador possui um 
caminho de dados e de controle. Existem ao longo dos caminhos, blocos funcionais com 
a função de realizar o gerenciamento de dados, permitindo a integridade da 
manipulação. Em um processador com pipeline (figura 3.1) é comum encontrarmos 
registradores específicos para o controle e unidades de adiantamento de dados, por 
exemplo. 
Através do conjunto de instruções de um processador, que são desenvolvidos os 
softwares de aplicação. O projeto da arquitetura do conjunto de instruções (nível ISA: 
Instruction Set Architecture) é um dos itens que definem se o processador é de propósito 
geral ou específico. Através deste conjunto definimos a flexibilidade e funcionalidade 
de cada instrução e qual seu efeito na microarquitetura do processador. 
Neste tópico iremos e apresentar algumas instruções de processador descritas em 
assembly. 
As instruções que serão abordadas ao longo do tópico são: ADD, LW, AND, 
OR, e XOR. 
Será descrito a função de cada uma das instruções, o significado de cada letra, 
sigla ou número. 
(1) 20 ADD $1, $2, $3 
Instrução ADD (operação aritmética soma) na posição 20 de memória. Soma os 
registradores $2 e $3 e armazena o valor no registrador $1. 
(2) 24 LW $4, $5, $6 
Instrução LW (load) na posição 24 de memória. Carrega dado de memória queestá na posição de endereço guardado no registrador $6 com deslocamento de valor 
guardado em $5, no registrador $4. 
(3) 28 AND $8, $4, $7 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 135
 
Instrução AND (operação lógica E) na posição de memória 28. Realiza a 
operação E entre os registradores $4 e $7 e armazena o resultado em $8. 
(4) 32 OR $8, $9, $4 
Instrução OR (operação lógica OU) na posição de memória 32. Realiza a 
operação OU entre os registradores $9 e $4 e armazena o resultado em $8. 
(5) 36 XOR $14, $10, $8 
Instrução XOR (operação lógica OU Exclusivo) na posição de memória 36. 
Realiza a operação OU Exclusivo entre os registradores $10 e $8 e armazena o resultado 
em $14. 
Em um processador normal sem pipeline, cada instrução seria executada 
seqüencialmente, uma após a outra. Porém, a instrução seguinte pode ou não depender 
da instrução anterior e em caso de não dependência não haveria a necessidade de 
esperar a execução de uma instrução para executar a próxima. Em instruções 
dependentes também há como acelerar o processamento. 
A técnica utilizada para evitar a seqüencialidade é o pipeline. Através do 
pipeline o processamento de cada instrução é realizado em estágios. A figura 3.1 ilustra 
um pipeline conceitual de 5 estágios. 
 
Figura 3.1. – Estágios de pipeline 
A função de cada estágio é a seguinte: 
• Busca da instrução (B). 
• Decodificação da instrução (D). Leitura de operandos em banco de 
registradores. 
• Execução da instrução (E). 
• Acesso de escrita ou leitura na memória de dados (M). 
• Resultados (R). Escrita em banco de registradores. 
Desta forma, enquanto uma instrução está no estágio de busca, a anterior está no 
estágio de decodificação, e assim por diante. Portanto, podemos ter neste pipeline, cinco 
instruções sendo executadas ao mesmo tempo. 
3.2. RISC versus CISC 
Existem dois modos [Patterson 1997] de projeto de processadores. O primeiro utilizado 
no início da história de desenvolvimento de processadores é o CISC (Complex 
Instruction Set Computing). Sua principal característica é o conjunto de instruções com 
formatos variados. Ou seja, uma única instrução do tipo ADD pode acessar 
registradores e memória, pode utilizar modos de endereçamento imediato, direto ou 
indexado. Desta forma, cada instrução possuía uma grande amplitude nos modos de 
endereçamento. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 136
 
No entanto, com o avanço tecnológico, constatou que apenas uma pequena 
fração do código de programa necessitava acessar a memória e como sabemos, acessar a 
memória é mais demorado do que acessar registradores. Baseado nesta constatação foi 
projetado um novo modelo de processadores RISC (Reduced Instruction Set 
Computing). Neste novo modelo de processador, o objetivo é reduzir o número de 
instruções que acessam a memória, tornando as manipulações do processador 
concentradas em registradores. Desta forma, apenas instruções do tipo load e store 
podem acessar a memória, o que não acontecia no modelo CISC onde uma instrução de 
soma, como ADD, também podia realizar este acesso. 
3.3. ASIC’s versus GPP’s versus ASIP’s 
Estas nomenclaturas serão muito utilizadas durante este curso e estão intimamente 
interligadas pelos seus conceitos e aplicações. Abaixo as definições de cada uma destas 
tecnologias: 
ASIC (Application Specific Integrated Circuit): Hardware dedicado para 
aplicações específicas 
Vantagem: Desempenho. Hardware de grande velocidade de processamento. 
Desvantagem: Flexibilidade. Por se tratar de um hardware específico, a 
utilização do mesmo para aplicações diferentes é limitada. 
Exemplos: Modem e placa de rede. 
GGP (General-purpose Processor): Processador de Propósito Geral 
Vantagem: Flexibilidade. Um GPP possui um conjunto de instruções que 
possibilita a utilização em diversas aplicações. 
Desvantagem: Desempenho. Necessidade de processar instruções muitas vezes 
não otimizadas para executar a tarefa. 
Exemplos: Processadores 386, Pentium, Itanium, MIPS4700 e Ultra Sparc III. 
ASIP (Application Specific Instruction Set Processor): Processador de 
Aplicação Específica 
Vantagens: União de flexibilidade e desempenho devido, por exemplo, ao 
projeto dedicado do conjunto de instruções e da arquitetura. 
Desvantagens: É mais lento do que um ASIC e menos flexível do que um GPP. 
Exemplos: Processadores dedicados para imagens, sinais e no nosso caso de 
redes (IXP1200 da Intel, C-5 da C-Port/Motorola e PowerNP NP4GS3 da IBM) 
Em um sistema computacional complexo a utilização de todas estas tecnologias 
normalmente é feita. Porém, em situações mais específicas, deve-se analisar as 
variáveis, desempenho, flexibilidade e custo para a escolha da melhor tecnologia. 
3.4. System-on-Chip (SoC) 
System-on-Chip [Liang 2000] [Mensch 2000] [Kalte 2002] nada mais é do que um 
sistema de blocos lógicos diversos como: processador, portas de E/S, memória e 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 137
 
hardwares dedicados, construídos internamente em um circuito integrado, com o intuito 
de diminuir o tamanho do hardware, aumentando a velocidade de processamento. 
Muitos projetos de processadores de aplicação específica utilizam este novo 
modelo de desenvolvimento, que aumenta consideravelmente o desempenho, uma vez 
que os blocos lógicos passam a estar mais próximos da unidade de processamento, tal 
como em hierarquia de memória. 
A figura 3.2 ilustra um exemplo de SoC e seus blocos construtivos. 
 
Figura 3.2. – Exemplo de um SoC 
4. Conceitos de Arquitetura de Processadores de Rede 
Nesta seção serão apresentados os principais conceitos referentes aos Processadores de 
Rede [Shah 2001] [Crowley 2002]. Os tópicos são: Avanço histórico e tecnológico, 
arquitetura de referência, tecnologia funcionamento dos Processadores de Rede e 
interconexão através dos switching fabrics. 
4.1. Avanço Histórico e Tecnológico 
O Processador de Rede nasceu da necessidade crescente de desempenho e da qualidade 
de serviço (QoS), que era exigido dos equipamentos de rede. Inicialmente utilizavam-se 
processadores de propósito geral, depois hardwares dedicados (ASIC’s) e por fim 
processadores específicos de rede. As gerações e suas principais características podem 
ser definidas da seguinte forma: 
1a Geração 
Processador de Propósito Geral: Baseado na utilização de softwares. 
Processador flexível para diversas aplicações, porém para aplicações de rede são 
limitados em funcionalidades e velocidade. 
2a Geração 
Hardware dedicado (ASIC): Hardwares projetados para executar determinadas 
funções específicas. Não utilizam softwares, são bastante rápidos e o grande problema é 
a flexibilidade, uma vez que o ASIC é projetado apenas para uma aplicação. 
3a Geração 
Processadores de Rede: Os Processadores de Rede possuem microarquitetura 
dedicada para trabalhar em redes de comunicação de dados. O conjunto de instruções 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 138
 
também é específico. Por se tratar de processadores eles são flexíveis e por serem 
específicos também possuem bom desempenho. 
De acordo com o levantamento feito por nós, os Processadores de Rede 
existentes no mercado são RISC (Reduced Instruction Set Computing). O que possibilita 
um conjunto pequeno de ciclos para execução de cada instrução, menor quantidade de 
instruções que acessam a memória, sendo mais velozes que os processadores CISC 
(Complex Instruction Set Computing). 
Existem duas características que podem diferenciar cada um deles: 
• Utilização apenas de tecnologia RISC com sistemas complexos de 
paralelismo. 
• Baseado em tecnologia RISC e ASIC. O ASIC acelera o processamento pelo 
hardware, porém pode trazer inflexibilidade. 
4.2. Arquitetura de Referência 
A arquitetura de referência (figura 4.1) é apresentada neste curso com o intuito de 
definir uma base para o estudo dos Processadores de Rede, que serão descritos em 
tópicos posteriores. 
Os principaisblocos lógicos de um Processador de Rede são: 
• Múltiplos processadores RISC, co-processadores ou ASIC’s programáveis; 
• Hardware dedicado para operações de rede; 
• Interface de memória de alto desempenho; 
• Interface de E/S de alto desempenho; 
• Interface dedicada; 
• Interface para processadores de propósito geral. 
 
Figura 4.1. – Arquitetura de referência 
Um Processador de Rede deve ser construído para que os pacotes tenham um 
processamento e um re-direcionamento rápido, evitando gargalos. Para isto o 
processador deve ter caminhos internos que possam distinguir, através do software ou 
hardware (ASIC), os pacotes que terão um processamento mais detalhado e por isso 
levarão mais tempo para serem escoados e aqueles que terão um processamento mais 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 139
 
simples e rapidamente serão re-direcionados. Sendo assim, podemos definir duas 
classes: i) Processamento “rápido” e ii) Processamento “lento”. 
O processamento “rápido” é definido para os pacotes que não podem perder 
tempo de processamento. O caminho rápido é composto basicamente por co-
processadores e ASIC’s. Hardwares dedicados e co-processadores aceleram o 
processamento. 
Quando o pacote precisa de um processamento mais “lento” ou detalhado 
(análise de tabela, regras de algoritmos e modificação em campos de cabeçalho, por 
exemplo) o caminho a ser adotado é mais lento, é necessário o uso de memória e de um 
processador principal. 
Esta definição de qual caminho a seguir pode ser feita utilizando hardware 
dedicado ou softwares que estejam sendo executados no processador. As duas classes de 
processamento caracterizam e auxiliam na distinção dos pacotes e por conseqüência no 
desempenho final do processador. 
4.3. Funcionamento básico dos Processadores de Rede 
As ações básicas de um Processador de Rede são as seguintes: 
• Analisar e classificar o conteúdo dos campos do cabeçalho do pacote em 
análise; 
• Procurar em tabelas, regras de associação com o campo encontrado no 
cabeçalho do pacote; 
• Resolver o caminho do destino ou requerimentos de QoS; 
• Modificar o pacote em análise se necessário (Campo Type of Service / 
DiffServ, por exemplo). 
Como mencionado anteriormente, as redes ativas são muito importantes quando 
falamos de qualidade de serviço. Uma das tarefas do Processador de Rede é analisar o 
campo do cabeçalho de um pacote tomar as decisões necessárias, inclusive de 
modificação do pacote. 
4.4. Interconexão através dos Switching Fabrics 
Os Switching Fabrics [Misra 2001] são responsáveis por estabelecer a conexão e o 
tráfego de dados entre portas de entrada e saída em um sistema de comunicação de 
dados. Eles oferecem o meio pelo qual um determinado processador, seja ele de 
propósito geral (GPP), ou dedicado para a aplicação (Processador de Rede) possa ler o 
cabeçalho das mensagens e definir o melhor caminho para que os dados possam seguir. 
A figura 4.2 ilustra a arquitetura composta por portas de entrada e saída, um 
processador e um switching fabric. 
a) Portas de Entrada e Saída 
São portas de entrada e saída que atuam na camada física e tem por objetivo 
receber e transmitir dados. Nestas portas é feita a medida da taxa de transmissão, para 
evitar congestionamentos no switching fabric. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 140
 
 
Figura 4.2. – Arquitetura básica de um roteador 
b) Switching Fabric 
O switching fabric nada mais é do que um conjunto de hardware e software 
capaz de interconectar diversas entradas e saídas e definir o caminho pelo qual os 
pacotes deverão seguir. Citamos quatro tipos de switching fabric (figura 4.3): i) 
Barramento; ii) Memória compartilhada; iii) Buffers e iv) Crossbar. 
Barramento: Para se transmitir dados pelo barramento é utilizado um 
multiplexador por divisão de tempo (TDM). O grande problema deste tipo de switching 
fabric é a largura de banda, uma vez que apenas uma entrada pode transmitir enquanto 
as outras escutam até a liberação do barramento. Esta é a melhor opção para multicast e 
broadcast uma vez que todos os nós estão conectados ao mesmo ponto. 
Memória Compartilhada: Os pacotes são guardados e analisados em memória. 
Este método evita a necessidade de “bufferização”, porém obriga que a velocidade da 
memória seja igual ao throughtput (vazão) do roteador. 
Buffers de Saída: Utilização de buffers de saída. Não existe espera ou 
“bufferização” de dados na porta de entrada, todos os dados são guardados em buffers 
de saída. A velocidade destes buffers tem que ser tão rápido quanto da porta de saída. 
Crossbar: Uma matriz de comutação entre entrada e saída de custo 
relativamente baixo. Não existe o problema de largura de banda, mas a velocidade tem 
que ser no mínimo igual ao da porta de entrada e saída. 
 
Figura 4.3. – Tipos de switching fabric 
c) Processador 
O bloco Processador nada mais é do que o processador responsável pelo 
gerenciamento e processamento dos pacotes. Este processador pode ser de propósito 
geral ou dedicado (Processadores de Rede). Na seção 6 serão apresentados 
equipamentos, que utilizam processadores de propósito geral e outros, que utilizam 
Processadores de Rede. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 141
 
Atualmente a tecnologia está evoluindo para infra-estruturas de rede que 
suportam a voz sobre IP (VoIP), vídeo, comércio eletrônico entre outros. Para isto é 
necessário aumentar a largura de banda, diminuir a latência e melhorar a inteligência de 
processamento. 
Os Processadores de Rede surgiram para aumentar o desempenho de 
processamento nas redes de comunicação e ajudar na crescente demanda por esta nova 
tecnologia. 
5. Processadores de Rede Comerciais 
Apresentamos nesta seção os Processadores de Rede comerciais de cada fabricante 
descrito na introdução. A descrição dos principais blocos lógicos, o funcionamento e 
alguns dados quantitativos de cada processador. Na seção 8 apresentamos alguns 
resultados da nossa proposta de um processador acadêmico. 
Os Processadores de Rede comerciais possuem uma arquitetura muito parecida 
com a que foi descrita na seção 4, como sendo de referência. Neste tópico iremos 
descrever arquiteturas específicas de alguns fabricantes. 
5.1. Motorola – PowerQUICC Family 
Neste tópico será apresentado o processador de comunicação de dados MPC860 
[Motorola 1999] da família PowerQUICC. As aplicações principais deste processador 
são: roteadores e switches de LAN/WAN, dispositivos de integração de redes, 
concentradores de rede, gateways, DSL/cable modems e sistemas de voz sobre IP. 
A classificação da Motorola para os Processadores de Rede define que estes são 
destinados ao aumento de desempenho na qualidade de serviço (QoS), o que não se 
aplica, neste caso, aos processadores de comunicação de dados da Motorola. Porém 
estas duas classes de processadores da Motorola são complementares. 
O MPC860 possui um barramento auto-ajustável de 8-, 16-, e 32 bits. Existem 
três blocos principais na figura 5.1, que serão descritos com mais detalhes a seguir: 
 
Figura 5.1. – Arquitetura do MPC860 
Bloco 1 (PowerPC core): 
Este bloco possui o processador principal de 32 bits (PowerPC) responsável pela 
execução dos códigos das camadas mais altas, com o intuito de aumentar o throughput 
(vazão). Possui cache de instrução e de dados de 4kbytes e duas unidades de 
gerenciamento de memória, relacionada cada uma com seu respectivo cache. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 142
 
Bloco 2 (System Interface Unit): 
Bloco responsável pela interface do barramento interno com barramentos 
externos. Possui uma controladora de memória, um barramento de interface, uma 
unidade de funções do sistema, clock e uma unidade de interface PCMCIA. 
Bloco 3 (Communications Processor Module): 
Este é o módulo de comunicação de dados. Através deste modulo é possível 
enviar e receber dados de diferentes tipos de dispositivos através de quatrocanais seriais 
de comunicação (SCC) e dois de gerenciamento (SMC). Os dispositivos conectados 
podem ser usados de forma individual ou, através destes canais, usar um barramento 
multiplexador por divisão de tempo. 
Este módulo possui um micro-controlador de 32 bits e 16 canais seriais de DMA 
(Acesso Direto a Memória). Oito canais para transmissão e oito para recepção. Os 
canais de DMA são de uso exclusivo do micro-controlador, sendo usados para obter e 
mover dados para a memória. 
Alguns dos protocolos suportados por este módulo são: Ethernet, Fast Ethernet, 
ATM, HDLC, Appletalk, UART (Universal Asynchronous Receive and Transmit) e 
ISDN. 
A comunicação entre os dois processadores é feita através da memória interna. 
Através desta memória cada processador pode escrever bits de controle e ler bits de 
status, possibilitando a requisição e resposta dos dados. 
Neste processador o processamento “rápido” é feito pelo micro-controlador e o 
processamento “lento” é feito pelo PowerPC. 
5.2. Motorola/C-Port – C5 Family 
Esta família de processador foi projetada pela C-Port / Motorola [C-Port 2001, 2002] 
para aplicações de rede mais ligada à qualidade de serviço QoS. Portanto, as duas 
famílias de processadores da Motorola se complementam, um estabelece a comunicação 
com mais consistência e o outro prioriza os critérios de QoS, exigência crescente entre 
as aplicações e serviços de rede. 
Os principais blocos do C-5 NP (Network Processor), são os seguintes (figura 
5.2): 
• Channel Processors (CP) 
• Executive Processor (EP) 
• Fabric Processor (FP) 
• Buffers Management Unit (BMU) 
• Table Lookup Unit (TLU) 
• Queue Management Unit (QMU) 
Channel Processors 
O C-5 NP possui dezesseis processadores de canal que recebem, processam e 
transmitem os dados. O número de processadores por porta é configurável, dependendo 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 143
 
do tipo de interface. Inicialmente um processador é alocado para aplicações onde a 
largura de banda é média, porém quando há necessidade de utilização de uma interface 
de alta velocidade, múltiplos processadores podem ser alocados por porta. Múltiplas 
portas podem alocar apenas um processador, neste caso é utilizado um multiplexador 
externo e o tipo de aplicação é para aplicação de banda baixa. 
Esta arquitetura suporta protocolos seriais e paralelos: 
• 10Mb Ethernet (RMII) 
• 100Mb Ethernet (RMII) 
• 1Gb Ethernet (RMII e TBI) 
• OC-3 
• OC-12 
• DS1/DS3, através de multiplexadores externos 
Executive Processor 
Este processador é o ponto principal de processamento. Ele é responsável por 
gerenciar as interfaces e suas funções são: 
• Resetar e iniciar o C-5 NP 
• Carregar o programa e controla os CP’s 
• Controla as exceções 
• Gerenciar a interface host pela PCI 
• Gerenciar a interface PCI, o barramento e a memória PROM 
O sistema de interface é composto por: 
• PCI: Utilizada para conectar com outros processadores (host) 
• SBI: Interface bidirecional de propósito geral 
• PROM: Memória flash usada para boot. Interface de baixa velocidade. 
Tamanho máximo de 8Mbytes. 
Fabric Processor 
Este processador atua como uma interface de rede de alta velocidade. Ele 
suporta transferência bi-direcional de pacotes, frames ou células do C-5 NP para as 
interfaces de hardware que provêem conectividade com outros Processadores de Rede 
ou hardwares de processamento similar. 
Buffers Management Unit 
Esta unidade é responsável pela interface do C-5 NP com a arquitetura de 
pipeline externo, Single Data Rate Synchronous DRAM. A memória externa é 
particionada e usada como buffers para receber e transmitir dados entre CP’s, FP e EP. 
Ela está no segundo nível de hierarquia de memória do Executive Processor. 
 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 144
 
Table Lookup Unit 
É responsável pela busca e a atualização em tabela e serviços associados para os 
processadores CP, EP e FP. Possui também interface para memória externa. 
Queue Management Unit 
Gerencia o número de aplicações definidas nos descritores de fila. Esta unidade 
possui um chip interno responsável por guardar os descritores na memória SRAM 
externa. 
 
Figura 5.2. – Arquitetura do C-5 NP 
5.3. Intel – IXP1200 
Este Processador de Rede [Intel 2000] (figura 5.3) é composto por sete processadores 
RISC. O primeiro processador é chamado de StrongARM e é responsável pelo 
processamento mais complexo, tal como construção e manutenção de tabelas e 
gerenciamento da rede. Os outros seis processadores são chamados de microengines. 
Eles trabalham com multi-processamento e multi-thread e são responsáveis pelo 
processamento e re-direcionamento dos pacotes. Com base nestes dados iniciais, já é 
possível definir que, a classe de processamento “rápido” está relacionada com as 
microengines e a classe de processamento “lento” está relacionada com o processador 
StrongARM. 
 
Figura 5.3. – Arquitetura do IXP1200 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 145
 
A seguir serão descritas algumas características básicas de cada bloco lógico: 
Processador StrongARM 
Processador RISC de 32 bits, com 16kbytes de cache de instrução e 8kbytes de 
cache de dados. Possui um mini-cache de 512bytes, unidade de gerenciamento de 
memória e acesso às unidades FBI, PCI e memória SDRAM. 
Microengines 
Suportam multi-thread, possuem ULA’s (Unidades Lógicas e Aritméticas) e 128 
registradores de propósito geral e 128 de transferência. Possuem cache de instrução e de 
dados e acesso à unidade FBI, aos canais PCI DMA, SRAM e SDRAM. 
Memórias 
A memória SDRAM possui um máximo de endereçamento de 256Mbytes e a 
SRAM um máximo de 8Mbytes. Existe também uma memória FlashROM de 8Mbytes 
para boot do processador StrongARM. 
Unidade FBI e Barramento IX 
A unidade FBI trabalha na camada MAC sobre o barramento IX e é responsável 
pelo serviço de periféricos. O barramento IX possui 64 bits em 66 MHz e é responsável 
pela interface com a ETHERNET, ATM e outros processadores da família IXP. 
Unidade PCI 
É uma unidade padrão PCI de 32 bits responsável pela interface com outros 
dispositivos PCI, processadores (CPU’s) e dispositivos MAC. Opera em uma freqüência 
de 66 Mhz. 
Este processador possui ainda uma porta serial UART (Universal Asynchronous 
Receive and Transmit), e quatro portas I/O de propósito geral. 
A família de Processadores de Rede da Intel ainda é composta pelos seguintes 
processadores: IXP2850, IXP2800, IXP2400, IXP425, IXP422, IXP421 e IXP420. 
5.4. IBM – PowerNP NP4GS3 
Serão descritos neste tópico, os principais blocos do NP4GS3 (figura 5.4), Processador 
de Rede IBM [IBM 2002]. 
Multiplexador Camada Física 
Provê a interface do Processador de Rede com portas de comunicação externa. 
Existem dez unidades de transferência de dados (Data Mover Units), sendo que, cinco 
de entrada e cinco de saída. Quatro pares são usados para interfaces externas. Cada 
DMU suporta os seguintes tipos de configuração: 
• 10 x 10/100 FDX Ethernet, por DMU 
• 1 x 1GB, por DMU 
• 4 x OC-3, por DMU 
• 1 x OC-12, por DMU 
• 1 x OC-48, por 4 DMU’s 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 146
 
O outro par DMU é para comunicação interna ao processador (Wrap Port). 
Ingress EDS (I-EDS) 
Este bloco é responsável por encaminhar os frames recebidos pelo DMU. Suas 
principais funções são: 
• Guardar os frames em memória interna RAM. 
• Filtrar e decidir algumas alterações no frame. 
• Desenfileirar, encaminhar ou descartar o frame. 
Switch Interface 
Provê uma célula de dados baseado na interface entre NP’s via um switching 
fabric (para três ou mais NP’s) ou conexão direta entre dois NP’s. Este bloco está 
dividido nas seguintes partes: 
• I/E-SDM: Interface lógica entre o I/E-EDS e a célula. 
• I/E-SCI: Transmite e recebe células da interface física. 
• DASL: Interface física entre: 
o NP e switch fabric 
o Entrada/saída de 1 NP 
o Entrada/saída de 2 NP’s 
Egress EDS (E-EDS)Suas principais funções são: 
• Receber frames do Switch Interface. 
• Enfileirar os frames e guardar em memória RAM externa. 
• Processar os pacotes, desenfileirar e encaminhar os frames. 
Shaper 
Gerencia a largura de banda por frame com base nas portas Egress – DMU. 
Embedded Processor Complex 
Determina o que deve ser feito com os frames recebidos pelo I-EDS e E-EDS. 
Contém oito Dyadic Picoprocessors e nove co-processadores. 
“O código faz parecer que o processador é um ASIC programável”. 
Embedded PowerPC (ePPC) 
O PowerPC 405 engine foi desenvolvido para controle de funções de rede tais 
como: 
• Encaminhar e filtrar pacotes analisando campos do protocolo IP. 
• Controlar protocolos de roteamento tal como: RIP, OSPF e BGP. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 147
 
• Gerenciar, configurar, diagnosticar e suportar agentes SNMP. 
System Memory 
Este bloco suporta memórias interna e externa. Os tipos são: 
• SRAM (interna) 
• Z BT SRAM (externa) 
• DDR SDRAM (externa) 
 
 
Figura 5.4. – Arquitetura do NP4GS3 
5.5. Lucent/Agere – FPP/ASI/RSP 
A solução da Lucent/Agere [Agere 2001] consiste em três tipos de processadores: FPP 
(Fast Pattern Processor), RSP (Routing Switch Processor) e ASI (Agere System 
Interface). 
A figura 5.6 ilustra a arquitetura da solução usando os três processadores. O 
pipeline de dados é realizado através de interface física entre o FPP e o RSP. O 
processador ASI é utilizado apenas quando há um excesso no gerenciamento. 
 
Figura 5.6. – Arquitetura integrada dos três processadores 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 148
 
Fast Pattern Processor (FPP) 
O FPP (figura 5.7) é um processador com pipeline e suporte até 64 threads. 
Cada unidade de pacote de dados (PDU) que chega do barramento UTOPIA é 
assinalado como uma nova thread. O suporte em hardware para o chaveamento de 
contexto habilita o FPP a processar múltiplas PDU’s em paralelo. 
 
Figura 5.7. – Arquitetura do FPP 
As principais aplicações para este processador são: 
• Roteadores e switches; 
• Firewalls, gerenciamento e monitoramento de redes; 
• Segmentação ATM e Frame Relay; 
• Processamento de lista e controle de acesso. 
Routing Switching Processor (RSP) 
O RSP (figura 5.8) recebe a classificação dos dados e as PDU’s do FPP e 
entrega para a fabric. As quatro principais funções do RSP são: enfileiramento, 
gerenciamento de tráfego, gerenciamento de modelo e modificação de pacote. 
O RSP recebe os pacotes de instrução do FPP e guarda as PDU’s na SDRAM. 
Baseado nos cálculos de gerenciamento de tráfego, as PDU’s podem ser enfileiradas ou 
descartadas. A PDU pode então, ser transmitida ou buscada de memória, modificada e 
então transmitida. 
 
Figura 5.8. – Arquitetura do RSP 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 149
 
Agere System Interface (ASI) 
A principal função do ASI (figura 5.9) é referente ao processamento que requer 
o caminho “lento”. Este processamento é caracterizado por: roteamento, atualizações 
em tabelas, atualizações em filas, exceções e estatísticas. 
Existe uma interface PCI para gerenciamento externo e uma interface PCI133 
SDRAM, para acesso à memória. 
 
Figura 5.9. – Arquitetura do ASI 
5.6. EZChip – NP - 1 
O NP-1 [EZChip 2002] é um Processador de Rede full-duplex de 10Gbits camada 7. 
Este processador incorpora a tecnologia TOPcore (Top Optimized Processing Core), 
que consiste em um array integrado de processadores customizados em uma arquitetura 
super-escalar que provê desempenho e flexibilidade de processamento de pacotes. 
Suas principais aplicações são: 
• Equipamentos de rede, tais como roteadores, switches e gateways; 
• Balanceamento de carga; 
• Analisadores e testadores de rede; 
• Firewalls e VPN’s. 
A figura 5.10 ilustra as interfaces do NP-1. 
 
Figura 5.10. – Interfaces do NP-1 
Interfaces: 
• Uma porta OC-192 com interface SPI4.2; 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 150
 
• Duas portas Ethernet 10 Gbits com uma MAC integrada; 
• Oito portas Ethernet 1 Gbit com oito MAC’s integradas de 10/100/1000 
Mbps; 
• Uma interface padrão CSIX (Common Switch Interface) provê conectividade 
com um switch fabric; 
• Uma interface PCI é usada para interconectar o NP-1 com outro tipo de 
processador. 
A figura 5.11 ilustra a arquitetura TOPcore. A função de cada estágio é a 
seguinte: 
• TOPparse: identificar protocolos e extrair cabeçalhos dos pacotes; 
• TOPsearch: executar lookups em diferentes níveis; 
• TOPresolve: assinala pacotes para enfileirar ou enviar para portas; 
• TOPmodify: modifica conteúdo dos pacotes; 
 
Figura 5.11. – Arquitetura do NP-1 
5.7. Sitera/Vitesse – Prism IQ2000 Family 
Este é um Processador de Rede [Vitesse 2002] (figura 5.12), que trabalha como um 
processador padrão. Enquanto o processador padrão faz o trabalho de controle, 
processamento e gerenciamento de sistemas, o co-Processador de Rede faz o trabalho de 
processamento dos pacotes, classificação, lookups e análise de QoS (Quality of Service) 
e Cós (Class of Service). O IQ2000 trabalha na camada 2 e 3 em equipamentos como 
switches e roteadores e suporta pacotes com taxas de 2.5Gbps. 
 
Figura 5.12. – Arquitetura do IQ2000 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 151
 
Algumas aplicações do IQ2000: 
• Roteamento de multi-protocolos complexos; 
• Classificação, filtragem, inspeção e criptografia; 
• Políticas de QoS; 
• Multicast; 
• Tradução de endereços de rede; 
• Outras operações de processamento de pacotes. 
Algumas características técnicas: 
• Quatro processadores escalares de 200Mhz; 
• Largura de banda (DS-0 a OC-48); 
• Suporte nativo para implementações MIPS, PowerPC e outros RISC’s; 
• Co-processadores especializados; 
• Conjunto de instruções especializado para operações de rede; 
• Suporte em hardware para Qualidade de Serviço (QoS) 
5.8. Chameleon CS2000 Family 
O processador de comunicação reconfigurável da Chameleon Systems [Chameleon 
2000] foi o primeiro da indústria de Processadores de Rede a utilizar reconfiguração 
(seção 8.1.) dinâmica como parte do sistema normal de operação. A arquitetura do 
CS2000 é ilustrada na figura 5.13. 
Algumas características técnicas do CS2000: 
• Fabric reconfigurável de 32 bits; 
• 84 unidades de caminho de dados de 32 bits; 
• 24 unidades de multiplexadores de 16x24 bits; 
• 3000 MMACS de 16 bits; 
• 24000 MOPS de 16 bits; 
• Fabric reconfigurável em 1 ciclo de clock; 
• Canais de voz/dados/vídeo por chip; 
• Processador ARC integrado de 32 bits; 
• Controlador PCI integrado de 32 bits; 
• Controlador de memória integrado de 64 bits; 
• Controlador de DMA integrado de 16 canais; 
• 160 pinos de entrada e saída programáveis; 
• Largura de banda de 2Gbytes por segundo. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 152
 
Algumas de suas principais aplicações são: Estações base sem fio de 2G e 3G, 
Wireless Local Loop (WLL) [Salefski 2001], Voz sobre IP e alto desempenho DSL. 
 
Figura 5.13. – Arquitetura do CS2000 
A unidade reconfigurável [Compton 2002] [Martins 2002] do CS2000 é o 
Processing Fabric (figura 5.14). Esta unidade é dividida em fatias, as unidades básicas 
de reconfiguração. O CS2112 possui quatro fatias, cada uma pode ser reconfigurada 
independentemente. Cada fatia consiste de três blocos, constituídos de Unidades de 
Caminho de Dados, Multiplicadores, Memórias Locais e Unidades de Controle. 
 
Figura 5.14. – Fabric reconfigurável 
6. Arquitetura de Equipamentos de Rede 
Os equipamentos de rede [Cisco 1998] [Tanembaum 1999] [Cisco 2001] [Intel 2001] 
[Misra 2001] [Dantas 2002] são os principais elementos que demandam o 
desenvolvimento dos Processadores de Rede. Esta seção apresenta algumas soluções e 
também alguns equipamentos e seus respectivos processadores. Será descrita a evolução 
dos equipamentos desde a utilização dos processadores de propósito geral até os 
Processadores de Rede.O desenvolvimento dos Processadores de Rede foi motivado principalmente pela 
grande necessidade de alto desempenho na comunicação de dados entre os 
equipamentos de rede. Outro fator importante foi o aumento da necessidade por 
qualidade de serviço (QoS). Estes dois itens foram os principais fatores que 
impulsionaram os projetos de Processadores de Rede. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 153
 
No início os equipamentos de rede, tais como os switches e roteadores, 
utilizavam processadores de propósito geral para realizar o processamento geral dos 
dados e todas as tarefas relacionadas à comunicação em redes. Porém, era necessário 
que o processamento fosse dedicado e que tivesse funções específicas para tratar os 
pacotes e protocolos de rede, de forma mais otimizada, aumentando o desempenho na 
transmissão de dados. Desta forma encontram-se hoje, vários equipamentos que 
utilizam Processadores de Rede para facilitar e aumentar a qualidade e o desempenho do 
produto. 
Nesta seção iremos apresentar um pouco da história e da aplicação dos 
Processadores de Rede, usando como foco alguns equipamentos e seus respectivos 
processadores. 
6.1. Processadores de Propósito Geral CISC em Equipamentos de Rede 
Os equipamentos de rede mais antigos, meados da década de 90, utilizavam 
basicamente processadores GPP’s como única unidade de processamento. A figura 6.1 
ilustra o roteador da Cisco da série 1600 [Cisco 2001], que utiliza um processador da 
Motorola GPP com tecnologia CISC. 
O processador de propósito geral da Motorola é o 68360, que possui 32 bits para 
endereçamento e dados e um clock interno de 33Mhz. 
 
Figura 6.1. – Diagrama em blocos do roteador Cisco Série 1600 
Outro roteador da Cisco é da série 2500 [Cisco 2001]. O diagrama em blocos 
deste roteador está ilustrado na figura 6.2 e também possui como processador o 68030 
da Motorola. Este processador também é um processador de tecnologia CISC. O 68030 
possui um barramento de 32 bits e clock de 20 a 25 Mhz, cache de 256 bytes de dados e 
instrução por mapeamento direto. 
 
Figura 6.2. – Diagrama em blocos do roteador Cisco Série 2500 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 154
 
Com o aumento na exigência de qualidade de serviço (QoS) e de desempenho 
estas arquiteturas ficaram obsoletas e novas tecnologias avançaram para projetos mais 
eficientes utilizando Processadores de Rede. 
6.2. Processadores de Propósito Geral RISC em Equipamentos de Rede 
Os processadores avançaram da tecnologia CISC para RISC ao longo do tempo, e os 
equipamentos de rede passaram a utilizar estes processadores juntamente com circuitos 
dedicados para aumentar o desempenho e vazão de dados. O que a Cisco fez foi 
justamente agregar características de um circuito dedicado de rede com um processador 
RISC (MIPS R4600 / R 4700 / R5000). 
Os roteadores da série 7500 [Cisco 2001] possuem duas placas responsáveis 
pelo tratamento dos dados de rede. As figuras 6.3 e 6.4 ilustram a arquitetura destas 
duas placas chamadas de RSP (Route Switch Processor) [Cisco 2000] e VIP (Versatile 
Interface Processor) [Cisco 2000] respectivamente. Elas possuem funções distintas, 
mas se interligam como ilustrado na figura 6.5 da arquitetura do roteador 7500. 
 
Figura 6.3. – Arquitetura do RSP 
A principal função do RSP é aumentar o desempenho de roteamento. Suas 
principais funções são: 
• Chaveamento de pacotes; 
• Encriptação de dados; 
• Compressão de dados; 
• Controle de acesso; 
• Qualidade de Serviço; 
• Gerenciamento de protocolos e rede. 
O VIP possui serviços de suporte ao RSP, tais como o chaveamento, compressão 
e QoS e realiza a interface de conexão com: 
• WAN e LAN; 
• SONET (Synchronous Optical Network); 
• Interface Processors (POSIPs) 
• Com processadores do tipo VIP. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 155
 
 
Figura 6.4. – Arquitetura do VIP 
É interessante citar que, as figuras 6.3 e 6.4 ilustram facilmente a característica 
de um SoC, mas neste caso estes circuitos são parte integrantes de duas placas e não são 
internos ao chip do processador. 
 
Figura 6.5. – Arquitetura do roteador Cisco 7500 
6.3. Processadores de Rede em Equipamentos de Rede 
O desenvolvimento dos Processadores de Rede foi motivado pela exigência de alta 
qualidade de serviço e desempenho da Internet e podem ser utilizados em vários tipos 
de aplicações, tais como: 
• Balanceamento de carga em clusters de computadores; 
• Roteamento em uma rede SAN (System Area Network); 
• Equipamentos de telefonia; 
• Computação móvel (sem fio); 
• Voz sobre IP; 
• Equipamentos de rede tradicionais como roteadores e switches. 
A figura 6.6 ilustra a arquitetura interna de um módulo de telefonia da ADC 
utilizado no switch IP Cuda 12000 [ADC 2002] com suporte a voz sobre IP. Nesta 
arquitetura a função básica do Processador de Rede (IXP1200) é processar, distribuir e 
encaminhar pacotes de protocolo IP. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 156
 
 
Figura 6.6. – Arquitetura do módulo de telefonia 
A figura 6.7 é referente a dois equipamentos da Dasan Networks [Dasan 2001]. 
São três roteadores que utilizam os Processadores de Rede, específicos de comunicação 
de dados, da família PowerQUICC Motorola. 
 
Figura 6.7. – Breve descrição técnica dos roteadores da Dasan 
A família de roteadores da série 7200 da Cisco [Cisco 2001], utiliza o NPE 
(Network Processor Engine) [Cisco 2001]. Esta é uma placa que contém um conjunto 
de hardwares dedicados para o processamento de rede. A arquitetura simplificada da 
NPE-400 é a seguinte: 
• Processador RISC RM7000A, 350Mhz; 
• Cache L3 4MB; 
• Memória SDRAM de 128MB expansível para 512MB. 
É importante ressaltar que várias placas dedicadas para aplicações de rede estão 
sendo projetadas com Processadores de Rede. Existem várias aplicações que não foram 
mencionadas e que a literatura está começando a disponibilizar. Existe ainda uma 
grande dificuldade em se encontrar publicações, manuais ou datasheets que descrevem 
as arquiteturas dos equipamentos de rede que utilizam Processadores de Rede. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 157
 
Existem várias áreas pouco exploradas, como os equipamentos dedicados para 
soluções de QoS e cabe a nós desvendá-las. Uma delas é a aplicação em cluster de 
computadores [Buya 1999] em uma rede ativa SAN (Active System Area Network) 
[Ulmer 2002]. Aplicar conceitos de rede ativa, amplamente utilizada na Internet, em um 
cluster com protocolo leve, tem como objetivo aumentar o desempenho, a 
confiabilidade e a qualidade de serviço do processamento dos pacotes. 
7. Grupos de Pesquisa e Eventos Relacionados 
A seguir estão relacionados os nomes de algumas universidades, respectivos 
departamentos e pessoas envolvidas em pesquisas relacionadas aos Processadores de 
Rede. 
North Caroline University, USA, Computer Engineering Program, Deepak 
Suryanarayanan 
Purdue University, Jahangir Hasan e T. N. Vijaykumar 
Swiss Federal Institute of Technology (ETH) Zürich, Switzerland, Computer 
Engineering and Networks Laboratory, Lothar Thiele, Samarjit Chakraborty, Mathias 
Gries e Simon Künzli 
University of California, Berkeley, USA, Department of Electrical Engineering 
and Computer Sciences, Nirja Shah, Will Plishker e Kurt Keutzer 
University of California, Riverside, Department of Computer Science & 
Engineering, Haiyong Xie, Li Zhou e Laxmi Bhuyan 
University of California, San Diego, Department of Computer Science & 
Engineering, Timothy Sherwood, George Varghese e Brad Calder 
University of Dortmund, Germany, Aachen University of Technology, Jens 
Wagner e Rainer Leupers 
University of Washington, USA, Department of Computer Science & 
Engineering, Patrick Crowley e Jean-Loup Baer 
University of Wisconsin, USA, Madhu Sudanan Seshadri, John Bent e Tevfik 
Kosar 
Washington University in St. Louis, USA, School of Engineering & Applied 
Science, Tilman Wolf, MarkA. Franklin e Edward W. Spitznagel 
Abaixo estão relacionados alguns grupos que trabalham com computação 
reconfigurável aplicada aos Processadores de Rede. 
University of Patras, Greece, Department of Electrical Engineering and 
Computer Tecnology, Marios Iliopoulos e Theodore Antonakopoulos, [Iliopoulos 2000] 
University of Florida, USA, HCS Research Lab, ECE Department, I. A. Troxel, 
A. D. George e S. Oral, [Troxel 2002] 
University of California, Los Angeles, USA, Department of Electrical 
Engineering, Gohan Memik, Seda Ogrenci Memik e William H Mangione-Smith, 
[Memik 2002] 
 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 158
 
Eventos Relacionados: 
Workshop on Network Processors 
Network Processors Conference 
Annual International Symposium on Microarchitecture (MICRO) 
Annual International Symposium on Computer Architecture (ISCA) 
International Symposium on High-Performance Computer Architecture (HPCA) 
International Conference on Computer Communication Network (ICCCN) 
Conference on Local Computer Networks (LCN) 
International Conference on Supercomputing 
International Symposium on Circuits and Systems (ISCAS) 
International Conference on Computer Design 
International Conference on Computer-Aided Design 
Symposium on Computer Architecture and High Performance Processing 
(SBAC-PAD), Brasil 
Workshop em Sistemas Computacionais de Alto Desempenho (WSCAD), Brasil 
Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos 
(SBRC), Brasil 
8. Projeto de Processador de Rede Reconfigurável 
Neste tópico apresentamos alguns resultados obtidos na nossa pesquisa sobre 
Processadores de Rede [Freitas 2001, 2002, 2003]. A pesquisa teve início no ano 2000 
com o projeto da arquitetura e conjunto de instruções de um Processador de Rede CISC 
e depois de uma versão similar RISC. Foram realizadas simulações funcionais do 
conjunto ISA e também algumas simulações em VHDL (VHSIC Hardware Description 
Language) de blocos específicos do processador. Um dos objetivos da apresentação 
desta pesquisa é mostrar resultados que podem ajudar no entendimento dos 
Processadores de Rede, já que os conceitos e o funcionamento básico são abordados de 
forma mais simplificada comparando com os processadores comerciais. No entanto, 
antes de apresentar estes resultados iremos fazer uma breve introdução dos conceitos de 
computação reconfigurável. 
8.1. Computação Reconfigurável 
A computação reconfigurável [Compton 2002] [Martins 2002] apresenta uma nova 
solução para o aumento de ganho em flexibilidade e desempenho. Ou seja, quando 
trabalhamos com um hardware fixo, possuímos então um dispositivo com grande 
desempenho, porém com pouca flexibilidade, uma vez que ele foi projetado para 
executar apenas uma função. No caso dos hardwares programáveis ou dos softwares, a 
flexibilidade é muito grande, porém há uma queda do desempenho, uma vez que estes 
foram projetados para executar várias funções. Desenvolver um dispositivo 
reconfigurável é procurar atingir o ponto intermediário na relação flexibilidade e 
desempenho. 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 159
 
Vamos tomar como exemplo um conjunto de buffers. Em uma situação normal, 
poderíamos ter um conjunto formado por buffers de tamanho fixo. Neste caso o 
tamanho de alocação de dados não varia. Mas se este conjunto de buffers fosse 
reconfigurável, poderíamos ter em instantes distintos a alteração do tamanho de 
alocação destes buffers, adequando à nova situação que poderia estar sendo exigida pelo 
sistema ao qual este conjunto pertence. Desta forma, os buffers continuam com 
desempenho de hardware fixo, mas com a flexibilidade de um hardware programável. É 
importante ressaltar que na reconfiguração o meio utilizado é a programação, mas o 
dispositivo reconfigurável não é programável. 
A nossa proposta de desenvolvimento de um Processador de Rede utiliza a 
computação reconfigurável em alguns dos blocos funcionais. A figura 8.4. apresenta a 
simulação realizada em VHDL de uma crossbar reconfigurável utilizada no nosso 
processador. 
8.2. Resultados 
O projeto RNP (Reconfigurable Network Processor) [Freitas 2001, 2002, 2003] consiste 
basicamente em desenvolver e implementar um Processador de Rede reconfigurável. 
Neste minicurso apresentaremos de forma resumida os seguintes resultados: i) 
arquitetura CISC de Processador de Rede Reconfigurável (RCNP: Reconfigurable CISC 
Network Processor), ii) simulador de Processador de Rede (NPSIM: Network Processor 
Simulator), iii) arquitetura RISC de Processador de Rede Reconfigurável (R2NP: 
Reconfigurable RISC Network Processor), iv) modelo analítico de desempenho do 
conjunto de instruções das arquiteturas RCNP e R2NP e v) simulação em VHDL 
(VHSIC Hardware Description Language) [Ashenden 1990, 1998] da crossbar 
reconfigurável. 
 
Figura 8.1. – Módulos de edição de texto do simulador NPSIM 
A figura 8.1. ilustra dois módulos de interface do NPSIM responsáveis pela 
edição do código assembly e pela edição do pacote de entrada que será manipulado. A 
interface principal é composta por memória e registradores. Esta interface principal é 
fixa e presente ao lado dos módulos de interface variáveis. 
A função do NPSIM é realizar simulações funcionais das instruções e dos 
diversos blocos do processador RCNP, que também estão presentes no R2NP. Através 
deste simulador é possível escrever e executar diversos algoritmos, escritos em 
assembly, e visualizar a execução e os resultados através dos registradores, pilhas e 
matrizes representados pelos diversos componentes existentes no compilador C++ 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 160
 
Builder 5.0, utilizado para construir e compilar o simulador. Este simulador foi 
desenvolvido para executar as instruções do processador RCNP, portanto, ele não 
executa as instruções do R2NP. No que diz respeito ao R2NP, o NPSIM apenas valida 
alguns blocos funcionais da microarquitetura que também estão presentes no RCNP. 
A figura 8.2 mostra como é possível usar o NPSIM para verificar o 
funcionamento de um Processador de Rede. Esta figura é composta pelos módulos de 
interface dos buffers de entrada e pela crossbar reconfigurável. Nos buffers é possível 
visualizar os dados de entrada de uma determinada porta e acompanhar o processamento 
destes dados de acordo com o que foi programado no código assembly. Desta forma, é 
possível ver o funcionamento de um Processador de Rede que em determinados 
momentos analisa e modifica o cabeçalho tal como em uma rede ativa. O segundo 
módulo ilustra a crossbar e as possíveis combinações entre entrada e saída. Esta 
crossbar (chamada no simulador de Seletor de Conexão) é uma das partes 
reconfiguráveis do nosso Processador de Rede. 
 
Figura 8.2. – Módulos buffers de entrada e crossbar do simulador NPSIM 
Através da opção Sobre é possível ter acesso a detalhes da microarquitetura do 
RCNP. A figura 8.3. ilustra a microarquitetura do Processador de Rede e detalhes dos 
buffers da porta de entrada e da chave crossbar. É possível também obter informações 
referentes a microarquitetura. Portanto, além de poder simular o código no NPSIM, 
estão disponíveis nesta opção, os diagramas necessários para entender os caminhos de 
dados, de controle e também as interligações entre blocos que possibilitam o 
funcionamento dedicado para redes de comunicação de dados (Ex. portas de entrada e 
saída). 
 
Figura 8.3. – Descrição da arquitetura através do NPSIM 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 161
 
A figura 8.4. mostra a simulação da chave crossbar reconfigurável. Nesta 
simulação foi testamos apenas 4 entradas e 4 saídas para ficar mais fácil a manipulação 
dos dados e da figura. As entradas Node00 até Node33 são os bits de reconfiguração da 
crossbar. Em determinados instantes de tempo estes bits são alterados reconfigurando o 
tipo de topologia implementada na chave crossbar. Portanto, nós mostramos com esta 
simulaçãoas possibilidades de flexibilidade de uma chave crossbar reconfigurável, 
criando vários tipos de topologias em tempo de execução. O próximo passo, após os 
testes de simulação que serão realizados, será a prototipação em dispositivos FPGA 
(Field Programmable Gate Array) [Glesner 1998] [Xilinx 1998]. 
 
Figura 8.4. – Simulação em VHDL da crossbar reconfigurável 
Os resultados até o momento refletem uma abordagem mais didática, explicando 
de forma simplificada o funcionamento de um Processador de Rede. É importante 
ressaltar que as arquiteturas desenvolvidas seguem a arquitetura de referência e que os 
simuladores apresentados anteriormente procuram mostrar passo a passo o 
funcionamento de uma microarquitetura de Processador de Rede. 
Outros resultados e o simulador NPSIM podem ser obtidos através do site 
http://www.inf.pucminas.br/projetos/pad-r/r2np.html. 
9. Conclusões 
Atualmente existe uma grande exigência por desempenho nas redes de comunicação de 
dados. O estudo dos diversos equipamentos e as funções, que cada um desempenha, 
influenciou no projeto e desenvolvimento de processadores dedicados, que pudessem 
suprir as necessidades de desempenho e qualidade. Desta forma surgiu o Processador de 
Rede, que em sua concepção inicial, veio contribuir com o aumento de desempenho e de 
qualidade de serviço nos sistemas de comunicação. 
Foi possível constatar, através de toda a bibliografia consultada e estudada que, 
os Processadores de Rede são parte de estudos recentes nas Empresas e Universidades. 
Os grupos estão se formando e/ou consolidando e durante o ano 2000 começaram a 
aparecer artigos na área. É por esta razão que acreditamos nos resultados de divulgação 
da nossa pesquisa como forma de incentivar outros grupos a se formarem e contribuírem 
com resultados para esta nova área (científica e tecnológica). 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 162
 
Todos os fabricantes de Processadores de Rede classificam seus processadores 
como altamente eficazes na análise dos pacotes e no tratamento de QoS. A Motorola 
também classifica seus processadores desta forma, porém, define duas classificações 
que podemos ou não concordar que são distintas. Processadores de Rede e 
Processadores de Comunicação de Dados. Para a Motorola os Processadores de Rede 
são responsáveis pelo tratamento de QoS e pelas tarefas de roteamento. O Processador 
de Comunicação de Dados é responsável por estabelecer com eficácia a comunicação 
entre os hosts. O ponto de divergência nesta classificação é que os Processadores de 
Comunicação de Dados são parte integrante da família de Processadores de Rede. Por 
este motivo, dizer que seu processador é dedicado para estabelecer a comunicação, não 
exclui sua classificação como Processador de Rede. 
Um exemplo claro da indústria de Processadores de Rede é o CS2000 da 
Chameleon Systems. Este processador é dedicado para comunicação de dados e possui 
uma unidade de reconfiguração. O CS2000 foi o primeiro Processador de Rede a utilizar 
uma unidade de reconfiguração dinâmica. É interessante ressaltar que este processador é 
o único relacionado neste trabalho, que possui aplicação de computação reconfigurável 
tal como nossa proposta no RNP (Reconfigurable Network Processor). 
As principais técnicas utilizadas na fabricação dos Processadores de Rede estão 
relacionadas com: RISC, ASIP e SoC. Basicamente não há muita variação. Todos 
utilizam processadores RISC, dedicados ou de propósito geral como sua unidade 
principal de processamento, co-processadores ou processadores dedicados para auxílio 
de processamento de pacotes e hardwares dedicados para comunicação de dados. 
Inicialmente todos são ASIP’s, mas quando encontramos hardwares dedicados, como 
crossbar e memória, o processador pode ser considerado um SoC. Por se tratar de uma 
solução onde o principal objetivo é reduzir a distância entre os blocos construtivos, a 
tendência é o aumento da velocidade e redução do tempo de resposta do processamento. 
Desta forma, acreditamos que o SoC é uma boa opção para o projeto de Processadores 
de Rede. 
Como mostrado na seção 7, poucos são os grupos de pesquisas envolvidos com 
Processadores de Rede nas universidades. No entanto podemos destacar as seguintes 
universidades: Washington University in St. Louis e University of Washington. Nestas 
duas universidades, os professores Mark. A. Franklin e Patrick Crowley coordenam 
pesquisas na área e também são responsáveis pela organização do Workshop on 
Network Processors realizado em conjunto com o HPCA (High Performance Computer 
Architecture). 
O principal desafio é encontrar o melhor desempenho para os Processadores de 
Rede. Qual técnica utilizar e quanto eficiente é o modelo ISA e a microarquitetura do 
processador. Sabemos que GPP’s são mais flexíveis, os ASIP’s são menos flexíveis, 
porque são dedicados e os ASIC’s são muito velozes, porém pouco flexíveis. Os 
projetos que souberem otimizar a utilização que cada uma das opções, provavelmente 
irá se aproximar do melhor ponto de desempenho. 
Esperamos que as informações apresentadas neste minicurso tenham ajudado no 
entendimento dos Processadores de Rede. Durante os anos de estudo constatamos que 
muito da evolução desta área corresponde ao esforço da indústria e que recentemente 
pesquisas acadêmicas voltadas para análise e estudo de alternativas para aumento de 
desempenho estão crescendo. Esperamos que nossa curiosidade em aprender mais sobre 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 163
 
esta área tenha incentivado novos pesquisadores e que nos próximos anos tenhamos 
mais resultados e publicações brasileiras sobre Processadores de Rede. 
10. Referências 
ADC (2002), “Cuda Packet Telephony Module (PTM), Hardware Architecture, 
http://www.adc.com 
Agere System (2001), “Agere System Interface (ASI)”, Product Brief, June 2001, 
http://www.agere.com 
Agere System (2001), “Fast Pattern Processor (FPP)”, Product Brief, April 2001, 
http://www.agere.com 
Agere System (2001), “Routing Switch Processor (RSP)”, Product Brief, April 2001, 
http://www.agere.com 
Ashenden, P. J. (1998), “The Student’s Guide to VHDL”, Morgan Kaufmann 
Publishers, Inc, San Francisco, California, USA 
Ashenden, P. J. (1990), “The VHDL Cookbook”, unpublished technical report. Dept. of 
Computer Science, University of Adelaide, South Australia, http://tams-
www.informatik.uni-hamburg.de/vhdl/doc/cookbook 
Buya, R. (1999), “High Performance Cluster Computing”, Volume 1, Prentice Hall 
Chameleon Systems (2000), “CS2000 Reconfigurable Communications Processor”, 
Family Product Brief 
Cisco Systems White Paper (2001), “The Evolution of high-end Router Architectures-
Basic Scalability and Performance Considerations for Evaluating Large-Scale Router 
Designs”, http://www.cisco.com 
Cisco Systems (2001), 1600 Series Router Architecture, 1992-2001, 
http://www.cisco.com 
Cisco Systems (2001), 2500 Series Router Architecture, 1992-2001, 
http://www.cisco.com 
Cisco Systems (2000), 7200 Series Network Processor Family, NPE-400, NPE-300 and 
NPE-225, Datasheet, 2000, http://www.cisco.com 
Cisco Systems (2001), 7200 Series Router Architecture, 1992-2001, 
http://www.cisco.com 
Cisco Systems (2001), 7500 Series Router Architecture, 1992-2001, 
http://www.cisco.com 
Cisco Systems (1998), Catalyst 8500 CSR Architecture, White Paper, 
http://www.cisco.com 
Cisco Systems (2000), Route Switch Processor 8 for Cisco 7500 Series Routers, 
Datasheet, http://www.cisco.com 
Cisco Systems (2000), Versatile Interface Processor 4 for Cisco 7500 Series Routers, 
Datasheet, http://www.cisco.com 
Escola Regional de Informática RJ/ES, Vitória, SBC, 2003
 164
 
Comer, D. E. (1995), “Internetworking with TCP/IP Principles, Protocols and 
Architecture Volume 1”, Third Edition, Ed. Pearson 
Compton, K. e Hauck, S. (2002), “Reconfigurable Computing: A Survey of Systems 
and Software”, ACM Computing Surveys, Vol. 34, No. 2, June 2002, pp. 171-210 
C-Port (2001),

Continue navegando