Processador de rede - Network processor

Intel FWIXP422BB

Um processador de rede é um circuito integrado que possui um conjunto de recursos voltado especificamente para o domínio de aplicativo de rede .

Os processadores de rede são tipicamente dispositivos programáveis ​​por software e teriam características genéricas semelhantes às unidades de processamento central de propósito geral que são comumente usadas em muitos tipos diferentes de equipamentos e produtos.

História do desenvolvimento

Nas redes de telecomunicações modernas , as informações (voz, vídeo, dados) são transferidas como dados de pacote (denominado comutação de pacote ), o que está em contraste com as redes de telecomunicações mais antigas que transportavam informações como sinais analógicos , como na rede telefônica pública comutada (PSTN) ou analógica Redes de TV / rádio . O processamento desses pacotes resultou na criação de circuitos integrados (IC) que são otimizados para lidar com essa forma de pacote de dados. Os processadores de rede têm recursos ou arquiteturas específicas que são fornecidas para aprimorar e otimizar o processamento de pacotes nessas redes.

Os processadores de rede evoluíram para CIs com funções específicas. Esta evolução resultou em CIs mais complexos e mais flexíveis sendo criados. Os circuitos mais novos são programáveis ​​e, portanto, permitem que um único projeto de hardware IC realize várias funções diferentes, onde o software apropriado é instalado.

Os processadores de rede são usados ​​na fabricação de muitos tipos diferentes de equipamentos de rede , como:

Funções genéricas

Na função genérica de processador de pacote, uma série de recursos ou funções otimizadas estão normalmente presentes em um processador de rede, que incluem:

  • Correspondência de padrões - a capacidade de encontrar padrões específicos de bits ou bytes dentro de pacotes em um fluxo de pacotes.
  • Pesquisa de chave - a capacidade de realizar rapidamente uma pesquisa de banco de dados usando uma chave (normalmente um endereço em um pacote) para encontrar um resultado, normalmente informações de roteamento .
  • Computação
  • Manipulação de campo de bits de dados - a capacidade de alterar certos campos de dados contidos no pacote conforme ele está sendo processado.
  • Gerenciamento de filas - conforme os pacotes são recebidos, processados ​​e programados para envio em diante, eles são armazenados em filas.
  • Processamento de controle - as micro operações de processamento de um pacote são controladas em um nível macro que envolve a comunicação e a orquestração com outros nós em um sistema.
  • Alocação e recirculação rápidas de buffers de pacotes.

Paradigmas arquitetônicos

Para lidar com altas taxas de dados, vários paradigmas arquitetônicos são comumente usados:

  • Pipeline de processadores - cada estágio do pipeline consiste em um processador realizando uma das funções listadas acima.
  • Processamento paralelo com vários processadores, geralmente incluindo multithreading .
  • Motores microcodificados especializados para realizar as tarefas com mais eficiência.
  • Com o advento de arquiteturas multicore , os processadores de rede podem ser usados ​​para processamento de camada superior ( L4-L7 ).

Além disso, o gerenciamento de tráfego, que é um elemento crítico no processamento de rede L2 - L3 e costumava ser executado por uma variedade de coprocessadores, tornou-se parte integrante da arquitetura do processador de rede e uma parte substancial de sua área de silício (" imobiliário ") é dedicado ao gestor de tráfego integrado. Os processadores de rede modernos também são equipados com redes de interconexão on-chip de alto rendimento e baixa latência otimizadas para a troca de pequenas mensagens entre núcleos (poucas palavras de dados). Essas redes podem ser usadas como um recurso alternativo para a comunicação eficiente entre os núcleos, além do uso padrão de memória compartilhada.

Formulários

Usando a função genérica do processador de rede, um programa de software implementa um aplicativo que o processador de rede executa, resultando no equipamento físico executando uma tarefa ou fornecendo um serviço. Alguns dos tipos de aplicativos normalmente implementados como software em execução em processadores de rede são:

  • Discriminação e encaminhamento de pacotes ou quadros , ou seja, a operação básica de um roteador ou switch .
  • Aplicação de qualidade de serviço (QoS) - identificando diferentes tipos ou classes de pacotes e fornecendo tratamento preferencial para alguns tipos ou classes de pacotes em detrimento de outros tipos ou classes de pacotes.
  • Funções de controle de acesso - determinando se um pacote ou fluxo de pacotes específico deve ter permissão para atravessar o equipamento de rede.
  • Criptografia de fluxos de dados - mecanismos de criptografia baseados em hardware integrados permitem que fluxos de dados individuais sejam criptografados pelo processador.
  • Processamento de descarregamento de TCP

Veja também

Referências