EP1530763B1

Associative memory with enhanced capabilities

Abstract

This record has no abstract on file.

EP1530763B1, drawing sheet 1
Sheet 1 of 15

Term

Term ended

Expired 19 July 2023, 3.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

20 claims: 20 independent, 0 dependent

  1. 1
    A method performed by a computer comprising an associative memory for use in performing a lookup operation on a plurality of associative memory entries in the associative memory to enable classification of a network packet for packet switching, the method comprising:receiving a search key (456);identifying a modification mapping (450);modifying the search key based on the modification mapping to generate a lookup word (458);performing the lookup operation on the plurality of associative entries based on the lookup word to generate a result for use in classifying the network packet;wherein the modification mapping comprises a data structure identifying how to modify the received search key with modification data (454), the data structure comprising a source portion (451) and a destination portion (452);whereinthe source portion identifies which one or more bytes of modification data are used in generating the lookup word;andthe destination portion identifies where said one or more bytes of modification data are placed in the lookup word. Procédé réalisé par un ordinateur comprenant une mémoire associative, destiné à être utilisé dans la réalisation d'une opération de recherche sur une pluralité d'entrées de mémoire associative dans la mémoire associative pour permettre le classement d'un paquet de réseau en vue d'une commutation de paquets, le procédé consistant à : recevoir une clé de recherche (456) ;identifier une correspondance de modification (450) ;modifier la clé de recherche sur la base de la correspondance de modification afin de générer un mot de recherche (458) ;réaliser l'opération de recherche sur la pluralité d'entrées associatives sur la base du mot de recherche afin de générer un résultat destiné à être utilisé dans le classement du paquet de réseau ;la correspondance de modification comprenant une structure de données identifiant comment modifier la clé de recherche reçue avec des données de modification (454), la structure de données comprenant une partie source (451) et une partie de destination (452) ;la partie source identifiant le ou les octets de données de modification qui sont utilisés dans la génération du mot de recherche ;etla partie de destination identifiant où ledit ou lesdits octets de données de modification sont placés dans le mot de recherche. Verfahren, das von einem Computer durchgeführt wird, der einen Assoziativspeicher zur Verwendung beim Durchführen einer Lookup-Operation an mehreren Assoziativspeichereinträgen im Assoziativspeicher aufweist, um die Klassifizierung eines Netzwerkpakets für die Paketvermittlung zu ermöglichen, wobei das Verfahren Folgendes aufweist: Empfangen eines Suchschlüssels (456);Identifizieren eines Modifikations-Mappings (450);Modifizieren des Suchschlüssels auf Basis des Modifikations-Mappings zum Generieren eines Lookup-Worts (458) ;Durchführen der Lookup-Operation an den mehreren assoziativen Einträgen auf Basis des Lookup-Worts zum Generieren eines Ergebnisses zur Verwendung bei einer Klassifizierung des Netzwerkpakets;wobei das Modifikations-Mapping eine Datenstruktur aufweist, die identifiziert, wie der empfangene Suchschlüssel mit Modifikationsdaten (454) zu modifizieren ist, wobei die Datenstruktur einen Quellteil (451) und einen Zielteil (452) umfasst;wobeider Quellteil identifiziert, welche ein oder mehr Bytes von Modifikationsdaten beim Generieren des Lookup-Worts verwendet werden;undder Zielteil identifiziert, wo die genannten ein oder mehr Bytes von Modifikationsdaten im Lookup-Wort platziert sind.
  2. 2
    Procédé selon la revendication 1, dans lequel ladite identification de la correspondance de modification consiste à identifier la correspondance de modification sur la base d'un ID de profil correspondant à la clé de recherche. The method of claim 1, wherein said identifying the modification mapping includes identifying the modification mapping based on a profile ID corresponding to the search key. Verfahren nach Anspruch 1, wobei das genannte Identifizieren des Modifikations-Mappings das Identifizieren des Modifikations-Mappings auf Basis einer Profilkennung beinhaltet, die dem Suchschlüssel entspricht.
  3. 3
    Procédé selon la revendication 2, dans lequel la mémoire associative consiste en une mémoire ;et la correspondance de modification est récupérée dans la mémoire sur la base de l'ID de profil. The method of claim 2, wherein the associative memory includes a memory;and the modification mapping is retrieved from the memory based on the profile ID. Verfahren nach Anspruch 2, wobei der Assoziativspeicher einen Speicher beinhaltet und das Modifikations-Mapping auf Basis der Profilkennung aus dem Speicher abgerufen wird.
  4. 4
    Procédé selon la revendication 2, consistant à recevoir l'ID de profil. The method of claim 2, comprising receiving the profile ID. Verfahren nach Anspruch 2, das das Empfangen der Profilkennung aufweist.
  5. 5
    Procédé selon la revendication 4, consistant à recevoir des données de modification ;et dans lequel ladite modification de la clé de recherche consiste à remplacer un ou plusieurs bits ou octets dans la clé de recherche par des données en provenance desdites données de modification sur la base de la correspondance de modification. The method of claim 4, comprising receiving modification data;and wherein said modifying the search key includes replacing one or more bits or bytes in the search key with data from said modification data based on the modification mapping. Verfahren nach Anspruch 4, das das Empfangen von Modifikationsdaten aufweist;und wobei das genannte Modifizieren des Suchschlüssels das Ersetzen von einem oder mehr Bits oder Bytes im Suchschlüssel durch Daten aus den genannten Modifikationsdaten auf Basis des Modifikations-Mappings beinhaltet.
  6. 6
    Procédé selon la revendication 1, consistant à recevoir des données de modification ;et dans lequel ladite modification de la clé de recherche consiste à remplacer un ou plusieurs bits ou octets dans la clé de recherche par des données en provenance desdites données de modification sur la base de la correspondance de modification. The method of claim 1, comprising receiving modification data;and wherein said modifying the search key includes replacing one or more bits or bytes in the search key with data from said modification data based on the modification mapping. Verfahren nach Anspruch 1, das das Empfangen von Modifikationsdaten aufweist und wobei das genannte Modifizieren des Suchschlüssels das Ersetzen von einem oder mehr Bits oder Bytes im Suchschlüssel durch Daten aus den genannten Modifikationsdaten auf Basis des Modifikations-Mappings beinhaltet.
  7. 7
    Procédé selon la revendication 6, dans lequel ladite réalisation de l'opération de recherche consiste à identifier une entrée particulière de la pluralité d'entrées associatives en tant qu'entrée de correspondance à priorité maximale ;dans lequel l'entrée particulière comprend une indication de recherche infructueuse forcée identifiant qu'une correspondance réussie sur l'entrée particulière doit ou ne doit pas forcer un résultat de recherche infructueuse ;et dans lequel le résultat comprend une valeur ou un signal de recherche infructueuse sur la base de l'indication de recherche infructueuse forcée de l'entrée particulière The method of claim 6, wherein said performing the lookup operation includes identifying a particular entry of the plurality of associative entries as a highest priority matching entry;wherein the particular entry includes a force no-hit indication identifying that a successful match on the particular entry should or should not force a no-hit result;and wherein the result includes a no-hit value or signal based on the force no-hit indication of the particular entry. Verfahren nach Anspruch 6, wobei das genannte Durchführen der Lookup-Operation das Identifizieren eins besonderen Eintrags der mehreren assoziativen Einträge als einen übereinstimmenden Eintrag höchster Priorität beinhaltet;wobei der besondere Eintrag eine Keinen-Treffer-erzwingen-Anzeige beinhaltet, die identifiziert, dass eine erfolgreiche Übereinstimmung an dem besonderen Eintrag ein Kein-Treffer-Ergebnis erzwingen sollte oder nicht;und wobei das Ergebnis ein(en) Kein-Treffer-Wert oder -Signal auf Basis der Keinen-Treffer-erzwingen-Anzeige des besonderen Eintrags beinhaltet.
  8. 8
    Procédé selon la revendication 1, dans lequel ladite réalisation de l'opération de recherche consiste à identifier une entrée particulière de la pluralité d'entrées associatives en tant qu'entrée de correspondance à priorité maximale ;dans lequel l'entrée particulière comprend une indication de recherche infructueuse forcée identifiant qu'une correspondance réussie sur l'entrée particulière doit ou ne doit pas forcer un résultat de recherche infructueuse ;et dans lequel le résultat comprend une valeur ou un signal de recherche infructueuse sur la base de l'indication de recherche infructueuse forcée de l'entrée particulière. The method of claim 1, wherein said performing the lookup operation includes identifying a particular entry of the plurality of associative entries as a highest priority matching entry;wherein the particular entry includes a force no-hit indication identifying that a successful match on the particular entry should or should not force a no-hit result;and wherein the result includes a no-hit value or signal based on the force no-hit indication of the particular entry. Verfahren nach Anspruch 1, wobei das genannte Durchführen der Lookup-Operation das Identifizieren eines besonderen Eintrags der mehreren assoziativen Einträge als einen übereinstimmenden Eintrag höchster Priorität beinhaltet;wobei der besondere Eintrag eine Keinen-Treffer-erzwingen-Anzeige beinhaltet, die identifiziert, dass eine erfolgreiche Übereinstimmung an dem besonderen Eintrag ein Kein-Treffer-Ergebnis erzwingen sollte oder nicht;und wobei das Ergebnis ein(en) Kein-Treffer-Wert oder -Signal auf Basis der Keinen-Treffer-erzwingen-Anzeige des besonderen Eintrags beinhaltet.
  9. 9
    A method according to claim 1 wherein the associative memory includes a first associative memory block and a second associative memory block, the method comprising:the first associative memory block receiving the profile ID;the first associative memory block retrieving a first modification mapping based on the profile ID;the first associative memory block receiving the search key and modification data;the first associative memory block modifying the search key based on the first modification mapping and said modification data to generate a first lookup word;the first associative memory block performing a lookup operation based on the first lookup word to produce a first lookup result;the second associative memory block receiving the profile ID;the second associative memory block retrieving a second modification mapping based on the profile ID;the second associative memory block receiving the search key and said modification data;the second associative memory block modifying the search key based on the second modification mapping and said modification data to generate a second lookup word;andthe second associative memory block performing a lookup operation based on the second lookup word to produce a second lookup result. Procédé selon la revendication 1, dans lequel la mémoire associative comprend un premier bloc de mémoire associative et un second bloc de mémoire associative, le procédé consistant à : recevoir, par le premier bloc de mémoire associative, l'ID de profil ;récupérer, par le premier bloc de mémoire associative, une première correspondance de modification sur la base de l'ID de profil ;recevoir, par le premier bloc de mémoire associative, la clé de recherche et les données de modification ;modifier, par le premier bloc de mémoire associative, la clé de recherche sur la base de la première correspondance de modification et desdites données de modification afin de générer un premier mot de recherche ;réaliser, par le premier bloc de mémoire associative, une opération de recherche sur la base du premier mot de recherche afin de produire un premier résultat de recherche ;recevoir, par le second bloc de mémoire associative, l'ID de profil ;récupérer, par le second bloc de mémoire associative, une seconde correspondance de modification sur la base de l'ID de profil ;recevoir, par le second bloc de mémoire associative, la clé de recherche et lesdites données de modification ;modifier, par le second bloc de mémoire associative, la clé de recherche sur la base de la seconde correspondance de modification et desdites données de modification afin de générer un second mot de recherche ;etréaliser, par le second bloc de mémoire associative, une opération de recherche sur la base du second mot de recherche afin de produire un second résultat de recherche. Verfahren nach Anspruch 1, wobei der Assoziativspeicher einen ersten Assoziativspeicherblock und einen zweiten Assoziativspeicherblock beinhaltet, wobei das Verfahren Folgendes aufweist: Empfangen der Profilkennung durch den ersten Assoziativspeicherblock;Abrufen eines ersten Modifikations-Mappings auf Basis der Profilkennung durch den ersten Assoziativspeicherblock;Empfangen des Suchschlüssels und der Modifikationsdaten durch den ersten Assoziativspeicherblock;Modifizieren des Suchschlüssels auf Basis des ersten Modifikations-Mappings und der genannten Modifikationsdaten zum Generieren eines ersten Lookup-Worts durch den ersten Assoziativspeicherblock;Durchführen einer Lookup-Operation auf Basis des ersten Lookup-Worts durch den ersten Assoziativspeicherblock zum Erzeugen eines ersten Lookup-Ergebnisses;Empfangen der Profilkennung durch den zweiten Assoziativspeicherblock;Abrufen eines zweiten Modifikations-Mappings auf Basis der Profilkennung durch den zweiten Assoziativspeicherblock;Empfangen des Suchschlüssels und der genannten Modifikationsdaten durch den zweiten Assoziativspeicherblock;Modifizieren des Suchschlüssels auf Basis des zweiten Modifikations-Mappings und der genannten Modifikationsdaten durch den zweiten Assoziativspeicherblock zum Generieren eines zweiten Lookup-Worts;undDurchführen einer Lookup-Operation auf Basis des zweiten Lookup-Worts durch den zweiten Assoziativspeicherblock zum Erzeugen eines zweiten Lookup-Ergebnisses.
  10. 10
    Procédé selon la revendication 9, dans lequel le premier résultat de recherche est prioritaire par rapport au second résultat de recherche ;et le procédé consiste à sélectionner le premier résultat de recherche par rapport au second résultat de recherche. The method of claim 9, wherein the first lookup result has priority over the second lookup result;and the method includes selecting the first lookup result over the second lookup result. Verfahren nach Anspruch 9, wobei das erste Lookup-Ergebnis Priorität vor dem zweiten Lookup-Ergebnis hat und das Verfahren das Auswählen des ersten Lookup-Ergebnisses vor dem zweiten Lookup-Ergebnis beinhaltet.
  11. 11
    Procédé selon la revendication 9, dans lequel une entrée de mémoire associative particulière du premier bloc de mémoire associative correspondant au premier résultat de recherche comprend une indication de recherche infructueuse forcée identifiant qu'une correspondance réussie sur l'entrée de mémoire associative particulière doit ou ne doit pas forcer un résultat de recherche infructueuse ;et dans lequel le premier résultat de recherche comprend une valeur ou un signal de recherche infructueuse sur la base de l'indication de recherche infructueuse forcée de l'entrée de mémoire associative particulière. The method of claim 9, wherein a particular associative memory entry of the first associative memory block corresponding to the first lookup result includes a force no-hit indication identifying that a successful match on the particular associative memory entry should or should not force a no-hit result;and wherein the first lookup result includes a no-hit value or signal based on the force no-hit indication of the particular associative memory entry. Verfahren nach Anspruch 9, wobei ein besonderer Assoziativspeichereintrag des ersten Assoziativspeicherblocks, der dem ersten Lookup-Ergebnis entspricht, eine Keinen-Treffer-erzwingen-Anzeige beinhaltet, die identifiziert, dass eine erfolgreiche Übereinstimmung an dem besonderen Assoziativspeichereintrag ein Kein-Treffer-Ergebnis erzwingen oder nicht erzwingen sollte, und wobei das erste Lookup-Ergebnis einen Kein-Treffer-Wert oder -Signal auf Basis der Keinen-Treffer-erzwingen Anzeige des besonderen Assoziativspeichereintrags beinhaltet.
  12. 12
    Procédé selon la revendication 11, dans lequel le premier résultat de recherche est prioritaire par rapport au second résultat de recherche ;et le procédé consiste à sélectionner le second résultat de recherche par rapport au premier résultat de recherche sur la base de la valeur ou du signal de recherche infructueuse du premier résultat de recherche. The method of claim 11, wherein the first lookup result has priority over the second lookup result;and the method includes selecting the second lookup result over the first lookup result based on the no-hit value or signal of the first lookup result. Verfahren nach Anspruch 11, wobei das erste Lookup-Ergebnis Priorität vor dem zweiten Lookup-Ergebnis hat und das Verfahren das Auswählen des zweiten Lookup-Ergebnisses vor dem ersten Lookup-Ergebnis auf Basis des Keinen-Treffer-Werts oder -Signals des ersten Lookup-Ergebnisses beinhaltet.
  13. 13
    An associative memory used in the method of any of claims 1 to 8 for classifying a network packet for packet switching, the associative memory including a plurality of associative memory entries and comprising:means for receiving a search key (456);means for identifying a modification mapping (450);means for modifying the search key based on the modification mapping to generate a lookup word (458);means for performing a lookup operation on the plurality of associative entries based on the lookup word to generate a result for use in classifying the network packet;wherein the modification mapping comprises a data structure identifying how to modify the received search key with modification data (454), the data structure comprising a source portion (451) and a destination portion (452);whereinthe source portion identifies which one or more bytes of modification data are used in generating the lookup word;andthe destination portion identifies where said one or more bytes of modification data are placed in the lookup word. Assoziativspeicher, der bei dem Verfahren nach einem der Ansprüche 1 bis 8 zur Klassifizierung eines Netzwerkpakets für die Paketvermittlung verwendet wird, wobei der Assoziativspeicher mehrere Assoziativspeichereinträge beinhaltet und Folgendes aufweist: ein Mittel zum Empfangen eines Suchschlüssels (456);ein Mittel zum Identifizieren eines Modifikations-Mappings (450);ein Mittel zum Modifizieren des Suchschlüssels auf Basis des Modifikations-Mappings zum Generieren eines Lookup-Worts (458) ;ein Mittel zum Durchführen einer Lookup-Operation an den mehreren assoziativen Einträgen auf Basis des Lookup-Worts zum Generieren eines Ergebnisses zur Verwendung bei einer Klassifizierung des Netzwerkpakets;wobei das Modifikations-Mapping eine Datenstruktur aufweist, die identifiziert, wie der empfangene Suchschlüssel mit Modifikationsdaten (454) zu modifizieren ist, wobei die Datenstruktur einen Quellteil (451) und einen Zielteil (452) umfasst;wobeider Quellteil identifiziert, welche ein oder mehr Bytes von Modifikationsdaten beim Generieren des Lookup-Worts verwendet werden;undder Zielteil identifiziert, wo die genannten ein oder mehr Bytes von Modifikationsdaten im Lookup-Wort platziert sind. Mémoire associative utilisée dans le procédé selon l'une quelconque des revendications 1 à 8 pour classer un paquet de réseau en vue d'une commutation de paquets, la mémoire associative comprenant une pluralité d'entrées de mémoire associative et comprenant : un moyen permettant de recevoir une clé de recherche (456) ;un moyen permettant d'identifier une correspondance de modification (450) ;un moyen permettant de modifier la clé de recherche sur la base de la correspondance de modification afin de générer un mot de recherche (458) ;un moyen permettant de réaliser une opération de recherche sur la pluralité d'entrées associatives sur la base du mot de recherche afin de générer un résultat destiné à être utilisé dans le classement du paquet de réseau ;la correspondance de modification comprenant une structure de données identifiant comment modifier la clé de recherche reçue avec des données de modification (454), la structure de données comprenant une partie source (451) et une partie de destination (452) ;la partie source identifiant le ou les octets de données de modification qui sont utilisés dans la génération du mot de recherche ;etla partie de destination identifiant où ledit ou lesdits octets de données de modification sont placés dans le mot de recherche.
  14. 14
    Assoziativspeicher nach Anspruch 13, der ein Mittel zum Identifizieren des Modifikations-Mappings auf Basis einer Profilkennung beinhaltet. Mémoire associative selon la revendication 13, comprenant un moyen permettant d'identifier la correspondance de modification sur la base d'un ID de profil. The associative memory of claim 13, including means for identifying the modification mapping based on a profile ID.
  15. 15
    Assoziativspeicher nach Anspruch 14, der ein Mittel zum Abrufen des Modifikations-Mappings auf Basis der Profilkennung aus dem Speicher beinhaltet. Mémoire associative selon la revendication 14, comprenant un moyen permettant de récupérer la correspondance de modification dans la mémoire sur la base de l'ID de profil. The associative memory of claim 14, including means for retrieving the modification mapping from memory based on the profile ID.
  16. 16
    Assoziativspeicher nach Anspruch 14, der ein Mittel zum Empfangen der Profilkennung beinhaltet. Mémoire associative selon la revendication 14, comprenant un moyen permettant de recevoir l'ID de profil. The associative memory of claim 14, including means for receiving the profile ID.
  17. 17
    Assoziativspeicher nach Anspruch 13 oder 16, der Folgendes aufweist:ein Mittel zum Empfangen von Modifikationsdaten;undein Mittel zum Ersetzen von einem oder mehr Bits oder Bytes im Suchschlüssel durch Daten aus den genannten Modifikationsdaten auf Basis des Modifikations-Mappings. Mémoire associative selon la revendication 13 ou 16, comprenant : un moyen permettant de recevoir des données de modification ;etun moyen permettant de remplacer un ou plusieurs bits ou octets dans la clé de recherche par des données en provenance desdites données de modification sur la base de la correspondance de modification. The associative memory of claim 13 or 16, comprising: means for receiving modification data;andmeans for replacing one or more bits or bytes in the search key with data from said modification data based on the modification mapping.
  18. 18
    Assoziativspeicher nach Anspruch 17, wenn abhängig von Anspruch 13, wobei das genannte Mittel zum Durchführen einer Lookup-Operation ein Mittel zum Identifizieren eines besonderen Eintrags der mehreren assoziativen Einträge als einen übereinstimmenden Eintrag höchster Priorität beinhaltet;wobei der besondere Eintrag eine Keinen-Treffer-erzwingen-Anzeige beinhaltet, die identifiziert, dass eine erfolgreiche Übereinstimmung an dem besonderen Eintrag ein Kein-Treffer-Ergebnis erzwingen sollte oder nicht;und wobei das Ergebnis ein(en) Kein-Treffer-Wert oder -Signal auf Basis der Keinen-Treffer-erzwingen-Anzeige des besonderen Eintrags beinhaltet. Mémoire associative selon la revendication 17 prise en dépendance de la revendication 13, dans lequel ledit moyen permettant de réaliser une opération de recherche comprend un moyen permettant d'identifier une entrée particulière de la pluralité d'entrées associatives en tant qu'entrée de correspondance à priorité maximale ;dans lequel l'entrée particulière comprend une indication de recherche infructueuse forcée identifiant qu'une correspondance réussie sur l'entrée particulière doit ou ne doit pas forcer un résultat de recherche infructueuse ;et dans lequel le résultat comprend une valeur ou un signal de recherche infructueuse sur la base de l'indication de recherche infructueuse forcée de l'entrée particulière. The associative memory of claim 17 as dependent from claim 13, wherein said means for performing a lookup operation includes means for identifying a particular entry of the plurality of associative entries as a highest priority matching entry;wherein the particular entry includes a force no-hit indication identifying that a successful match on the particular entry should or should not force a no-hit result;and wherein the result includes a no-hit value or signal based on the force no-hit indication of the particular entry.
  19. 19
    Assoziativspeicher nach Anspruch 13, wobei das genannte Mittel zum Durchführen einer Lookup-Operation ein Mittel zum Identifizieren eines besonderen Eintrags der mehreren assoziativen Einträge als einen übereinstimmenden Eintrag höchster Priorität beinhaltet;wobei der besondere Eintrag eine Keinen-Treffer-erzwingen-Anzeige beinhaltet, die identifiziert, dass eine erfolgreiche Übereinstimmung an dem besonderen Eintrag ein Kein-Treffer-Ergebnis erzwingen sollte oder nicht;und wobei das Ergebnis ein(en) Kein-Treffer-Wert oder -Signal auf Basis der Keinen-Treffer-erzwingen-Anzeige des besonderen Eintrags beinhaltet. Mémoire associative selon la revendication 13, dans lequel ledit moyen permettant de réaliser une opération de recherche comprend un moyen permettant d'identifier une entrée particulière de la pluralité d'entrées associatives en tant qu'entrée de correspondance à priorité maximale ;dans lequel l'entrée particulière comprend une indication de recherche infructueuse forcée identifiant qu'une correspondance réussie sur l'entrée particulière doit ou ne doit pas forcer un résultat de recherche infructueuse ;et dans lequel le résultat comprend une valeur ou un signal de recherche infructueuse sur la base de l'indication de recherche infructueuse forcée de l'entrée particulière. The associative memory of claim 13, wherein said means for performing a lookup operation includes means for identifying a particular entry of the plurality of associative entries as a highest priority matching entry;wherein the particular entry includes a force no-hit indication identifying that a successful match on the particular entry should or should not force a no-hit result;and wherein the result includes a no-hit value or signal based on the force no-hit indication of the particular entry.
  20. 20
    An associative memory used in the method of any of claims 9 to 11. Assoziativspeicher, der bei dem Verfahren nach einem der Ansprüche 9 bis 11 verwendet wird. Mémoire associative utilisée dans le procédé selon l'une quelconque des revendications 9 à 11.
Independent claims20