Brevet FR2838537A1 — publié le 20031017

La présente invention concerne les mémoires et, plus particulièrement, une mémoire tampon dotée d'un circuit intégré d'allocation et de désallocation. Une mémoire tampon destinée au stockage temporaire de données de paquets doit pouvoir traiter des débits élevés de trafic présentant une large gamme de tailles de paquets. La technique classique de traitement de ces données de paquets consiste à préaffecter la taille de tampon maximale pour tout le trafic. Dans les systèmes qui possèdent de grandes quantités de mémoire disponibles, ceci constitue la solution la plus économique, mais implique l'emploi d'un matériel externe, de puces de mémoire et de dispositifs de commande de mémoire. Ceci implique également des interfaces de bus importantes avec le matériel externe et des retards de propagation plus grands dans des circuits électroniques à broches. Ainsi, les puces de circuit intégré utilisant les approches traditionnelles ont des valeurs de comptage de broches très élevées, et les ensembles de puces ayant de grandes valeurs de comptage de broches se voient également imposer des exigences complexes pour le câblage des cartes de circuit imprimé. Un certain nombre de techniques de gestion de mémoire pour mémoires tampons ont été mises en oeuvre. Par exemple, des tables d'allocation de mémoire sont typiquement gérées par des moyens logiciels dans un processeur, qui fonctionne ordinairement avec un système d'exploitation qui assure l'allocation et la désallocation de la mémoire. Par exemple, des opérations "malloc()" et "free()" sont des appels de fonction C courants. Toutefois, ces appels ne peuvent pas assurer une désallocation partielle dans une allocation, mais seulement une désallocation de toute l'allocation. De plus, les techniques traditionnelles servant à traiter la fragmentation des mémoires ne sont que partiellement efficaces. La plupart des systèmes d'exploitation contiennent des programmes qui peuvent passer en revue les listes de mémoire affectée et désaffectée (c'est-à-dire ayant fait l'objet d'une allocation et d'une désallocation), et qui consolident les listes désaffectées en morceaux plus grands et moins nombreux. Toutefois, toutes les allocations de mémoire commandées par logiciel demandent un plus long temps de traitement, en raison de la nature sérielle du train d'instructions dans le processeur et de la complexité des systèmes d'exploitation les plus modernes. La plupart des unités de gestion de mémoire commandées par des moyens matériels conservent des tables d'allocation en mémoire centrale, et utilisent des mémoires caches d'allocation de mémoire qui contiennent des tables de recherche fonctionnant par association. Celles-ci fonctionnent très bien, sauf que les mémoires caches sont de taille limitée. Lorsqu'il se produit une erreur de mémoire cache, le transfert de bus doit être piégé dans le cycle médian, et les entrées de mémoire cache défectueuse doivent être chargées depuis les tables d'allocation de la mémoire. Ceci augmente la complexité de la partie matérielle et de la partie logicielle. La plupart des moyens matériels ou logiciels de commande de mémoire ne peuvent pas renvoyer des parties de mémoire non utilisées dans le groupe de mémoire. Pour accomplir cela, il faut une autre allocation de la taille correcte, suivie d'une copie de mémoire à mémoire des données, de l'allocation la plus grande à l'allocation la plus petite. Ensuite, on peut ramener entièrement l'allocation la plus grande au groupe de mémoire. Ce processus fait intervenir des surcharges non souhaitables (copie de mémoire à mémoire, et allocation de mémoire supplémentaire). Il serait donc souhaitable de pouvoir produire une mémoire tampon qui traite, en partie, certains des inconvénients des mémoires tampon notés ci-dessus. Selon un aspect de l'invention, il est proposé une mémoire tampon dotée d'un circuit d'allocation et de désallocation de mémoire. La mémoire tampon possède un espace d'adressage divisé en blocs d'adressage et un espace d'adressage de mémoire divisé en blocs de mémoire. Le circuit, en réponse à une demande d'allocation se rapportant à une allocation d'un tampon d'une certaine taille, affecte suffisamment de blocs d'adressage et de blocs de mémoire pour le tampon. Le circuit, en réponse à une demande de désallocation visant à la désallocation d'une certaine taille de mémoire, effectue la désallocation de tous les blocs d'adressage et les blocs de mémoire non utilisés. Selon un autre aspect de l'invention, il est proposé un circuit de mémoire destiné à mettre en tampon des données, le circuit de mémoire ayant un bus d'entrée d'adresse qui possède un espace d'adressage destiné à recevoir des données d'adressage, un bus d'entrée de données destiné à recevoir des données, et un bus de sortie de données destiné à délivrer des données ; le circuit comprenant : une mémoire tampon possédant un espace d'adressage de mémoire et des données d'adressage de mémoire, un port d'accès d'adressage destiné à recevoir les données d'adressage de mémoire afin d'adresser la mémoire tampon, un port d'accès d'entrée de données destiné à recevoir des données sur le bus d'entrée de données afin de les stocker dans la mémoire tampon, et un port d'accès de sortie de données servant à délivrer les données stockées dans la mémoire tampon sur le bus de sortie de données ; un traducteur d'adresses destiné à recevoir les données d'adressage afin de les traduire en données d'adressage de mémoire et fournissant les données d'adressage de mémoire au port d'accès d'adressage de la mémoire tampon ; et un circuit d'allocation de mémoire ayant une ligne de signal d'allocation/désallocation destinée à recevoir des demandes d'allocation et de désallocation, un bus de comptage d'octets destiné à recevoir une valeur de comptage d'octets avec chacune des demandes d'allocation et de désallocation, un bus d'adressage destiné à produire une première adresse de départ en réponse à une demande d'allocation et recevant une deuxième adresse de départ avec une demande de désallocation, et un bus de commande servant à charger des données dans le traducteur d'adresses afin qu'il traduise les données d'adressage en données d'adressage de mémoire ; où l'espace d'adressage est divisé en blocs d'adressage, l'espace d'adressage de mémoire est divisé en blocs de mémoire, et chaque bloc d'adressage comprend un nombre entier de blocs de mémoire ; où le circuit d'allocation de mémoire, en réponse à la demande d'allocation, effectue l'allocation d'adresses consécutives suffisantes de l'espace d'adressage dans les blocs d'adressage et d'un nombre suffisant de blocs de mémoire de la mémoire tampon pour stocker la quantité de comptage d'octets de la mémoire, fournit la première adresse de départ sur le bus d'adressage, et charge les données dans le traducteur d'adresses afin qu'il traduise les données d'adressage en données d'adressage de mémoire ; et où le circuit d'allocation de mémoire, en réponse à la demande de désallocation, effectue la désallocation des blocs d'adressage en partant au niveau du premier bloc d'adressage complet depuis la deuxième adresse de départ pour les blocs d'adressage complets de la quantité de comptage d'octets de mémoire et effectue la désallocation des blocs de mémoire correspondant aux blocs d'adressage désaffectés. Selon un autre aspect de l'invention, il est proposé un procédé servant à effectuer l'allocation et la désallocation de mémoire dans un circuit de mémoire servant à mettre en tampon des données, le circuit de mémoire comprenant : un bus d'entrée d'adressage ayant un espace d'adressage servant à recevoir des données d'adressage, un bus d'entrée de données servant à recevoir des données, et un bus de sortie de données servant à délivrer des données ; une mémoire tampon ayant un espace d'adressage de mémoire et des données d'adressage de mémoire, un port d'accès d'adressage servant à recevoir les données d'adressage de mémoire afin d'adresser la mémoire tampon, un port d'accès d'entrée de données servant à recevoir les données sur le bus d'entrée de données afin de les stocker dans la mémoire tampon, et un port d'accès de sortie de données servant à délivrer les données stockées dans la mémoire tampon sur le bus de sortie de données ; un traducteur d'adresses destiné à recevoir les données d'adressage en vue de leur traduction en données d'adressage de mémoire et fournissant les données d'adressage de mémoire au port d'accès d'adressage de la mémoire tampon ; et un circuit d'allocation de mémoire possédant une ligne de signal d'allocation/désallocation servant à recevoir des demandes d'allocation et de désallocation, un bus de comptage d'octets servant à recevoir une valeur de comptage d'octets avec chacune des demandes d'allocation et de désallocation, un bus d'adressage servant à fournir une première adresse de départ en réponse à une demande d'allocation et recevant une deuxième adresse de départ avec une demande de désallocation, et un bus de commande servant à charger des données dans le traducteur d'adresses afin qu'il traduise les données d'adressage en données d'adressage de mémoire ; le procédé comprenant les opérations suivantes : diviser l'espace d'adressage en blocs d'adressage et l'espace d'adressage de mémoire en blocs de mémoire, où chaque bloc d'adressage comprend un nombre entier de blocs de mémoire ; où le circuit d'allocation de mémoire, en réponse à la demande d'allocation, effectue l'allocation de suffisamment d'adresses consécutives de l'espace d'adressage dans les blocs d'adressage et d'un nombre suffisant de blocs d'adressage de mémoire tampon pour stocker la quantité de comptage d'octets de mémoire, fournit la première adresse de départ sur le bus d'adressage, et charge les données dans le traducteur d'adresse afin qu'il traduise les données d'adressage en données d'adressage de mémoire ; et où le circuit d'allocation de mémoire, en réponse à la demande de désallocation, effectue la désallocation des blocs d'adressage en partant au niveau du premier bloc d'adressage complet depuis la deuxième adresse de départ pour les blocs d'adressage complets de la quantité de comptage d'octets de mémoire et effectue la désallocation des blocs de mémoire correspondant aux blocs d'adressage désaffectés. La description suivante, conçue à titre d'illustration de l'invention, vise à donner une meilleure compréhension de ses caractéristiques et avantages ; elle s'appuie sur les dessins annexés, parmi lesquels : la figure 1 est un schéma fonctionnel montrant une mémoire tampon de paquets 100 selon un mode de réalisation de l'invention ; la figure 2 est un schéma fonctionnel d'un exemple de mise en oeuvre du tampon de mémoire de paquets de la figure 1 au moyen d'un circuit (CCT) d'allocation de mémoire ; la figure 3 est un schéma fonctionnel du circuit (CCT) d'allocation de mémoire de la figure 2 ayant un moyen matériel formant une mémoire d'allocation de bloc d'adressage et un moyen matériel d'allocation de bloc de mémoire ; la figure 4 est un organigramme montrant les opérations intervenant dans une demande d'allocation pour un tampon de taille de paquet maximale de 2048 octets sur l'exemple de mise en oeuvre 200 de la figure 2 ; la figure 5 est un organigramme montrant les opérations qui interviennent dans la demande de désallocation sur l'exemple de mise en oeuvre 200 de la figure 2 ; la figure 6 est un schéma fonctionnel du moyen matériel d'allocation de bloc de mémoire de la figure 3 ; etla figure 7 est un schéma fonctionnel du moyen matériel formant une mémoire d'allocation de bloc d'adressage de la figure 3. On se reporte d'abord à la figure 1, qui montre le schéma fonctionnel d'une mémoire tampon de paquets 100 selon un mode de réalisation de l'invention. La mémoire tampon de paquets 100 comprend un circuit 105 d'allocation de mémoire, un traducteur d'adresses 110, une mémoire 120, un bus d'entrée d'adresse 125 servant à recevoir des données d'adressage destinées à faire accès à la mémoire 120, un bus d'entrée de données 130 destiné à recevoir des données en vue de leur stockage dans la mémoire 120, un bus de sortie de données 135 destiné à délivrer des données depuis la mémoire 120, une sortie de bus d'adressage 140 destinée à transférer des données d'adressage de mémoire en provenance du traducteur d'adresses 110 afin d'adresser la mémoire 120, et un bus de commande 145 servant à commander le traducteur d'adresses 110. Le circuit 105 d'allocation de mémoire est en outre connecté à un bus de comptage d'octets 150, à une ligne de signal d'allocation/désallocation 155, et un bus d'adressage 160. L'entrée de bus d'adressage 125 possède un espace d'adressage qui est divisé en blocs d'adressage de taille fixe (blocs d'adressage) dans le circuit d'allocation de mémoire 105. La mémoire 120 possède un espace d'adressage de mémoire qui est également divisé en blocs d'adressage de mémoire de taille fixe (blocs de mémoire) dans le circuit d'allocation de mémoire 105. Le tampon de mémoire de paquets 100 est typiquement sous commande d'un processeur. Pour effectuer l'allocation d'un tampon de mémoire en vue de stocker un paquet, le processeur envoie un signal d'allocation au tampon de mémoire de paquets 100 via la ligne de signal d'allocation/désallocation 155, avec une valeur de comptage d'octets correspondant à la quantité de mémoire demandée sur le bus de comptage d'octets 150. Le circuit 150 d'allocation de mémoire localise ensuite un espace d'adressage consécutif, en blocs d'adressage, suffisant pour stocker la valeur de comptage d'octets et fournit une première adresse de démarrage sur le bus d'adressage 160 à destination du processeur. Le circuit d'allocation de mémoire 105 effectue en outre l'allocation de blocs de mémoire suffisants pour stocker la valeur de comptage d'octets et charge le traducteur d'adresses 110 au moyen des données nécessaires à la traduction des données d'adressage en données d'adressage de mémoire. Pour effectuer la désallocation de la mémoire non utilisée, le processeur envoie un signal de désallocation au tampon de mémoire de paquets 100 sur la ligne de signal d'allocation/désallocation 155 avec une valeur de comptage d'octets de désallocation correspondant à la quantité de mémoire devant faire l'objet de la désallocation et une deuxième adresse de départ sur le bus d'adressage 160. Le circuit d'allocation de mémoire 105 effectue ensuite la désallocation (il libère) la totalité des blocs d'adressage et des blocs de mémoire non utilisé. Les données d'adressage de mémoire correspondant aux blocs de mémoire non utilisés sont lues dans le traducteur d'adresses 110 et, par conséquent, positionnés en tant que blocs de mémoire libres dans le circuit d'allocation de mémoire 150. On passe maintenant à la figure 2, qui montre le schéma fonctionnel d'un exemple de mise en oeuvre 200 du tampon de mémoire de paquets 100 de la figure 1 au moyen d'un circuit (CCT) d'allocation de mémoire 250. L'exemple de mise en oeuvre 200 du tampon de mémoire de paquets 100 a configuré la mémoire 120 en 512 blocs (blocs de mémoire) de mémoire, ayant chacun 32 octets de longueur (8 doubles mots), pour un total de 16 Ko (4 K doubles mots), et l'espace d'adressage de l'entrée de bus d'adresse 125 en 255 blocs (blocs d'adressage) de l'espace de mémoire (chaque bloc ayant 128 adresses) pour un espace adressable total de 32 K (doubles mots). Le premier bloc d'adressage, correspondant à l'adresse 0 n'est pas utilisé. Au lieu de cela, le bloc d'adressage 0, c'est-à-dire l'adresse ZERO, est renvoyé, pendant une allocation si l'opération d'allocation échoue, par exemple lorsqu'il n'y a pas suffisamment de mémoire. Une taille de tampon maximale de 2048 octets (512 doubles mots) a été fixée comme correspondant à la taille maximale de paquet. Le traducteur d'adresses 110 est réalisé au moyen d'un multiplexeur 210 et d'une mémoire d'adressage indirect 215 ayant un espace d'adressage de 4 K sur 9 bits (espace d'adressage de 4 K ayant 9 bits à chaque espace d'adressage). La mémoire d'adressage indirect 215 possède un port d'accès d'adressage noté IM d'après "Indirection Memory" (c'est-à-dire mémoire d'adressage indirect) et désigné par la référence 218, qui sert à adresser la mémoire d'adressage indirect 215, un port d'accès d'entrée de données IM 220 servant à introduire des données dans la mémoire d'accès indirect, et un port d'accès de sortie de données IM 222 servant à délivrer des données stockées dans la mémoire d'adressage indirect 215. Le port d'adressage IM 218 a une largeur de 12 bits, ce qui correspond à l'espace d'adressage de 4 K. Le port d'accès d'entrée de données IM 220 et le port d'accès de sortie de données IM 222 ont tous deux une largeur de 9 bits. La mémoire 120 comprend une mémoire tampon 230 ayant un espace d'adressage de 4 K sur 32 bits. La mémoire tampon 230 possède un port d'adressage noté BM d'après "Buffer Memory", (ce qui signifie mémoire tampon) et désigné par la référence 232 (d'une largeur de 12 bits), un port d'accès d'entrée de données BM 234 (de largeur 32 bits), et un port d'accès de sortie de données BM 236 (d'une largeur de 32 bits). Le port d'accès d'adressage BM 232 a une largeur de 12 bits de façon à correspondre à l'espace d'adressage de 4 K. Le bus d'entrée d'adressage 125 est mis en oeuvre au moyen d'un bus d'adressage externe 205, qui présente une largeur de 15 bits. Ces 15 bits correspondent à l'espace adressable total de 32 Ko (ou K octets). Les 12 bits les plus significatifs parmi les 15 Bits sont multiplexés par le multiplexeur 210 sur le port d'accès d'adressage IM 218 en vue de la traduction d'adresses en 9 bits. Les 9 bits sont ensuite combinés avec les 3 bits les moins significatifs parmi les 15 bits, de façon à former des adresses de 12 bits en vue de l'adressage de la mémoire tampon 230. Le bus d'adressage externe 205 a une largeur de 15 bits, et les 3 bits les moins significatifs sont directement transmis à la mémoire tampon 230, où ces 3 bits moins significatifs visent les adresses comprises à l'intérieur de blocs de mémoire et où les 12 bits plus significatifs (avec 3 bits moins significatifs mis à zéro) représentent les adresses visant les blocs de mémoire. Ainsi, chacune des adresses de 9 bits stockées dans la mémoire d'adressage indirect 215 représente un bloc de mémoire et, par conséquent, l'incrémentation de la sortie du compteur d'une unité représente l'adressage du bloc de mémoire suivant. Le circuit 105 d'allocation de mémoire est mis en oeuvre au moyen du circuit (CCT) d'allocation de mémoire 250, qui comprend un port d'accès de désallocation MAC d'après "Memory Allocation Circuit", (c'est-à-dire circuit d'allocation de mémoire), désigné par la référence 252, (de 15 bits de large) servant à recevoir la deuxième adresse de départ (une adresse de désallocation) ; un port d'accès d'adressage d'allocation MAC 254 (de 15 bits de large) servant à envoyer la première adresse de début (une adresse d'allocation) ; un port d'accès d'adressage MAC 256 (de 12 bits de large) servant à adresser la mémoire d'adressage indirect (215) via le multiplexeur 210 ; un port d'accès de sortie MAC 258 (de 9 bits) servant à envoyer des adresses de 9 bits à la mémoire d'adressage indirect 215 en vue du stockage, si bien que la mémoire de stockage indirect 215 traduit par conséquent les adresses de 12 bits en adresses de 9 bits ; un port d'accès d'entrée MAC 260 (de 9 bits de large) servant à recevoir des adresses de 9 bits stockés dans la mémoire d'adressage indirect 215 ; etun port d'accès de comptage d'octets 262 (11 bits) destiné à recevoir la valeur de comptage d'octets. Le circuit (CCT) d'allocation de mémoire 250 comprend des lignes 264 de signal de demandes d'allocation/désallocation destinées à recevoir des demandes d'allocation et de désallocation de mémoire ; des lignes 266 d'accès externe et de lecture/écriture destinée à recevoir des demandes externes de lecture/écriture de la mémoire tampon 230 ; ligne d'accusé de réception (Ack) MEM 275 servant à indiquer l'achèvement d'un accès en mémoire de lecture/écriture par un dispositif externe à la mémoire tampon 230 ; uneligne Done (ce qui signifie "fait)" 270 servant à indiquer l'achèvement de l'allocation et de la désallocation de demandes de mémoire ; et des lignes 268 de signal de commande (non représentées) allant au multiplexeur 210 et servant à sélectionner l'adressage depuis le bus d'adressage externe 205 ou depuis le port d'accès d'adressage MAC 256, ainsi que la mémoire d'adressage indirect 215 et la mémoire tampon 230 servant à sélectionner des lectures et des écritures à destination des mémoires respectives. On se reporte maintenant à la figure 3, qui montre le schéma fonctionnel du circuit (CCT) d'allocation de mémoire 250 de la figure 2 avec un moyen matériel d'allocation de blocs d'adressage 330 et un moyen matériel d'allocation de bloc de mémoire 320. Le circuit (CCT) d'allocation de mémoire 250 comprend une machine d'état fini (notée FSM) de commande 300 destinée à recevoir et envoyer des signaux sur des lignes de signal 305 (comportant les signaux de commande 268) afin de commander la totalité des parties de la mise en oeuvre 200 présentée à titre d'exemple ; le moyen matériel d'allocation de bloc de mémoire servant à gérer les blocs de mémoire de la mémoire tampon 230 ; etle moyen matériel d'allocation d'adressage 330 servant à gérer les blocs d'adressage de l'espace d'adressage de l'exemple de mise en oeuvre 200. Le circuit (CCT) d'allocation de mémoire 250 comprend en outre un premier multiplexeur (noté MUX) 350 assurant le multiplexage entre les signaux de sortie du port d'accès d'entrée MAC 260 et les signaux de sortie d'un port d'accès de sortie d'adresse de bloc 322 (9 bits) du moyen matériel 320 d'allocation de bloc de mémoire afin de fournir un signal d'entrée à un port d'accès d'entrée d'adressage de bloc (9 bits) du moyen matériel 320 d'allocation de bloc de mémoire ; et un deuxième multiplexeur 355 servant à multiplexer entre le signal de sortie du port d'accès d'adressage de désallocation MAC 252 (les 12 bits les plus significatifs) et le signal de sortie d'un port d'accès de sortie d'allocation d'adressage 332 (12 bits) du moyen matériel d'allocation d'adressage 330. Le circuit (CCT) d'allocation de mémoire 250 comprend en outre un compteur 360 servant à recevoir le signal de sortie du deuxième multiplexeur 355 et à délivrer un signal de sortie de compteur où le signal de sortie du compteur, qui est une adresse, est diminué jusqu'à l'adresse du bloc d'adressage suivant sous commande du FSM de commande 300 ; un registre de maintien 365 servant à verrouiller le signal de sortie du compteur sous commande du FSM de commande 300 et à ajouter 3 zéros de moindre signification pour former des signaux de sortie d'adressage de 15 bits sur le port d'accès d'adressage d'allocation MAC 254. Le signal de sortie du compteur est en outre envoyé au port d'accès d'entrée d'allocation d'adressage 334 du moyen matériel 330 d'allocation d'adressage de façon que le moyen matériel 330 d'allocation d'adressage reçoive des adresses de bloc d'adressage qui sont l'objet d'une allocation et d'une désallocation. Le circuit (CCT) d'allocation de mémoire 250 comprend en outre un compteur d'octets 370 comportant le port d'accès de comptage d'octets 262 qui sert à recevoir la valeur de comptage d'octets et à en compter le nombre de façon que le FSM de commande 300 effectue en conséquence l'allocation et la désallocation de nombres appropriés de blocs d'adressage et de blocs de mémoire. Des lignes de signal allant au FSM de commande 300 et en revenant ont été regroupées en lignes de signal 305 de façon à empêcher que la figure 3 ne devienne trop complexe. Les lignes de signal 305 nécessaires à la commande de toutes les parties de l'exemple de mise en oeuvre 200 seront connues de l'homme de l'art. Les 3 bits les moins significatifs de l'adresse produite sur le port d'accès d'adressage de désallocation MAC 252 sont transmis au FSM de commande 300 afin qu'il soit déterminé si l'adresse est au début d'un bloc d'adressage. Si l'adresse n'est pas au début d'un bloc d'adressage, ceci signifie que le bloc d'adressage contenant l'adresse a au moins été partiellement utilisé pour mettre en tampon un paquet, puis l'adresse, telle qu'elle a été transmise au compteur 360 pour être délivrée sous forme de signal de sortie de compteur, est diminuée par le compteur 360 jusqu'au début du bloc d'adressage suivant. Si l'adresse est au début d'un bloc d'adressage, alors l'adresse, telle qu'elle est transmise au compteur 360, n'est pas modifiée, puisque le bloc d'adressage contenant l'adresse n'a pas été utilisé. On se reporte maintenant à la figure 4, qui représente un organigramme indiquant les étapes d'une demande d'allocation pour un tampon de taille de paquet maximale de 2048 octets sur l'exemple de mise en oeuvre 200 de la figure 2. Pour un tampon de taille maximale de paquet de 2048 octets ou de 512 doubles mots, l'exemple de mise en oeuvre 200 doit effectuer l'allocation de 16 blocs de mémoire et de 4 blocs d'adressage consécutifs. Ce n'est pas 64 et 16, respectivement, puisque la mémoire tampon 230 est organisée en doubles mots (4 octets par double mot) et non en octets. Pour la demande d'allocation venant d'un dispositif, l'exemple de mise en oeuvre 200 reçoit un signal d'allocation sur les lignes de signal d'allocation/désallocation 264 et un signal de 2048 octets sur le port d'accès de comptage d'octets 262 (étape 400). Le FSM de commande 300 calcule le nombre de blocs d'adressage utilisés pour stocker les octets de la valeur de comptage d'octets venant du compteur d'octets 370, qui vaut quatre dans ce cas, et signale au moyen matériel d'allocation d'adressage 330 la première adresse de départ de quatre blocs d'adressage consécutifs libres (étape 405) après quoi le moyen matériel d'allocation d'adressage 330 fournit la première adresse de démarrage se trouvant sur le port d'accès de sortie d'allocation d'adressage 332 au deuxième multiplexeur 335, qui transmet au compteur 360 (étape 406). Il faut comprendre que le FSM de commande 300 signale en outre aux autres parties de l'exemple de mise en oeuvre 200 d'effectuer les étape de cette demande d'allocation sans autres affirmations visant à indiquer que le FSM de commande 300 est par conséquent est en train de commander aux autres parties d'effectuer ces opérations. Le FSM de commande 300 signale au moyen matériel d'allocation de bloc de mémoire 320 de fournir une adresse au bloc de mémoire libre (étape 410). Le compteur 360 fournit le signal de sortie de compteur au moyen matériel 330 d'allocation d'adressage via le port d'accès d'entrée d'allocation d'adressage 334, de sorte que le moyen matériel 330 d'allocation d'adressage repère le bloc d'adressage pointé par le signal de sortie du compteur comme étant celui utilisé lorsque le signal de sortie du compteur est la première adresse d'un bloc d'adressage (étape 412). Le compteur 360 fournit en outre le signal de sortie de compteur au port d'accès d'adressage IM 218 de la mémoire d'adressage indirect 215 afin d'adresser la mémoire d'adressage indirect 215 (étape 420). Le compteur 360 fournit en outre le signal de sortie du compteur au registre de maintien 365, lequel FSM de commande 300 commande de maintenir seulement la première adresse de démarrage, jusqu'à ce que les opérations de cette demande d'allocation aient été achevées, afin de fournir la première adresse de démarrage au dispositif via le port d'accès d'adressage d'allocation MAC 254, même lorsque le signal de sortie du compteur est incrémenté afin de stocker plus d'adresses de bloc de mémoire dans la mémoire d'adressage indirect 215 (étape 422). A la réception des signaux venant du FSM de commande 300, afin de fournir une adresse à un bloc de mémoire libre, le moyen matériel 320 d'allocation de bloc de mémoire fournit l'adresse du bloc de mémoire libre suivant via le port d'accès de sortie d'adressage de bloc 322 au port d'accès d'entrée de données IM 220 via le premier multiplexeur 350. L'adresse du bloc de mémoire libre suivant est également renvoyée au moyen matériel d'allocation de bloc de mémoire 320 via le port d'accès d'entrée d'adressage de bloc 324 de façon que le moyen matériel 320 d'allocation de bloc de mémoire repère le bloc de mémoire libre suivant comme n'étant pas libre (comme étant utilisé) (étape 425). La mémoire d'adressage indirect (215) stocke ensuite l'adresse du bloc de mémoire libre suivant venant du port d'accès d'entrée de données IM 220 à l'adresse se trouvant sur le port d'accès d'adressage IM 218 (étape 430). Le compteur d'octets 370 est décrémenté de 32, soit le nombre d'octets contenu dans un bloc de mémoire (étape 440), puis détermine si la valeur de comptage d'octets est devenue nulle ou un nombre négatif (étape 442). Si la réponse est positive, alors suffisamment de blocs de mémoire ont été affectées et un signal "fait" est envoyé sur la ligne notée "Done" (ce qui signifie "fait") 270 (étape 444). Si la réponse est négative, alors le signal de sortie de comptage du compteur 360 est décrémenté de 8, soit le nombre d'adresses d'un bloc de mémoire, de façon à effectuer l'allocation d'un autre bloc de mémoire (étape 446), puis cette allocation est répétée à partir de l'étape 410. On se reporte maintenant à la figure 5, qui montre un organigramme des opérations d'une demande de désallocation appliquée à l'exemple de mise en oeuvre 200 de la figure 2. Pour la demande de désallocation venant du dispositif, l'exemple de mise en oeuvre 200 reçoit un signal de désallocation sur les lignes de signal d'allocation/désallocation 264, un signal de 1048 octets sur le port d'accès de comptage d'octets 262, et la deuxième adresse de démarrage (première adresse pour effectuer la désallocation) sur le port d'accès d'adressage de désallocation MAC 252 (étape 500). Les 1048 octets sont le nombre d'octets qui n'ont pas été utilisés après que l'on a mis en tampon le paquet et ils font donc l'objet d'une désallocation, si bien que la mémoire tampon 230 est alors libre pour d'autres allocations. Les 12 bits les plus significatifs de la deuxième adresse de démarrage sont transmis au compteur 360 via le deuxième multiplexeur 355, et les trois bits les moins significatifs sont transmis au FSM de commande 300 (étape 505). On détermine si les trois bits les moins significatifs de la deuxième adresse de démarrage ne sont pas nuls (étape 510). Si la réponse est négative, les trois bits les moins significatifs ne sont pas nuls, après quoi le signal de sortie de comptage fait l'objet d'une incrémentation d'une unité (ce qui représente un bloc de mémoire) jusqu'au bloc de mémoire suivant, où "non nul" signifie qu'une partie du bloc de mémoire courant est utilisée ; et le compteur d'octets 370 décrémente la valeur de comptage d'octets de 32 octets (ce qui représente un bloc de mémoire) (étape 515). Si la réponse est positive, alors on continue. Le signal de sortie de comptage est transmis au moyen matériel 330 d'allocation d'adressage via le port d'accès d'entrée d'allocation d'adressage 334 et à la mémoire d'adressage indirect 215 via le multiplexeur 210 par l'intermédiaire du port d'accès d'adressage IM 218 (étape 520). La mémoire d'adressage indirect 215 délivre alors l'adresse de bloc de mémoire stocké à l'adresse (la valeur de sortie de comptage) reçue sur le port d'accès d'adressage IM 218 se trouvant sur le port d'accès de sortie de données IM 222 (étape 525). L'adresse du bloc de mémoire est transmise au moyen matériel 320 d'allocation de bloc de mémoire via le premier multiplexeur 350 par l'intermédiaire du port d'accès d'entrée d'adressage de bloc 324 (étape 530). Le moyen matériel 320 d'allocation de bloc de mémoire repère le bloc de mémoire se trouvant à l'adresse de ce bloc de mémoire comme étant libre (non utilisé) (étape 532). Le moyen matériel 330 d'allocation d'adressage repère le bloc d'adressage pointé par le signal de sortie du compteur comme étant libre (non utilisé) lorsque le signal de sortie du compteur est la première adresse d'un bloc d'adressage (étape 534). Le compteur d'octets 370 est décrémenté de 32, soit le nombre d'octets contenu dans un bloc de mémoire (étape 540), puis on détermine si la valeur de comptage d'octets est devenue nulle ou un nombre négatif (étape 542). Si la réponse est positive, alors un nombre suffisant de blocs de mémoire a fait l'objet d'une désallocation et un signal "fait" est envoyé sur la ligne "Done" 270 (étape 544). Si la réponse est négative, le signal de sortie du comptage du compteur 360 est incrémenté d'une unité, jusqu'à l'adresse du bloc de mémoire suivant, afin d'effectuer la désallocation du bloc de mémoire suivant (étape 546) et cette désallocation est alors répétée depuis l'étape 520. Comme le connaîtra l'homme de l'art, l'exemple de mise en oeuvre 200 fait l'objet d'un accès par un dispositif externe dans le cadre d'opérations de lecture et d'écriture utilisant le bus d'adressage externe 205 servant à l'adressage ; les lignes de signal d'accès externe et de lecture/écriture 266 servant à recevoir des demandes externes pour lire et écrire dans la mémoire tampon 230 ; la ligne Ack MEM 275 servant à accuser réception de l'achèvement d'une opération d'accès (lecture/écriture) ; le port d'accès d'entrée de données BM 234 (d'une largeur de 32 bits) servant à écrire des données (en vue d'un stockage) dans l'exemple de mise en oeuvre 200 ; etle port d'accès de sortie de données BM 236 (d'une largeur de 32 bits) servant à lire les données stockées dans l'exemple de mise en oeuvre 200. On se reporte maintenant à la figure 6, qui montre le schéma fonctionnel du moyen matériel 320 d'allocation de bloc de mémoire de la figure 3. Le moyen matériel 320 d'allocation de bloc de mémoire comprend une table 610 d'allocation de bloc de mémoire de 512 bits, qui sert à indiquer l'état libre ou non libre de chacun des blocs de mémoire ; un moyen matériel 620 noté SET/CLR servant à positionner l'état de chaque bit de la table 610 d'allocation de bloc de mémoire de 512 bits ; un décodeur 630 de 512 bits servant à décoder l'adresse se trouvant sur le port d'accès d'entrée d'adressage de bloc 324 afin de positionner le bit adressé de la table 610 d'allocation de bloc de mémoire de 512 bits, et un codeur de priorité 600 servant à détecter le prochain bloc de mémoire libre. Le codage, en langage câblé VERILOG RTL, pour la table 610 d'allocation de bloc de mémoire de 512 bits est always @ (posedge CLK) if (ENA) Memory~TABLE [BLOCK~NO] Le codeur de priorité 600 indique le numéro du bloc de mémoire suivant qui est disponible pour le stockage. Un exemple d'un détecteur de bloc de mémoire suivant de 16 bits dans le codage VERILOG RTL (module b~look(in,out,ok)) est : module b~look(in,out,ok) ; input [15:0] in ; output [3:0] out ; output ok ; reg [3:0] out ; reg ok ; always @(in) casex(in) 16'bxxxxxxxxxxxxxxxO: begin out≤4'dO; ok ≤ l'bO ; end 16'bxxxxxxxxxxxxxxOx: begin out≤4'dl; ok ≤ l'bO ; end 16'bxxxxxxxxxxxxxOxx: begin out≤4'd2; ok ≤ l'bO ; end 16'bxxxxxxxxxxxxOxxx: begin out≤4'd3; ok ≤ l'bO ; end 16'bxxxxxxxxxxxOxxxx: begin out≤4'd4; ok ≤ l'bO ; end 16'bxxxxxxxxxxOxxxxx: begin out≤4'd5; ok ≤ l'bO ; end 16'bxxxxxxxxxOxxxxxx: begin out≤4'd6; ok ≤ l'bO ; end 16'bxxxxxxxxOxxxxxxx: begin out≤4'd7; ok ≤ l'bO ; end 16'bxxxxxxxOxxxxxxxx: begin out≤4'd8; ok ≤ l'bO ; end 16'bxxxxxxOxxxxxxxxO: begin out≤4'd9; ok ≤ l'bO ; end 16'bxxxxxOxxxxxxxxxO: begin out≤4'dl0; ok ≤ l'bO ; end 16'bxxxxOxxxxxxxxxxO: begin out≤4'dll; ok ≤ l'bO ; end 16'bxxxOxxxxxxxxxxxO: begin out≤4'dl2; ok ≤ l'bO ; end 16'bxxOxxxxxxxxxxxxO: begin out≤4'dl3; ok ≤ l'bO ; end 16'bxOxxxxxxxxxxxxxO: begin out≤4'dl4; ok ≤ l'bO ; end 16'bOxxxxxxxxxxxxxxO: begin out≤4'dl5; ok ≤ l'bO ; end default:begin out≤4'hx;ok ≤l'bl ; end endcase endmodule Le codeur de priorité 600 est mis en oeuvre au moyen du module b~look(in,out,ok) instancié 34 fois, de manière à créer un détecteur de bloc de mémoire suivant de 512 bits. On se reporte à la figure 7, qui montre le schéma fonctionnel du moyen matériel 330 d'allocation de bloc d'adressage de la figure 3. Le moyen matériel 330 d'allocation de code d'adressage comprend une table 710 d'allocation de bloc d'adressage de 255 bits servant à indiquer l'état libre ou non libre de chacun des blocs d'adressage ; un moyen matériel noté SET/CLR 720 servant à positionner l'état de chaque bit de la table 710 d'allocation de bloc d'adressage de 255 bits ; un décodeur 730 de 255 bits servant à décoder l'adresse se trouvant sur le port d'accès d'entrée d'allocation de message 334 afin de positionner le bit adressé de la table 710 d'allocation de bloc d'adressage de 255 bits ; et un codeur de priorité spécial 700 servant à détecter des blocs d'adressage libres consécutifs. Le codage, dans le langage câblé VERILOG RTL, pour la table 710 d'allocation de bloc d'adressage de 255 bits est always @ (posedge CLK) if (AENA) Adress~Table [ABLK~NO)≤ASET/CLEAR. Le codeur de priorité spécial 700 indique le numéro du bloc d'adressage suivant disponible pour le stockage. Un exemple de décodeur de bloc d'adressage suivant de 16 bits, dans le codage VERILOG RTL (module b~look3(in,count,out,ok)) est module b~look3(in,count,out,ok) ; input [15:0] in ; input[1:0] count ; output [3:0] out ; output ok ; reg [3:0] out ; reg ok ; always @(in or count) casex(count,in) 18'bOOxxxxxxxxxxxxxxxO: begin out≤4'dO; ok ≤ l'bO ; end 18'bOOxxxxxxxxxxxxxxOx: begin out≤4'dl; ok ≤ l'bO ; end 18'bOOxxxxxxxxxxxxxOxx: begin out≤4'd2; ok ≤ l'bO ; end 18'bOOxxOxxxxxxxxxxxxx: begin out≤4'dl3; ok ≤ l'bO ; end 18'bOOxOxxxxxxxxxxxxxx: begin out≤4'dl4; ok ≤ l'bO ; end 18'bOOOxxxxxxxxxxxxxxx: begin out≤4'd15; ok ≤ l'bO ; end 18'bOlxxxxxxxxxxxxxxOO: begin out≤4'dO; ok ≤ l'bO ; end 18'bOlxxxxxxxxxxxxxOOx: begin out≤4'dl; ok ≤ l'bO ; end 18'bOlxxxxxxxxxxxxOOxx: begin out≤4'd2; ok ≤ l'bO ; end 18'bOlxxOOxxxxxxxxxxxx: begin out≤4'dl2; ok ≤ l'bO ; end 18'bOlxOOxxxxxxxxxxxxx: begin out≤4'dl3; ok ≤ l'bO ; end 18'b0100xxxxxxxxxxxxxx: begin out≤4'dl4; ok ≤ l'bO ; end 18'blOxxxxxxxxxxxxxOOO: begin out≤4'd0; ok ≤ l'bO ; end 18'blOxxxxxxxxxxxxOOOx: begin out≤4'dl; ok ≤ l'bO ; end 18'blOxxxxxxxxxxxOOOxx: begin out≤4'd2; ok ≤ l'bO ; end 18'blOxxOOOxxxxxxxxxxx: begin out≤4'dll; ok ≤ l'bO ; end 18'blOxOOOxxxxxxxxxxxx: begin out≤4'dl2; ok ≤ l'bO ; end 18'blOOOOxxxxxxxxxxxxx: begin out≤4'dl3; ok ≤ l'bO ; end 18'bllxxxxxxxxxxxxOOOO: begin out≤4'dO; ok ≤ l'bO ; end 18'bllxxxxxxxxxxxOOOOx: begin out≤4'dl; ok ≤ l'bO ; end 18'b11xxxxxxxxxx0000xx: begin out≤4'd2; ok ≤ l'bO ; end 18'bllxxOOOOxxxxxxxxxx: begin out≤4'dl0; ok ≤ l'bO ; end 18'b11x0000xxxxxxxxxxxx: begin out≤4'dll; ok ≤ l'bO ; end 18'b110000xxxxxxxxxxxxx: begin out≤4'dl2; ok ≤ l'bO ; end default:begin out≤4'hx;ok ≤l'bl ; end endcase endmodule Le codeur de priorité spécial 700 est mis en oeuvre au moyen du module b~look3(in,count,out,ok) étendu pour créer un détecteur de bloc d'adressage suivant de 512 bits. Le codeur de priorité spécial 700 reçoit en outre une valeur de comptage de bloc nécessitée de 2 bits 740 de la part du FSM de commande 300, qui indique le numéro de bloc d'adressage nécessaire. Les lignes de la valeur 740 de comptage de bloc nécessitée de 2 bits, compris entre le FSM de commande 300 et le codeur de priorité spécial 700, ne sont pas représentés sur les figures. L'homme de l'art comprendra que le FMS de commande 300 signale aux diverses parties de l'exemple de mise en oeuvre 200 qu'il faut effectuer les opérations décrites ci-dessus sans affirmation expresse pour indiquer que le FSM de commande 300 est par conséquent en train de commander les diverses parties. L'homme de l'art comprendra que la marche de l'exemple de mise en oeuvre 200, lorsqu'il est intégré sous forme d'une puce de circuit, est excitée par des cycles d'horloge et que les étapes décrites dans cette demande peuvent nécessiter au moins un cycle d'horloge. Bien entendu, l'homme de l'art sera en mesure d'imaginer, à partir des circuits et des procédés dont la description vient d'être donnée à titre simplement illustratif et nullement limitative, diverses variantes et modifications ne sortant pas du cadre de l'invention. REVENDICATIONS 1. Circuit de mémoire destiné à mettre en tampon des données, le circuit de mémoire ayant un bus d'entrée d'adressage avec un espace d'adressage destiné à recevoir des données d'adressage, un bus d'entrée de données servant à recevoir des données, et un bus de sortie de données servant à délivrer des données, caractérisé en ce qu'il comprend : une mémoire tampon (120) possédant un espace d'adressage de mémoire et des données d'adressage de mémoire, un port d'accès d'adressage servant à recevoir les données d'adressage de mémoire afin d'adresser la mémoire tampon, un port d'accès d'entrée de données servant à recevoir les données via le bus d'entrée de données pour les stocker dans la mémoire tampon, et un port d'accès de sortie de données servant à délivrer les données stockées dans la mémoire tampon via le bus de sortie de données ; un traducteur (110) d'adresses destiné à recevoir les données d'adressage pour les traduire en les données d'adressage de mémoire et fournissant les données d'adressage de mémoire au port d'accès d'adressage de la mémoire tampon ; et un circuit (105) d'allocation de mémoire ayant une ligne de signal d'allocation/désallocation servant à recevoir des demandes d'allocation et de désallocation, un bus de comptage d'octets servant à recevoir une valeur de comptage d'octets avec chacune des demandes d'allocation et de désallocation, un bus d'adressage servant à fournir une première adresse de démarrage en réponse à une demande d'allocation et à recevoir une deuxième adresse de démarrage avec une demande de désallocation, et un bus de commande servant à charger des données dans le traducteur d'adresses afin de traduire les données d'adressage en données d'adressage de mémoire ; où l'espace d'adressage est divisé en blocs d'adressage, l'espace d'adressage de mémoire divisé en blocs de mémoire, et chaque bloc d'adressage comprend un nombre fixe de blocs de mémoire ; où le circuit d'allocation de mémoire (105), en réponse à la demande d'allocation, effectue l'allocation d'adresses consécutives suffisantes de l'espace d'adressage dans les blocs d'adressage et d'un nombre suffisant des blocs de mémoire de la mémoire tampon pour stocker la quantité de comptage d'octets de mémoire, fournit la première adresse de démarrage via le bus d'adressage, et charge les données dans le traducteur d'adresses afin de traduire les données d'adressage en données d'adressage de mémoire ; où le circuit d'allocation de mémoire (105), en réponse à la demande de désallocation, effectue la désallocation des blocs d'adressage en partant au niveau du premier bloc d'adressage complet depuis la deuxième adresse de démarrage pour les blocs d'adressage complets de la quantité de comptage d'octets de mémoire et effectue la désallocation des blocs de mémoire en correspondance avec les blocs d'adressage ayant subi la désallocation ; et où le traducteur d'adresses comprend une mémoire d'adressage indirect (215) servant à stocker les données en vue de la traduction des données d'adressage en les données d'adressage de mémoire, où les données présentes dans la mémoire d'adressage indirect comprennent les données d'adressage de mémoire stockées aux adresses de la mémoire d'adressage indirect qui correspondent aux données d'adressage. 2. Circuit de mémoire selon la revendication 1, caractérisé en ce que le circuit d'allocation de mémoire (105) comprend un moyen matériel d'allocation de blocs d'adressage (330) servant à détecter des blocs d'adressage consécutifs en fonction de la valeur de comptage d'octets et à produire ensuite la première adresse de démarrage, et servant à suivre l'état pour chaque bloc d'adressage lorsque l'état est un état libre ou un état utilisé. 3. Circuit de mémoire selon la revendication 2, caractérisé en ce que le circuit d'allocation de mémoire (105) comprend en outre un moyen matériel d'allocation de bloc de mémoire (320) servant à détecter des blocs de mémoire libres et à fournir les données d'adressage de mémoire d'un unique bloc de mémoire qui est un bloc de mémoire libre suivant, et servant à suivre un état pour chaque bloc de mémoire où l'état est un état libre ou un état utilisé. 4. Circuit de mémoire selon la revendication 3, caractérisé en ce que le circuit d'allocation de mémoire (105) comprend en outre un compteur (360) qui, en réponse à la demande d'allocation, incrémente la première adresse de démarrage afin d'adresser la mémoire d'adressage indirect dans le but de stocker les données d'adressage de mémoire de blocs de mémoire libres suivants et de fournir les adresses des blocs d'adressage consécutifs au moyen matériel d'allocation de bloc d'adressage afin de changer l'état des blocs d'adressage respectifs en l'état utilisé ; et où les données d'adressage de mémoire de blocs de mémoire libres suivants sont fournis au moyen matériel d'allocation de bloc de mémoire afin de changer l'état des blocs de mémoire respectifs en l'état utilisé. 5. Circuit de mémoire selon la revendication 4, caractérisé en ce que le compteur (360), en réponse à la demande de désallocation, incrémente la deuxième adresse de démarrage afin d'adresser la mémoire d'adressage indirect et, ainsi, extraire des données d'adressage de mémoire mémorisées pour le moyen matériel d'allocation de bloc de mémoire afin de changer l'état des blocs de mémoire respectifs en l'état libre et fournir les adresses à partir de la deuxième adresse de démarrage des blocs d'adressage consécutifs au moyen matériel d'allocation de blocs d'adressage afin de changer l'état des blocs d'adressage respectifs en l'état libre. 6. Circuit de mémoire selon la revendication 2, caractérisé en ce que le moyen matériel d'allocation de bloc d'adressage (330) comprend en outre une table d'allocation de bloc d'adressage (710) servant à suivre l'état de chaque bloc d'adressage, et un codeur de priorité spécial (700) servant à détecter des blocs d'adressage libres consécutifs dans la table d'allocation de bloc d'adressage (710). 7. Circuit de mémoire selon la revendication 6, caractérisé en ce que le codeur de priorité spécial (700) répond à des requêtes pour un nombre de blocs d'adressage requis en indiquant si le nombre requis de blocs d'adressage est disponible, et, dans ce cas, en indiquant le premier bloc d'adressage à la tête de la série des blocs d'adressage requis et disponible. 8. Circuit de mémoire selon la revendication 3, caractérisé en ce que le moyen matériel d'allocation de bloc de mémoire (320) comprend en outre une table d'allocation de bloc de mémoire (610) servant à suivre l'état de chaque bloc de mémoire, et un codeur de priorité (600) servant à détecter le bloc de mémoire libre suivant dans la table d'allocation de bloc de mémoire et à produire les données d'adressage de mémoire du bloc de mémoire libre suivant. 9. Circuit de mémoire selon la revendication 8, caractérisé en ce que le codeur de priorité (600) indique le prochain bloc de mémoire libre s'il existe. 10. Circuit de mémoire selon la revendication 1, caractérisé en ce que les bits de moindre signification des données d'adressage, représentant l'adressage de la mémoire tampon à l'intérieur d'un bloc de mémoire, contournent le traducteur d'adresses (110) pour adresser la mémoire tampon. 11. Procédé servant à appliquer une allocation et une désallocation de mémoire pour un circuit de mémoire afin de mettre en tampon des données, caractérisé en ce que le circuit de mémoire comprend : un bus d'entrée d'adressage ayant un espace d'adressage destiné à recevoir des données d'adressage, un bus d'entrée de données destiné à recevoir des données, et un bus de sortie de données destiné à délivrer des données ; une mémoire tampon possédant un espace d'adressage de mémoire et des données d'adressage de mémoire, un port d'accès d'adressage servant à recevoir les données d'adressage de mémoire afin d'adresser la mémoire tampon, un port d'accès d'entrée de données destiné à recevoir les données via le bus d'entrée de données en vue de leur stockage dans la mémoire tampon, et un port d'accès de sortie de données servant à délivrer les données stockées dans la mémoire tampon via le bus de sortie de données ; un traducteur d'adresses destiné à recevoir les données d'adressage en vue de leur traduction en les données d'adressage de mémoire et fournissant les données d'adressage de mémoire au port d'accès d'adressage de la mémoire tampon ; et un circuit d'allocation de mémoire ayant une ligne de signal d'allocation/désallocation servant à recevoir des demandes d'allocation et de désallocation, un bus de comptage d'octets servant à recevoir une valeur de comptage d'octets avec chacune des demandes d'allocation et de désallocation, un bus d'adressage servant à fournir une première adresse de démarrage en réponse à une demande d'allocation et à recevoir une deuxième adresse de démarrage avec une demande de désallocation, et un bus de commande servant à charger des données dans le traducteur d'adresses afin de traduire les données d'adressage en les données d'adressage de mémoire ; et en ce que le procédé comprend les opérations suivantes : diviser l'espace d'adressage en blocs d'adressage et diviser l'espace d'adressage de mémoire en blocs de mémoire, où chaque bloc d'adressage comprend un nombre fixe de blocs de mémoire ; où le circuit d'allocation de mémoire, en réponse à la demande d'allocation, effectue l'allocation d'adresses consécutives suffisantes de l'espace d'adressage dans les blocs d'adressage et d'un nombre suffisant des blocs de mémoire de la mémoire tampon pour stocker la quantité de comptage d'octets de la mémoire, fournit la première adresse de démarrage via le bus d'adressage, et charge les données dans le traducteur d'adresses afin de traduire les données d'adressage en les données d'adressage de mémoire ; où le circuit d'allocation de mémoire, en réponse à la demande d'allocation, effectue la désallocation des blocs d'adressage en partant au niveau du premier bloc d'adressage complet depuis la deuxième adresse de démarrage pour les blocs d'adressage complets de la quantité de comptage d'octets de la mémoire et effectue la désallocation des blocs de mémoire en correspondance avec les blocs d'adressage ayant subi la désallocation ; et où le traducteur d'adresses comprend une mémoire d'adressage indirect servant à stocker les données en vue de la traduction des données d'adressage en les données d'adressage de mémoire, où les données contenues dans la mémoire d'adressage indirect comprennent les données d'adressage de mémoire stockées à des adresses de la mémoire d'adressage indirect correspondant aux données d'adressage. 12. Procédé selon la revendication 11, caractérisé en ce que le circuit d'allocation de mémoire comprend un moyen matériel d'allocation de bloc d'adressage servant à détecter des blocs d'adressage consécutifs en fonction de la valeur de comptage d'octets, puis à fournir la première adresse de démarrage, et servant à suivre un état pour chaque bloc d'adressage, où l'état est l'état libre ou l'état utilisé. 13. Procédé selon la revendication 12, caractérisé en ce que le circuit d'allocation en mémoire comprend en outre un moyen matériel d'allocation de blocs de mémoire servant à détecter des blocs de mémoire libres et à fournir les données d'adressage de mémoire d'un bloc de mémoire qui est un bloc de mémoire libre suivant et servant à suivre un état pour chaque bloc de mémoire, où l'état est un état libre ou un état utilisé. 14. Procédé selon la revendication 13, caractérisé en ce que le circuit d'allocation de mémoire comprend en outre un compteur qui, en réponse à la demande d'allocation, incrémente la première adresse de démarrage afin d'adresser la mémoire d'adressage indirect pour stocker les données d'adressage de mémoire des blocs de mémoire libres suivants et de fournir les adresses des blocs d'adressage consécutifs au moyen matériel d'allocation de bloc d'adressage pour changer l'état des blocs d'adressage respectifs en l'état utilisé ; et où les données d'adressage de mémoire des blocs de mémoire libres suivants sont fournies au moyen matériel d'allocation de blocs de mémoire pour changer l'état des blocs de mémoire respectifs en l'état utilisé. 15. Procédé selon la revendication 14, caractérisé en ce que le compteur, en réponse à la demande de désallocation, incrémente la deuxième adresse de démarrage afin d'adresser la mémoire d'adressage indirect pour qu'elle extrait des données d'adressage de mémoire stockées destinées au moyen matériel d'allocation de bloc de mémoire pour changer l'état des blocs de mémoire respectifs en l'état libre et fournir les adresses à partir de la deuxième adresses de démarrage des blocs d'adressage consécutifs au moyen matériel d'allocation de blocs d'adressage afin de changer l'état des blocs d'adressage respectifs en l'état libre. 16. Procédé selon la revendication 12, caractérisé en ce que le moyen matériel d'allocation de bloc d'adressage comprend en outre une table d'allocation de bloc d'adressage servant à suivre l'état de chaque bloc d'adressage, et un codeur de priorité spécial servant à détecter des blocs d'adressage libres consécutifs dans la table d'allocation de bloc d'adressage. 17. Procédé selon la revendication 16, caractérisé en ce que le codeur de priorité spécial (700) répond à des requêtes pour un nombre de blocs d'adressage requis en indiquant si le nombre requis de blocs d'adressage est disponible, et, dans ce cas, en indiquant le premier bloc d'adressage à la tête de la série des blocs d'adressage requis et disponible. 18. Procédé selon la revendication 14, caractérisé en ce que le moyen matériel d'allocation de blocs de mémoire comprend en outre une table d'allocation de blocs de mémoire servant à suivre l'état de chaque bloc de mémoire, et un codeur de priorité servant à détecter le bloc de mémoire libre suivant dans la table d'allocation de bloc de mémoire et à fournir les données d'adressage de mémoire du bloc de mémoire libre suivant. 19. Procédé selon la revendication 18, caractérisé en ce que le codeur de priorité (600) indique le prochain bloc de mémoire libre s'il existe. 20. Procédé selon la revendication 11, caractérisé en ce que les bits de moindre signification des données d'adressage, représentant l'adressage de la mémoire tampon à l'intérieur d'un bloc de mémoire, contournent le traducteur d'adresses pour adresser la mémoire tampon.