Brevet FR2949933A1 — publié le 20110311

� Procédé et dispositif de filtrage de messages � Le domaine de l'invention est celui de la réception et du traitement de messages par différents noeuds d'un réseau de communication, assurant le contrôle et la commande d'organes en temps réel d'un système, notamment d'un système de véhicule automobile. L'invention concerne plus particulièrement le filtrage de messages reçus comprenant chacun au moins un 10 champ d'identification et un champ de données. On connaît déjà des procédés et dispositifs pour filtrer ce type de message en réception. Ainsi, le document US6,496,885 enseigne un procédé dans lequel une valeur de champ d'identification de 15 message est hachée pour de préférence en réduire la taille. La valeur obtenue est comparée à une pluralité d'indexes d'une table associative (look-up table dans le texte) qui indique les messages pertinents de façon à écarter le message si la table indique que le message 20 n'est pas pertinent et à insérer le message dans un tampon si la table indique que le message est pertinent. Seuls les messages contenus dans le tampon sont ensuite traités. Le temps nécessaire pour effectuer les nombreuses 25 opérations qui sont nécessitées dans l'état antérieur de la technique avant de traiter effectivement un message présente des problèmes de latence et de ressources matérielles. Pour remédier aux problèmes posés par l'état 30 antérieur de la technique, l'invention a pour objet un procédé de filtrage de messages reçus comprenant chacun au moins un champ d'identification et un champ de données. De façon remarquable, le procédé comprend une étape d'inspection activée par une réception du champ 35 d'identification, dans laquelle un indicateur est directement adressé par une première valeur donnée par le champ d'identification et une étape de traitement du champ de données, activée lorsque l'indicateur adressé est à un premier niveau. Le procédé est exécutable de manière matérielle, par exemple au moyen de circuits dédiés. Pour gagner en souplesse d'adaptation, le procédé est exécuté de manière logicielle. Particulièrement, l'indicateur est un bit appartenant à un mot binaire. Plus particulièrement, le mot binaire est adressé par une première sous valeur donnée par un premier segment du champ d'identification et ledit bit est adressé dans le mot binaire par une deuxième sous valeur donnée par un deuxième segment du champ d'identification. Avantageusement, le procédé comprend une étape de renseignement dans laquelle une deuxième valeur associée à la première valeur, est utilisée pour déclencher l'étape de traitement. Particulièrement, la deuxième valeur désigne un emplacement attribué au champ de données dans une 20 structure de données. Plus particulièrement, ledit emplacement détermine une opération à effectuer dans l'étape de traitement. L'invention a aussi pour objet un dispositif de filtrage de messages reçus comprenant chacun au moins un 25 champ d'identification et un champ de données. De façon remarquable, le dispositif comprend une table contenant un ensemble d'indicateurs directement adressable chacun par une première valeur donnée par le champ d'identification et des moyens de traitement du champ de 30 données, activables par un premier niveau d'indicateur. Pour en faciliter la fabrication et la maintenance, lesdits moyens comprennent un programme d'ordinateur. Particulièrement ladite table comprend des lignes dont chacune est un mot binaire et des colonnes 35 comprenant chacune un bit de même rang du mot binaire. Plus particulièrement, chaque mot binaire est adressable par une première sous valeur donnée par un premier segment du champ d'identification et chaque bit est adressable dans le mot binaire par une deuxième sous valeur donnée par un deuxième segment du champ d'identification. Avantageusement, le dispositif comprend un tableau comprenant une première colonne constituée par ladite table et des deuxièmes colonnes comprenant des cellules qui sont associées chacune à un indicateur différent. Particulièrement, chaque cellule associée à un indicateur de premier niveau, contient un pointeur vers un emplacement attribué au champ de données dans une structure de données. Plus particulièrement, ledit emplacement est représentatif d'une opération à effectuer pour traiter le 15 champ de données. L'invention sera mieux comprise, et d'autres buts, caractéristiques, détails et avantages de celle-ci apparaîtront plus clairement au cours de la description explicative qui va suivre faite en référence aux dessins 20 schématiques annexés donnés uniquement à titre d'exemple illustrant plusieurs modes de réalisation de l'invention et dans lesquels : la figure 1 est une représentation schématique de réseau auquel s'applique l'invention ; 25 - la figure 2 est un tableau qui permet de mettre en oeuvre l'invention ; la figure 3 montre des étapes de procédé conforme à l'invention ; la figure 4 est une table qui permet de mettre 30 en oeuvre l'invention ; les figures 5 et 6 illustrent un mode de réalisation possible d'étapes de la figure 3. En référence à la figure 1, un réseau 30 comprend plusieurs noeuds 18, 19, 29, 36, 39, 49 reliés à un bus 35 38 sur lequel ils échangent des messages. Le protocole d'échange de messages sur le bus 38 est de type maître esclave. Un noeud maître, par exemple le noeud 18, émet des messages d'instructions sur le bus 38 qui sont traités par les autres noeuds 19, 29, 36, 39, 49, nommés noeuds esclaves lorsqu'ils sont concernés par ces messages. Un tel protocole permet de garantir les durées de communication sur le bus. Un réseau qui utilise le protocole d'échange de type maître esclave, est par exemple le réseau LIN (acronyme de l'expression anglaise Local Interconnect Network qui signifie réseau d'interconnexion locale). Ce type de réseau présente un intérêt pour interconnecter des organes de véhicule, notamment de véhicule automobile. Chaque noeud, semblable au noeud 36 représenté agrandi pour mieux en expliquer certains détails, comprend un microcontrôleur 31 relié au bus 38 par une liaison bidirectionnelle 37, une mémoire vive 33 de type RAM, une mémoire permanente 35 de type ROM, EEPROM ou autre, un ou plusieurs coupleurs d'entrées sorties 34 pour contrôler et/ou commander l'organe associé au noeud et un bus interne 32 qui relie entre eux les différents éléments 31 à 34 du noeud. Un message est une trame de bits comprenant une succession de champs. Un premier champ nommé � Break � contient de treize à vingt bits pour signaler l'émission du message sur le bus. Un deuxième champ nommé � Synchro � contient un octet pour synchroniser les horloges internes de chaque noeud. Ensuite, un champ d'identification contient un octet dont les six bits de poids faible identifient de manière unique la fonction sémantique du message dans le système piloté par les noeuds du réseau local. Six bits permettent de répertorier soixante-quatre fonctions sémantiques de message. Les deux bits de poids fort sont des bits de parité pour vérifier la valeur d'identifiant exprimée par les six bits de poids faible. Le champ d'identification est suivi par un champ de données qui contient de un à huit octets. Les données, à considérer dans leur acception la plus large, peuvent concerner tant des valeurs ou des noms de variables que des instructions de programme. Le champ de données constitue le corps du message (payload en anglais) Le message se termine enfin par un champ de contrôle de redondance cyclique CRC qui contient un octet pour détecter de manière connue certaines erreurs de transmission. Pour envoyer par exemple un ensemble prédéterminé de données du noeud 36 vers le noeud 39, le noeud maître 18 émet un message sur le bus 38 avec un identifiant tel que le noeud 36 se reconnaît être concerné pour écrire l'ensemble prédéterminé de données dans le champ de données et le noeud 39 se reconnaît être concerné pour lire l'ensemble prédéterminé de données dans le champ de données. Le contrôle de redondance cyclique est écrit dans le dernier champ du message par le noeud maître 18 ou par le noeud esclave 36 qui écrit dans le champ de données. On notera que le noeud qui se reconnaît être concerné traite le champ de données en lecture ou en écriture à la suite de la réception du champ d'identification. Il est donc nécessaire que les noeuds se reconnaissent le plus rapidement possible être ou ne pas être concernés par le message de façon à réduire au maximum une suspension de transmission entre le champ d'identification et le champ de données. Chaque noeud comprend en mémoire permanente 35, un tableau 9 expliqué à présent en référence à la figure 2. Chaque cellule du tableau est constituée d'un octet dont chacun des huit bits représentés par la variable x à deux niveaux, peut prendre la valeur 1 ou 0, indépendamment l'un de l'autre. La première colonne 20 constitue une table 35 expliquée à présent de manière plus détaillée en référence à la figure 4. La première colonne ou table 20 comprend huit lignes indexables par un triplet 42 de trois bits qui codent des valeurs décimales allant de 0 à 7. Chaque ligne comprend huit bits indexables par un triplet 43 de trois bits qui codent des valeurs décimales allant de 0 à 7. On voit sur l'exemple illustré par la figure 4 que, sur réception d'un message avec un identificateur 44 de valeur hexadécimale OxA6, c'est-à-dire de valeur binaire 1010 0110, le couple 41 de deux bits de poids fort est écarté de façon à ne garder que les six bits de poids faible qui codent la valeur hexadécimale 0x26, c'est-à-dire la valeur binaire 100110. Une première sous valeur hexadécimale 0x04 donnée par un premier segment du champ d'identification pour réaliser le triplet 42, adresse directement le mot binaire de la quatrième ligne de la table 20 et qu'une deuxième sous valeur hexadécimale 0x06 donnée par un deuxième segment du champ d'identification adresse directement le bit noté x dont un niveau haut indique que le message est pertinent et un niveau bas le contraire. Revenant à la figure 2, des deuxièmes colonnes 21, 22, 23, 24, 25, 26, 27, 28, en nombre égal au nombre de bits dans les mots binaires de la colonne 20, ont le même nombre de lignes que la colonne 20 de sorte que chaque cellule des deuxièmes colonnes 21, 22, 23, 24, 25, 26, 27, 28, est associable avec un bit de la première colonne. Les étapes de procédé expliquées à présent en référence à la figure 3, sont exécutées par le processeur 31 de tout ou partie des noeuds 18, 19, 49 , 39, 29, 36 du réseau 30. Lorsqu'un message circule sur le bus 38, le passage du champ de signalisation � Break �, à l'image d'une sonnerie, valide une transition passive 67 qui déclenche une procédure de service d'interruption (ISR) en activant une étape 50 de réveil, dans chaque noeud. Le passage du champ de synchronisation valide une transition passive 51 qui déclenche une étape 52 d'adaptation ou de génération d'horloge par résonance dans chaque noeud. Le passage du champ d'identification valide une transition passive 53 qui déclenche une étape 54 d'inspection dans laquelle un indicateur est directement adressé par une première valeur donnée par le champ d'identification, sur le modèle par exemple de celui que nous avons expliqué ci-dessus en référence à la figure 4. On conçoit aisément de réaliser les étapes du procédé de manière matérielle à l'aide de registres et de portes logiques, l'exécution matérielle d'un procédé au moyen de circuits dédiés étant réputée rapide. L'invention permet de réaliser les étapes du procédé de manière logicielle à l'aide du processeur standard 31 de chaque noeud et d'un programme stocké en mémoire permanente 35, sans avoir à fabriquer de circuit dédié et en permettant une évolution plus souple. De même que la formule chimique d'un corps en détermine le comportement dans son environnement physique, la première instruction informatique expliquée à présent, détermine le comportement du noeud dans le réseau en ce qui concerne l'accueil ou non d'un message pour le traiter. En langage C travaillant sur des octets, une expression possible de l'instruction est la suivante : Tableau[ identificateurSansParite � 3 ][ 0 ] & (1 � (identificateurSansParite&0x07)) Cette première instruction très compacte est exécutable en un nombre restreint de cycles de microprocesseur directement dans ses registres, de sorte que des performances en rapidité sont tout à fait concurrentielles avec celles que l'on peut espérer d'un circuit logique dédié. L'évolution de l'état des registres est expliquée à présent en référence à la figure 5, en les nommant de manière sémantique pour en faciliter la compréhension. Il est bien entendu que le compilateur peut choisir d'autres voies sans rien modifier à l'invention. L'état 100 est celui de l'identificateur ID tel qu'il est reçu du champ d'identification avec ses huit bits de valeurs respectives a, b, c, d, e, f, g, h. Une transition active 101 préalable applique un masque de valeur hexadécimale Ox2F, c'est-à-dire de valeur binaire 00111111 à l'identificateur, de façon à conduire à l'état 102 dans lequel l'identificateur sans parité ISP codé sur huit bits avec ses deux bits de poids fort nuls, est l'image de l'identificateur sans ses bits de parité. Une transition active 103, codée � identificateurSansParite � 3 � dans l'instruction en langage C, applique un décalage à droite de trois bits à l'identificateur sans parité ISP, de façon à conduire à l'état 104 dans lequel le contenu de registre ISPG codé sur huit bits avec ses cinq bits de poids fort nuls, est l'image du premier segment de l'identificateur comprenant les trois bits de valeurs f, e, d. Une transition active 105, codée � Tableau[ISPG][0] � dans l'instruction en langage C, retourne le mot binaire de la ligne de la table 20 adressée par les trois bits de valeurs f, e, d, de façon à conduire à l'état 106 dans lequel le contenu de registre BCG codé sur huit bits, contient le bit indicateur. Une transition active 107, codée � identificateurSansParite & 0x07 � dans l'instruction en langage C, applique un masque de valeur hexadécimale 0x07, c'est-à-dire de valeur binaire 00000111 à l'identificateur sans parité ISP, de façon à conduire à l'état 108 dans lequel le contenu de registre ISPD codé sur huit bits avec ses cinq bits de poids fort nuls, est l'image du deuxième segment de l'identificateur comprenant les trois bits de valeurs c, b, a. Une transition active 109, codée � 1 � ISPD � dans l'instruction en langage C, applique sur la valeur 00000001 un décalage à gauche d'un nombre de bit donné par le deuxième segment de l'identificateur de façon à conduire à l'état 110 dans lequel un masque BCD codé sur huit bits, contient des bits nuls à l'exception du bit de même rang que le bit indicateur qui est à 1. Une transition active 111, codée � BCG & (BCD) � dans l'instruction en langage C, applique sur le mot binaire de la ligne adressée dans la première colonne du tableau 9 par le segment gauche de l'identificateur sans parité, le masque dont le rang du seul bit à 1, est donné par le segment droit de l'identificateur sans parité. Ce qui conduit à l'état 112 dans lequel un mot Bit de huit bits a sept bits à zéro et un bit de niveau égal à celui du bit indicateur. Une transition active 113 teste si le mot Bit est de valeur nulle dont il résulte que le bit indicateur est de niveau nul. Ce qui conduit à l'état 114 dans lequel le message est écarté. Une transition active 115 teste si le mot Bit est de valeur non nulle dont il résulte que le bit indicateur est de niveau 1. Ce qui conduit à l'état 116 dans lequel le message est accueilli. A partir de l'étape 54 présentée en figure 3, seuls le ou les noeuds accueillant le message pour le traiter, continuent à exécuter la procédure de service d'interruption en passant la transition passive 57 pour déclencher tout ou partie des étapes 58 à 66 pour traiter la suite du message. Les autres noeuds écartant le message passent la transition passive 55 pour vaquer à d'autres occupations en attendant le prochain message qui validera la transition 67. La transition 57 déclenche une étape de renseignement 58 dans laquelle une deuxième valeur associée à la première valeur, est utilisée au déclenchement d'une étape de traitement 60 ou 64 qui est activée lorsque l'indicateur adressé est au premier niveau 1. Une deuxième instruction informatique accède aux deuxièmes colonnes du tableau 9 de façon à déterminer le comportement interne du noeud pour traiter le message accueilli. En langage C travaillant sur des octets, une expression possible de l'instruction est la suivante : EmplacementMessage=Tableau[identificateurSansParite �3][(identificateurSansParite&0x07)+1] Cette deuxième instruction informatique très compacte, est expliquée à présent à l'aide de la figure 6. Le passage de l'état 100 qui correspond à la réception du champ d'identification à deux états 104 et 108 dans lesquels le premier segment et le deuxième segment du champ d'identification sont reproduits sur les bits de poids faible de respectivement deux mots ISPG et ISPD, est identique à celui de la figure 5. Une transition active 121 utilise cette fois le deuxième segment, non pas pour adresser un bit dans la première colonne du tableau neuf mais pour adresser une deuxième colonne en incrémentant le deuxième segment de façon à pointer au-delà de la première colonne. L'état 122 auquel conduit la transition 121, donne une deuxième valeur qui est associée au bit indicateur car adressée sur une même ligne du tableau 9 et dans une colonne de même rang parmi les deuxièmes colonnes que le bit indicateur dans la première colonne. La deuxième valeur peut concerner tout paramètre utile pour le traitement du message comme par exemple la longueur du champ de données qui suit le champ d'identification. De préférence, la deuxième valeur concerne l'emplacement réservé au champ de données dans une structure de données qui est rangée dans la mémoire vive 33 du noeud. La longueur du champ de données résulte alors de l'architecture de la structure de données. Une transition passive 59, validée lorsque la deuxième valeur indique une demande de lecture, déclenche une étape 60 dans laquelle le noeud inscrit les données à lire dans le champ de données, à la suite du champ d'identification, puis le code de redondance cyclique, lui aussi disponible dans la structure de donnée ou calculé à la volée, dans le champ CRC. A l'issue de l'étape 60, le procédé se remet en attente du prochain message en amont de la transition passive 67. Une transition passive 61, validée lorsque la deuxième valeur indique une demande d'écriture, place le noeud en amont d'une transition passive 63 validée par chaque passage d'un octet de données. La transition 63 déclenche une étape 64 dans laquelle le noeud inscrit l'octet de données à l'emplacement indiqué dans la structure de données en tenant compte des octets éventuellement déjà inscrits. Le procédé est replacé en aval de la transition 61 à l'issue de l'étape 64 de sorte qu'une réception d'un nouvel octet de données déclenche à nouveau l'étape 64. En aval de la transition 61, une transition 65 est validée par le passage du code de redondance cyclique (CRC) sur le bus 38. La transition 65 déclenche une étape 66 dans laquelle le noeud calcule le CRC des octets inscrits en mémoire et le compare au CRC reçu dans le champ de redondance cyclique de façon à vérifier la validité des données inscrites. A l'issue de l'étape 66, le procédé se remet en attente du prochain message en amont de la transition passive 67. Nous avons décrit ci-dessus un exemple d'instructions essentielles codées en langage C. Il va de soi que de telles instructions peuvent être codées dans d'autres langages tels que, à titre purement illustratif et non limitatif, le langage C++ ou le langage Java TM La transcription du procédé de l'invention dans un programme d'ordinateur au moyen d'un langage de programmation, offre de nombreux avantages. Il suffit de télécharger le programme dans le noeud 5 pour y mettre en oeuvre le procédé de l'invention sans avoir à modifier matériellement le noeud. Un codage unique en langage source de haut niveau tel que C ou autre, des transitions et étapes du procédé qui vient d'être décrit, permet de mettre en oeuvre le 10 procédé sur des noeuds de technologies différentes pour chacune desquelles une compilation du programme source adaptée à la technologie, génère le programme objet qui convient. Une simple réécriture de programme source suivie 15 d'une compilation, permet de faire évoluer le réseau ou un noeud du réseau en téléchargeant par exemple les octets constituant le programme objet dans des champs de données de messages. L'exemple de mise en oeuvre présenté ci-dessus, est 20 basé sur des mots de huit bits. Des modifications mineures, par exemple en changeant dans le programme source, les valeurs des décalages et des masques, permettent de passer à des mots de seize, trente deux bits ou autres sans difficultés majeures. 25 Mises à part les instructions propres aux étapes 54 et 58 qui présentent une certaine originalité dans le cadre de l'invention, les instructions logicielles propres aux autres étapes relèvent de la programmation classique. 30 Une alternative de pseudo code en langage C avec commentaires, est présentée en annexe 1. D'autres instructions de codage des étapes 54 à 66 peuvent être envisagées sans sortir du cadre de la présente invention. 35 En résumé, la première partie d'exploitation du champ d'identification au moyen de la table 20 représentée en figure 4, permet de filtrer les messages en réception. La table 20 est suffisante au filtrage des messages en réception sur un calculateur. Les colonnes 21 à 28, rajoutées en référence à la figure 2, permettent de connaître directement l'emplacement des messages en mémoire du calculateur, de sorte que l'absence de recherche en mémoire de la position des données du message procure un gain de temps. Lorsque le protocole de communication est moins exigeant en termes de performances de rapidité ou lorsqu'une abondance d'identifiants conduirait à des besoins en mémoire permanente de type ROM déraisonnables, il est alors possible d'utiliser uniquement la première table 20 et de rechercher ensuite l'emplacement des données dans la mémoire du microprocesseur. On économise ainsi une grande partie des données stockées en mémoire à accès en lecture seule (ROM). On économise aussi du temps processeur car la recherche dans la mémoire RAM n'a lieu que si le calculateur est concerné par le message. Annexe 1 void LIN_InterruptServiceRoutine(void) // ISR UART du microcontroleur { // Vérification en réception des octets sur le bus LIN switch( LD08Word8Field ) { case LD08_SYNCHRO : // cas de réception de l'octet de 10 synchro ... // traitement pour l'octet break; // 15 // Après réception de cet octet, il faut déterminer rapidement si le message doit être traité par le calculateur // 2 types de message en LIN : Message en écriture -> le maître du réseau génère tous 20 les octets de la trame -> l'esclave si il est concerné par le message doit écrire les données dans sa RAM Message en lecture -> l'esclave répond au maître du réseau après l'identifiant (il génère les données et le CRC) 25 case LD08_ID : // cas de réception de l'octet identifiant // Une ligne de code très rapide pour savoir si le message doit être traité par le calculateur if( 30 Com TWord8 MatriceFiltreIdNoCanal[LD08 m IdHigh3Bits(ch) ] [0] & (1�LD08_m_IdLow3Bits(ch)) ) { // Maintenant que l'on sait que le message doit être 35 interprété par le calculateur // On doit savoir si le message est en écriture -> réception des datas par le calculateur OU en lecture génération (transmission) des datas + CRC sur le bus par le calculateur // Les colonnes 1 à 8 nous permettent de connaître l'emplacement du message en RAM // Cela nous permet de connaitre le type de message (écriture OU lecture) // Dans le cas d'un message en écriture -> on connait l'emplacement en RAM et la taille des données à recevoir (gain de temps pas de recherche et pas de bufferisation dans une fifo) // Dans le cas d'un message en lecture -> on connait l'emplacement du message et donc les octets à transmettre (gain de temps pas de recherche ) noCanal = Com TWord8 MatriceFiltreIdNoCanal[ LD08_m_IdHigh3Bits(ch) ][LD08_m_IdLow3Bits(ch)+1]; // les 64 octets (les colonnes 1 à 8) permettent de connaitre l'emplacement des messages (en RAM) à traiter et donc le type de message (écriture OU lecture), la longueur du message (à recevoir ou à générer) ... // traitement // Le message est en écriture ? if( Com si MsgLin[noCanal].Type & LD08_CFG MSG_WRITE ) { ... // traitement } // Le message est en lecture ? else LD08_CFG MSG_READ { ... // traitement } } else // le calculateur n'est pas concerné par le message { ... // traitement } break; case LD08_DATA : // cas de réception de(s) octet(s) de donnée (s) ... // traitement pour l'octet break; case LD08_CRC : // cas de réception de l'octet du CRC ... // traitement pour l'octet 10 break; } REVENDICATIONS1. Procédé de filtrage de messages reçus comprenant chacun au moins un champ d'identification et un champ de 5 données, caractérisé en ce qu'il comprend : une étape (54) d'inspection activée par une réception du champ d'identification, dans laquelle un indicateur est directement adressé par une première valeur donnée par le champ 10 d'identification ; une étape (60, 64) de traitement du champ de données, activée lorsque l'indicateur adressé est à un premier niveau. 2. Procédé selon la revendication 1, caractérisé en 15 ce qu'il est exécuté de manière logicielle. 3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'indicateur est un bit appartenant à un mot binaire. 4. Procédé selon la revendication 3, caractérisé en 20 ce que ledit mot binaire est adressé par une première sous valeur donnée par un premier segment du champ d'identification et en ce que ledit bit est adressé dans le mot binaire par une deuxième sous valeur donnée par un deuxième segment du champ d'identification. 25 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une étape (58) de renseignement dans laquelle une deuxième valeur associée à la première valeur, est utilisée pour déclencher l'étape de traitement. 30 6. Procédé selon la revendication 5 caractérisé en ce que la deuxième valeur est un emplacement attribué au champ de données dans une structure de données. 7. Procédé selon la revendication 6 caractérisé en ce que ledit emplacement détermine une opération à 35 effectuer dans l'étape de traitement. 8. Dispositif de filtrage de messages reçus comprenant chacun au moins un champ d'identification et un champ de données, caractérisé en ce qu'il comprend : une table (20) contenant un ensemble d'indicateurs directement adressable chacun par une première valeur donnée par le champ d'identification ; des moyens (31, 33, 35) de traitement du champ de données, activables par un premier niveau d'indicateur. 9. Dispositif selon la revendication 8, caractérisé en ce que lesdits moyens (35) comprennent un programme d'ordinateur. 10. Dispositif selon l'une quelconque des revendications 8 ou 9, caractérisé en ce que ladite table (20) comprend des lignes dont chacune est un mot binaire et des colonnes comprenant chacune un bit de même rang du mot binaire. 11. Dispositif selon la revendication 10, caractérisé en ce que chaque mot binaire est adressable par une première sous valeur donnée par un premier segment du champ d'identification et en ce que chaque bit est adressable dans le mot binaire par une deuxième sous valeur donnée par un deuxième segment du champ d'identification. 12. Dispositif selon l'une quelconque des revendications 8 à 11, caractérisé en ce qu'il comprend un tableau (9) comprenant une première colonne constituée par ladite table (20) et des deuxièmes colonnes (21-28) comprenant des cellules qui sont associées chacune à un indicateur différent. 13. Dispositif selon la revendication 12 caractérisé en ce que chaque cellule associée à un indicateur de premier niveau, contient un pointeur vers un emplacement attribué au champ de données dans une structure de données. 14. Dispositif selon la revendication 13 caractérisé en ce que ledit emplacement est représentatif d'une opération à effectuer pour traiter le champ de données.