Brevet FR3044188A1 — publié le 20170526

LIMITEUR DE DEBIT DE TYPE "SEAU A JETONS" Domaine technique L'invention est relative aux réseaux sur puce et plus particulièrement à des limiteurs de 5 débit de type « seau à jetons » utilisables pour injecter des flots de données dans le réseau sur puce au niveau de routeurs. Arrière-plan Un régulateur ou limiteur de débit de type « seau à jetons » fonctionne de la manière suivante. Un compteur de jetons, représentant le seau, est incrémenté à intervalles 10 réguliers. Le compte de jetons sature à un seuil (seau plein). A l'arrivée d'un paquet de données, la taille du paquet est comparée au compte de jetons dans le seau. Si le compte est suffisant, le paquet est émis et les jetons correspondants sont soustraits du seau. Dans le cas contraire, le paquet est rejeté ou attend que le compte de jetons soit atteint. Un tel limiteur de débit peut conformer un flot de données à un profil dit a-p (sigma- 15 rho). Le paramètre p correspond à un débit moyen, souvent une valeur normalisée comprise entre 0 et 1 exprimant une fraction de la bande passante nominale du lien de transmission. Ce paramètre p correspond au débit de remplissage du seau à jetons. Le paramètre a, souvent désigné par le terme anglais « burstiness », exprime l'irrégularité du débit tolérée pendant la transmission. Ce paramètre a correspond à la capacité du 20 seau. Plus spécifiquement, la taille d'un paquet est généralement exprimée flits (de l'anglais « FLow diglT »), un flit correspondant par exemple à un mot transmissible en un cycle d'une horloge cadençant le lien de transmission. Alors, un flot conforme à un profil a-p est tel que le nombre de flits transmis dans un intervalle At quelconque soit inférieur ou 25 égal à p-At + a. Si le paramètre p est une valeur sans dimension comprise entre 0 et 1, la valeur At est le nombre de flits transmissibles en continu dans l'intervalle At, ou tout simplement le nombre de cycles d'horloge contenus dans l'intervalle At. L'incrémentation du compteur de jetons est généralement basée sur l'horloge de transmission. Ainsi, lorsque le compteur est incrémenté continûment, c'est-à-dire à 30 chaque cycle d'horloge, on obtient p = 1. En divisant la fréquence d'horloge on divise la fréquence d'incrémentation du compteur de jetons, produisant des valeurs de p plus 3044188 2 petites, par exemple 1/2, 1/3, 1/4, 1/5, etc., pour des facteurs de division respectifs de 2, 3, 4, 5... Le degré d'ajustement ainsi obtenu pour le paramètre p peut être insuffisant dans certaines applications. Résumé On prévoit de façon générale un circuit de limitation de débit d'une transmission de données selon la technique du seau à jetons, comprenant un compteur de jetons configuré pour être incrémenté à une cadence déterminant le débit moyen de la transmission ; un diviseur de fréquence connecté pour commander l'incrémentation du compteur de jetons à partir d'une horloge, le diviseur ayant un taux de division entier ; et un modulateur configuré pour alterner le taux de division entre deux entiers différents de manière à faire tendre le débit moyen résultant vers un débit programmé entre deux débits correspondant respectivement aux deux entiers. Le modulateur peut comprendre un compteur à débordement connecté pour être incrémenté à la fréquence d'horloge par un incrément fixe basé sur l'écart entre le débit programmé et le débit déterminé par un taux de division de base choisi parmi les deux entiers, le compteur à débordement étant connecté au diviseur pour alterner le taux de division à chaque débordement. Le diviseur de fréquence peut être configuré pour appliquer par défaut le plus petit des 20 deux entiers comme taux de division et augmenter ponctuellement le taux de division à chaque débordement du compteur à débordement. Le diviseur de fréquence peut comprendre un compteur auxiliaire connecté pour être incrémenté à la fréquence d'horloge et pour compter jusqu'au plus petit des deux entiers, le compteur à débordement étant connecté pour faire sauter une incrémentation 25 au compteur auxiliaire à chaque débordement. Le débit programmé peut être représenté par un débit normalisé compris entre 0 et 1. Le taux de division de base peut alors être choisi égal à la partie entière du rapport entre l'incrément du compteur de jetons et le débit normalisé, et l'incrément du compteur à débordement peut être basé sur la partie fractionnaire du rapport entre l'incrément du 30 compteur de jetons et le débit normalisé. L'incrément du compteur à débordement est exprimé par la relation : 3044188 3 2k{c/p}-p/c arrondie à l'entier inférieur ou supérieur, où p est le débit normalisé, c l'incrément du compteur de jetons, k le nombre de bits du compteur à débordement, et {} désigne la partie fractionnaire. 5 On prévoit également un procédé de limitation de débit d'une transmission de données selon la technique du seau à jetons, comprenant les étapes consistant à incrémenter un compteur de jetons à des intervalles consécutifs dont la longueur est variable entre deux valeurs discrètes multiples de la période d'une horloge ; choisir les deux valeurs discrètes en fonction d'un débit de transmission programmé ; et appliquer les deux 10 valeurs discrètes au compteur de jetons selon des fréquences respectives choisies pour que la cadence moyenne d'incrémentation du compteur de jetons corresponde au débit de transmission programmé. Le procédé peut comprendre les étapes consistant à appliquer par défaut une première des deux valeurs discrètes comme intervalle d'incrémentation du compteur de jetons ; 15 incrémenter un compteur à débordement à la fréquence de l'horloge par un incrément basé sur l'écart entre le débit programmé et le débit correspondant à la première valeur discrète ; et appliquer ponctuellement au compteur de jetons la deuxième valeur discrète comme intervalle d'incrémentation à chaque débordement du compteur à débordement. Description sommaire des dessins Des modes de réalisation seront exposés dans la description suivante, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 est un schéma-bloc d'un exemple de réalisation d'un limiteur de débit de type « seau à jetons » ; - la figure 2 est un schéma de principe d'un mode de réalisation de limiteur de débit offrant un ajustement précis ; - la figure 3 est un schéma-bloc d'un mode de réalisation détaillé d'un limiteur de débit basé sur le principe de la figure 2 ; - les figures 4A à 4D sont des graphes montrant l'évolution de compteurs du limiteur de la figure 3, dans le cadre d'un exemple ; 3044188 4 - la figure 5 est un graphe illustrant une évolution à long terme du nombre de données transmises dans le cadre de l'exemple des figures 4 ; et - la figure 6 représente schématiquement un système d'émission de plusieurs flots de données concurrents sur un lien réseau partagé, dans lequel des limiteurs de 5 débit peuvent être mis en oeuvre. Description de modes de réalisation Dans la figure 1, un limiteur de débit de type « seau à jetons » comprend généralement un compteur de jetons 10 qui est connecté pour être incrémenté au rythme d'impulsions INC qui lui arrivent sur une entrée d'horloge. Le contenu du compteur de jetons est 10 limité à une valeur maximale définie par un paramètre b, souvent programmable dans un registre. L'incrément à appliquer peut être un entier c supérieur ou égal à 1, programmable dans un autre registre. Ainsi, à chaque impulsion INC, le contenu du compteur 10 augmente de la valeur c, jusqu'à la saturation à la valeur b. Les impulsions INC sont fournies à partir d'une horloge CK par un diviseur de 15 fréquence 12. Le taux de division N peut être programmé dans un registre. Le diviseur 12 est généralement sous la forme d'un compteur conçu pour être réinitialisé aussitôt que son contenu atteint N. Ainsi, le diviseur 12 produit une impulsion INC toutes les N impulsions de l'horloge CK. A chaque fois qu'un paquet de données est disponible à l'émission, la taille du paquet 20 est comparée au contenu du compteur 10. Si le nombre de flits du paquet est inférieur ou égal au contenu du compteur, le paquet est transmis et le compteur est décrémenté de la taille du paquet. Dans le cas contraire, le paquet peut être mis en attente et le compteur n'est pas modifié. Un tel limiteur de débit permet de programmer des débits normalisés selon des valeurs 25 discrètes p = c/N, où c et N sont des entiers tels que c REVENDICATIONS1. Circuit de limitation de débit d'une transmission de données selon la technique du seau à jetons, comprenant : - un compteur de jetons (10) configuré pour être incrémenté à une cadence déterminant le débit moyen de la transmission ; - un diviseur de fréquence (12') connecté pour commander l'incrémentation du compteur de jetons à partir d'une horloge (CK), le diviseur ayant un taux de division entier (N) ; et - un modulateur (14) configuré pour alterner le taux de division entre deux entiers différents (N, N+1) de manière à faire tendre le débit moyen résultant vers un débit programmé entre deux débits correspondant respectivement aux deux entiers. 2. Circuit selon la revendication 1, dans lequel le modulateur comprend un compteur à débordement (16) connecté pour être incrémenté à la fréquence d'horloge (CK) par un incrément fixe (a) basé sur l'écart entre le débit programmé et le débit déterminé par un taux de division de base choisi parmi les deux entiers (N, N+1), le compteur à débordement étant connecté au diviseur pour alterner le taux de division à chaque débordement. 3. Circuit selon la revendication 2, dans lequel le diviseur de fréquence (12') est configuré pour appliquer par défaut le plus petit (N) des deux entiers comme taux de division et augmenter ponctuellement le taux de division à chaque débordement du compteur à débordement. 4. Circuit selon la revendication 3, dans lequel le diviseur de fréquence comprend un compteur auxiliaire (12) connecté pour être incrémenté à la fréquence d'horloge (CK) et pour compter jusqu'au plus petit des deux entiers (N), le compteur à débordement étant connecté pour faire sauter une incrémentation au compteur auxiliaire à chaque débordement. 5. Circuit selon la revendication 2, dans lequel : - le débit programmé est représenté par un débit normalisé (p) compris entre 0 et 1, 3044188 11 - le taux de division de base (N) est choisi égal à la partie entière du rapport entre l'incrément (c) du compteur de jetons et le débit normalisé, et - l'incrément (a) du compteur à débordement est basé sur la partie fractionnaire du rapport entre l'incrément du compteur de jetons et le débit normalisé. 5 6. Circuit selon la revendication 5, dans lequel l'incrément du compteur à débordement est exprimé par la relation : 2k{c/p}-p/c arrondie à l'entier inférieur ou supérieur, où p est le débit normalisé, c l'incrément du compteur de jetons, k le nombre de bits du compteur 10 à débordement, et {} désigne la partie fractionnaire. 7. Procédé de limitation de débit d'une transmission de données selon la technique du seau à jetons, comprenant les étapes suivantes : - incrémenter un compteur de jetons (10) à des intervalles consécutifs dont la longueur est variable entre deux valeurs discrètes (N, N+1) multiples de la 15 période d'une horloge (CK) ; - choisir les deux valeurs discrètes en fonction d'un débit de transmission programmé ; et - appliquer les deux valeurs discrètes au compteur de jetons selon des fréquences respectives choisies pour que la cadence moyenne 20 d'incrémentation du compteur de jetons corresponde au débit de transmission programmé. 8. Procédé selon la revendication 7, comprenant les étapes suivantes : - appliquer par défaut une première des deux valeurs discrètes (N) comme intervalle d'incrémentation du compteur de jetons ; 25 - incrémenter un compteur à débordement (16) à la fréquence de l'horloge (CK) par un incrément (a) basé sur l'écart entre le débit programmé et le débit correspondant à la première valeur discrète ; et 3044188 12 - appliquer ponctuellement au compteur de jetons la deuxième valeur discrète (N+1) comme intervalle d'incrémentation à chaque débordement du compteur à débordement.