Baixe o app para aproveitar ainda mais
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),
Compartilhar