BRPI0015717B1 - Método e sistema para classificação de quadro e protocolo - Google Patents

Método e sistema para classificação de quadro e protocolo Download PDF

Info

Publication number
BRPI0015717B1
BRPI0015717B1 BRPI0015717-1A BRPI0015717A BRPI0015717B1 BR PI0015717 B1 BRPI0015717 B1 BR PI0015717B1 BR PI0015717 A BRPI0015717 A BR PI0015717A BR PI0015717 B1 BRPI0015717 B1 BR PI0015717B1
Authority
BR
Brazil
Prior art keywords
frame
processing
information unit
input information
unit
Prior art date
Application number
BRPI0015717-1A
Other languages
English (en)
Inventor
Mitchell Bass Brian
Louis Calvignac Jean
Taylor Davis Gordon
Matteo Gallo Anthony
Heddes Marco
Kenneth Jenkinss Steven
Body Leavens Ross
Steven Siegel Michael
Jean Verplanken Fabrice
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/479,028 external-priority patent/US6633920B1/en
Priority claimed from US09/479,027 external-priority patent/US6775284B1/en
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of BRPI0015717B1 publication Critical patent/BRPI0015717B1/pt
Publication of BRPI0015717B8 publication Critical patent/BRPI0015717B8/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

"método e sistema para classificação de quadro e protocolo". um sistema e método para classificação de protocolo de quadro e processamento em um sistema para processamento de dados (por exemplo, comutação ou roteamento de pacotes de dados ou quadros). a presente invenção inclui analisar uma porção do quadro de acordo com testes predeterminados, então armazenar características chave do pacote para uso em processamento subseqüente do quadro. as características chave para o quadro (ou unidade de informação de entrada) incluem o tipo de protocolo da camada 3 utilizado no quadro, a técnica de encapsulamento da camada 2, o endereço da instrução inicial, flags indicando se o quadro utiliza uma rede de área local virtual e a identidade do fluxo de dados ao qual o quadro pertence. muito da análise de preferência é feita utilizando hardware de modo que ela pode ser completada rapidamente e em um período de tempo uniforme. as características armazenadas do quadro são então utilizadas pelo complexo de processamento da rede em seu processamento do quadro. o processador é pré-condicionado com um endereço de instrução inicial e a localização do começo do cabeçalho da camada 3 bem como flags para o tipo de quadro. ou seja, o endereço da instrução ou ponto de entrada de código é utilizado pelo processador para começar o processamento para um quadro no local certo, baseado no tipo de quadro. endereços de instrução adicionais podem ser empilhados e utilizados seqüencialmente em ramificações para evitar testes e instruções de ramificação adicionais. adicionalmente, os quadros compreendendo um fluxo de dados podem ser processados e enviados na mesma ordem na qual eles são recebidos.

Description

(54) Título: MÉTODO E SISTEMA PARA CLASSIFICAÇÃO DE QUADRO E PROTOCOLO (51) Int.CI.: G06F 9/46; H04L 29/06 (30) Prioridade Unionista: 07/01/2000 US 09/479,027, 07/01/2000 US 09/479,028 (73) Titular(es): INTERNATIONAL BUSINESS MACHINES CORPORATION (72) Inventor(es): BRIAN MITCHELL BASS; JEAN LOUIS CALVIGNAC; GORDON TAYLOR DAVIS; ANTHONY MATTEO GALLO; MARCO HEDDES; STEVEN KENNETH JENKINSS; ROSS BODY LEAVENS; MICHAEL STEVEN SIEGEL; FABRICE JEAN VERPLANKEN
Al
Figure BRPI0015717B1_D0001
Relatório Descritivo da Patente de Invenção para MÉTODO E SISTEMA PARA CLASSIFICAÇÃO DE QUADRO E PROTOCOLO. Fundamento da Invenção
Campo da Invenção
A presente invenção relaciona-se com um aparelho de rede de comunicação tal como é utilizado para ligar juntos sistemas ou computadores de manipulação de informação de vários tipos e capacidades com componentes e métodos para processamento de dados em tal aparelho. Mais particularmente, a presente invenção relaciona-se com um sistema e método aperfeiçoados para fluxo de dados em um dispositivo de processamento acoplado com uma rede de transmissão de dados, incluindo um método e sistema para manipular uma pluralidade de unidades de informação de entrada (de outro modo conhecidas como pacotes ou quadros) que podem ser simultaneamente processadas por uma pluralidade de processadores independentes e unidades de informação de entrada estas que podem possuir uma dentre uma variedade de diferentes protocolos.
Fundamento da Técnica
A presente modalidade está relacionada com os seguintes documentos, todos os quais são designados para o cessionário da presente invenção.
Pedido de patente S.N. 09/384.691, depositado em 27 de agosto de 1999 por Brian Bass et al., entitulado NetWork Processor Processing Complex and Methods, algumas vezes referido aqui dentro como Patente da Unidade de Processamento de Rede ou Patente NPU.
Patente dos Estados Unidos 5.724.348 entitulada Efficient Hardware/Software Interface for a Data Switch emitida em 3 de março de 1998, patente esta que algumas vezes é referida como a Patente da Interface.
Pedido de Patente S.N. 09/330.968 depositado em 11 de junho de 1999 e entitulada High Speed Parallel/Serial Link for Data Comunications, algumas vezes referida como Patente da Ligação.
Várias patentes e pedidos designados para a IBM para seus serviços de comutação de múltiplos protocolos, alguma vezes referenciadas
Figure BRPI0015717B1_D0002
como MSS, algumas das quais incluem Cedric Alexander como um inventor e que são algumas vezes referidas como as Patentes MSS.
, A descrição da presente modalidade que se segue é baseada em uma pressuposição de que o leitor possui um conhecimento básico de comunicações de dados em rede e dos roteadores e comutadores que são úteis em tais comunicações de rede. Em particular, esta descrição pressupõem a familiaridade com o modelo da International Standards Organization (ISO) da arquitetura de rede que divide a operação da rede em camadas. Uma arquitetura típica baseada no modelo ISO estende-se de uma Camada
1 (que é algumas vezes referida como L1) sendo o caminho ou meio físico através do qual os sinais são passados para cima através das Camadas 2 (ou L2), 3 (ou L3) e assim por diante até a Camada 7 (ou L7) que é a camada da programação de aplicação residente em um sistema de computador ligado com a rede. Por todo este documento, referências à tais cama15 das como L1, L2, L3 são pretendias para referir-se à camada correspondente da arquitetura da rede. A presente descrição também pressupõem um entendimento fundamental das cadeias de bit, conhecidas como pacotes ou quadros, utilizados na comunicação da rede.
Considerações sobre a largura de banda (ou a quantidade de dados que um sistema pode manipular em uma unidade de tempo) estão se tornando mais e mais importantes na visão atual das operações de rede. O tráfego da rede tem aumentado dramaticamente em anos recentes, muito em função do explosivo crescimento da Internet (uma rede pública de computadores aleatoriamente ligados algumas vezes referida como a worldwide web) e em uma extensão menor, ao crescimento na popularidade das redes de transmissão de dados privados ou Intranets. A Internet e as Intranets envolvem a transmissão de grandes quantidades de informação entre localizações remotas para satisfazer uma necessidade igualmente crescente em relação ao acesso remoto da informação e das aplicações emergentes. A
Internet abriu para um grande número de usuários em áreas geograficamente dispersas uma quantidade explosiva de informação remota e permitiu uma variedade de novas aplicações, tal como o e-commerce, que tem re-
Figure BRPI0015717B1_D0003
Figure BRPI0015717B1_D0004
sultado na aumentada e igualmente crescente carga nas redes. Outras aplicações, tal como o e-mail, transferência e arquivo e acesso à base de dados também adicionam carga para as redes, algumas das quais estão sobrecarregadas devido aos altos níveis e tráfego da rede.
O trafego através das rede também está se tornando mais e mais diverso. Ao mesmo tempo, algumas redes foram utilizadas primariamente para um certo tipo de tráfego de comunicações, tal como voz em uma rede de telefones e dados digitais através de uma rede de transmissão de dados. Obviamente, em adição aos sinais de voz, uma rede de telefones também transportaria uma quantidade limitada de dados (tal como o número de chamada e o número chamado, para propósitos de roteamento e de cobrança), mas o uso primário para algumas rede, em algum ponto no tempo, tem sido pacotes substancialmente homogêneos.
Atualmente, entretanto, o tráfego de voz e de dados estão crescentemente convergindo em algumas rede. A medida que a Internet continua a ser expandir e a tecnologia se aperfeiçoa em áreas como confiabilidade e segurança, tem se apresentado uma oportunidade de transmitir vários tipos diferentes de informação, incluindo misturas de diferentes tipos de informação, tal como voz e dados, relativamente simultaneamente.
Os dados atualmente transmitidos através da Internet (através do Protocolo Internet ou IP) sem nenhuma carga e o tráfego de voz tipicamente segue o caminho do custo mais baixo. Tecnologias tais como voz através do IP (VolP) e voz através do modo de transferência assíncrona ou ATM (VoATM) ou voz através do retardo de quadro (VoFR) são alternativas de baixo custo para a transmissão do tráfego e voz no ambiente atual. A medida que estes serviços migram, a indústria estará endereçando problemas tal como a estrutura de troca de custo e os interesses sobre a troca entre custo do serviço e qualidade do serviço na transmissão da informação entre os processadores.
Aspectos de qualidade do serviço incluem a capacidade ou largura de banda, o tempo de resposta (quanto tempo leva para processar um quadro) e a flexibilidade do processamento (ele responde a protocolos e
Figure BRPI0015717B1_D0005
Figure BRPI0015717B1_D0006
configurações de quadro diferentes, tal como encapsulação ou métodos de cabeçalho do quadro diferentes). Aqueles utilizando um recurso irão considerar a qualidade dos serviços bem como o custo do serviço, com a negociação dependendo da situação apresentada.
Alguns sistemas da técnica anterior que direcionam pacotes de dados requerem que os pacotes sejam de protocolo ou formato único, ou um com um número limitado de tais protocolos ou formatos que são permitidos. Tal sistema possui as vantagens de velocidade aumentada e capacidade de resposta por causa da simplicidade relativa do projeto quando os pacotes de somente um tipo de protocolo (ou com um número limitado de protocolos) são encontrados no sistema, desde que o sistema pode ser projetado para os protocolos permitidos. Quando todo os sistema de transmissão de dados estava sob o controle de uma única entidade, era fácil para a entidade de controle impor um único protocolo de transmissão padrão para os usuários (ou os usuários seguiam os protocolo(s) permitido ou não utilizavam a rede, porqúe a rede estava programada para acomodar somente o protocolo(s) especificado não poderia manipular variações nos protocolos, mesmo variações aparentemente menores).
Entretanto, mesmos os quadros de um padrão de comunicações como a Ethernet podem ser formatados utilizando-se um dos vários protocolos e podem ser encapsulados dentro de uma mensagem utilizando técnicas de encapsulação diferentes. Estes diferentes protocolos e técnicas de encapsulação proporcionam uma quantidade variada de dados, tipicamente no começo de um quadro e antes de outra informação chave tal como o começo da mensagem L3. Portanto, a informação chave de um quadro Ethernet pode estar localizada em locais diferentes dentro do quadro, dependendo do protocolo L3 da Ethernet ou forma da Ethernet e da técnica de encapsulação, se uma estiver presente. Um sistema que proporciona o processamento da mensagem L3 necessita encontrar ela primeiro e este pode ser um desafio em um sistema de múltiplos protocolos. Então, por exemplo, a Versão DIX Ethernet 2 difere do Ethernet 802.3, o IPX através do Ethernet difere do IPX através do Ethernet 802.3, o qual por si próprio possui três
Figure BRPI0015717B1_D0007
formatos diferentes (Novell Proprietário, LLC e SNAP). Além disso, cada versão do IPX pode ou não suportar uma LAN (ou VLAN) virtual utilizando o assim chamado padrão IEEE 802.1 q, que também possui o efeito de alterar o formato do quadro e portanto, a localização da mensagem L3.
Nestes sistemas da técnica anterior nos quais os quadros em vários dos protocolos eram suportados, era algumas vezes necessário proporcionar uma quantidade significativa de processamento adicional (tal como programação de computador algumas vezes incluindo mais do que cem linhas de código com instruções de comparações e de ramificação) para identificar o protocolo e para traduzir um quadro de um protocolo para outro, ou para remover a informação desnecessária (tal como a informação de encapsulação) de um quadro. Tal processamento de vários protocolos era consumidor de tempo e além disso, freqüentemente levava uma quantidade de tempo variável para identificar o protocolo. Quando tais sistemas exigiam uma quantidade de tempo variável para identificar o protocolo e proporcionar o processamento necessário, o sistema teria que ser configurado para permitir o tempo mais longo necessário (para manipular o pior caso), retardando o processamento de todos os quadros para o pior caso ou criando a possibilidade de que alguns quadros não fosse processados no tempo permitido para a categorização.
A maioria dos processadores começa o processamento a partir de um começo comum de um conjunto de instruções (o mesmo local para todos os dados) e configuram flags que o processador lê seletivamente quando ele necessita determinar onde ir e que instruções executar. Portanto, a execução de vários processadores executa uma série de testes para determinar qual o tipo dos dados e onde começar o processamento substantivo, testes que envolvem uma série de ciclos e poderíam envolver um lote de processamento.
Os sistemas com múltiplos processadores para manipular dados são conhecidos na técnica anterior, os quais utilizam o processamento de dados rígido primeiro que entra, primeiro que saí. Enquanto isto trabalha muito bem quando o processamento ocorre no modo de rotina, tal sistema torna-se limitado e para o funcionamento quando o processamento de uma entrada é retardado. O retardo do processamento de uma entrada possui o efeito de paralisar o processamento de outras.
Outros sistemas da técnica anterior são conhecidos, os quais mantém um rastro das unidades de mensagem de entrada durante o processamento. Estes sistemas possuem a limitação e a desvantagem de que uma quantidade significativa de poder de processamento deve ser devotado para manter o rastro de onde cada unidade de informação está no sistema e alguns não acomodam unidades de informação de entrada adicionais, tal como de novos fluxos de dados ou de mensagens internamente geradas.
Portanto, os sistemas da técnica anterior para manipular pacotes de dados possuíam desvantagens e limitações indesejáveis que tinham o efeito sobre a versatilidade do sistema ou sobre a velocidade com a qual ele poderia operar, ou sobre ambas. Outras desvantagens e limitações dos sistemas de técnica anterior serão aparentes para os versado na técnica em vista da descrição seguinte da presente invenção.
Sumário da Invenção
A presente modalidade da invenção supera as desvantagens e limitações dos sistemas da técnica anterior por proporcionar um modo simples, ainda que eficaz, para gerenciar o fluxo de dados através de uma rede de quadros ou pacotes que foram criados utilizando um dentre uma pluralidade de diferentes protocolos de mensagem permitidos e que pode ou não empregar um sistema de rede de área local virtual (ou VLAN). Por analisar cada pacote ou quadro de uma maneira rápida e eficiente, o tipo de quadro e as características chave do quadro podem ser determinados e salvos para referência e processamento futuro com respeito a este quadro, por exemplo, em um processador de rede do tipo descrito na Patente NPU referenciada acima.
É uma vantagem da presente invenção que ela é rápida e eficiente na manipulação dos pacotes possuindo protocolos diferentes e proporciona o processamento mais rápido e mais fácil dos pacotes, permitindo que todo o sistema opere em uma alta taxa de processamento de quadro.
Figure BRPI0015717B1_D0008
·♦· t··
Figure BRPI0015717B1_D0009
A presente modalidade permite um roteador ou comutador processar pacotes ou quadros sucessivos em formatos variados sem conhecer antecipadamente em que formato o quadro particular foi criado. Esta modalidade inclui identificar o formato de encapsulação da camada 2 (L2) da mensagem ou pacote e então aplicar regras armazenadas para identificar a encapsulação L2, o protocolo L3 e a presença de uma rede de área local virtual (VLAN). Como resultado de tal determinação, o processador está pronto para rodar em um endereço de instrução inicial; ou seja, o processador está pré-condicionado com o endereço inicial da instrução que é basea10 do na identificação do quadro. Portanto, o processador possui o endereço da instrução inicial bem como o ponteiro para o começo do cabeçalho L3 na porção de dados do quadro bem como flags indicando o protocolo, a presença da VLAN e o formato de encapsulação).
A presente modalidade possui a vantagem de que ela configura e armazena a informação chave a cerca de um pacote durante o processamento inicial do pacote, então a informação armazenada a cerca do pacote ou do quadro pode ser utilizada posteriormente no processamento para de forma vantajosa permitir o processamento mais rápido e mais eficiente do pacote em seus estágios posteriores, por exemplo, por unidades de proces20 sarnento de rede complexas descritas na Patente NPU.
A presente modalidade possui a vantagem de que ela permite que os pacotes ou quadros de entrada de um único fluxo de dados sejam designados para um dentre uma pluralidade de processadores independentes para processamento, então permite que os pacotes ou quadros de saída (processados) sejam novamente montados dentro da mesma ordem na qual os pacotes ou quadros de entrada foram recebidos.
A presente modalidade possui a vantagem de que vários fluxos de dados podem ser processados sem influenciar uns aos outros e um fluxo de dados não irá bloquear outros fluxos de dados. Ou seja, quando o pro30 cessamento de um fluxo de dados é paralisado aguardando a conclusão do processamento de uma porção do mesmo, o processamento de outros fluxos de dados pode continuar.
»··
A presente modalidade também permite uma descarga do sistema ou o despacho imediato dos quadros completados sem respeito a ordem, se desejado, suplantando a operação normal da manipulação de cada fluxo de dados na ordem na qual ele foi recebido.
A presente modalidade também possui a vantagem de que ela é eficiente em seu uso de buffers e dos dispositivos de armazenamento e que ela opera rapidamente, de modo que a velocidade do processamento não reduzido pelo processamento adicional para gerenciar os fluxos de dados.
A presente modalidade contempla que ela pode ser implementada no mesmo substrato semicondutor como uma série de processadores da rede e seus componentes de armazenamento associados, permitindo uma rápida transmissão de dados entre os componentes.
A presente modalidade também pode ser implementada em hardware, ao invés do que em software e os testes de formato requeridos podem ser completados em um tempo uniforme independente do formato e de quantas comparações devem ser feitas antes do formato ou das técnicas de encapsulação serem determinados. No projeto apresentado, dentro de dois ciclos de clock, a classificação de um quadro pode ser completada, com os indicadores necessários estabelecidos para indicar que tipo de quadro está presente (por exemplo, qual técnica de encapsulação e qual protocolo de camada 3 foram utilizados) e se uma LAN virtual (ou VLAN) é suportada bem como a informação chave a cerca do quadro. Durante os mesmos dois ciclos, um quadro pode ser roteado por um despachante para uma unidade de processamento da rede ociosa (como descrito na Patente NPU referenciada). Como resultado do processamento do quadro para determinar o protocolo e o método de encapsulação, um endereço inicial para o processador pode ser determinado e passado para o processador de modo que o processador pode começar seu trabalho sobre o quadro, pré-carregado com o endereço inicial (um ponteiro para o armazenamento da instrução relevante) e outras informações relevantes para seu processamento. Esta précarga dos processadores com um endereço inicial para processamento algumas vezes é referida como pré-condicionamento do processador e per··· ···
Figure BRPI0015717B1_D0010
mite a eficiência do processador -- ele não necessita ir através de uma série de instruções de teste e saltar instruções baseado nos resultados do teste, mas ao invés disso começa o endereço inicial para o formato da mensagem particular apresentada.
O sistema da presente invenção também possui a vantagem de que a classificação e o pré-processamento de um quadro pode ocorrer em paralelo com a distribuição deste quadro para um complexo de processamento da rede. Este processamento paralelo permite a manipulação mais eficiente dos quadros e permite ao sistema operar mais rápido.
Através do uso da presente modalidade, várias unidades de processamento podem ser independentes umas das outras, ainda que processem o mesmo fluxo de dados sem permitir que porções fiquem em uma , ordem diferente e indesejável. A saída dos pacotes ou quadros processados para um dado fluxo de dados será na mesma ordem que o sistema recebeu os pacotes ou quadros de entrada deste fluxo de dados, a não ser que suplantada por um comando de descarga.
Finalmente, a presente modalidade permite a inserção de novos fluxos de dados e a criação de pacotes ou de quadros pelo sistema sem afetar o processamento, o qual mantém a ordem dos fluxos de dados rece20 bidos da rede.
Um aperfeiçoamento junto a presente modalidade permite não somente o pré-condicionamento do processador (armazenar o endereço da primeira instrução) mas também o armazenamento de endereços adicionais de instruções para execução posterior. Deste modo, o processador possui o endereço da primeira instrução e também o endereço para instruções em pontos de ramificação (ou bifurcações) posteriores, evitando o teste desnecessário (se condição, então vai para instrução ne 1, caso contrário vai para instrução nõ 2) na execução do código. Isto permite ao código executar de forma mais eficiente.
Outros objetivos e vantagens da presente modalidade serão aparentes para os versado na técnica relevante em vista da descrição seguinte da modalidade preferida, quando feita junto com os desenhos acom10
Figure BRPI0015717B1_D0011
Figure BRPI0015717B1_D0012
panhantes e com as reivindicações anexas.
Breve Descrição dos Desenhos
Tendo portanto exposto algumas das limitações e desvantagens da técnica anterior e alguns objetivos e vantagens da presente invenção, outros objetivos e vantagens serão aparentes para os versados na técnica relevante em vista da descrição seguinte dos desenhos ilustrando a presente invenção de uma sistema e método de roteamento aperfeiçoados nos quais:
A Fig. 1 é um diagrama de blocos para uma dispositivo de interface incluindo o complexo do processador embutido que é descrito na patente NPU e é útil ao se praticar a presente invenção;
A Fig. 2 é um diagrama de blocos de um complexo do processador embutido do tipo apresentado na Fig. 1, com uma ajuda classificadora de hardware útil na presente invenção;
As Figs. 3A até 3T são diagramas ilustrando os vários formatos do protocolo Ethernet utilizados no classificador de hardware da presente invenção;
A Fig. 4 é um fluxograma da ajuda classificadora de hardware da presente invenção, apresentando a lógica utilizada pelo classificador para processar porções do quadro na presente invenção;
A Fig. 5 é um diagrama funcional ilustrando o classificador da presente invenção;
A Fig. 6 é uma modalidade alternativa do classificador de hardware da presente invenção com aperfeiçoamentos opcionais apresentados, permitindo que uma série de endereços sejam armazenados em uma pilha em adição ao endereço da primeira instrução;
A Fig. 7 é uma ilustração esquemática das filas associadas com cada quadro;
A Fig. 8 é uma vista detalhada da unidade de conclusão da presente invenção, com dois armazenamentos de rótulo para cada um dos N processadores;
A Fig. 9 é uma ilustração esquemática do formato de um arma-
Figure BRPI0015717B1_D0013
zenamento de rótulo para manter o rastro do fluxo de dados sendo manipulado por cada um dos N processadores;
A Fig. 10 é um fluxograma ilustrando a lógica que é executada pela unidade de conclusão ao receber e processar uma indicação de que um novo quadro foi despachado para uma das unidades de processamento;
A Fig. 11 é um fluxograma ilustrando ao processo lógico executado pela unidade de conclusão quando processamento um relatório de que o processamento de um quadro foi completado; e
A Fig. 12 é outra vista da unidade de conclusão da Fig. 8, contendo dados para ilustrar a operação da unidade de conclusão em sua modalidade preferida.
Descrição Detalhada da Modalidade Preferida
Na descrição seguinte da modalidade preferida, as melhores implementações da prática da invenção atualmente conhecidas para os inventores serão descritas com alguma particularidade. Entretanto, esta descrição é pretendida como uma instrução ampla e geral dos conceitos da presente invenção em uma modalidade específica mas não é pretendido estar limitando a presente invenção a esta como apresentado nesta modalidade, especialmente desde que os versado na técnica relevante irão reconhecer várias variações e alterações junto à estrutura e operação específicas apresentadas e descrias com respeito a estas figuras.
A Fig. 1 é um diagrama de blocos funcional de um sistema de processamento adequado para ligação com uma rede de transmissão de dados para receber, processar e retransmitir dados para a rede na forma de pacotes ou de unidades de informação (também algumas vezes referidos como quadros, termos que para o propósito do presente documento, serão utilizados de forma intercambiada). Como apresentado na Fig. 1, o sistema para o processamento de dados inclui uma pluralidade de submontagens, que, como descrito na Patente NPU, são de forma vantajosa integradas em um único substrato. A integração de toda a montagem em um único substrato permite o empacotamento de forma próxima dos vários elementos do sistema, reduzindo o tempo necessário para comunicação entre os compoΜ «· · ·* • ί ι nentes e portanto aumentando a velocidade na qual o sistema pode operar. O uso de um único substrato para os vários processadores e para a lógica e memória de suporte também pode reduzir a incidência de falhas devido à interconexão e ao aumento na resistência ao ruído e a outros sinais extraviados que podem corromper a transmissão dos dados na rede.
As submontagens montadas no substrato 10 estão dispostas em uma configuração de porção superior e em uma configuração de porção inferior, com a configuração de porção superior (algumas vezes também referida como uma entrada) referindo-se a este componentes relacionandose com dados limitados pela entrada para o chip a partir de uma rede de transmissão de dados (até ou dentro do chip) e a porção inferior (algumas vezes referida como uma saída) referindo-se aos componentes cuja função é transmitir dados do chip para a rede de transmissão de dados de um modo limitado pela saída (para longe do chip ou para baixo e para dentro da rede). Os fluxos de dado seguem as respectivas disposições das configurações de porção de cima e de porção de baixo; portanto, existe um fluxo de dados da porção de cima e um fluxo de dados da porção de baixo no sistema da Fig. 1. Os elementos da configuração da porção de cima ou de entrada incluem uma lógica UP de Enfileiramento-Retirada de filIa-Programação de execução (EDS-UP) 16, a UP de vários MAC multiplexados (PMM-UP) 14, a UP Movedora de Dados Comutados (SDM-UP) 18, a Interface do Sistema (SIF) 20, o Link Serial de Alinhamento de Dados A (DASL-A) 22 e o Link Serial de Alinhamento de dados B (DASL-B) 24. Os links de dados são mais completamente descritos na Patente de Ligação referenciada acima e deve ser feita referência a este documento para um maior entendimento desta porção do sistema. Deve ser entendido que a modalidade preferida da presente invenção utiliza os links de dados como mais completamente descrito nesta patente, outros sistemas podem ser utilizados de forma vantajosa com a presente invenção, particularmente aqueles que suportam fluxos de dados e requerimentos do sistema relativamente altos, desde que a presente invenção não está limitada a estes dispositivos auxiliares específicos tal como os links de dados que são empregados na modalidade preferida.
Figure BRPI0015717B1_D0014
Os componentes representados na porção de baixo (ou de saída) do sistema incluem os links de dados DASL-A 26 e DASL-B 28, a interface do sistema SIF 30, o movedor de dados de comutação SDM-DN 32, o enfileira-retira da fila-programador de execução EDS-DN 34 e os vários MAC’s multiplexados para o PMM-DN de saída 36. O substrato 10 também inclui uma pluralidade de componentes de memória de acesso randômico estáticos internos (S-RAM’s), um programador de execução de gerenciamento de tráfego (TRAFFIC MGT SCHEDULER) 40 e um complexo do processador embutido 12 descrito em maior profundidade na Patente NPU referenciada acima. O dispositivo de interface 38 está acoplado pelos receptivos barramentos DMU com o PMM 14, 36. O dispositivo de interface 38 podería ser qualquer aparelho adequado para conectar-se com o cicuitamento L1, tal como os dispositivos físicos Ethernet (ENET PHY), ambos os quais são exemplos de dispositivos que são bem conhecidos e geralmente disponíveis para este propósito no comércio. O tipo e o tamanho do dispositivo de interface são determinados, pelo menos em porção, pelo meio da rede junto ao qual o presente chip e seus sistemas estão ligados. Uma pluralidade de dispositivos externos de memória de acesso randômico dinâmica (D-RAMS) e uma S-RAM estão disponíveis para uso pelo chip.
Ao mesmo tempo que aqui particularmente são reveladas rede nas quais o fluxo de dados geral fora dos dispositivos de comutação e de roteamento relevantes é passado através de condutores elétricos tal como fios e cabos instalados nas construções, a presente invenção contempla que os comutadores da rede e os componentes dos mesmos poderiam ser utilizados igualmente em um ambiente sem fios. Por exemplo, os elementos de controle de acesso ao meio (MAC) aqui dentro revelados podem ser substituídos por dispositivos de radio freqüência adequados, tal como aqueles feitos de tecnologia de germânio de silício, o que resultaria na conexão do dispositivo revelado diretamente com uma rede sem fios. Onde tal tecnologia é de forma apropriada empregada, os elementos de freqüência de rádio podem estar integrados dentro das estruturas VLSI reveladas aqui dentro por uma pessoa com conhecimento nas técnicas apropriadas. AlterΜ
Figure BRPI0015717B1_D0015
nativamente, os dispositivos de resposta com freqüência de rádio e com outras respostas sem fios tal como dispositivos de resposta infravermelhos (IR) podem ser montados em uma lâmina com os outros elementos revelados aqui dentro para alcançar um aparelho de comutação que seja útil com o aparelho de rede sem fios.
As setas apresentam o fluxo geral dos dados dentro do sistema de interface apresentado na Fig. 1. Os quadros de dados ou mensagens recebidas a partir de um MAC Ethernet 14 do bloco ENTPHY 38 via o barramento DMU são colocados nos buffers internos de armazenamento de dados 16a pelo dispositivo EDS-UP 16. Os quadros podem ser identificados como quadros normais ou quadros guiados, os quais então relacionam-se com o método e a localização dos processamento subsequente na pluralidade de processadores.
A Fig. 2 é um diagrama de blocos de um sistema de processamento 100 que pode empregar a presente invenção de forma vantajosa. Nesta Fig. 2, uma pluralidade de unidades de processamento 110 estão localizadas entre uma unidade despachante 112 e uma unidade de conclusão 114. Cada quadro de entrada F (a partir de uma rede, não apresentada, ligada com o presente sistema de processamento de dados) é recebido e armazenado em um armazenamento de dados UP 116 que está conectado com as unidades de processamento 110 através de uma interface UP DS i/f 117 que tem a capacidade de ler e de gravar dados junto ao armazenamento de dados. Os quadros são seqüencialmente removidos pelo despachante 112 e designados para uma da pluralidade de unidades de processamento 110, baseado em uma determinação pelo despachante 112 de que a unidade de processamento está disponível para processar o quadro. Esta indicação poderia ser que a unidade de processamento para a qual o quadro F é designado enviou um sinal para o despachante 112 indicando que esta unidade de processamento particular estava ociosa e disponível para trabalho, apesar de métodos alternativos de designar o trabalho (tal como uma alocação por rodízio ou um algoritmo de menos recentemente utilizada) também poderíam ser empregados de forma vantajosa no presente sistema.
··· *··
Maiores detalhes sobre a estrutura e a função das unidades de processamento 110 em particular e do sistema de processamento em geral podem ser encontrados nas referências da Patente NPU acima. Interposto entre o despachante 112 e a pluralidade de unidades de processamento 110 está a ajuda classificadora de hardware 118 como será descrito em maiores detalhes posteriormente neste documento, particularmente em conexão com as Figs. 4 e 5. Também associado com a pluralidade de unidades de processamento 110 está um armazenamento de instruções 122 (apresentado na Fig. 4) onde uma pluralidade de conjuntos de instruções diferentes estão armazenados para recuperação e execução pelas unidades de processamento individuais 110. Como será descrito posteriormente, a instrução inicial no armazenamento de instruções 122 é endereçada de acordo com um endereço que é baseado no tipo de mensagem -- seu método de protocolo e de encapsulação - como determinado pela ajuda classificadora de hardware 118.
Uma unidade de conclusão 114 está operativamente acoplada entre a pluralidade de processadores 110 e o sistema de enfileiramento de baixo rotulado Enfileiramento DN - elemento 34 na Fig. 1) bem como um sistema de enfileiramento de cima (elemento 16 na Fig. 1). O sistema de Enfileiramento DN 34 é utilizado para enviar os quadros processados para fora do complexo de processamento para baixo junto a rede ou a outro sistema junto ao qual o complexo esteja ligado e o sistema de enfileiramento de cima 16 é utilizado para enviar quadros processados para a estrutura de comutação. O despachante 112 pode ser designado para designar e armazenar a informação de identificação relacionada com cada quadro e com a unidade de processamento designada para processar tal quadro. Tal informação de identificação pode então ser utilizada pela unidade de conclusão 114 para garantir que os quadros processados constituindo um único fluxo de dados sejam enviados na ordem na qual eles foram recebidos. Este aspecto da presente invenção será discutido em mais detalhes posteriormente nesta especificação.
A Fig. 3 (consistindo de suas várias subilustrações, Figs. 3A até
Figure BRPI0015717B1_D0016
3T) representa uma pluralidade de formatos de mensagem (componentes e variações no formato de mensagem Ethernet) que o presente sistema de processamento está programado para aceitar e processar, apesar do repertório de mensagens ou de formatos de quadro ser alguma coisa que pode ser variada pelos versado na técnica para se encaixarem no ambiente do sistema sob consideração. O presente sistema também pode ser reprojetado para aceitar outros formatos de mensagem, incluindo aqueles formatos de mensagem e variações que podem ser designadas no futuro. Como tal, os formatos de mensagem da Fig. 3 são para o propósito de ilustração de diferentes formatos dos quadros com diferentes tipos de protocolo e de encapsulação e a presente invenção é um sistema flexível projetado para aceitar vários formatos de protocolo e de encapsulação diferentes e para proporcionar uma ajuda para o processamento destes quadros por proporcionar um ponteiro para o tipo de encapsulação e de protocolo e para proporcionar um endereço inicial no armazenamento de instruções para o processador manipulando um dado quadro.
A Fig. 3A ilustra o formato básico ou genérico da mensagem Ethernet, que é algumas vezes chamado de Versão Ethernet 2.0/DIX. Este é um formato de mensagem onde a mensagem inclui um endereço destino DA, um endereço fonte SA, um bloco indicando o tipo de mensagem (tipo), o texto ou dados da mensagem e um registro final para verificação de redundância cíclica ou CRC para verificação da integridade da mensagem. O endereço destino DA e o endereço fonte SA são ambos especificados como 6 bytes (48 bits) e o bloco indicando o Tipo é especificado como 2 bytes, enquanto o registro final CRC é especificado como 4 bytes. Em geral, o resto da mensagem -- os dados - pode ser de qualquer comprimento até 1500 bytes, apesar de que, como será visto posteriormente, alguns tipos de Ethernet proporcionam limites em relação a esta flexibilidade para alcançar outras vantagens. O endereço fonte SA pode indicar que a mensagem é uma mensagem individual, destinada para um único endereço de rede em um nó da rede ou que ela é uma mensagem de múltipla difusão ou de ampla difusão. Uma mensagem de múltipla difusão é direcionada para um grupo '· * :
•·· · ··
Figure BRPI0015717B1_D0017
de nós na rede e uma de ampla difusão é direcionada para todas as estações. O bloco indicando o Tipo tem 16 bits, os quais identificam o protocolo da camada mais alta que é utilizado. Para cada protocolo Ethernet registrado é dado um único código do tipo, um valor que é sempre maior do que o valor máximo no campo de comprimento do campo de comprimento da Ethernet 802.3, para permitir o campo coexistir. O campo de dados tipicamente tem de 46 até 1500 bytes de comprimento, assumindo que as camadas superiores irão garantir que o comprimento mínimo do campo de 46 bytes seja encontrado antes de passar os dados para a camada MAC. Mensagens que são mais longas do que o comprimento permitido de um quadro devem ser divididas em uma pluralidade de mensagens que são mais curtas do que o comprimento máximo permitido do campo de dados.
A Fig. 3B ilustra uma variação no estilo Ethernet geral que é referido como o formato Ethernet IEEE 802.3. Ele é similar ao formato do formato genérico da mensagem Ethernet da Fig. 1, exceto que o campo de tipo é substituído por um campo de comprimento LEN, que tem 16 bits para indicar o comprimento do campo de dados que segue, excluindo qualquer enchimento. Este padrão impõe um comprimento de tamanho mínimo do pacote como 64 bytes, de modo que o campo de dados Dados deve ter pelo menos 46 bytes. Se os dados reais para o campo de dados Dados for menor do que 46 bytes, então a camada MAC deve adicionar salvadores de local (caracteres de enchimento) para o campo de dados LLC para completar o tamanho mínimo antes de enviar o pacote através da rede. Entretanto, o campo de comprimento é o comprimento sem os caracteres de enchimento, o que permite que um sistema de recepção identifique e despreze quaisquer caracteres de enchimento que tenham sido adicionados.
A Fig. 3C ilustra um Formato de Informação de Controle de Etiqueta para as menagens Ethernet, particularmente com referência ao padrão IEEE 802.1q. Ele consiste de 3 bits de prioridade do usuário, 1 bit de Indicador de Formato Canônico ou CFI e 12 bits do identificador de VID ou LAN Virtual (ou VLAN). Uma LAN virtual ou rede de área local é uma identificação de um grupo de nós que foram identificados como uma rede de área ··· ···
Figure BRPI0015717B1_D0018
local virtual pela definição dos endereços como compreendendo uma VLAN, permitindo a estes nós que não estão fisicamente associados serem logicamente associados e endereçados como um grupo, ao invés do que individualmente.
A Fig. 3D ilustra um formato RIF Embutida (ou E-RIF) que é utilizado em alguns formatos de mensagem do protocolo Ethernet, novamente segundo o padrão IEEE 802.1 q. Neste formato, um tipo de rota RT é indicado pelos primeiros 3 bits, um comprimento LHT pelos próximos 5 bits (indicando o comprimento em bytes da porção E-RIF total, incluindo o controle de rota E-RIF e o Descritor de Rota E-RIF) e uma direção do descritor de rota D com um bit (normalmente um 0 indicando para percorrer o descritor de rota na ordem para frente, mas ele é um 1 em alguns quadros especialmente roteados para indicar que o descritor de rota está na ordem inversa). O formato E-RIF inclui um indicador de quadro maior de 6 bits e um Indicador de Formato Não Canônico (NCFI) de 1 bit. O tipo de rota RT é 00X, 01X, 10X ou 11X para indicar que o quadro é um quadro especialmente rateado, um quadro transparente, um quadro explorador de todas as rotas ou um quadro explorador de árvore de percorrimento, respectivamente. O campo de quadro maior LF tem 1470 bytes ou menos, de acordo com o padrão IEEE 802.3 para o Ethernet. O NCFI indica se os endereços MAC especificados estão na forma não canônica (se 0) ou na forma canônica (se 1).
A Fig. 3E ilustra o Formato Descritor de Rota E-RIF como incluindo um ID de LAN de identificação de rede de área local de 12 bits e um número de ponte (ne de ponte) de 4 bits. Um campo de Formato do Descritor de Rota E-RIF é também bem conhecido na indústria e esta utilização segue o padrão para tais campos.
As Figs. 3F e 3G ilustram os componentes dos formatos LLC para uso em uma mensagem Ethernet, incluindo um formato LPDU 802.2 na Fig. 3F e um formato SNAP genérico na Fig. 3G. O formato LPDU da Fig. 3F inclui um Ponto Destino de Acesso de Serviço DSAP de 1 byte (8 bits), um ponto Fonte de Acesso de Serviço SSAP de 1 byte e um campo de controle Controle de 1 até 2 bytes incluindo bits de comando(s), resposta(s), núme·«« ·«· ro(s) de seqüência e consulta/final. Neste contexto, um ponto de acesso de serviço tem 6 bits mais um bit U e um bit final (um bit I individual para o ponto destino de acesso de serviço e um bit C para o indicador de comando/resposta para a fonte). A Fig. 3G ilustra o formato SNAP, incluindo três bytes indicando a organização (Identificador Organizacionalmente Único, ou OUI) e dois bytes indicando o tipo designado para o formato sob o Padrão Internet 0002. Exemplos do campo tipo são 0800 para IP, 8137 para IPX, 0806 para ARP, 8035 para RARP, 8100 para VLAN 802.1q, 86DD para IPv6, 80DB para Appletalk e 80F3 para Appletalk AARP.
A Fig. 3H ilustra o formato de uma mensagem no IPX através do formato Ethernet incluindo um cabeçalho MAC Ethernet e um cabeçalho IPX, com o cabeçalho MAC Ethernet possuindo um endereço fonte SA e um endereço destino DA de 6 bytes cada um, seguidos por um tipo de dois bytes de 8137 indicando que este quadro é do formato IPX. O cabeçalho IPX então inclui os componentes indicados, a saber, 2 bytes para uma soma de verificação, 2 bytes para o comprimento do pacote, 1 byte para o TC, 1 byte para o PT, 4 bytes para a rede destino, 6 bytes para o nó destino, 2 bytes para o soquete destino, 4 bytes para o nó fonte, 6 bytes para o nó fonte e 2 bytes para o soquete fonte.
A Fig. 3I apresenta o formato da mensagem para o IPX através da versão proprietária do Ethernet 802.3 (algumas vezes referido como formato Novell) incluindo um cabeçalho MAC Ethernet 802.3 onde o comprimento da mensagem é especificado no terceiro campo (ao invés do que um tipo de IPX através do Ethernet apresentado na Fig. 3H). A soma de verificação neste formato é estabelecida para FFFF de acordo com seu protocolo.
A Fig. 3J ilustra um IPX através do Ethernet 802.3 com 802.2, onde a mensagem inclui um cabeçalho MAC com um cabeçalho IPX (como aqueles apresentados na Fig. 3H) separados pelos campos LLC LPDU para o 802.2.
A Fig. 3K ilustra o formato de um quadro IPX através do 802.3 com o SNAP, como o formato descrito em conexão com a Fig. 3J, a mensa-
Figure BRPI0015717B1_D0019
: »
Figure BRPI0015717B1_D0020
gem inclui um cabeçalho MAC 802.3, seguido pelo campo LLC LPDU e concluindo com o cabeçalho IPX. Disposto entre a porção LLC PPDU e o cabeçalho IPX está o campo SNAP para indicar o OUI e um Etype do 8137.
A Fig. 3L ilustra o formato de um IPX através do Ethernet com a suporte a VLAN 802.1q, onde o campo de tipo é indicado como 8100 e o pacote VLAN está disposto entre o cabeçalho MAC Ethernet e o cabeçalho IPX (o cabeçalho IPX sendo no mesmo formato como descrito em conexão com as Figs. 3H, 3J e 3K acima). O pacote VLAN inclui o campo TCI de 2 bytes e um campo de comprimento LEN ou e-type de 2 bytes, então um campo de controle e-rif e um número variável de campos descritores e-rif, o número dos quais indicado pela fórmula ( LEN-2) / 2.
A Fig. 3M ilustra o formato para um IPX através do Ethernet
802.3 (proprietário) utilizando o suporte a VLAN 802.1q. O campo tipo é 8100 e o Pacote VLAN é similar a este no exemplo de VLAN anterior, Fig. 3L. O cabeçalho IPX é similar a este apresentado no quadro proprietário
802.3 anterior, Fig. 3I, com o campo de soma de verificação estabelecido igual a “FFFF.
A Fig. 3N apresenta a disposição de quadro para um quadro utilizando o IPX através do Ethernet 802.3 com o suporte a VLAN. Ele inclui um Cabeçalho MAC 802.3 com um tipo de 8100 indicando a presença de um pacote VLAN (como a Fig. 3M), uma Pacote VLAN (também em um formato como o da Fig. 3M), um LLC LPDU (similar a este apresentado na Fig. 3H).
A Fig. 30 apresenta a configuração ou formato de uma mensagem no IPX através do Ethernet 802.3 com o suporte SNAP e VLAN utilizando o 802.1q. Ele é similar ao formato da Fig. 3N com a adição de um campo SNAP entre o campo LLC LPDU e o cabeçalho IPX.
A Fig. 3P apresenta o formato do IPv4 através do Ethernet onde a mensagem inclui um cabeçalho MAC Ethernet e um cabeçalho IPv4. O comprimento de cada um dos campos é apresentado nesta vista.
A Fig. 3Q ilustra o formato da mensagem para o IPv4 através do
Ethernet 802.3 com 802.2, apresentando o cabeçalho MAC seguido pelo
Figure BRPI0015717B1_D0021
LLC LPDU, então pelo cabeçalho IPv4.
A Fig. 3R ilustra o formato de mensagem para um quadro IPv4 através do Ethernet 802.3 com o SNAP onde o cabeçalho MAC 802.3 é seguido pelo LLC LPDU, então pelo cabeçalho IPv4 (e com um registro final opcional para o UDP ou TCP, se aplicável).
A Fig. 3S ilustra o formato de mensagem para o IPv4 através do Ethernet com suporte a VLAN 802.1 q. Este formato possui os aspectos do IPv4 bem como o Pacote VLAN visto em outros casos do suporte à VLAN 802.1q.
A Fig. 3T ilustra o formato de mensagem para o IPv4 através do Ethernet 802.3 (com 802.2) com o suporte à VLAN 802.1 q, combinando os atributos do IPv4 através do 802.3 com 802.2 com as características da mensagem do Pacote VLAN.
Em cada uma das Figs. 3H até 3T, a linha de baixo representa a porção da Camada 3 (ou L3) do quadro ou mensagem e por causa das variações no tamanho do material que precede a porção L3 da mensagem, a porção L3 da mensagem começa em locais diferentes, dependendo do tipo de mensagem - o método de protocolo e de encapsulação. Apesar do processamento de uma mensagem L3 ser desejado (ignorando a encapsulação), pode ser difícil em um sistema de múltiplos protocolos e de múltiplas encapsulações encontrar o começo da mensagem L3. Além disso, desde que as instruções realizadas por um dentre a pluralidade de processadores 110 no quadro depende do tipo do protocolo do quadro e do método de encapsulação, é desejável que alguma coisa (neste caso, a ajuda classificadora de hardware 118) proporcione um ponteiro para a instrução inicial correta para o processador dentro da memória de instruções 122.
A Fig. 4 ilustra um diagrama de blocos para a ajuda classificadora de hardware apresentada como o elemento 118 na Fig. 2, junto com as porções selecionadas da memória de instruções 122 e uma da pluralidade de unidades de processamento 110. A ajuda classificadora de hardware 118 opera em segmentos de 128 bits associados com a unidade de informação de entrada (ou quadro), segmentos de 128 bits estes que algumas vezes
Figure BRPI0015717B1_D0022
Figure BRPI0015717B1_D0023
t *.
Figure BRPI0015717B1_D0024
são chamados de FISH e são recebidos pela ajuda classificadora de hardware 118 (bem como por uma das unidades de processamento individuais 110) a partir do despachante 112. Esta função de classificação opera sobre até os primeiros 3 FISHS (ou sobre os primeiros 384 bits associados com um quadro, algumas vezes chamados de FISH1, FISH2 E FISH3 para distinguir um FISH do outro). O primeiro FISH (FISH1) não é realmente o quadro recebido, mas um conjunto de informações relacionadas com o quadro, tal como de que o porta o quadro provém, um ponto de entrada de código default 291 e um indicador 292 (sim ou não) se for para ativar a classificação de quadro utilizando o classificador de hardware da presente invenção.
No bloco 210, o tipo de Ethernet é comparado em locais variados no quadro para determinar se os campos combinam com um protocolo atualmente configurado, por exemplo, uma primeira versão Ethernet (por exemplo, IPx) ou com uma segunda versão Ethernet (por exemplo, IPv4). No bloco 220, é determinado se o campo SAP (ponto de acesso de serviço) combina com um protocolo atualmente configurado, novamente como especificado em um registro (por exemplo, um valor especificado armazenado, indicando um tipo de protocolo). O sistema também determina se um campo SNAP representando um tipo diferente de encapsulação está presente (um campo específico tal como AAAA03) no bloco 240 e detecta a presença de uma utilização da rede de área local virtual (VLAN) na mensagem no bloco 250. O bloco 260 é o controle de classificação, o qual, quando ativado pela ativa classificação 292, é responsável por armazenar os parâmetros associados com o quadro e proporcionando uma saída indicativa do tipo de protocolo, um ponteiro da camada 3 e os flags de classificação nas linhas 270, 272, 274.
Um ponto de controle de entrada para cada mensagem (o começo do processamento, o endereço da primeira instrução na memória de instruções 122) pode ser determinado antecipadamente para cada formato definido e armazenado em uma tabela 280. Ou seja, para um ETYPE = 0 e nenhuma VLAN, então o ponto de controle de entrada (o endereço inicial) é o endereço 122a na memória de instruções e para um ETYPE = 1 e sem a
Figure BRPI0015717B1_D0025
•ί
VLAN, ο ponto de controle de entrada é o endereço 122b. De forma similar, para ETYPE = 0 com uma VLAN e ETYPE = 1 com VLAN, os respectivos pontos de controle de entrada (o local no qual o processamento da mensagem real começa) são as instruções 122c e 122d, respectivamente. O processamento irá começar na instrução 122f para o quadro com um campo ERIF e em uma instrução 122f para programas default, onde o método de protocolo ou de encapsulação não é encontrado.
Em qualquer caso, um ponto de controle de entrada default está contido no FISH1 da mensagem é lido no bloco 290. O bloco 295 então determina se utilizar o ponto de controle de entrada default - se a classificação de hardware estiver ativada na linha 295 e nenhum ponto de controle de entrada diferente for determinado a partir do bloco 280, então a entrada default é utilizada, caso contrário, o ponto de controle de entrada da tabela 280 é utilizado.
As linhas 270, 272 (com os flags de classificação e o endereço base L3 determinados pela ajuda classificadora de hardware 118, respectivamente) do classificador de hardware 118 são alimentadas para o processador individual 110 que é designado para processar o quadro e são armazenadas nos registros de propósito geral 110a associados com a uma unidade de processamento que está processando o quadro que é armazenado na memória de dados 110b. A linha de saída 276 do dispositivo 295 proporciona o endereço inicial para a memória de instruções 122 para o tipo de quadro particular, dados que são armazenados na lógica de controle de instrução 110c. Uma ALU (unidade lógica/aritmética) é uma porção da unidade de processamento 110. O processador 110 utiliza o contador de instruções na lógica de controle de instrução 110c para buscar uma instrução a partir da memória de instruções 122. Deste modo, baseado no método de protocolo e de encapsulação como determinado pela ajuda classificadora de hardware 118, a unidade de processamento 110 é pré-condicionada com o endereço inicial do conjunto de instruções que é apropriado para o quadro sendo processado e flags apropriados indicando o tipo de quadro são estabelecidos para permitir ao processador 110 começar o processamento do
Figure BRPI0015717B1_D0026
quadro utilizando as instruções corretas.
A Fig. 5 ilustra a lógica que é utilizada ao se determinar a categorização do formato da mensagem. Esta começa no bloco 310 onde FISH2 é selecionado, então no bloco 320, os bytes 13 e 14 do quadro (os dois bytes que incluiriam a informação de tipo em quadro que inclui o endereço destino DA de 6 bytes e o endereço fonte SA de 6 bytes seguidos pelo tipo) são testados. Se estes bytes combinarem com o conteúdo para ETYPE0 ou ETYPE1, então o processo identifica a informação de protocolo por estabelecer o flag apropriado no bloco 323 e conclui o processo no bloco 325. Caso contrário, se o bloco de tipo for menor do que 0600H (hexadecimal), então o quadro está no formato de quadro Ethernet 802,3 e não no formato Ethernet V2,ODIX) e o campo é um campo de comprimento ao invés do que um campo de tipo e ele é processado no lado esquerdo do diagrama da Fig.
5. Se este bloco de tipo for 8100, então o quadro é um quadro que emprega o suporte à VLAN 802.1q (veja, por exemplo, as Figs. 3L, 3M, 3N, 30, 3S e 3T) e ele é processado no lado direito do diagrama da Fig. 5. Se o campo de tipo for qualquer coisa mais, então o controle passa para o bloco 325 onde a classificação é considerada completa sem gravar qualquer informação de protocolo, desde que este quadro aparentemente é um protocolo desconhecido.
Se no bloco 320 for determinado que os bytes 13 e 14 eram menores do que 0600H, então no bloco 322, os bytes 15 até 17 são analisados para determinar se eles são conhecidos como um campo SAP ou como um campo LLC ou de Controle de Link Lógico do tipo (por exemplo, AAAA03 utilizado na Fig. 3K). Se este campo for reconhecido como um dos campos SAP, então o campo SAP é estabelecido e a informação de protocolo é salva no bloco 323 antes de considerar a classificação completa no bloco 325. Se este for um campo SNAP, então o controle continua para o bloco 324 onde FISH3 é obtido e os bytes 2 até 6 do mesmo são analisados para um ETYPE reconhecido. Se o ETYPE for reconhecido, então a informação de protocolo é salva no bloco 323 antes de sair no bloco 325.
Se no bloco 320 for determinado que os bytes 13 e 14 eram
3b *» iguais a 8100 indicando que esta é uma rede de área local virtual (VLAN) como especificado no padrão IEEE 802,1 q, então a existência da VLAN é salva no bloco 330, então no bloco 340, a presença de um campo CFI é verificada. Se ele estiver presente, então a classificação está completa e o controle passa para o bloco 325. Se não, então no bloco 350, os bytes 1 e 2 do FISH3 são testados para determinar se eles proporcionam um ETYPE conhecido (como o teste no bloco 320) ou um comprimento (menor do que 0600H). Se eles proporcionarem um ETYPE, então a informação de protocolo é salva no bloco 323 e o controle passa para o bloco 325 onde a classificação é considerada completa. Se o campo no bloco 350 não for reconhecido como um ETYPE, então o processo de classificação é considerado completo no bloco 325. Se o teste no bloco 350 proporcionou um comprimento (menor do que 0600H), então no bloco 360, os bytes 3 até 5 são testados para um SAP conhecido. Se ele for AAAA03, então o controle passa para o bloco 370 para determinação dos bytes 6 até 10 para um ETYPE conhecido.
A Fig. 6 ilustra uma versão aperfeiçoada do classificador de hardware, particularmente dos elementos da Fig. 4. Nesta Fig. 6, o classificador de hardware inclui os elementos da Fig. 4 com um aperfeiçoamento junto à lógica de controle de instrução 110c incluindo, ao invés de um único endereço inicial, uma série de endereços armazenados em uma pilha de instruções 110d. Esta pilha de instruções inclui o endereço de instrução inicial, seguido por outros endereços necessários quando o processador alcança uma bifurcação ou ramificação, para evitar teste adicional ou declarações condicionais em ramificações posteriores. Os endereços iniciais então são armazenados em ordem em uma pilha e removidos da pilha quando uma instrução de ramificação é necessária.
Para informação adicional a cerca do conteúdo da definição das mensagens Ethernet de vários protocolos ou técnicas de encapsulamento, o leitor é direcionado para o padrão ou guia de referência apropriados para a construção de quadro Ethernet. Alguns documentos geralmente disponíveis que podem ser úteis no entendimento dos protocolos Ethernet e das técni-
Figure BRPI0015717B1_D0027
··· cas de encapsulação e dos padrões e opções relacionados com os mesmos são: ISO/IEC Final CD 15802-3, IEEE P802,1D/D15, de 24 de novembro de 1997, Abexi C; IEEE Draft Standard 802.1Q/D9 datado de 20 de fevereiro de 1998; RFC 1700 - Números designados por J. Reynolds e J. Postei, de outubro de 1994 (um documento que também está disponível no http://www/isi.edu/rfceditor/rfc.html); IBM Token Ring NetWork Architecture Reference; e IBM LAN Bridge and Switch Summary. Número de Publicação SG24-5000-00, Versão 1,3, de Janeiro de 1996, particularmente o Capítulo 1.1.1.
O classificador de hardware pode ser designado de vários modos incluindo através do uso de uma dentre uma variedade de ferramentas de software geralmente disponíveis para designar e fabricar projetos lógicos em uma configuração de hardware (ou na implementação real no substrato de silício) bem como sendo designado pelo projeto tradicional manual por uma projetista de lógica. Neste exemplo, os testes desejados são programados utilizando uma linguagem de software conhecida como linguagem de definição de hardware VLSI, ou reduzida para (VHDL) e então colocada através de uma peça de software conhecida (tal como uma comercializada pela IBM ou uma comercializada pela Synopsis) para criar um projeto com as portas e lógica necessárias para realizar os testes desejados em um modo de hardware. Outros sistemas de projeto similares existem e podem ser utilizados de forma vantajosa, de modo que o projetista da lógica não necessita conhecer a estrutura das portas ou sua localização, somente sua função lógica da estadas e testes e saída desejadas.
Como mencionado acima, pode ser desejável em alguns sistemas incluir no sistema de processamento da presente invenção a capacidade de enviar os quadros processados de um fluxo de dados na ordem na qual eles foram recebidos, independente de quais processadores são designados para processar cada quadro. Em tal sistema, o despachante 112, após identificar uma unidade de processamento disponível e designar um quadro recebido para a unidade de processamento para processamento, irá criar e armazenar informação de identificação para o quadro e para a unidade de processamento para a qual ele foi designado.
Figure BRPI0015717B1_D0028
Os quadros tipicamente chegam com a informação de identificação tal como o número da mensagem (algumas vezes referido como um MAC) e o endereço da fonte (algumas vezes designado como SA) e o destino (algumas vezes designado como DA) do quadro. A localização e o conteúdo de tal informação pode variar dependendo do formato da mensagem e de sua técnica de encapsulação, mas esta informação permite ao quadro se apropriadamente roteado para o destino através do sistema e dos comutadores e roteadores e ser montado em uma mensagem completa na ordem apropriada, mesmo se toda a mensagem for mais longa do que um único quadro. Tipicamente, os componentes de uma mensagem são referidos como um fluxo de dados e cada porção do fluxo de dados incluiría a mesma informação de identificação (tal como um MAC, SA ou DA). O rótulo real (ou informação de identificação) designada para um quadro de entrada pela unidade despachante 112 pode ser criado de uma variedade de modos, tal como o MAC-SA+DA, ou por logicamente fazer o XOR do LI D com os campos Ml D em outros formatos de mensagem.
Como apresentado na Fig. 7, o armazenamento em três listas ou filas pode ser criado para cada quadro. Primeiro, uma fila 400 dos quadros processados é definida para manter o trabalho completado (um quadro de saída ou processado, recebido do processador que processou um dado quadro), requerendo um buffer ou espaço de memória para pelo menos um quadro processado para cada processador, apresentado como o quadro-0 até o quadro-n onde os processadores identificados como NPU-0 até NPU-n estão acoplados com o respectivo quadro. Ouando o despachante 112 envia um quadro para uma unidade de processamento, ele envia o identificador para este quadro para uma segunda memória ou fila 410 que inclui as localizações de armazenamento 0 até n, correspondendo às respectivas unidades de processamento da rede NPU-0 até NPU-N. Quando um quadro com o identificador ou rótulo m é enviado para a NPU-0, então a memória 0 correspondendo ao rótulo para a NPU-0 é enviado para o m identificado para armazenamento, indicando que a NPU-0 está processando uma unidade de informação de entrada cujo identificador é m. Será lembrado que um
Figure BRPI0015717B1_D0029
quadro posterior que possua o mesmo identificador m irá pertencer ao mesmo fluxo de dados e um quadro que possui um identificador ou rótulo diferente irá representar um fluxo de dados diferente. Portanto, se uma unidade de informação de entrada possuindo o rótulo de 0 for recebida e despachada para a NPU-1, então um 0 é gravado no armazenamento 1 correspondendo à NPU-1. Então, se posteriormente uma segunda unidade de informação de entrada partir do mesmo fluxo de dados (também com um rótulo de 0) for recebida pelo despachante 112 e designada para o processador NPU-N, a memória N também armazenou o rótulo de 0 representando esta unidade de informação sendo designada para o processador N.
A terceira memória 420 inclui o armazenamento para cada um dos rótulos correntemente sendo processados pelas n unidades de processamento. Para cada um dos rótulos, o identificador do processador designado é armazenado e desde que a listagem ocorre seqüencialmente, o primeiro processador designado para uma fluxo de mensagem particular aparece primeiro na memória. Neste caso, para o rótulo m, uma entrada 0 na memória 422 indica que a NPU-0 está processando uma unidade de informação de entrada deste fluxo e para o rótulo 0, uma primeira unidade está sendo processada pelo processador NPU-N como apresentado pela memória 424 e uma segunda unidade está sendo processada pelo processador NPU-1 como apresentado pela memória 426. Para um dado fluxo, a ordem na qual as unidades de informação de entrada chegaram no despachante é para ser mantida de modo que a transmissão subseqüente do mesmo fluxo de dados pode ocorrer na mesma ordem na qual ele foi recebido, desse modo será visto que a memória de rótulo 424, 426 possuem as NPUs ou unidades de processamento listadas na ordem na qual os quadros de entrada foram recebidos a partir da rede e despachados para os N processadores.
A Fig. 8 ilustra uma estrutura mais detalhada da unidade de conclusão 114 utilizada ao se processar os quadros de entrada e empregar as técnicas de gerenciamento de dados descritas. A unidade de conclusão
114 como apresentado nesta modalidade comunica-se com uma pluralidade *· $···♦· .· : ·»:
de dispositivos em rodízio para distribuir a saída (por exemplo, as unidades de informação processadas) das unidades de processamento, não apresentadas nesta Fig. 4. A pluralidade de dispositivos em rodízio inclui um dispositivo em rodízio para cima 450 e dois dispositivos em rodízio para baixo, um rodízio identificado como 460 para portas alvo (um pequeno número de portas frequentemente utilizadas endereçadas especificamente) e um rodízio 470 para distribuição geral (informação processada endereçada para outras portas diferentes das portas alvo especificamente endereçadas).
As portas AND lógicas 452, 462, 472 proporcionam a colocação em porta para os rodízios 450, 460 e 470, respectivamente. Para a porta AND 452 que proporciona um quadro para o rodízio para cima 450, as entradas são estas que podem ser um quadro UP (do bloco UP associado com a página FCB Pronta 510), que o quadro é um quadro válido (o indicador VF que é um quadro válido, pronto para transmissão), que o campo de rótulo é válido no campo de rótulo do quadro associado (M01 até M92) e que o rótulo está associado com um quadro de cabeçalho (ou mais anterior) de um fluxo de dados.
O despachante 112 proporciona dois pedaços de informação para o enfileiramento de rótulo 480 quando um quadro é despachado para um dado processador -- um rótulo para o quadro na linha 482 e a identidade do processado para o qual o quadro foi designado na linha 484. O rótulo para o quadro identifica o fluxo de dados ao qual o quadro pertence, que, na modalidade preferida, é baseado no MAC mais o endereço fonte menos o endereço destino, com o objetivo de proporcionar um identificador único para cada fluxo de dados de modo que os quadros do mesmo fluxo de dados irão possuir o mesmo rótulo e quadros de fluxos de dados diferentes irão possuir rótulos ou identificadores diferentes.
A Fig. 9 ilustra um formato para o elemento de campo de rótulo
500 armazenando a informação associada com cada um dos N processadores. Cada um dos N processadores possuir dois campos de rótulo associados com o mesmo, um para o quadro sendo processado e um para um quadro que foi processado e está aguardando transferência para fora do com-
Figure BRPI0015717B1_D0030
plexo de processamento. O quadro processado pronto para ser transferido é mantido em uma memória ou armazenamento 510 que algumas vezes é referido acima como uma Página FCB Pronta e um destes armazenamentos existe para cada um dos N processadores.
O elemento de campo de rótulo 500 inclui um rótulo L, um campo de cabeçalho H, um campo válido V, um campo final T e um próximo campo N. O rótulo L é derivado do conteúdo da mensagem e representa um identificador único para cada um dos fluxos de dados. O campo cabeçalho H identifica o começo de um fluxo de dados ou de uma cadeia de quadros relacionados correntemente sendo manipulados pelas N unidades de processamento, como o trabalho sendo processado ou quadros processados aguardando transferencia para fora do complexo de processamento. Cada fluxo de dados sendo processado no complexo de processamento de N processadores possui um cabeçalho ou começo (ou quadro primeiro recebido para este fluxo de dados) em algum lugar nos N processadores e este começo é identificado como seu cabeçalho com um 1 no campo de cabeçalho H para seu elemento de campo de rótulo associado. De forma similar, cada fluxo de dados nos processadores também possui um último quadro correntemente nos N processadores e este último quadro é identificado como o final por um 1 no campo final T.
O campo válido V indica se o processador contém dados reais (como seria a partir do processamento) indicado por um 1 no campo válido ou se ele não for, o que é indicado por um 0 no campo válido V. Quando o processamento primeiro começa, nenhum dado real ou válido existe no sistema, de modo que o campo válido V está estabelecido para 0 como porção da inicialização do sistema. Posteriormente, à medida que os dados são lidos a partir da página FCB Pronta 510 para um dado processador, então o campo válido V correspondendo a esta página FCB dos processadores é estabelecido para 0, indicando que o processador não possui mais uma informação válida correspondendo a este rótulo (desde que a informação na página FCB já foi passada ao longo dos rodízios; apesar de que o processador ainda pode possuir informação válida no outro campo de rótulo asso31 ciado com este processador porque o próprio processador pode estar trabalhando em um quadro diferente). O próximo campo N indica o campo de rótulo associado com o próximo quadro no mesmo fluxo de dados - um outro dos 2N campos de rótulo associados com os N processadores. Um enfileiramento de rótulo 480 recebe uma mensagem a partir do despachante para cada unidade de informação de entrada ou quadro que um dado quadro foi despachado com seu identificador para o fluxo de dados e para o processador para o qual o quadro foi despachado.
A Fig. 10 ilustra o fluxo do enfíleiramento de rótulo 480 da Fig.
4. À medida que um quadro é despachado a partir do despachante 112 para um dos n processadores, no bloco 600, um rótulo para uma unidade de informação de entrada ou quadro é enviado para o enfíleiramento de rótulo 480 na linha 482 e uma identificação de qual dos n processadores está manipulando o quadro na linha 484. O primeiro processamento pelo enfileiramento de rótulo 550 é no bloco 602 para determinar se o campo válido V é 1 para um armazenamento junto ao qual o primeiro campo de rótulo aponta. Se o campo válido V for 1, então o armazenamento apontado é ocupado e os dados devem ser armazenados no outro armazenamento como indicado pelo bloco 606, caso contrário, o armazenamento apontado deve ser utilizado no bloco 604. A seguir, no bloco 650, o campo válido V para o armazenamento apropriado é estabelecido para 1 para indicar que dados válidos estão armazenados neste armazenamento e no bloco 640 o indicador final T para a localização de armazenamento corrente é estabelecido para indicar que este é o último fluxo de dados corrente (até que o próximo quadro para o mesmo fluxo de dados seja recebido, hora em que o campo final T é reinicializado). A seguir, no bloco 610, o rótulo é comparado com os rótulos correntes sendo manipulados por qualquer um dos processadores (obviamente, o campo válido V deve ser 1 para estes, indicando que este é um quadro válido). O resultado desta comparação é que o rótulo corrente é igual a um já em processo, caso em que o controle passa para o bloco 670 ou que ele não combina com qualquer rótulo correntemente em processo, caso em que o controle passa para o bloco 630. Se existir uma combinação com um dos •·· *·· rótulos correntes, então o quadro é uma porção de um fluxo de dados existente, de modo que no bloco 670 o campo final T do fim anterior do fluxo de dados é reinicializado (então T=0) e o próximo ponteiro de campo para este campo de rótulo é estabelecido para apontar para a localização do quadro corrente. Então, no bloco 680, o campo de cabeçalho H é estabelecido para 0 indicando que o quadro corrente não é o cabeçalho de um fluxo de dados. Se o rótulo para o quadro corrente não era igual a qualquer rótulo correntemente armazenado, então o quadro corrente é um novo fluxo de dados e o quadro corrente é o começo do mesmo, de modo que o campo de cabeçalho H é estabelecido para 1 para indicar este estado no bloco 630. Após o processamento do bloco 630 ou do bloco 680 para configurar os flags apropriados, particularmente o campo de cabeçalho Η, o processo de ligação com os fluxos de dados existentes e a configuração dos campos ou flags é feita.
Na Fig. 11, o processo para processar fora ou entregar um quadro para fora dos processadores é apresentado. Primeiro, o primeiro indicador de campo é modificado de modo que o ponteiro aponte para outro armazenamento como o primeiro ou próximo campo para o processador no bloco 710. Então, no bloco 720, o campo válido V é reinicializado para 0, indicando que os dados não são mais válidos (o quadro foi despachado e os dados não representam um quadro correntemente sendo processado). O bloco 725 testa se o campo final T está estabelecido (T = 1) indicando que este é o último quadro de um fluxo de dados particular. Se ele estiver, então o controle passa para o bloco 740, indicando que o processo está feito. Se não, no bloco 730, então o próximo quadro na sucessão é localizado (pelo ponteiro no próximo campo) e seu bit ou flag de cabeçalho H é estabelecido para indicar que ele é o primeiro quadro neste fluxo de dados atualmente nos processadores. Então, do bloco 730, o estabelecimento dos flags é feito como indicado pelo bloco 740.
A Fig. 12 ilustra o sistema da presente invenção por um exemplo, ilustrando como vários fluxos de dados poderiam ser acomodados pela unidade de conclusão descrita acima com a lógica da Fig. 10. Os N processadores com os despachante 112 e a unidade de conclusão estiveram tra··· »·· balhando por algum tempo, de modo que a Fig. 12 representa um instantâneo dos dados armazenados em uma porção da unidade de conclusão, particularmente com referência ao armazenamento de rótulo. Como apresentado neta figura, o enfileiramento de rótulo está acoplado com a pluralidade de memórias de rótulo, duas para cada um dos N processadores. Cada um dos processadores também tem associado com o mesmo um buffer de saída (algumas vezes referido como a Página FCB Pronta) para estes quadros processados que estão aguardando a transmissão para os três rodízios apresentados. Associada com cada uma do par de memória de rótulo está a primeira memória de rótulo para indicar qual das memórias de rótulo foi recebida primeiro (e quando ambas memórias de rótulo são válidas, o primeiro rótulo representa o que está no buffer da Página FCB Pronta e o segundo ou último rótulo recebido representa o que está correntemente sendo processado no respetivo processador). Cinco fluxos de dados separados são representados nesta figura, apesar do número de fluxos de dados que estão em progresso em qualquer dado tempo depende do sistema (particularmente seu tamanho e do tráfego da rede) e pode variar através do tempo. Neste exemplo, os dez processadores são identificados como os processadores 0 até 9 e as memórias de rótulo são identificadas como as memórias M01 e M02 para o processador 0 até as memórias M91 e M92 para o processador 9, apesar do número de processador ser uma escolha de projeto e sujeito à alteração, se desejado. Um primeiro fluxo de dados com o identificador A inicia na memória de rótulo M01 como apresentado pela indicação (H = 1) que a memória de rótulo M01 (e a referência correspondendo ao processador 0) representa um cabeçalho de uma cadeia ou fluxo de dados. O próximo campo N da memória de rótulo M01 aponta para a memória de rótulo M21 para indicar que o processador 2 está manipulando a próxima unidade de informação associada com este fluxo de dados. O próximo campo da memória de rótulo M21 aponta para a memória de rótulo M52 que indica que o processador 5 tem a próxima porção deste fluxo de dados. O campo final estabelecido para a memória de rótulo M52 indica que esta é a porção final deste fluxo de dados correntemente sendo processado nos N
Figure BRPI0015717B1_D0031
*··
Figure BRPI0015717B1_D0032
processadores. A sequência do fluxo de dados neste exemplo é apresentada pelas setas A1 apontando da memória de rótulo M01 para a memória de rótulo M21 e a seta A2 apontando da memória de rótulo M21 para a memória de rótulo M52, para ilustrar a conexão lógica entre os elementos do fluxo de dados (as setas logicamente representam os ponteiros no próximo campo e não existem fisicamente na implementação atual). De forma similar, um fluxo de dados da memória de rótulo M02 para a memória de rótulo M11 indica pela seta A3 uma ordem no mesmo fluxo de dados (apesar de um fluxo de dados diferente deste descrito em conexão com as memórias de rótulo M01, M21 e M52). Um terceiro fluxo de dados é indicado com a seta A4 em conexão com as memórias de rótulo M31 e M42, com um quarto fluxo de dados indicado pela seta A5 entre as memórias de rótulo M71 e M72. Finalmente, um quinto fluxo de dados é indicado na memória de rótulo M41 que não possui seta desde que ele é um fluxo de dados atualmente incluindo somente uma única memória de rótulo. Esta memória de rótulo M41 é tanto o cabeçalho como o final do fluxo de dados .e não possui próximo campo, desde que não exista outra memória de rótulo associada com este fluxo de dados.
Será lembrado que quando existem duas memórias de rótulo associadas com um único processador, uma das memórias de rótulo representa uma unidade de informação completada ou processada armazenada em um buffer e algumas vezes referida como uma Página FCB Pronta, pronta para transferência para a unidade de ‘rodízio apropriada para transmissão a partir do complexo de processamento, ou para cima ou para baixo como pode ser o caso, indicando, para transferências para cima, que ela será transferida para o dispositivo de interface e para as transferência para baixo que ela está sendo transferida de volta em direção à rede de transmissão de dados. Neste caso, o processador 0, o processador 4 e o processador 7 incluem dados em ambas as memórias de rótulo associadas. Associado com cada Página FCB Pronta está também um campo PARA CIMA (indicando se esta é uma página para cima ou para baixo), bem como um indicador, se esta for uma página para baixo, de se o quadro está endere-
Figure BRPI0015717B1_D0033
Figure BRPI0015717B1_D0034
çado para uma porta alvo ou para uma porta geral, o que determina se é para transferir uma página para baixo para o rodízio da porta alvo para baixo ou para o rodízio da rota geral. Se o quadro anteriormente recebido para o processador 0 foi a memória de rótulo M02 e esta é tanto um cabeçalho do fluxo de dados como um quadro para cima escolhido pelo dispositivo de rodízio para cima para a próxima transmissão para fora do complexo processador e de seu buffer, então a Página FCB e os campos de dados associados são removidos da Página FCB Pronta, transferindo a informação para o rodízio para cima. Então, o primeiro indicador de rótulo é alternado para indicar que a outra memória de rótulo M01 para o processador 1 é agora a primeira e o campo válido V para a memória de rótulo M02 é estabelecido para 0 indicando que esta memória de rótulo não está mais ativa ou válida e o campo válido VF para a página FCB associada é reinicializado para 0.
A presente invenção suporta novos fluxos de dados sem perturbar os fluxos de dados existentes e sem necessitar saber a cerca de um novo fluxo de dados antecipadamente. Um pacote representando um novo fluxo de dados (por exemplo, uma mensagem de uma das unidades de processamento a cèrca de sua condição) é simplesmente armazenada com seus dados de identificação e nenhuma referência ao outro fluxo de dados. Sua carência de um identificador não irá combinar o identificador para qualquer um dos fluxos de dados existentes com um campo nenhum rótulo estabelecido, uma mensagem que pode ir a qualquer tempo.
A presente invenção também permite um comando de descarga suplantar o processamento dos fluxos de dados na respectiva ordem por permitir ao sistema processar quadros completados na ordem na qual estes quadros completados são recebidos, ignorando o encadeamento do campo de rótulo (os próximos ponteiros e requerimento que um dado quadro seja um cabeçalho antes de ter acesso aos dispositivos de rodízio que enviam os quadros). Isto pode ser realizado por forçar o campo sem rótulo na Página FCB.
Um único fluxo de dados irá permanecer bloqueado até que o
Figure BRPI0015717B1_D0035
cabeçalho do fluxo de dados tenha sido processado, desde que na operação normal (sem a alternativa de descarga) somente quadros que são o cabeçalho do fluxo da menagem serão considerados para envio para fora para os rodízios pela unidade de conclusão. Entretanto, cada fluxo de dados possui seu próprio cabeçalho, de modo que um fluxo de dados pode ser bloqueado, mas os outros fluxos de dados continuam a processar e enviam para fora as unidades de informação completadas para os rodízios sem interrupção ou obstáculo e sem intervenção. Isto é particularmente útil no caso onde um único fluxo de dados é parado (por exemplo, um processador falha ou não pode processar um elemento de um único fluxo de dados) desde que outros fluxos de dados não são parados. Caso contrário, todo o processamento iria parar até que o bloqueamento do fluxo de dados único fosse retificado.
Obviamente, várias modificações da presente invenção serão aparentes para os versado na técnica relevante em vista da descrição anterior da modalidade preferida, feita junto com os desenhos acompanhantes. Por exemplo, o tipo real do hardware de implementação para o classificador é sujeito a várias escolhas do projeto e as escolhas particulares descritas dependem do conteúdo da mensagem e do método de encapsulação da mensagem e do processamento a ser feito. Várias modificações podem ser feitas junto à implementação do sistema e à configuração da mensagem que o sistema pode manipular sem sair do espírito da presente invenção. Os rótulos que são armazenados poderiam ser gerados de outros modos não baseado no conteúdo da mensagem, ou poderiam simplesmente ser uma numeração consecutiva dos fluxos de dados identificados pelo despachante. Várias outras modificações e adaptações junto ao presente sistema poderiam ser empregadas de forma vantajosa, sem sair do espírito da presente invenção e algumas das vantagens da presente invenção poderiam ser alcançadas sem o uso correspondente dos aspectos relacionados. Por conseqüência, a descrição anterior da modalidade preferida deve ser considerada como simplesmente ilustrativa dos princípios da presente invenção e não como limitação da mesma.
1/13

Claims (2)

REIVINDICAÇÕES
1/25
1. Aparelho compreendendo:
um substrato semicondutor;
N unidades de processamento (110) fabricadas no substrato, onde N > 1;
primeira memória de dados interna fabricada no dito substrato, a dita memória de dados para armazenar informação acessível para as ditas N unidades de processamento (110);
um despachante (112) operativamente acoplado com as N unidades de processamento (110) para receber e transmitir para uma das N unidades de processamento (110) uma unidade de informação de entrada;
um classificador (118) acoplado com o despachante (112), o dito classificador (118) incluindo uma unidade de comparação para determinar um formato de dado para uma unidade de informação de entrada e para gerar e armazenar na memória de dados interna indicadores de saída para a unidade de informação de entrada, os indicadores de saída indicando o formato dos dados da unidade de informação de entrada e um endereço inicial para a unidade de informação de entrada, os indicadores e o endereço inicial que estão disponíveis para uma das N unidades de processamento (110) durante seu processamento da unidade de informação de
8/20
2/13 entrada e utilizados no processamento da unidade de informação de entrada; e uma unidade de conclusão (114) carregada no substrato semicondutor e operativamente conectada com as N unidades de processamento (110) para receber a unidade de informação processada por uma das N unidades de processamento (110);
o aparelho caracterizado pelo fato de que os indicadores adicionalmente incluem a identidade de uma das
N unidades de processamento (110) para a qual a unidade de informação de entrada foi designada, e adicionalmente inclui um flag indicando se as unidades de informação processadas devem ser transmitidas do substrato na ordem na qual as unidades de informação de entrada são recebidas, com a dita unidade de conclusão respondendo ao flag para despachar as unidades de informação de entrada à medida que elas são completadas para uma das N unidades de processamento (110).
2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que a unidade de comparação inclui um teste em relação a um campo de rede de área local virtual contida nos dados da informação de entrada e os indicadores de saída gerados incluem um indicador para identificar a presença do campo de rede de área local virtual na unidade de informação de entrada.
9/20
3/13
3. Aparelho, de acordo com a reivindicação 1 ou 2, onde o classificador (118) inclui uma pluralidade de dispositivos de hardware formados no substrato.
4. Aparelho, de acordo com a reivindicação 1, 2 ou 3, caracterizado pelo fato de que os indicadores de saída incluem indicadores identificando o tipo da unidade de informação de entrada e sua técnica de encapsulação da camada 2.
5. Aparelho, de acordo com a reivindicação 1, 2, 3 ou
4, caracterizado pelo fato de que os indicadores incluem uma ponte de entrada de código default.
6. Aparelho, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que o classificador inclui um sistema para determinar um ponto de entrada de código baseado no tipo da unidade de informação de entrada e na sua técnica de encapsulação como determinado pelo classificador (118).
7. Aparelho, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o classificador inclui um sistema para determinar um ponto de entrada de código default e um ponto de entrada de código baseado no tipo da unidade de informação de entrada.
8. Aparelho, de acordo com a reivindicação 7, caracterizado pelo fato de que o aparelho adicionalmente
10/20
4/13 inclui um seletor para selecionar dentre o ponto de entrada de código default e o ponto de entrada de código baseado no tipo da unidade de informação de entrada.
9. Aparelho, de acordo com a reivindicação 8, adicionalmente caracterizado pelo fato de que inclui um sistema para identificar se a informação de rede de área local virtual está incluída na unidade de informação de entrada.
10. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o classificador (118) inclui um sistema para gerar e armazenar na memória de dados interna, um identificador (118) para cada unidade de informação de entrada indicando seu fluxo de dados e a ligação com unidades de informação posteriores do mesmo fluxo de dados com a unidade de informação anterior do mesmo fluxo de dados, com a anterior nos processadores sendo identificada como a primeira unidade de informação em um fluxo de dados particular e a transmissão das unidades de informação das unidades de processamento e limitada a aquelas unidades de informação que são identificadas como a primeira unidade de informação para o fluxo de dados particular.
11. Aparelho, de acordo com qualquer uma das reivindicações 1 a 10, caracterizado pelo fato de que a
11/20
5/13 unidade de despacho adicionalmente armazena sequencialmente em uma fila, um identificador para cada unidade de informação e a identidade da unidade de processamento para a qual a unidade de informação foi despachada para processamento; e onde a unidade de conclusão (114) é adicionalmente acoplada com a fila sequencial e utiliza a identificação para cada unidade de informação designada pelo despachante (112) e a identidade da unidade de processamento para a qual a unidade de informação foi despachada de modo a montar as unidades de informação processadas na mesma ordem na qual as unidades de informação foram recebidas.
12. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que o aparelho adicionalmente inclui um sinal para suplantar a ordem e para transferir as unidades de informação processadas para a rede na ordem na qual as unidades de informação são completadas.
13. Método para processar uma unidade de informação de entrada compreendendo as etapas de:
receber a unidade de informação de entrada em um despachante (112);
enviar a unidade de informação de entrada do despachante (112) para um de uma pluralidade de processadores para processamento;
12/20
6/13 ler os bits selecionados da unidade de informação de entrada enquanto a unidade de informação está sendo enviada do despachante (112) para um da pluralidade de processadores;
testar os bits lidos da unidade de informação de entrada em relação a indicadores conhecidos identificando tipos predeterminados de unidades de informação de entrada para identificar o tipo e o protocolo da unidade de informação de entrada ou que a unidade de informação de entrada não combina com qualquer tipo de identificação predeterminado de unidade de informação de entrada; e baseado nos resultados do teste dos bits da unidade de informação de entrada, armazenar indicadores do tipo da unidade de informação de entrada e outras informações a cerca desta unidade de informação de entrada; e utilizar em uma de uma pluralidade de unidades de processamento os indicadores armazenados e as outras informações armazenadas a cerca da unidade de informação de entrada no processamento da unidade de informação de entrada;
o método caracterizado pelo fato de que adicionalmente inclui as etapas de:
gerar e armazenar um identificador (118) para a unidade de informação de entrada;
13/20
7/13 armazenar em associação com o identificador, a identidade da unidade de processamento para a qual a unidade de informação foi designada; e utilizar o identificador e a identidade da unidade de processamento para a qual a unidade de informação foi designada para transmitir as unidades de informação processadas na ordem na qual elas foram recebidas.
14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que a etapa de gerar os indicadores e armazenar os indicadores ocorre enquanto a unidade de informação de entrada está sendo enviada para um da pluralidade de processadores, de modo que, quando um da pluralidade de processadores processa a unidade de informação de entrada, os indicadores e as outras informações foram determinadas e armazenadas e um da pluralidade de processadores utiliza os indicadores e as outras informações sobre a unidade de informação de entrada no processamento desta unidade de informação de entrada.
15. Método, de acordo com a reivindicação 13 ou 14, caracterizado pelo fato de que adicionalmente inclui a etapa de gerar um endereço inicial para o processamento adicional da unidade de informação de entrada baseado no conteúdo da unidade de informação de entrada e a etapa de utilizar os indicadores armazenados em uma da pluralidade
14/20
8/13 de unidades de processamento inclui utilizar o endereço inicial.
16. Método, de acordo com a reivindicação 13, 14 ou
15, caracterizado pelo fato de que a etapa de ler e testar é realizada no hardware, por meio do que o processo é realizado em menos ciclos de processamento do que se a leitura e o teste fossem realizados pela execução de uma série de instruções armazenadas.
17. Método, de acordo com a reivindicações 16, caracterizado pelo fato de que a etapa de utilizar o hardware para realizar a identificação do tipo de unidade de informação de entrada e armazenar os indicadores e realizada dentro de tais ciclos da máquina por meio do que a etapa de utilizar os indicadores em uma da pluralidade de unidades de processamento ocorre mais cedo do que se os testes fossem realizados pela execução de uma série de instruções programadas em sequência.
18. Método, de acordo com a reivindicação 17, caracterizado pelo fato de que a etapa de testar e armazenar indicadores para uma unidade de informação de entrada sobrepõe a etapa de receber a unidade de informação de entrada do despachante (112) em uma da pluralidade de unidades de processamento (110).
15/20
9/13
19. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que adicionalmente inclui a etapa de responder a um quadro gerado por uma unidade de processamento para incluir um flag de nenhum rótulo no quadro.
20. Método, de acordo com a reivindicação 19, caracterizado pelo fato de que o sistema responde a um quadro com um flag de nenhum rótulo por passar o quadro para a rede sem armazenamento adicional.
21. Método para identificar um quadro de entrada e proporcionar indicadores relacionando-se com este quadro para processamento adicional do quadro, o método caracterizado pelo fato de que compreende as etapas de:
determinar a partir do quadro de entrada um tipo de encapsulação e um tipo de protocolo por comparar uma seção do quadro de entrada com um conteúdo predeterminado indicativo de um tipo de encapsulação e de um tipo de protocolo;
gerar e armazenar com respeito a cada quadro de entrada, indicadores do tipo de encapsulação e do tipo de protocolo para este quadro de entrada;
determinar e armazenar a localização do cabeçalho do nível para o quadro de entrada; e
16/20
10/13 determinar e armazenar um ponto inicial para processamento adicional do quadro de entrada, baseado no tipo de protocolo e no método de encapsulação determinados, par meio do que a dita localização e ponto inicial podem ser utilizados em processamento adicional do quadro de entrada.
22. Método para determinar as características de um quadro de entrada, de acordo com a reivindicação 21, caracterizado pelo fato de que a etapa de determinar um ponto inicial para processamento adicional inclui a etapa de determinar um ponto de entrada de código default a partir do quadro de entrada, então utilizando o protocolo do quadro de entrada e o método de encapsulação para determinar se um ponto de controle de entrada armazenado foi armazenado para esta combinação de encapsulação e protocolo, utilizando o ponto de controle de entrada armazenado para o ponto inicial para processamento adicional se um existir e caso contrario utilizar o ponto de entrada de código default como o ponto inicial para processamento adicional.
23. Dispositivo para receber a partir de uma rede e processar pacotes de dados de formatos variados compreendendo:
17/20
11/13 uma pluralidade de processadores, cada um operando independente do outro, para processar pacotes de dados e proporcionar um pacote de dados de saída que é baseado no pacote de dados de entrada;
uma unidade de despacho conectada com os processadores para receber um pacote de dados a partir da rede e designar o pacote para um da pluralidade de processadores independentes;
um dispositivo de classificação conectado com a unidade de despacho para receber o pacote e determinar seu protocolo e técnica de encapsulação, bem como um endereço inicial para processamento adicional do quadro pelas unidades de processamento, o dispositivo de classificação incluindo:
lógica para determinar a técnica de encapsulação baseada em uma porção do quadro;
lógica para determinar a presença de uma informação de rede de área local virtual no quadro; e uma saída para cada quadro incluindo o tipo de encapsulação e o endereço inicial para processamento adicional;
o aparelho caracterizado pelo fato de que adicionalmente inclui um sistema de manipulação para processar novas unidades de informação que não foram
18/20
12/13 recebidas da rede, o sistema de manipulaçao colocando um símbolo nas novas unidades de informação que indica que
tais novas unidades de informação não foram recebidas da rede. 24. Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que o classificador (118) é incorporado em hardware sem um programa armazenado. 25. Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que a classificação ocorre em
dois ciclos de modo que o processamento adicional do quadro por uma das unidades de processamento pode começar dentro de dois ciclos após o quadro ser despachado pela unidade de despacho.
26. Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que o endereço inicial é determinado pela geração de um endereço inicial default a partir do quadro e utilizando este endereço default como o endereço inicial para processamento do quadro a não ser que um endereço inicial diferente seja armazenado para o método de encapsulação e para o protocolo determinado pelo sistema de classificação.
27. Aparelho para analisar um quadro de informação possuindo um protocolo e encapsulação variáveis e para proporcionar uma localização inicial para processar este
19/20
13/13 quadro e um ponteiro para a instrução inicial para processar este quadro, o aparelho caracterizado pelo fato de que compreende:
um comparador para consultar bytes predeterminados do quadro e determinar se estes bytes indicam um comprimento ou um protocolo;
lógica para determinar o protocolo e o sistema de encapsulamento para o quadro;
utilizar o protocolo e o sistema de encapsulamento para determinar uma localização inicial para processamento do quadro e um ponteiro para a instrução inicial para processar o quadro.
20/20 &
f\/
2/25
BRPI0015717A 2000-01-07 2000-12-21 método e sistema para classificação de quadro e protocolo BRPI0015717B8 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/479,028 US6633920B1 (en) 2000-01-07 2000-01-07 Method and system for network data flow management with improved completion unit
US09/479,027 US6775284B1 (en) 2000-01-07 2000-01-07 Method and system for frame and protocol classification
US09/479,028 2000-01-07
US09/479,027 2000-01-07
PCT/GB2000/004950 WO2001050259A1 (en) 2000-01-07 2000-12-21 Method and system for frame and protocol classification

Publications (2)

Publication Number Publication Date
BRPI0015717B1 true BRPI0015717B1 (pt) 2018-03-13
BRPI0015717B8 BRPI0015717B8 (pt) 2020-05-26

Family

ID=27046095

Family Applications (2)

Application Number Title Priority Date Filing Date
BR0015717-1A BR0015717A (pt) 2000-01-07 2000-12-21 Método e sistema para classificação de quadro e protocolo
BRPI0015717A BRPI0015717B8 (pt) 2000-01-07 2000-12-21 método e sistema para classificação de quadro e protocolo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR0015717-1A BR0015717A (pt) 2000-01-07 2000-12-21 Método e sistema para classificação de quadro e protocolo

Country Status (19)

Country Link
EP (1) EP1244964B1 (pt)
JP (1) JP4095802B2 (pt)
KR (1) KR100505498B1 (pt)
CN (1) CN100339832C (pt)
AT (1) ATE280411T1 (pt)
AU (1) AU2016601A (pt)
BR (2) BR0015717A (pt)
CA (1) CA2385339C (pt)
CZ (1) CZ20021442A3 (pt)
DE (1) DE60015186T2 (pt)
ES (1) ES2226958T3 (pt)
HK (1) HK1054098A1 (pt)
HU (1) HUP0203823A2 (pt)
IL (1) IL150587A0 (pt)
MX (1) MXPA02005419A (pt)
MY (1) MY122998A (pt)
PL (1) PL355786A1 (pt)
TW (1) TW526453B (pt)
WO (1) WO2001050259A1 (pt)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020159466A1 (en) * 2001-02-14 2002-10-31 John Rhoades Lookup engine
US6973503B2 (en) 2002-05-23 2005-12-06 International Business Machines Corporation Preventing at least in part control processors from being overloaded
US7242682B1 (en) 2002-10-09 2007-07-10 Storage Technology Corporation Hardware frame modifier apparatus and method for storage virtualization
US7715350B2 (en) 2003-06-12 2010-05-11 Broadcom Corporation Classifier for communication device
TWI283976B (en) * 2003-09-30 2007-07-11 Broadcom Corp Classifier for IEEE 802.11g receiver
FR2867642B1 (fr) * 2004-03-09 2006-08-18 Cit Alcatel Dispositif et procede de traitement de trames a champ a utilisation multiprotocolaire, pour un reseau de communications
CN100466594C (zh) * 2004-10-09 2009-03-04 华为技术有限公司 一种对报文进行分类处理的方法
CN100421481C (zh) * 2005-03-09 2008-09-24 华为技术有限公司 基站中处理帧协议控制帧的方法
US7881475B2 (en) 2005-05-17 2011-02-01 Intel Corporation Systems and methods for negotiating security parameters for protecting management frames in wireless networks
KR100713483B1 (ko) 2005-08-05 2007-04-30 삼성전자주식회사 연성 재질을 이용한 슬라이딩 타입 휴대 단말기
US8229525B2 (en) 2006-09-26 2012-07-24 Samsung Electronics Co., Ltd. Semi-automatic sliding device for a portable terminal and portable terminal having the same
KR100800769B1 (ko) 2007-01-29 2008-02-01 삼성전자주식회사 멀티미디어 휴대 통신 장치
CN101242344B (zh) * 2007-02-05 2013-03-20 财团法人工业技术研究院 网络封包分类器与其方法
KR100891775B1 (ko) 2007-05-14 2009-04-07 삼성전자주식회사 멀티미디어 휴대 전자 장치
TWI387268B (zh) * 2009-04-03 2013-02-21 Hon Hai Prec Ind Co Ltd 路由器及其處理IPv6資料包的方法
JP5770925B2 (ja) 2011-04-06 2015-08-26 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 直列バスシステム内でデータ伝送容量を上げるための方法及び装置
ES2595155T3 (es) 2011-04-06 2016-12-28 Robert Bosch Gmbh Método y dispositivo para adaptar la seguridad de transmisión de datos en un sistema de bus en serie
KR101936450B1 (ko) 2011-04-26 2019-01-08 로베르트 보쉬 게엠베하 메모리 크기에 매칭하여 직렬 데이터 전송을 하는 방법 및 장치
RU2603534C2 (ru) 2011-06-29 2016-11-27 Роберт Бош Гмбх Способ и устройство для последовательной передачи данных с гибким размером сообщений и переменной длительностью бита
WO2014038582A1 (ja) * 2012-09-04 2014-03-13 日本電気株式会社 パケット振分装置、パケット振分方法、およびパケット振分プログラム
US10579578B2 (en) * 2017-10-24 2020-03-03 Micron Technology, Inc. Frame protocol of memory device
WO2020062181A1 (zh) * 2018-09-29 2020-04-02 Oppo广东移动通信有限公司 无线通信方法、终端设备和接入网设备
CN112260896B (zh) * 2020-10-16 2022-05-10 山东云海国创云计算装备产业创新中心有限公司 一种网络传输测试方法、装置、设备及可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5870394A (en) * 1996-07-23 1999-02-09 Northern Telecom Limited Method and apparatus for reassembly of data packets into messages in an asynchronous transfer mode communications system
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys

Also Published As

Publication number Publication date
EP1244964B1 (en) 2004-10-20
MY122998A (en) 2006-05-31
KR20020071911A (ko) 2002-09-13
JP2003519944A (ja) 2003-06-24
MXPA02005419A (es) 2002-11-29
CZ20021442A3 (cs) 2002-07-17
EP1244964A1 (en) 2002-10-02
KR100505498B1 (ko) 2005-07-29
CA2385339A1 (en) 2001-07-12
CA2385339C (en) 2005-06-28
ES2226958T3 (es) 2005-04-01
HK1054098A1 (en) 2003-11-14
DE60015186T2 (de) 2006-02-02
PL355786A1 (en) 2004-05-17
CN100339832C (zh) 2007-09-26
AU2016601A (en) 2001-07-16
IL150587A0 (en) 2003-02-12
TW526453B (en) 2003-04-01
CN1433543A (zh) 2003-07-30
ATE280411T1 (de) 2004-11-15
JP4095802B2 (ja) 2008-06-04
WO2001050259A1 (en) 2001-07-12
DE60015186D1 (de) 2004-11-25
BR0015717A (pt) 2002-07-23
HUP0203823A2 (en) 2003-05-28
BRPI0015717B8 (pt) 2020-05-26

Similar Documents

Publication Publication Date Title
BRPI0015717B1 (pt) Método e sistema para classificação de quadro e protocolo
US7440417B2 (en) Method and system for frame and protocol classification
US7706302B2 (en) Optimization of routing forwarding database in a network processor
US7304996B1 (en) System and method for assembling a data packet
US7613209B1 (en) System and method for egress packet marking
US6658458B1 (en) Cascading associative memory arrangement
US8767757B1 (en) Packet forwarding system and method using patricia trie configured hardware
US7245623B1 (en) System and method using hierarchical parallel banks of associative memories
US20020146009A1 (en) High-speed message forwarding lookups for arbitrary length strings using pipelined memories
US20060155875A1 (en) Hierarchical associative memory-based classification system
US20110261820A1 (en) User-specified key creation from attributes independent of encapsulation type
US7830892B2 (en) VLAN translation in a network device
US20050018693A1 (en) Fast filtering processor for a highly integrated network device
JP2002538730A (ja) 高性能ネットワークインターフェースにおけるネットワークフローを管理する方法および装置
JP2002538724A (ja) マルチプロセッサコンピュータでネットワークトラフィック処理を分散する方法および装置
JP2002538731A (ja) 高性能ネットワークインターフェースにおけるダイナミックな構文解析
JP2002538723A (ja) 高性能ネットワークインターフェイスを有するデータリアセンブリのための方法および装置
JP2002538733A (ja) 高性能ネットワークインターフェース
JP2002538725A (ja) 初期のランダムなパケット廃棄方法および装置
JP2003508957A (ja) ネットワーク・プロセッサ処理コンプレックス及び方法
JP2002538721A (ja) 高性能ネットワークインターフェースにおけるネットワークトラフィックを分類するための方法および装置
US8730961B1 (en) System and method for optimizing router lookup
JP2004504769A (ja) パケットのデータバイトを複数の最小項でバッファなしに評価するための装置および方法
TWI249919B (en) A processor and a system with reduced memory requirements for high-speed routing and switching of packets and a method therefor
US6728255B1 (en) Apparatus and method for storing min terms in a network switch port memory for identifying data packet types in a real time