FR 2943806 A1 20101001 FR 0901576 A 20090331 INRIA 106.FRD 1 Dispositif de commande d'alimentation d'un calculateur L'invention concerne un dispositif de commande d'alimentation d'un calculateur. 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és 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. Ces circuits intégrés sont particulièrement intéressants car ils permettent, dans une taille très réduite, de renfermer un ensemble de fonctionnalités extrêmement variées. 20 En outre, le fait de placer tous les éléments du circuit sur une seule puce réduit la consommation du système. Pour réduire la consommation des puces, des travaux ont été développés pour ajuster, avant l'exécution d'une charge, la tension et la fréquence opérationnelles . Cependant, 25 cette adaptation n'est pas dynamique, c'est-à-dire que la tension et la fréquence ne varient pas pendant le traitement d'une tâche donnée. Cela n'est pas adapté, notamment lorsque la charge est mal évaluée, ou lorsqu'elle est susceptible de varier. L'invention vient améliorer la situation. A cet effet, l'invention propose un dispositif de commande d'un calculateur propre à être alimenté sur plusieurs niveaux de tension, comprenant un contrôleur agencé pour 30 recevoir des données de charge, d'échéance, et de vitesse instantanée pour ledit calculateur, pour calculer une vitesse de référence qui permet audit calculateur d'exécuter une quantité de calculs tirée des données de charge dans une durée tirée des données d'échéance, et pour calculer un niveau de tension et une fréquence opérationnelle de commande pour ledit calculateur à partir de la vitesse de référence. Dans ce dispositif, au moins un élément parmi la vitesse de référence et la fréquence opérationnelle étant calculé à partir des données de vitesse instantanée. Ce dispositif est particulièrement avantageux car il permet d'émettre des commandes d'alimentation qui sont adaptées aux besoins logiques émis par le système d'exploitation qui utilise le calculateur, tout en optimisant au maximum la consommation énergétique du calculateur. 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 une vue générique d'un dispositif de commande d'alimentation selon l'invention, - la figure 2 représente un diagramme schématique d'une boucle de fonctionnement du dispositif de la figure 1, - la figure 3 représente un premier mode de réalisation en variante du dispositif de la figure 1, - la figure 4 représente un deuxième mode de réalisation en variante du dispositif de la figure 1, - la figure 5 représente un troisième mode de réalisation en variante du dispositif de la figure 1, et - la figure 6 représente un quatrième mode de réalisation en variante du dispositif de la figure 1.30 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. L'invention trouve une application particulière dans les circuits CMOS. Dans ces circuits, trois sources principales de consommation d'énergie existent : la commutation des portes électriques du circuit, les courants de court-circuit, et - les courants de fuite. La puissance instantanée d'un circuit donné peut donc être vue comme la somme de ces trois puissances, ce qui est reflété par la formule (10) de l'Annexe A. Cette formule fait apparaître le rôle prépondérant de la tension d'alimentation V du circuit. Une solution pour réduire la consommation est donc de baisser la tension. Cependant, cela a également pour conséquence d'augmenter fortement le temps de propagation des portes du circuit, ce qui baisse donc la vitesse d'exécution des tâches 25 par le circuit. Cela signifie qu'en fonction du temps critique, qui est le temps maximal qu'une instruction donnée peut mettre pour être traitée par le circuit, il faudra baisser la fréquence du circuit, de manière à assurer que toutes les instructions sont exécutées 30 avant le cycle d'horloge suivant. Dans les travaux antérieurs, il n'existe pas de gestion automatisée de ce type d'ajustement pour obtenir des économies d'énergie. On a représenté sur la figure 1 un dispositif de commande d'alimentation 2 selon l'invention. Le dispositif 2 commande l'alimentation d'un calculateur 4. Par calculateur, on entend tout système électronique susceptible de réaliser des opérations logiques à fait de traitement de données ou de calcul. Par exemple, cela inclut de manière non limitatives les processeurs, les microprocesseurs, les puces SoC, les puces programmables de type FPGA et autres. Comme cela est représenté sur la figure 1, le dispositif de commande d'alimentation 2 reçoit des données Ci et Ni d'une part et des données w d'autre part. Les données Ci et Ni représentent respectivement des données de charge pour le calculateur 4, et des données d'échéance pour les données de charge. Les données Ci et Ni sont reçues par le dispositif de commande d'alimentation 2 depuis une couche logique de plus haut niveau, par exemple depuis le système d'exploitation qui exploite le calculateur 4. Les données w qui sont reçues par le dispositif de commande d'alimentation 2 représentent la vitesse de traitement opérationnelle du calculateur 4. Cette vitesse de traitement opérationnelle est utilisée par le dispositif de commande d'alimentation 2 comme information de rétroaction pour éviter toute dérive par rapport aux consignes qu'il émet. Le calculateur 4 peut être commandé en tension et en fréquence. En fait, le calculateur 4 peut opérer à différents niveaux de tension, à chaque niveau de tension correspondant une plage de fréquences opérationnelles possibles. Ce niveau de tension V_lvl et la fréquence opérationnelle f op sont des sorties du dispositif de commande d'alimentation 2. La vitesse de traitement (dont sont issues les données w) et la puissance consommée par le calculateur 4 découlent de la fréquence opérationnelle f op utilisée ainsi que de la tension d'alimentation V_lvl (ou niveau d'alimentation) du calculateur 4, comme cela a été vu avec l'équation 10. Le calculateur 4 opère par cycles d'horloge commandés par la fréquence opérationnelle f op. Le dispositif de commande d'alimentation 2 fonctionne de manière similaire. Le dispositif de commande d'alimentation 2 fonctionne par période de temps Ts, chaque période correspondant à la durée entre deux calculs de commande successifs. La période Ts est d'une manière générale de l'ordre de plusieurs cycles d'horloge du calculateur 4. En effet, il serait peu efficace de contrôler l'alimentation du calculateur 4 à chaque cycle d'horloge. Entre deux périodes, le dispositif de commande 2 émet les commandes de niveau de tension et de fréquence opérationnelles calculées à la période précédente. La période Ts du dispositif de commande d'alimentation 2 peut être un paramètre fixe qui est choisi en fonction du calculateur 4. Cette période peut aussi être adaptée dynamiquement, c'est-à-dire qu'elle peut être fixée à un multiple de la durée d'un cycle du calculateur 4. Dans l'exemple décrit ici, le multiplicateur a pour valeur '10' (dix). Cependant, cette valeur pourrait être fixée à des multiples supérieurs. Ainsi, à chaque période de calcul, le dispositif de commande d'alimentation 2 analyse les données Ci, Ni, et w. et retourne en sortie les données f op et V_lvl au calculateur 4. On notera que, dans l'exemple décrit ici, le dispositif de commande d'alimentation 2 envoie des données de commande d'alimentation, et pas l'alimentation en elle-même. -D La partie du circuit chargée d'alimenter le calculateur 4 sur la base des données de commande issue du dispositif de commande d'alimentation 2 n'est pas abordée ici. La figure 2 représente une boucle de fonctionnement du dispositif de commande d'alimentation 2. Comme on l'a vu plus haut, le dispositif de commande d'alimentation 2 fonctionne par périodes de calcul. La boucle de fonctionnement du dispositif de commande d'alimentation 2 commence donc par une opération 20 dans laquelle les données Ci, Ni et w qui vont servir sont reçues. Ensuite, dans une opération 30, le dispositif de commande d'alimentation 2 calcule une vitesse de référence w ref. Les travaux de la Demanderesse ont révélé que, pour minimiser la consommation d'énergie du calculateur 4 pour une charge de traitement donnée qui doit être réalisée dans une durée donnée, le paramètre de fonctionnement du calculateur 4 le plus crucial à contrôler est le niveau de tension. Ces travaux ont également révélé qu'il est dangereux de trop baisser la tension car il y a des risques de ne pas finir la charge de calcul à l'échéance. Le dispositif de commande d'alimentation 2 va donc mettre en oeuvre une commande dynamique de l'alimentation du calculateur 4 de manière à respecter les consignes suivantes : - finir la charge de calcul avant l'échéance, et minimiser au maximum la tension utilisée pendant ce calcul. Pour cela, le dispositif de commande d'alimentation 2 commence à chaque période par calculer quelle est la vitesse de traitement � moyenne � que devrait avoir le calculateur 4 pour finir à l'échéance désignée par les données Ni la charge de calcul désignée par les données Ci. A Ensuite, cette vitesse moyenne est optimisée d'un point de vue consommation énergétique pour obtenir une vitesse de référence w_ref. La vitesse moyenne est ici appelée delta. Pour calculer la vitesse delta, il faut appliquer l'équation 20. Comme le montre l'équation 20, la vitesse moyenne est la quantité de calcul qui reste à traiter, c'est-à-dire la charge tirée des données Ci moins la quantité de calcul qui a déjà été traitée, c'est-à-dire la somme des vitesses instantanées w reçues multipliées par le pas de temps du dispositif de commande d'alimentation 2, divisée par le temps Li qui reste avant l'échéance, qui est désignée par les données Ni. De fait, l'équation 20 revient à écrire que la vitesse moyenne à avoir est la quantité de données à calculer moins la quantité déjà calculée, le tout divisé par le temps restant. Les équations 30 et 32 montrent l'application de l'équation 20 au cas particulier du fonctionnement par périodes du dispositif d'alimentation 2. Une fois cette vitesse moyenne calculée, le dispositif de commande d'alimentation 2 va déterminer la vitesse de référence w ref. Le principe de la vitesse de référence est de constater qu'il est avantageux de fonctionner à fréquence maximale pour un niveau de tension donné, pour pouvoir descendre de niveau de tension le plus tôt possible. 25 Ainsi, une fois la vitesse moyenne delta calculée, le dispositif de commande d'alimentation 2 détermine si cette vitesse correspond à la plage de fréquences du niveau de tension établi à la période précédente. Si c'est le cas, il détermine si cette plage correspond au niveau de tension le plus bas. Si c'est le cas, alors w_ref reçoit delta. Sinon, alors w ref reçoit la fréquence maximale de cette plage. 30 Si la vitesse delta ne correspond pas à la plage de fréquences du niveau de tension établi à la période précédente, le dispositif de commande d'alimentation 2 détermine le niveau de tension qui correspond à la vitesse moyenne delta. Cela peut par exemple être fait par comparaisons successives de la vitesse moyenne delta avec la vitesse maximum de chaque niveau de tension décroissant à partir du niveau le plus haut. Dans ce cas, le niveau de tension approprié est celui pour lequel la vitesse moyenne 10 delta est juste inférieure à la vitesse maximum, et supérieure à la vitesse maximum du niveau de tension suivant. Bien sûr, de nombreuses autres méthodes peuvent être mises en oeuvre pour déterminer le niveau de tension auquel correspond la vitesse moyenne delta. Une fois ce niveau de tension déterminé, le dispositif de commande d'alimentation 2 procède de manière identique à ce qui a été décrit ci-dessus pour calculer la valeur de la vitesse de référence w ref. 20 Ensuite, dans une opération 40, le dispositif de commande d'alimentation 2 calcule la fréquence opérationnelle f op qui correspond à la vitesse de référence w ref, et en déduit le niveau de tension V_lvl correspondant. Le calcul de la fréquence opération f op à partir de la vitesse de référence w ref permet 25 de s'assurer que le calculateur 4 fonctionnera le minimum de temps possible à une tension élevée pour l'exécution de la charge de calcul désignée par les données Ci. Dans le mode de réalisation de la figure 1, le dispositif de commande d'alimentation 2 utilise les données w pour calculer la fréquence opérationnelle f op, en utilisant un 30 système d'ordre 1, selon les équations 40 et 42. 15 L'équation 40 montre le calcul de � l'erreur � entre la vitesse de référence w_ref et la vitesse instantanée w reçue du calculateur 4, et l'équation 42 montre comment cette erreur est utilisée pour calculer la fréquence opérationnelle f op du pas de temps suivant. On notera que Ts représente la période du dispositif de commande d'alimentation 2, et K est un gain. La figure 3 représente un mode de réalisation en variante du dispositif de commande 10 d'alimentation 2. Dans ce mode de réalisation, le calcul de la vitesse de référence w ref est séparé de celui de la fréquence opérationnelle f op et du niveau de tension V_lvl. 15 Le dispositif de commande d'alimentation 2 comporte ainsi une unité de calcul de vitesse de référence 6 et une unité de calcul de commande 8. Comme cela apparaît sur les dessins, l'unité de calcul de vitesse de référence 6 reçoit les données Ci, Ni et w, et retourne la vitesse de référence w_ref Pour sa part, l'unité de calcul de commande 8 reçoit la vitesse de référence w_ref et les données w, et retourne en sortie les données de fréquence opérationnelle f op et de niveau de tension V lvl. 25 Dans l'exemple décrit ici, le calculateur 4 est commandé sur deux niveaux de tension, respectivement nommés Vlo (le plus bas) et Vhi (le plus haut). Ici, la partie de l'opération 30 qui détermine la vitesse w_ref revient à comparer la vitesse moyenne delta à la valeur maximale de la fréquence pour le niveau de tension 30 Vlo. Si delta est supérieur à cette valeur, alors w_ref reçoit la valeur maximale de fréquence du niveau Vhi, et sinon w_ref reçoit delta. 20 Le fait de boucler les données w à la fois au niveau de l'unité de calcul de vitesse de référence 6 et au niveau de l'unité de calcul de commande 8 permet d'être plus efficace lorsque le nombre de cycles d'horloge utilisés par l'unité de calcul de vitesse de référence 6 pour déterminer la vitesse de référence w_ref est très élevé. L'unité de calcul de commande 8 peut donc utiliser les données les plus récentes pour établir la fréquence opérationnelle f op et le niveau de tension V_lvl, ce qui assure de meilleures performances. 10 Le dispositif de commande d'alimentation représenté sur la figure 4 représente une variante du dispositif de la figure 3 dans lequel les données w sont uniquement reçues par l'unité de calcul de vitesse de référence 6, et sont transmises à l'unité de calcul de commande 8. 15 Ce mode de réalisation est potentiellement moins performant car l'unité de calcul de commande 8 peut fonctionner avec des données w un peu moins récentes que dans le cas de la figure 3. Cependant, ce mode de réalisation présente l'avantage d'être plus simple à fabriquer et à mettre en oeuvre. 20 Le dispositif de commande d'alimentation représenté sur la figure 5 représente une variante encore plus simplifiée du dispositif de commande de la figure 3, dans lequel les données de vitesse instantanée w ne sont transmises qu'à l'unité de calcul de vitesse de référence 6, l'unité de calcul de commande 8 ne recevant ici que les données de vitesse de référence w_ref. 25 Dans ce cas, l'opération 40 est simplifiée grandement, puisque la fréquence opérationnelle f op est fixée avec la valeur w_ref, et le niveau de tension V_lvl directement déduit de cette valeur. 30 Ce mode de réalisation offre des performances encore un peu plus faibles en termes énergétiques. En revanche, il permet une fabrication et une mise en oeuvre d'une simplicité remarquable.5 Enfin, le mode de réalisation représenté sur la figure 6 est une variante dans laquelle seule l'unité de calcul de commande 8 reçoit les données de vitesse instantanée w. Dans ce cas, l'unité (le calcul de vitesse de référence 6 ne reçoit que les données de 5 vitesse de référence w_ref qu'elle a précédemment calculé. Pour éviter toute dérive, le calcul de la fréquence opérationnelle f op de l'opération 40 mise en oeuvre par l'unité de calcul de commande 8 est rendu plus robuste, avec l'emploi d'un système d'ordre 2. Pour cela, une première erreur est calculée selon la formule 50, et cette erreur est intégrée sur la période de l'unité de calcul de vitesse de référence 6 selon la formule 52. Ensuite, la fréquence opérationnelle f op est déterminée au moyen de la formule 54, 15 dans laquelle i représente la constante de temps du système une fois bouclé, et K est le gain. On comprend bien au vu de ce qui précède que l'invention concerne la mise en oeuvre d'une commande d'alimentation d'un système électronique qui effectue des calculs. Dans les exemples décrits, cette commande est rendue dynamique et adaptative grâce à l'utilisation de systèmes d'ordre 1 et 2. Des systèmes d'ordre supérieur pourraient également être utilisés. 25 En outre, le dispositif de commande d'alimentation 2 a été décrit ici comme un élément externe au calculateur 4, et distinct de celui-ci. Cela signifie que les calculs qui sont mis en oeuvre pour calculer la commande d'alimentation ne sont pas réalisés au sein du calculateur 4. 30 Cependant, dans certaines applications, le dispositif de commande d'alimentation 2 pourrait être intégré au calculateur 4, et la mise en oeuvre des calculs de la commande 10 20 d'alimentation pourraient alors être réalisés par le calculateur 4, la commande tenant compte de cette surcharge de calcul. En outre, la Demanderesse a décrit un dispositif de commande d'alimentation dans 5 lequel le calculateur 4 peut être alimenté sur plusieurs niveaux. Un exemple particulier a été décrit pour une alimentation à deux niveaux de tension. Dans ces exemples, pour déterminer un niveau de tension approprié pour la vitesse moyenne delta, il est décrit une boucle de montée/descente de niveau de tension pour 10 déterminer la plage de fréquences adaptée. D'autres méthodes pourraient être mises en oeuvre, comme le stockage d'une table des plages de fréquences par niveau de tension, et l'accès à cette table pour en tirer le niveau de tension adapté. 15 10 15 13 ANNEXE A P 'Portes 1 cc ~ Pfuète Kportes' fcik-.V s(t) = ci(l)ùf (t)d` 1 { fl(tk) = fl(tkù1) T T2.w(tk) 3(tk+1) = L,(.k) s(k) = wraf (k) ù w(k) f0 (k)=fo.,(kù1) Ts.K.E(k) e(k) = wraf (kt ù w(k) E(k) =E(k ù 1)+Ts.s(k) fQe(k)= fQp(kù 1) E(kù 1) .E(k) Kfui,,. V (10) (20) (30) (32) (40) (42) (50) (52) (54) KT cc' c.k1 20 Revendications1. Dispositif de commande d'un calculateur (4) propre à être alimenté sur plusieurs niveaux de tension, comprenant un contrôleur (2) agencé pour recevoir des données de charge (Ci), d'échéance (Ni), et de vitesse instantanée (w) pour ledit calculateur (4), pour calculer une vitesse de référence (w_ref) qui permet audit calculateur d'exécuter une quantité de calculs tirée des données de charge (Ci) dans une durée tirée des données d'échéance (Ni), et pour calculer un niveau de tension (V_lvl) et une fréquence opérationnelle (f op) de commande pour ledit calculateur à partir de la vitesse de référence, au moins un élément parmi la vitesse de référence (w_ref) et la fréquence opérationnelle (f op) étant calculé à partir des données de vitesse instantanée (w). 2. Dispositif selon la revendication 1, dans lequel le contrôleur comprend une unité de calcul de vitesse de référence (6) pour calculer la vitesse de référence et une unité de calcul de commande pour calculer la fréquence opérationnelle et le niveau de tension. 3. Dispositif selon la revendication 2, dans lequel l'unité de calcul de commande (8) calcule la fréquence opérationnelle (f op) à partir des données de vitesse instantanée (w) avec un système d'ordre 1. 4. Dispositif selon la revendication 3, dans lequel l'unité de calcul de vitesse de référence (6) calcule la vitesse de référence (w_ref) à partir des données de vitesse instantanée (w). 5. Dispositif selon la revendication 4, dans lequel les données de vitesse instantanée (w) sont transmises à l'unité de calcul de commande (8) par l'unité 25 de calcul de vitesse de référence (6). 6. Dispositif selon la revendication 2, dans lequel l'unité de calcul de commande (8) calcule la fréquence opérationnelle (f op) à partir des données de vitesse instantanée (w) avec un système d'ordre 2 PLI rl'e''Y') e 14