FR 2940474 A1 20100625 FR 0807342 A 20081222 INRIA 103 .FRD 1 Dispositif de commande numérique pour un tableau de transistors PMOS en parallèle L'invention concerne la commande de tensions pour les circuits à faible consommation. Le milieu des circuits électroniques et des composants qui s'y rapportent est un domaine qui a connu un essor particulièrement important. Au départ, les circuits intégrés étaient de taille importante, et étaient constituées de puces ou processeurs plus ou moins importants regroupés sur des cartes imprimées. Les progrès de miniaturisation ont permis d'évoluer vers des puces de la taille d'un microprocesseur qui contient diverses parties ou � IP �. Ces circuits intégrés sont communément appelés � System on Chip � (système sur puce 15 en français) ou SoC. Une conception particulière des SoC, les �Network on Chip � (ou NoC), apportent les mêmes avantages, avec une meilleure gestion des IP et des communications au sein de la puce. Ces circuits intégrés sont particulièrement intéressants car ils permettent, dans une taille 20 très réduite, de renfermer un ensemble de fonctionnalités extrêmement varié. En outre, le fait de placer tous les éléments du circuit sur une seule puce réduit la consommation du système. 25 L'alimentation de ces circuits extrêmement miniaturisé est la cause de nombreux problèmes. En effet, à la finesse de gravure de ces puces, il n'est plus question d'utiliser des systèmes d'alimentation standards. Une solution pour la commande en tension de ces circuits est l'utilisation de tableaux de 30 transistors PMOS en parallèle commandés numériquement.10 Ainsi, en fonction du nombre de transistors activés, la résistance du tableau varie, et la tension fournie au dispositif en aval avec elle. Les logiques de commande de ces tableaux sont jusqu'à maintenant restées 5 rudimentaires, avec principalement des méthodes de rampe avec pente linéaire, communément appelés thermomètres. Cela a pour conséquence des transitions en tension lentes. Ces transitions lentes génèrent en outre des dissipations d'énergies importantes. L'invention vient améliorer la situation. À cet effet, l'invention propose un dispositif de commande numérique pour un tableau de transistors PMOS en parallèle comprenant : 15 - une mémoire de travail pour stocker sous forme numérique des données d'erreur entre une tension cible et une tension de consigne, et des données de commande, ces données étant chacune munie d'un marqueur temporel, - un filtre numérique d'ordre choisi, agencé pour calculer des données d'incrémentation de consigne à partir de données d'erreur dans la mémoire de travail 20 choisies en fonction de données d'erreur en entrée, et agencé pour stocker dans la mémoire de travail lesdites données d'erreur en entrée avec un marqueur temporel correspondant, un calculateur de commande, agencé pour calculer de nouvelles données de commande, à partir des données d'incrémentation de commande et de données de 25 commande dans la mémoire de travail choisies en fonction des données d'erreur en entrée, et pour stocker les nouvelles données de commande dans la mémoire de travail. Ce dispositif est particulièrement intéressant car il permet d'améliorer le temps de transition du tableau de PMOS, ce qui est intéressant à la fois pour le circuit qui est 30 alimenté, et pour les pertes d'énergie qui sont réduites. 10 D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de la description qui suit, tirée d'exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : - la figure 1 représente un schéma général d'un NoC commandé par un dispositif de commande selon l'invention, - la figure 2 représente une vue modulaire du dispositif de commande de la figure 1 ; - la figure 3 représente un mode de réalisation d'un élément du dispositif de la figure 2 ; et - la figure 4 représente un mode de réalisation d'un autre élément du dispositif de la figure 2. Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. En outre, la description détaillée est augmentée de l'annexe A, qui donne la formulation de certaines formules mathématiques mises en oeuvre dans le cadre de l'invention. Cette Annexe est mise à part dans un but de clarification, et pour faciliter les renvois. Elle est partie intégrante de la description, et pourra donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. La figure 1 représente un NoC 2 qui est commandé en tension par un tableau de PMOS 4 et une source de tension 6. Le tableau de PMOS 4 est commandé numériquement par un dispositif de commande 8. Le NoC 2 est représenté par ses caractéristiques électriques extrinsèques, c'est-à-dire qu'il est considéré comme une charge avec une capacité 10, une résistance 12, et une fuite de courant 14 (représentée par un générateur de courant de fuite). 30 La source de tension idéale 6 fournit une tension Vh qui est fournie en une entrée 16 du tableau de PMOS 4 et une entrée 18 du dispositif de commande 8. Le tableau de25 PMOS 4 présente une sortie 20 qui est reliée à une entrée 22 du dispositif 8, et qui alimente le NoC 2 décrit plus haut. Le tableau de PMOS 4 comprend un ensemble de n transistors PMOS disposés en parallèle. Chaque transistor présente une résistance Ri, et est commandé individuellement par une entrée 24 du tableau de PMOS 4 qui reçoit une sortie 26 du dispositif de commande 8. Ainsi, les tensions reçues aux entrées 18 et 22 du dispositif 8 génèrent une commande numérique sur la sortie 26 de ce dispositif, et cette commande permet de commander individuellement chacun des transistors du tableau de PMOS 4, de sorte que la tension Vh reçue à l'entrée 16 est contrôlée par les transistors activés. Comme on le verra plus bas, le dispositif 8 couplé au tableau 4 permettent de commander le NoC 2 en tension entre une tension haute Vhi et une tension basse Vlo. Dans l'exemple décrit ici, l'ensemble des transistors PMOS ont une même résistance Ri. Cependant, dans d'autres modes de réalisation, il serait possible de réaliser des transistors avec des résistances différentes. Comme cela est bien connu, la puissance Joule dissipée par un élément est égale à RI2. Et bien sûr l'énergie Joule dissipée est l'intégrale de cette puissance. Dans le cas d'un circuit numérique, c'est la somme des puissances instantanées multipliées par le pas de temps du circuit selon la formule (1) de l'Annexe A. Il apparaît donc clairement qu'il est crucial pour l'efficacité énergétique du circuit de réaliser des transitions de tension particulièrement rapides, et peu génératrices de pics de courant. 30 C'est ce que permet le dispositif 8. En effet, jusqu'à ce jour, les applications n'étaient pas exigeantes au point que les dissipations thermiques de l'alimentation des puces deviennent un défi aussi conséquent. 25 Aussi, les méthodes de rampe classiques (thermomètres) étaient suffisantes pour ces applications. Ce sont la montée en fréquence des circuits, l'augmentation de densité des puces, et l'inclusion dans des appareils mobiles qui ont fait de la gestion de l'alimentation de ces circuits un poste critique. À ce jour, aucune solution satisfaisante n'a été apportée à ce problème. Tout au plus, des optimisations de tension d'attaque en fonction de la charge de traitement du circuit commandé en tension. L'invention permet de pallier à cela grâce au dispositif de commande 8, qui permet de réduire l'énergie dissipée de plusieurs manières. La figure 2 représente une vue modulaire du dispositif de commande 8 qui explicite le 15 principe de fonctionnement de celui-ci. Le dispositif de commande 8 comprend des convertisseurs analogiques-numériques 30 et 32, un soustracteur 34, un filtre numérique 36, et un calculateur de commande 38. 20 Le convertisseur 30 reçoit l'entrée 18 du dispositif 8 pour convertir la tension VCef cible numériquement. La tension Vref cible est reçue comme entrée à partir d'une boucle externe de niveau supérieur de gestion du NoC. Le convertisseur 32 reçoit l'entrée 22 du dispositif 8 pour convertir la tension de sortie 25 V, du tableau de PMOS 4 (c'est-à-dire la tension de commande du NoC 2) numériquement. Les sorties de convertisseurs 30 et 32 sont reliées au soustracteur 34, de sorte que celui-ci envoie en sortie la différence ek entre ces deux tensions. La différence ek représente 30 l'erreur, c'est-à-dire le saut de tension qui est nécessaire pour amener la tension de commande à sa valeur cible.10 L'indice k indique que cette valeur est prise pour le k-ième échantillon (ou pas de temps). Le filtre numérique 36 reçoit en entrée la différence ek, la tension V, sous forme 5 numérique (ci-après notée Vek), et une information d'intensité AIM à partir d'une entrée 40 du dispositif 8 qui sera décrite avec la figure 3. AIM est une constante spécifiée par l'utilisateur, et décrit une borne maximale sur les sauts de l'intensité chaque fois que le tableau PMOS est actualisé. Le filtre numérique 36 calcule un saut d'incrément qui correspond au nombre de transistors qu'il faut activer ou désactiver pour compenser l'erreur numérique de tension ek. 15 Ce saut d'incrément de la commande est ensuite transmis au calculateur de commande 38 qui le convertit en commande numérique pour commander le tableau de PMOS 4. La figure 3 représente un mode de réalisation particulier du filtre numérique 36. 20 Le filtre numérique comprend un retardateur 42, un multiplicateur 44, un retardateur 46, un soustracteur 48, un multiplicateur 50, un soustracteur 52, et un limiteur 54. Le retardateur 42 reçoit l'entrée 34 du filtre numérique 36. Le retardateur 42 a pour fonction de sortir l'erreur du pas de temps précédent l'entrée reçue. Dans le cas présent, 25 le retardateur 42 renvoie donc l'erreur ek_l. L'erreur ek_1 est transmise au retardateur 46, au multiplicateur 44, et au soustracteur 48. Le retardateur 46 fonctionne comme le retardateur 42, de sorte qu'à la sortie du retardateur 46, on obtient l'erreur ek_2. 30 L'erreur ek_2 est alors transmise au soustracteur 48, qui renvoie en sortie la différence des erreurs ek_1 et ek_2. Cette différence est envoyée au multiplicateur 50. 10 Le multiplicateur 44 et le multiplicateur 50 renvoient leur entrée multipliée par un coefficient fixe. Les sorties des multiplicateurs 44 et 50 sont reliées au soustracteur 52, de sorte que 5 celui-ci retourne en sortie la différence entre le multiple de l'erreur ek_1 et le multiple de la différence entre les erreurs ek_1 et ek_2. La valeur de ce saut (qui représente un nombre de transistors) sera appelée Auk dans ce qui suit. La partie filtrage à proprement parler est donc réalisée par le retardateur 42, le multiplicateur 44, le retardateur 46, le soustracteur 48, le multiplicateur 50, et le soustracteur 52. 15 En sortie du soustracteur, on a donc un filtre numérique d'ordre deux selon la formule (2) de l'Annexe A. Les valeurs des coefficients des multiplicateurs 44 et 50 sont respectivement choisies en fonction des données du NoC 2 et des données du tableau de PMOS 4, selon les 20 formules suivantes (3) et (5) de l'Annexe A. Dans ces formules, les paramètres sont définis comme suit : - wä est la fréquence d'horloge, - ukl est le nombre de transistors du tableau de transistors PMOS qui sont activés au 25 niveau de tension bas, - C est la capacité du NoC, - Ro est la résistance caractéristique des résistances du tableau de transistors PMOS, - RI est la résistance dynamique du NoC au niveau de tension bas, - b est l'inverse de la constante de temps RoC, 30 - RI est l'inverse de la constante de temps R1C, - est une constante d'amortissement choisi dans la plage [A+1/4, A+l/2] avec A défini avec la formule (4) de l'annexe A. 10 Grâce au filtre numérique ainsi réalisé, la convergence vers la tension cible Vref est beaucoup plus rapide, ce qui limite les pertes énergétiques. Ensuite, la valeur Auk est envoyée dans le limiteur 54. Le limiteur 54 vient encore améliorer les performances du filtre numérique 36. En effet, lorsque l'erreur ek est importante, le sauf qui en résulte à la sortie du 10 soustracteur 52 peut avoir une valeur élevée. Il en résulte un saut d'intensité important dans le tableau de PMOS 4, ce qui est défavorable en termes de pertes d'énergie. 15 Le limiteur 54 vient permettre de contrôler ces pertes en bornant la valeur que peut prendre Auk, afin de limiter le saut d'intensité correspondant. Comme les pas de temps sont très courts il vaut mieux dépenser un cycle de plus pour atteindre la tension cible que de dissiper trop d'énergie à cause du filtre numérique. Comme mentionné plus haut, le limiteur 54 reçoit en entrée Vk et AIM. AIM représente le saut d'intensité maximal accepté pour le filtre numérique 36 afin de limiter les pertes énergétiques. 25 Dans l'exemple décrit ici, la valeur de AIM est fixe et égale à (Vhi-Vlo)/2Ro. Cela permet d'obtenir un courant assez continu avec des pertes énergétiques diminuées. Cela se transcrit en un bornage des valeurs de Auk selon la formule (6) de l'annexe A, où Coi est un coefficient de marge de variation de courant. Ainsi, en sortie du filtre numérique 36, on obtient une valeur d'incrémentation de transistor bornée Auk(b). 20 30 Le calculateur de commande 38 va prendre cette valeur d'incrémentation et la transformer en commande à proprement parler. La figure 4 représente un mode de réalisation du calculateur de commande 38. Le calculateur de commande 38 comprend un arrondisseur 56, un additionneur 58, un retardateur 62 et un limiteur 60. L'arrondisseur 56 reçoit la sortie du filtre numérique 36. En effet, la valeur d'incrémentation bornée qui en sort n'est pas nécessairement entière, or on va activer ou désactiver un nombre entier de transistors. L'arrondisseur 56 fonctionne comme une fonction valeur entière classique, en 15 arrondissant à l'entier supérieur si la partie décimale est supérieure ou égale à 0,5 et en arrondissant à l'entier inférieur sinon. On obtient donc une sortie AUk(b,a), c'est-à-dire bornée et arrondie. 20 La sortie de l'arrondisseur 56 est reliée à l'additionneur 58, qui reçoit également la sortie du retardateur 62. Le retardateur 62 envoie à l'additionneur 58 la commande du pas de temps précédent. Ainsi, à la sortie de l'additionneur 58, on obtient une valeur de commande 25 Uk=Uk-1+ LUk(b,a). Cependant, il se peut que la valeur obtenue pour uk dépasse le nombre de transistors du tableau de PMOS 4. 30 La valeur uk est donc envoyée dans le limiteur 60 en sortie de l'additionneur 58. Comme pour le limiteur 54, le limiteur 60 vient borner la valeur absolue de uk pour qu'elle n'excède pas le nombre total de transistors du tableau de transistors PMOS. Enfin, en sortie, la commande Uk est transmise sur la sortie 26 vers l'entrée 24 du tableau de PMOS 2. Dans ce qui précède, certaines données sont stockées en mémoire de travail, ou tirées de celle-ci. A titre d'exemple, on mentionnera les données issues des retardateurs, ou les données de limite des limiteurs (comme IM par exemple). Cette mémoire peut être mise en oeuvre de plusieurs manières. Selon une première variante, chaque élément qui fait appel à des données stockées ou à stocker peut disposer d'un espace de mémoire qui lui est propre. Selon une deuxième variante, un ensemble de mémoires peut être partagé entre plusieurs éléments. Dans ce cas, on pourra prévoir une mémoire pour chaque groupe d'éléments. Par exemple, on pourra alors avoir une mémoire pour les retardateurs 42 et 46, une mémoire pour les données du limiteur 54, une mémoire pour le retardateur 62 et une mémoire pour les données de l'arrondisseur 56 et du limiteur 60. Enfin, selon une troisième variante, une mémoire unique pourra être partagée par tous les éléments du dispositif 8. L'invention n'est pas limitée au mode de réalisation exemplaire décrit ci-dessus. Elle 25 couvre notamment toutes les variantes couvertes par le jeu de revendications qui suit, et notamment avec les caractéristiques suivantes : - le filtre numérique peut être d'ordre supérieur à 2, et avec des constantes différentes ; - les limiteurs peuvent borner différemment les différents signaux selon qu'ils sont positifs où négatifs, et non pas seulement borner la valeur absolue de ces signaux ; 30 - l'arrondisseur peut être omis dans certains cas ; - il serait possible d'appeler l'arrondisseur avec la commande en sortie du limiteur. 1 0 ANNEXE A = Et z x t (1) Kl(ek-1 ek-2' (2) A uiab12z 2 K2 = [Au, c"R vhrvc 1 1 (4) (5) (6) Revendications1. Dispositif de commande numérique pour un tableau de transistors PMOS en parallèle comprenant : - une mémoire de travail pour stocker sous forme numérique des données d'erreur (ek) entre une tension cible et une tension de consigne, et des données de commande (Uk), ces données étant chacune munie d'un marqueur temporel, un filtre numérique d'ordre choisi (36), agencé pour calculer des données d'incrémentation de consigne (Auk) à partir de données d'erreur dans la mémoire de travail choisies en fonction de données d'erreur en entrée, et agencé pour stocker dans la mémoire de travail lesdites données d'erreur en entrée avec un marqueur temporel correspondant, un calculateur de commande (38), agencé pour calculer de nouvelles données de commande (uk), à partir des données d'incrémentation de commande (Auk) et de données de commande dans la mémoire de travail choisies en fonction des données d'erreur en entrée, et pour stocker les nouvelles données de commande dans la mémoire de travail. 2. Dispositif selon la revendication 1, dans lequel le filtre numérique (36) comprend en outre un limiteur (54), agencé pour borner les données d'incrémentation de commande en fonction de données de limite d'intensité (AIM). 3. Dispositif selon la revendication 1 ou 2, dans lequel le calculateur de commande (38) comprend un limiteur (60), agencé pour borner les données de commande en fonction de données de limite de commande. 4. Dispositif selon l'une des revendications précédentes, dans lequel le filtre numérique est d'ordre supérieur ou égal à deux, dont les paramètres sont fixés en 25 fonction d'une charge en aval du tableau de transistors PMOS.