PROCEDE DE COMMANDE D ' UN CIRCUIT ELECTRONIQUE
La présente demande de brevet revendique la priorité de la demande de brevet français FR13/58541 qui sera considérée comme faisant partie intégrante de la présente description.
Domaine
La présente demande concerne un procédé de commande de d'un circuit électronique et un système de commande d'un circuit électronique .
Exposé de l'art antérieur
Il existe des procédés permettant de réduire la puissance électrique consommée par un circuit électronique tout en conservant les performances de fonctionnement souhaitées pour le circuit électronique. De tels procédés consistent généralement à modifier un paramètre de fonctionnement du circuit électronique, par exemple la tension d'alimentation du circuit électronique et/ou la fréquence d'horloge à laquelle est cadencé le circuit électronique .
Lorsque deux paramètres de fonctionnement du circuit électronique sont modifiés simultanément pour réduire la puissance électrique consommée par le circuit électronique, il existe des procédés de commande qui permettent de déterminer les valeurs de ces paramètres pour lesquelles la puissance consommée est la plus
faible possible tout en atteignant les performances de fonctionnement souhaitées .
La publication intitulée "Energy optimal speed control of devices with discrète speed sets" de R. Rao et S. Vrudlhala (Design Automation Conférence, 2005, Proceedings - 42nd, pp. 901- 904, 13-17 juin 2005) décrit un exemple d'un tel procédé de commande .
Afin de réduire encore davantage la puissance consommée par le circuit électronique, il est souhaitable de modifier, en outre, un troisième paramètre de fonctionnement du circuit électronique. Un exemple de troisième paramètre de fonctionnement est la tension de polarisation de caissons (en anglais "bulk") de transistors à effet de champ à grille métal-oxyde, également appelés transistors MOS, du circuit électronique.
Toutefois, les procédés de commande connus ne sont pas adaptés à commander plus de deux paramètres de fonctionnement du circuit électronique pour réduire la puissance électrique consommée par le circuit électronique tout en obtenant les performances de fonctionnement souhaitées. En particulier, ces procédés de commande ne permettent généralement pas d'assurer que la puissance consommée qui résulte des valeurs déterminées des trois paramètres de fonctionnement est sensiblement la plus faible possible .
Résumé
Ainsi, un objet d'un mode de réalisation est de pallier au moins en partie les inconvénients des procédés de commande décrits précédemment.
Un autre objet d'un mode réalisation est que le procédé de commande assure que la puissance consommée par le circuit électronique est sensiblement la plus faible possible.
Un autre objet d'un mode réalisation est que le procédé de commande fonctionne en temps réel .
Ainsi, un mode de réalisation prévoit un procédé de commande d'un circuit électronique par des premier, deuxième et
troisième paramètres de fonctionnement, comprenant les étapes suivantes :
(a) déterminer une plage de variation du troisième paramètre pour chaque valeur du premier paramètre en faisant varier le deuxième paramètre, lesdites plages étant distinctes ;
(b) déterminer une valeur cible du troisième paramètre ;
(c) si la valeur cible est située dans l'une des plages, faire fonctionner le circuit électronique en amenant le troisième paramètre à la valeur cible ; et
(d) dans le cas contraire, sélectionner les deux plages encadrant la valeur cible et faire fonctionner le circuit électronique en amenant successivement le troisième paramètre dans chacune des deux plages sélectionnées .
Selon un mode de réalisation, le premier paramètre prend des premières valeurs discrètes, les deuxième et troisième paramètres variant de façon continue, à chaque couple de l'une des premières valeurs du premier paramètre et d'une deuxième valeur du deuxième paramètre étant associée une troisième valeur du troisième paramètre.
Selon un mode de réalisation, le procédé comprend les étapes suivantes :
déterminer la courbe de variation d'une donnée représentative de la puissance ou de l'énergie consommée par le circuit électronique en fonction du troisième paramètre, en faisant varier le deuxième paramètre pour chaque première valeur du premier paramètre ;
déterminer l'enveloppe convexe ou concave de la courbe ; et
extraire lesdites plages de l'enveloppe.
Selon un mode de réalisation, la valeur cible est déterminée pour l'exécution d'une tâche par le circuit électronique dans une durée donnée.
Selon un mode de réalisation, à l'étape (c) , le premier paramètre est amené à la première valeur correspondant à la plage dans laquelle est située la valeur cible et le deuxième paramètre
est amené à la deuxième valeur du couple associé à la valeur cible .
Selon un mode de réalisation, le procédé comprend, à l'étape (d) , la détermination d'au moins une quatrième valeur du troisième paramètre appartenant à l'une des plages et strictement inférieure à la valeur cible et la détermination d'une cinquième valeur du troisième paramètre appartenant à l'une des plages et strictement supérieure à la valeur cible, et le fonctionnement du circuit électronique pendant une première durée en amenant le troisième paramètre à ladite quatrième valeur, en amenant le premier paramètre à la première valeur correspondant à la plage dans laquelle est située la quatrième valeur et en amenant le deuxième paramètre à la deuxième valeur du couple associé à la quatrième valeur et le fonctionnement du circuit électronique pendant une deuxième durée en amenant le troisième paramètre à ladite cinquième valeur, en amenant le premier paramètre à la première valeur correspondant à la plage dans laquelle est située la cinquième valeur et en amenant le deuxième paramètre à la deuxième valeur du couple associé à la cinquième valeur.
Selon un mode de réalisation, le premier paramètre est la tension d'alimentation du circuit électronique.
Selon un mode de réalisation, le deuxième paramètre est la tension de polarisation de transistors à effet de champ à grille métal-oxyde du circuit électronique.
Selon un mode de réalisation, le troisième paramètre est la fréquence d'horloge à laquelle est cadencé le circuit électronique .
Selon un mode de réalisation, le procédé est mis en oeuvre pour la commande de plusieurs circuits électroniques, comprenant les étapes suivantes :
si la valeur cible est située dans l'une des plages de l'un des circuits électroniques, faire fonctionner ledit circuit électronique en amenant le troisième paramètre à la valeur cible ; et
dans le cas contraire, sélectionner l'un des circuits électroniques et, pour ledit circuit électronique, sélectionner les deux plages encadrant la valeur cible et faire fonctionner ledit circuit électronique en amenant successivement le troisième paramètre dans chacune des deux plages sélectionnées .
Selon un mode de réalisation, le circuit électronique comprend au moins deux sections de circuit électronique, un rang étant attribué à chaque section de circuit électronique, et le premier paramètre est ledit rang.
Un autre mode de réalisation prévoit un système de commande d'un circuit électronique par des premier, deuxième et troisième paramètres de fonctionnement, le circuit électronique comprenant un premier module adapté à déterminer une plage de variation du troisième paramètre pour chaque valeur du premier paramètre en faisant varier le deuxième paramètre, lesdites plages étant distinctes, le système comprenant un deuxième module adapté à déterminer une valeur cible du troisième paramètre, le circuit électronique comprenant un troisième module adapté à amener le troisième paramètre à la valeur cible si la valeur cible est située dans l'une des plages, et, dans le cas contraire, à sélectionner les deux plages encadrant la valeur cible et faire amener successivement le troisième paramètre dans chacune des deux plages sélectionnées.
Un autre mode de réalisation prévoit un procédé d'analyse d'un circuit électronique permettant de déterminer des configurations optimales de fonctionnement du circuit électronique selon un critère de performance donné, chaque configuration de fonctionnement du circuit électronique étant définie par des valeurs prises par des premier, deuxième et troisième paramètres de fonctionnement, le premier paramètre pouvant prendre des premières valeurs discrètes, les deuxième et troisième paramètres pouvant varier de façon continue ou discrète, le deuxième paramètre pouvant varier entre une valeur minimale et une valeur maximale, à chaque couple d'une première valeur du premier paramètre et d'une deuxième valeur du deuxième paramètre
étant associée une troisième valeur limite du troisième paramètre au-delà de laquelle le circuit est susceptible de ne plus fonctionner, le procédé comprenant les étapes suivantes :
a) déterminer, pour chaque valeur du premier paramètre, une plage de variation limite du troisième paramètre en faisant varier le deuxième paramètre entre les valeurs minimale et maximale de ce deuxième paramètre et en recherchant les troisièmes valeurs limites correspondantes du troisième paramètre ; et
b) déterminer, pour chaque valeur du premier paramètre, une plage de variation optimale du troisième paramètre correspondant à tout ou partie de ladite plage de variation limite du troisième paramètre précédemment établie pour la valeur du premier paramètre considéré, de sorte que les plages de variation optimale retenues pour les différentes valeurs du premier paramètre sont toutes distinctes.
Selon un mode de réalisation, le procédé comprend, en outre, une étape supplémentaire c) entre les étapes a) et b) , l'étape c) consistant à déterminer une courbe de variation d'une donnée représentative dudit critère de performance en fonction du troisième paramètre, en définissant, pour chaque première valeur du premier paramètre, un arc de courbe correspondant aux valeurs de ladite donnée représentative obtenues sur la plage de variation limite du troisième paramètre associée au premier paramètre considéré et la plage de variation correspondante du deuxième paramètre et, lors de l'étape b) , on détermine, pour chaque valeur du premier paramètre, une plage de variation optimale du troisième paramètre correspondant à tout ou partie de ladite plage de variation limite du troisième paramètre précédemment établie pour la valeur du premier paramètre considéré, de sorte que les plages de variation optimale retenues pour les différentes valeurs du premier paramètre sont toutes distinctes et de sorte que les portions d'arc de courbe associées aux plages de variation optimale retenues répondent au mieux au critère de performance du circuit électronique pour les valeurs correspondantes du troisième paramètre.
Selon un mode de réalisation, l'étape c) comprend les étapes suivantes :
déterminer l'enveloppe convexe ou concave de ladite courbe de variation (C) ; et
rechercher les portions desdites plages de variation limite du troisième paramètre qui correspondent à ladite enveloppe et retenir ces portions comme plages de variation optimale.
Un autre mode de réalisation prévoit un procédé de commande d'un circuit électronique permettant de déterminer une configuration optimale de fonctionnement du circuit électronique selon un critère de performance donné, chaque configuration de fonctionnement du circuit électronique étant définie par des valeurs données de premier, deuxième et troisième paramètres de fonctionnement, le premier paramètre pouvant prendre des premières valeurs discrètes, les deuxième et troisième paramètres pouvant varier de façon continue ou discrète, le circuit électronique comprenant des moyens de mémorisation d' informations préalablement obtenues par le procédé d'analyse tel que défini précédemment et comprenant, pour chaque valeur du premier paramètre, une plage de variation optimale du troisième paramètre associée à une plage correspondante de valeurs du second paramètre, les plages de variation optimale étant toutes distinctes, le circuit électronique comprenant des moyens d'analyse permettant, à chaque couple de l'une des premières valeurs du premier paramètre et d'une deuxième valeur du deuxième paramètre, de lui associer une troisième valeur du troisième paramètre, le procédé comprenant les étapes suivantes :
d) déterminer une valeur cible du troisième paramètre ; e) si la valeur cible est située dans l'une des plages de variation optimale du troisième paramètre, sélectionner cette plage de variation optimale et faire fonctionner le circuit électronique en amenant le troisième paramètre à la valeur cible ; et
f) dans le cas contraire, sélectionner les deux plages de variation optimale du troisième paramètre encadrant la valeur
cible et faire fonctionner le circuit électronique en amenant successivement le troisième paramètre dans chacune des deux plages de variation optimale sélectionnées, entre une valeur inférieure et une valeur supérieure du troisième paramètre encadrant la valeur cible ; et
lors des étapes e) ou f) , le premier paramètre est amené à la première valeur correspondant à la plage dans laquelle est située la troisième valeur appliquée et le deuxième paramètre est amené à la deuxième valeur du couple associé à la troisième valeur appliquée.
Selon un mode de réalisation, ledit critère de performance donné est un critère énergétique, tel que la puissance ou l'énergie, et le troisième paramètre est représentatif d'un critère de performance temporel, tel que la fréquence de fonctionnement du circuit électronique.
Selon un mode de réalisation, la valeur cible est déterminée pour l'exécution d'une tâche par le circuit électronique dans une durée donnée.
Selon un mode de réalisation, le procédé comprend, à l'étape f) , un premier fonctionnement du circuit électronique pendant une première durée en amenant le troisième paramètre à ladite valeur inférieure, et un deuxième fonctionnement du circuit électronique pendant une deuxième durée en amenant le troisième paramètre à ladite valeur supérieure, les premier et deuxième fonctionnements étant répétés alternativement.
Selon un mode de réalisation, le premier paramètre est la tension d'alimentation du circuit électronique, le deuxième paramètre est la tension de polarisation de transistors à effet de champ à grille métal-oxyde du circuit électronique, et le troisième paramètre est la fréquence d'horloge à laquelle est cadencé le circuit électronique.
Un autre mode de réalisation prévoit un procédé de commande de plusieurs circuits électroniques, comprenant les étapes suivantes :
si la valeur cible est située dans l'une des plages de l'un des circuits électroniques, faire fonctionner ledit circuit électronique en amenant le troisième paramètre à la valeur cible ; et
dans le cas contraire, sélectionner l'un des circuits électroniques et, pour ledit circuit électronique, sélectionner les deux plages encadrant la valeur cible et faire fonctionner ledit circuit électronique en amenant successivement le troisième paramètre dans chacune des deux plages sélectionnées .
Selon un mode de réalisation, le circuit électronique comprend au moins deux sections de circuit électronique, un rang étant attribué à chaque section de circuit électronique, et le premier paramètre est ledit rang.
Un autre mode de réalisation prévoit un circuit électronique comprenant :
des actionneurs permettant de commander les valeurs de premier, deuxième et troisième paramètres définissant une configuration de fonctionnement du circuit électronique, le premier paramètre pouvant prendre des premières valeurs discrètes, les deuxième et troisième paramètres pouvant varier de façon continue ou discrète ;
un premier module comprenant des moyens de mémorisation d' informations préalablement obtenues selon le procédé de la revendication 1 et comprenant, pour chaque valeur du premier paramètre, une plage de variation optimale du troisième paramètre associée à une plage correspondante de valeurs du second paramètre, les plages de variation optimale étant toutes distinctes, et comprenant des moyens d'analyse reliés aux moyens de mémorisation et permettant d'associer une troisième valeur du troisième paramètre à chaque couple de l'une des premières valeurs du premier paramètre et d'une deuxième valeur du deuxième paramètre ;
un deuxième module adapté à déterminer une valeur cible du troisième paramètre ;
un troisième module d'analyse adapté à déterminer si la valeur cible est située dans l'une des plages de variation optimale, et à sélectionner cette plage dans l'affirmative et, dans le cas contraire, à sélectionner les deux plages encadrant la valeur cible, le module d'analyse définissant selon le cas une ou deux configurations de fonctionnement avec un troisième paramètre présentant respectivement la valeur cible ou deux valeurs respectivement inférieure et supérieure à ladite valeur cible et appartenant respectivement aux deux plages sélectionnées, pour chaque configuration le premier paramètre prenant une première valeur correspondant à la plage dans laquelle est située la valeur du troisième paramètre et le deuxième paramètre prenant la deuxième valeur du couple associé à la troisième valeur retenue ; et
un quatrième module de commande adapté à appliquer, par l'intermédiaire desdits actionneurs, une configuration de fonctionnement ou alternativement chacune des deux configurations de fonctionnement définies par le troisième module d'analyse.
Selon un mode de réalisation, le premier module comprend des moyens de mise en oeuvre du procédé d'analyse tel que défini précédemment permettant de définir lesdites informations sauvegardées par lesdits moyens de mémorisation.
Brève description des dessins
Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :
la figure 1 représente, de façon partielle et schématique, un mode de réalisation d'un circuit électronique ;
la figure 2 représente un exemple de fréquences d'horloge maximales accessibles en fonction de la tension d'alimentation et de la tension de polarisation de caissons de transistors MOS du circuit électronique de la figure 1 ;
la figure 3 représente, sous la forme d'un schéma-bloc, un mode de réalisation d'un procédé de détermination des
configurations de fonctionnement à puissance minimale du circuit électronique de la figure 1 ;
la figure 4 représente un exemple de courbe d'évolution de la puissance consommée par le circuit électronique de la figure 1 en fonction de la fréquence d'horloge lors de variations de la tension d'alimentation et de la tension de polarisation de caissons de transistors MOS du circuit électronique ;
la figure 5 représente un exemple d'enveloppe convexe de la courbe d'évolution de la figure 4 ;
la figure 6 représente des courbes de variation, en fonction de la fréquence d'horloge, de la tension d'alimentation et de la tension de polarisation de caissons de transistors MOS du circuit électronique de la figure 1 ;
la figure 7 représente, sous la forme d'un schéma-bloc, un mode de réalisation d'un procédé de commande de la fréquence d'horloge, de la tension d'alimentation et de la tension de polarisation de caissons de transistors MOS du circuit électronique de la figure 1 ;
la figure 8 est une figure analogue à la figure 5 et illustre un exemple de mise en oeuvre du mode de réalisation du procédé de commande de la figure 7 ;
la figure 9 est une figure analogue à la figure 6 et illustre un autre exemple de mise en oeuvre du mode de réalisation du procédé de commande de la figure 7 ;
la figure 10 représente, de façon partielle et schématique, un autre mode de réalisation d'un circuit électronique ; et
la figure 11 représente, sous la forme d'un schéma-bloc, un mode de réalisation d'un procédé de commande du circuit électronique de la figure 10.
Description détaillée
Par souci de clarté, de mêmes éléments ont été désignés par de mêmes références aux différentes figures et, de plus, les diverses figures ne sont pas tracées à l'échelle. En outre, dans la suite de la description, sauf indication contraire, les termes
"sensiblement", "environ" et "de l'ordre de" signifient "à 10 % près" .
Selon un mode de réalisation, le procédé de commande comprend la modification de trois paramètres de fonctionnement d'un circuit électronique permettant d'atteindre les performances de fonctionnement souhaitées du circuit électronique avec une puissance consommée sensiblement la plus faible possible, dans lequel au moins l'un des paramètres de fonctionnement ne peut prendre que des valeurs discrètes tandis que les autres paramètres de fonctionnement peuvent varier de façon continue, ou discrète à pas fin, ou discrète.
De préférence, au moins l'un des paramètres de fonctionnement du circuit électronique est représentatif de la vitesse de fonctionnement du circuit électronique. Il peut s'agir de la fréquence d'horloge à laquelle est cadencé le circuit électronique .
Un mode de réalisation va maintenant être décrit en détail dans lequel les trois paramètres de fonctionnement du circuit électronique sont la tension d'alimentation du circuit électronique, la fréquence d'horloge et la tension de polarisation de caissons de transistors MOS du circuit électronique. A titre d'exemple, dans ce mode de réalisation, le paramètre de fonctionnement évoluant de façon discrète est la tension d' alimentation .
La figure 1 représente un mode de réalisation d'un circuit électronique 10.
Le circuit électronique 10 comprend plusieurs circuits électroniques unitaires 12, par exemple de 1 à 64 circuits 12. Les circuits 12 sont adaptés à fonctionner en parallèle. Chaque circuit électronique unitaire 12 est relié à un module de commande global 14 adapté, notamment, à répartir les tâches à accomplir entre les différents circuits 12. Le module de commande global 14 peut être réalisé de manière centralisée ou distribuée dans le circuit électronique 10. Selon un exemple, le module de commande global 14 peut comprendre un processeur adapté à exécuter les
instructions d'un programme d'ordinateur stockées dans une mémoire. Selon un autre exemple, le module de commande global 14 peut être réalisé par un circuit dédié, par exemple sous la forme d'une machine à états.
Selon un mode de réalisation, au moins l'un des circuits
12 peut être alimenté à une tension d'alimentation V^y qui peut être différente des tensions d'alimentation des autres circuits électroniques unitaires 12. De préférence, chaque circuit 12 peut être alimenté à une tension d'alimentation qui peut être différente des tensions d'alimentation des autres circuits électroniques unitaires.
Selon un mode de réalisation, au moins l'un des circuits 12 est un circuit électronique synchrone, ou un circuit électronique localement synchrone, qui peut être cadencé par une fréquence d'horloge F qui peut être différente des fréquences d'horloge cadençant les autres circuits électroniques unitaires 12. De préférence, chaque circuit 12 peut être cadencé à une fréquence d'horloge F qui peut être différente des fréquences d'horloge cadençant les autres circuits électroniques unitaires 12.
Selon un mode de réalisation, au moins l'un des circuits 12 comprend des transistors MOS et la tension de polarisation des caissons des transistors MOS du circuit 12 peut être modifiée. De préférence, tous les circuits 12 comprennent des transistors MOS et la tension de polarisation des caissons des transistors
MOS de chaque circuit 12 peut être différente des tensions de polarisation des autres circuits électroniques unitaires 12.
La structure de l'un des circuits électroniques unitaires 12 va maintenant être décrite. Plusieurs circuits électroniques unitaires 12 peuvent avoir une structure analogue.
Au moins l'un des circuits électronique unitaires 12 comprend un module de traitement 20 adapté, notamment, à réaliser des calculs. Il peut s'agir d'un circuit électronique dédié ou d'un processeur adapté à exécuter les instructions d'un programme d'ordinateur stocké dans une mémoire. Le module de traitement 20
est alimenté par la tension d'alimentation V^y. Les caissons d'au moins certains transistors MOS du module de traitement 20 sont polarisés à la tension de polarisation ^. Le module de traitement 20 est cadencé à la fréquence d'horloge F. Le module de traitement 20 est adapté à exécuter les tâches attribuées au circuit 12 par le module de commande global 14.
Le circuit électronique unitaire 12 comprend un module de commande local 22 adapté à commander au moins trois actionneurs 24, 26, 28. Le premier actionneur 24 est adapté à modifier la fréquence F. Le deuxième actionneur 26 est adapté à modifier la tension d'alimentation V^. Selon un exemple, l' actionneur 26 peut comprendre un convertisseur continu-continu commandé par le module 22. Selon un autre exemple, l' actionneur 26 correspond à un circuit de saut de tension V^y (en anglais "Vdd hopping") . Le troisième actionneur 28 est adapté à modifier la tension de polarisation ^. Le troisième actionneur 28 peut comprendre un circuit à pompe de charge.
Le circuit électronique unitaire 12 peut comprendre des capteurs 30, par exemple disposés dans le module de traitement 20. L'un des capteurs 30 peut correspondre à un capteur fournissant un signal représentatif de la température T dans le module de traitement 20. L'un des capteurs 30 peut correspondre à un capteur fournissant un signal représentatif de l'activité A du module de traitement 20. L'activité A du circuit 12 est, par exemple, une donnée représentative du nombre de portes logiques qui basculent dans un intervalle de temps défini ou le nombre de transitions des transistors MOS du module de traitement 20 pour la tâche en cours d'exécution. L'un des capteurs 30 peut correspondre à un capteur fournissant un signal représentatif de la puissance P consommée par le module de traitement 20.
Le circuit électronique unitaire 12 peut comprendre un module d'analyse 32 recevant les signaux fournis par les capteurs 30. Le module d'analyse 32 est adapté à fournir des données représentatives de configurations de fonctionnement susceptibles d'être appliquées par le module de commande 22. Ces configurations
dans la suite sont appelées configurations optimales. Il s'agit des configurations de fonctionnement du circuit 12 dans lesquelles un paramètre représentatif de la consommation électrique du circuit 12 est minimal ou sensiblement minimal. Ce paramètre correspond, par exemple, à la puissance électrique consommée par le circuit 12 ou à l'énergie électrique utilisée par le circuit 12 pour l'exécution d'une tâche.
Selon une variante, la température T peut ne pas être mesurée directement. La température T peut alors être déterminée par le module d'analyse 32 à partir de signaux fournis par les circuits 12 voisins du circuit considéré. Selon une variante, l'activité A peut ne pas être mesurée directement et peut être estimée par le module d'analyse 32. Selon une variante, la puissance consommée P peut ne pas être mesurée directement. La puissance P peut alors être estimée par le module d'analyse 32. La puissance consommée P peut être estimée à partir de la mesure de la température T, de l'activité A, de la tension d'alimentation vdd et ^e la tension de polarisation ^. La puissance consommée P peut être divisée en une puissance dynamique P^yn et une puissance de fuite P]_eak. La puissance dynamique P^yn est ^a puissance consommée due à l'énergie dissipée pendant les changements d'états des portes logiques ou les passages entre l'état passant et l'état bloqué des transistors MOS . La puissance de fuite P]_eak est la puissance consommée due aux pertes diverses des transistors autres que la puissance dynamique P^yn- Le module d'analyse 32 peut déterminer une estimation de la puissance dynamique P^yn Par une fonction mathématique de la fréquence F, de l'activité A et de la tension d'alimentation V^y. Le module d'analyse 32 peut déterminer une estimation de la puissance de fuite P]_eak Par une fonction mathématique de la fréquence F, de la tension d'alimentation V^, de la température T et de la tension de polarisation ^.
Selon un mode de réalisation, la tension d'alimentation ¼id peut prendre N valeurs discrètes ^^j_, N étant un nombre entier variant par exemple de 2 à 5 et i étant un nombre entier
variant de 1 à N. La tension de polarisation Vbb peut varier de façon continue, ou discrète à pas fin, entre une valeur minimale vbb,min, i et une valeur maximale Vbb/maX/ i' ces deux valeurs pouvant dépendre de V^y j_ .
Les paramètres ^, Vbb et F dépendent les uns des autres. En effet, pour un couple donné de tensions et Vbb, il existe une valeur maximale Fmax de la fréquence d'horloge au-delà de laquelle des erreurs temporelles peuvent se produire. Une erreur temporelle se produit par exemple lorsque le signal d'entrée d'au moins une bascule ne s'établit pas dans une période d'horloge. De façon générale, le circuit 12 est cadencé à la fréquence maximale Fmax, éventuellement en appliquant une marge de sécurité, qui est permise par les valeurs des tensions ^, vbb appliquées au circuit 12.
En fonctionnement, le circuit électronique 12 est amené à effectuer une succession de tâches. Une contrainte de performance est associée à l'exécution de chaque tâche. Ceci signifie que l'exécution de la tâche doit être finie au plus tard à l'achèvement d'une durée déterminée. Une possibilité consiste à faire fonctionner le circuit 12 à une fréquence d'horloge cible Ftarget constante qui est la fréquence d'horloge pour laquelle l'exécution de la tâche est finie à l'achèvement de la durée déterminée. Une autre possibilité consiste à faire fonctionner le circuit successivement à différentes fréquences d'horloge de sorte que l'exécution de la tâche soit finie à l'achèvement de la durée déterminée. Les performances temporelles du circuit 12 sont alors équivalentes à un fonctionnement à la fréquence d'horloge cible Ftarget- Les fréquences d'horloge cible F-|-arge-|- de tâches successives peuvent varier d'une tâche à l'autre.
Pour chaque valeur de la tension d'alimentation ^^j_, où i varie de 1 à N, la fréquence d'horloge maximale Fmax accessible à laquelle peut être cadencée le circuit électronique varie dans la plage [¾iax,i-' Fmax,i+] lorsque la tension de polarisation Vbb varie de Vbb,miri/i à Vbb,maX/i.
La figure 2 représente un exemple des fréquences d'horloge maximales Fmax qui peuvent être atteintes pour tous les couples (^dd' vbb) possibles dans le cas où la tension d'alimentation Vdd peut prendre quatre valeurs ^]_, ^2' vdd3 ou et dans le cas où la tension de polarisation peut varier de mj_n j_ à max, i' ou i varie de 1 à 4. Un couple unique de tensions ( ^, ^) correspond à un point de l'un des segments A]_, A2, A3 ou A4.
On considère trois fréquences d'horloge cibles F†-arge†-]_, Ftarget2 et Ftarget3 · Comme cela apparaît sur la figure 2, un seul point B de l'un des segments A]_, A2, A3 et A4 correspond à la fréquence d'horloge cible F-|-argetl · Ceci signifie que la fréquence d'horloge cible F-|-argeti n'est accessible que par un seul couple de tensions (V^y, V^) . Pour réduire la consommation électrique du circuit 12, il pourrait être envisagé d'appliquer les tensions vdd et vbb associées au point B et cadencer le circuit à la fréquence d'horloge cible F^arge^_i . Toutefois, ceci ne garantit pas que la puissance consommée par le circuit 12 est minimale et qu'il n'existe pas une autre solution pour laquelle la puissance consommée serait inférieure pour la même performance que celle associée au point B.
Deux points C et D de deux segments différents, A3 et A4, correspondent à la fréquence d'horloge cible F--arge--2. La fréquence d'horloge cible F-|-arge-|-2 est donc accessible par deux couples de tensions ( ^, vbb) · Le problème est de sélectionner le couple de tensions ( ^, ^) à utiliser. Toutefois, il n'est pas garanti que la puissance consommée par le circuit soit minimale pour l'un ou l'autre de ces couples de tensions.
Aucun point des segments A]_, A2, A3 et A4 ne correspond à la fréquence d'horloge cible F†-ar.g-e†-3. Une possibilité serait alors de cadencer le circuit à une fréquence d'horloge accessible supérieure à la fréquence d'horloge cible F-|-arge-|-3. Toutefois, la puissance consommée par le circuit n'est alors pas minimale. Une autre possibilité serait de faire fonctionner le circuit 12 successivement à une fréquence d'horloge Fj_nf inférieure à la
fréquence d'horloge cible Fta-g"et3 e^ à une fréquence d'horloge FSUp supérieure à la fréquence d'horloge cible F-|-arge-|-3 ou inversement. Le problème est alors de sélectionner les couples de tensions ( ^, ^) à utiliser pour les fréquences Fj_nf et FSUp de façon que la puissance consommée soit minimale.
Selon un mode de réalisation, il est mis en oeuvre un procédé de détermination des configurations de fonctionnement du circuit 12 pour lesquelles la puissance consommée par le circuit 12 est minimale, ou sensiblement minimale, tout en atteignant les performances souhaitées. De telles configurations de fonctionnement sont appelées configurations optimales. Chaque configuration optimale correspond à un triplet comportant une valeur de la tension V^, une valeur de la tension et une valeur de fréquence d'horloge maximale Fmax correspondante.
Le procédé de détermination des configurations optimales peut être mis en oeuvre lors de la conception du circuit électronique 10 ou lors d'une étape de caractérisation du circuit électronique 10 après sa fabrication. Dans ce cas, des données représentatives des configurations optimales peuvent être stockées dans une mémoire du module d'analyse 32. A titre de variante, le procédé de détermination des configurations optimales peut être mis en oeuvre par le module d'analyse 32 lors du fonctionnement du circuit électronique 10.
Selon un mode de réalisation, en fonctionnement, il est mis en oeuvre un procédé de commande comprenant la sélection de la configuration optimale ou de deux configurations optimales à appliquer pour atteindre les performances souhaitées et la commande des actionneurs pour appliquer la configuration optimale sélectionnée ou les configurations optimales sélectionnées.
La figure 3 représente, sous la forme d'un schéma-bloc, un mode de réalisation du procédé de détermination des configurations optimales .
A l'étape 40, il est déterminé, pour une température T et une activité A déterminées, l'ensemble des plages [FmaX/j__, FmaX/j_+] de la fréquence d'horloge maximale FmaX/j_, où i varie de
1 à N, pouvant être obtenues en faisant varier la tension d'alimentation parmi les valeurs j_ et en faisant varier la tension de polarisation Vbb entre bb/miri/i et Vbb,maX/i. Les segments A]_, A2, A3 et A4 décrits précédemment en relation avec la figure 2 représentent un exemple de plages [FmaX/j__, FmaX/j_+] de fréquences d'horloge maximales FmaX/ j_ dans le cas où N est égal à 4.
A titre d'exemple, la détermination de la fréquence d'horloge maximale FmaX f j_ obtenue pour un couple de tensions (Vbb, ¼id, i) peut être déterminée par l'intermédiaire de capteurs de délais décrits dans la publication intitulée "An innovative timing slack monitor for variation tolérant circuits" de B. Rebaud et al. (IEEE International Conférence on IC Design an Technology - ICICDT - 2009, pages 215-218, 18-20 May 2009) .
Le procédé se poursuit à l'étape 42.
A l'étape 42, il est déterminé la puissance consommée P par le module de traitement 20 pour chaque triplet (FmaX/j_, Vbb, ¼id, i) et Pour la température T et l'activité A déterminées. Dans la suite de la description, on appelle point de fonctionnement PM le couple puissance-fréquence d'horloge (P, FmaX/j_) .
La figure 4 représente un exemple de courbe d'évolution C de la puissance consommée P en fonction de la fréquence d'horloge F, pour une température T et une activité A déterminées, dans le cas où N est égal à 4. Chaque point de la courbe C correspond à un point de fonctionnement PM. La courbe C comprend quatre arcs C]_, C2, C3 et C4. De façon générale, la courbe C comprend N arcs Cj_, i variant de 1 à N, chaque arc Cj_ étant obtenu avec la tension d'alimentation j_ . Pour chaque arc Cj_, le point de l'arc à la fréquence FmaX/j__, c'est-à-dire le point d'extrémité à gauche en figure 4, est obtenu pour la tension de polarisation Vbb/mj_n/ j_ et le point de l'arc à la fréquence FmaX/j_+, c'est-à-dire le point d'extrémité à droite en figure 4, est obtenu pour la tension de polarisation Vbb,maX/i.
Le procédé se poursuit à l'étape 44.
A l'étape 44, il est déterminé l'enveloppe convexe <¾ de la courbe C. L'enveloppe convexe <¾ est définie, comme la courbe C, pour une température T et une activité A déterminées. L'enveloppe convexe <¾ est définie par les relations (1) suivantes :
C=Ui=1:NCi (1) F ^i=i-N [Fmax i_, f7ri0i ji+] a G [0,1] c = {(PpFj)\P(aFa + (1 - a)Fb)≤ aP(Fa) + (1 - a)P(Fb),]
H [ Fa≠ Fb, (Fa, Fb) E EF X EF j Ceci signifie que pour deux points PMa et ΡΜ^ de l'enveloppe convexe ¾, tous les points de l'arc de la courbe ¾ entre les points PMa et ΡΜ^ sont en dessous de la droite reliant les points PMa et ΡΜ^. L'enveloppe convexe ¾ comprend des arcs ¾i avec i variant de 1 à N, chaque arc Cu_i correspondant à une portion de l'arc Cj_.
Il a été mis en évidence que si la fréquence d'horloge cible F-|-arge-|- correspond à une fréquence FmaX/ j_ associée à un point PM appartenant à l'enveloppe convexe ¾, la puissance consommée est alors minimale. Par ailleurs, il a été mis en évidence que si la fréquence d'horloge cible F-|-arge-|- correspond à une fréquence FmaX/ j_ associée à un point PM qui n'appartient pas à l'enveloppe convexe ¾, une puissance consommée minimale peut être obtenue en faisant fonctionner le module de traitement 20 successivement à une fréquence FSUp supérieure à F-|-arge-|- et à une fréquence Fj_nf inférieure à F-|-arge-|- ou inversement, les fréquences
Fsup et Finf étant les fréquences les plus proches de F-|-arge-|- auxquelles correspondent des points PM de l'enveloppe convexe ¾.
Le procédé se poursuit à l'étape 46.
A l'étape 46, il est déterminé les extrémités de chaque arc ¾j_ de l'enveloppe convexe ¾.
La figure 5 représente un exemple de courbe convexe ¾ associée à la courbe C représentée en figure 4. En figure 5, les
parties de la courbe C qui n'appartiennent pas à la courbe <¾ sont représentées en traits pointillés. Pour chaque arc un premier point d'extrémité, noté PMj__, correspond au point de l'arc <¾j_ pour lequel la tension de polarisation est la plus faible, notée j__ . La fréquence maximale du point PMj__ est notée Fj__.
Le deuxième point d'extrémité, noté PMj_+, correspond au point de l'arc <¾i pour lequel la tension de polarisation est la plus élevée, notée j_+ . La fréquence maximale correspondant au point PMj_+ est notée Fj_+ . Le procédé se poursuit à l'étape 48.
A l'étape 48, les valeurs des triplets i^ddri' ^hb,i-'
Fj__) et (Vçid, i' vbb,i+' Fi+) ' pour i variant de 1 à N, sont stockées dans une mémoire du module d'analyse 32. En outre, des données représentatives des courbes d'évolution de la tension de polarisation j_ en fonction de la fréquence d'horloge maximale Fmax pour chaque valeur j_ de la tension d'alimentation V^y sont stockées dans une mémoire du module d'analyse 32. L'ensemble de ces données correspond aux données représentatives des configurations optimales et sont associées à une température T et une activité A déterminées .
Les données représentatives des configurations optimales pour une température T et une activité A déterminées sont indiquées dans le tableau (1) suivant :
Tableau (1)
La figure 6 représente les courbes de variation, en fonction de la fréquence d'horloge, de la tension d'alimentation vdd et ^e la tension de polarisation pour une température T et une activité A déterminées, obtenues à partir de l'exemple d'enveloppe convexe de la figure 5. Ces courbes illustrent les données représentatives des configurations optimales.
Selon un mode de réalisation, les étapes 40 à 48 décrites précédemment sont répétées plusieurs fois pour plusieurs valeurs de température T et/ou plusieurs valeurs d'activité A. Pour chaque valeur de température T et/ou d'activité A, les données représentatives des configurations optimales sont stockées dans la mémoire du module d'analyse 32.
Selon un autre mode de réalisation, les étapes 40 à 48 décrites précédemment sont réalisées par le module d'analyse 32 en fonctionnement. Le module d'analyse 32 détermine les points PM à partir des valeurs de température T et d'activité A déterminées à partir des signaux fournis par les capteurs 30. Dans le cas d'une variation de la température T ou de l'activité A, le module d'analyse 32 peut déterminer de nouvelles valeurs des points PM. A titre d'exemple, des nouvelles valeurs des points PM peuvent n'être déterminées que lorsque la température T varie au-delà d'un seuil ou lorsque l'activité A varie au-delà d'un seuil.
La détermination de l'enveloppe convexe ¾, à l'étape 42 décrite précédemment, nécessite une mesure de la puissance consommée par le module de traitement 20. Toutefois, une telle mesure peut être difficile à réaliser. Selon un autre mode de réalisation, la détermination des plages de fréquences [Fj__, Fj_+] , i variant de 1 à N, est réalisée à partir des plages de fréquences tFmax, i-' Fmax, i+] déterminées à l'étape 40. A titre d'exemple, la plage [Fj__, Fj_+] est égale à la plage [Fmax, i-' Fmax, i+] à laquelle sont retirées les parties communes (éventuellement avec ajout de marges) avec une autre plage [Fmax, j-' Fmax, +] ' ou j es^ un non^re entier différent de i. Toutefois, la puissance consommée sur ces plages de fréquence peut ne pas être minimale.
On notera que dans ce mode de réalisation simplifié, on obtient des plages de fréquences [Fj__, Fj_+] qui sont relativement proches de celles obtenues en mettant en oeuvre l'intégralité du procédé précédemment décrit .
Dans le mode de réalisation décrit précédemment, les configurations optimales correspondent aux configurations pour lesquelles la puissance consommée par le circuit électronique 12 est minimale. A titre de variante, au lieu d'utiliser la puissance électrique consommée par le module de traitement 20, il est possible de considérer l'énergie électrique utilisée pour la réalisation de la tâche considérée. Les configurations optimales sont alors celles pour lesquelles l'énergie utilisée est minimale.
Dans le mode de réalisation décrit précédemment, la courbe d'évolution C de la puissance consommée en fonction de la fréquence d'horloge du circuit 12 a été utilisée et l'enveloppe convexe <¾ de la courbe C a été déterminée. Toutefois, il est clair que la courbe d'évolution de l'inverse de la puissance consommée (ou de l'inverse de l'énergie utilisée) peut être utilisée. Dans ce cas, l'enveloppe concave de la courbe d'évolution de l'inverse de la puissance consommée est utilisée.
La figure 7 représente, sous la forme d'un schéma-bloc, un mode de réalisation du procédé de commande de la tension d'alimentation V^, de la tension de polarisation et de la fréquence d'horloge F du circuit 12.
Le module de commande global 14 fournit au module de commande local 22 du circuit 12 un signal représentatif de la fréquence d'horloge cible F-|-arge-|- pour la tâche à exécuter par le circuit 12.
A l'étape 50, le module d'analyse 32 détermine si la fréquence d'horloge cible F-|-arge-|- est située entre les fréquences
Fj__ et Fj_+, pour i variant de 1 à N, stockées en mémoire.
Selon un mode de réalisation, des données représentatives des configurations optimales ont été déterminées et stockées dans le module d'analyse 32 pour plusieurs valeurs de température T et plusieurs valeurs d'activité A.
Dans le cas où le circuit d'analyse 32 est adapté à déterminer, à partir de mesures directes ou par estimation, la température T et l'activité A du module de traitement 20, le module d'analyse 32 peut sélectionner les valeurs de fréquences Fj__ et Fj_+, pour i variant de 1 à N, des données représentatives des configurations optimales qui ont été déterminées à la température la plus proche de la température mesurée/estimée et à l'activité la plus proche de l'activité mesurée/estimée . A titre de variante, le module d'analyse 32 peut déterminer de nouvelles données représentatives de configurations optimales, et donc de nouvelles valeurs des fréquences Fj__ et Fj_+, pour i variant de 1 à N, par interpolation à la température T mesurée/estimée et à l'activité A mesurée/estimée à partir des données représentatives des configurations optimales qui ont été déterminées aux températures T les plus proches de part et d'autre de la température mesurée/estimée et aux activités A les plus proches de part et d'autre de l'activité mesurée/estimée.
Selon un mode de réalisation, des données représentatives des configurations optimales ont été déterminées et stockées dans le module d'analyse 32 pour une seule valeur de température T et une seule valeur d'activité A. Le module d'analyse 32 peut alors sélectionner les valeurs de fréquences Fj__ et Fj_+, pour i variant de 1 à N, stockées dans la mémoire du module d'analyse 32. A titre de variante, le module d'analyse 32 peut déterminer de nouvelles données représentatives de configurations optimales, et donc de nouvelles valeurs des fréquences Fj__ et Fj_+, pour i variant de 1 à N, par interpolation à la température T mesurée/estimée et à l'activité A mesurée/estimée à partir des données représentatives des configurations stockées dans la mémoire du module d'analyse 32.
On notera que, quelle que soit la forme de mémorisation retenue, plus ou moins détaillée, le nombre de données mémorisées reste restreint. Cette simplicité est obtenue grâce à la présentation des informations en segments en nombre limité, correspondant à des valeurs discrètes en nombre limité du premier
paramètre (Vdd) . En outre, l'analyse de la courbe d'évolution obtenue pour différents jeux de valeurs discrètes du premier paramètre peut être un élément d' aide à la sélection des valeurs discrètes de ce premier paramètre.
Si, à l'étape 50, la fréquence d'horloge cible F-|-arge-|- est comprise dans l'une des plages [Fj__, Fj_+], pour i variant de 1 à N, déterminées par le module d'analyse 32, alors le procédé se poursuit à l'étape 52 dans laquelle un première mode de commande, appelé Mode 1, est mis en oeuvre. Si, à l'étape 50, la fréquence d'horloge cible F-|-arget n'est pas comprise dans l'une des plages [Fj__, Fj_+] , pour i variant de 1 à N, déterminées par le module d'analyse 32, alors le procédé se poursuit à l'étape 54 dans laquelle un deuxième mode de commande, appelé Mode 2, est mis en oeuvre.
La figure 8 est une figure analogue à la figure 5 dans laquelle sont, en outre, représentées les plages de fréquences dans lesquelles le premier mode de commande, Mode 1, est mis en oeuvre et les plages de fréquences dans lesquelles le deuxième mode de commande, Mode 2, est mis en oeuvre.
A l'étape 52, le module d'analyse 32 détermine la valeur de la tension de polarisation pour laquelle la fréquence d'horloge cible est obtenue à partir des données représentatives des configurations optimales déterminées par le module d'analyse 32. Comme le point PM à la fréquence d'horloge cible F-|-arge-|- appartient à l'enveloppe convexe ¾, la puissance consommée est minimale. Le module 22 commande l'actionneur 24 pour amener la fréquence d'horloge à la fréquence d'horloge cible F-|-arge-|-. Le module 22 commande, en outre, l'actionneur 26 pour amener la tension d'alimentation V^y à la tension d'alimentation j_ et le module 22 commande l'actionneur 28 pour amener la tension de polarisation à la valeur déterminée. Les modifications de la fréquence d'horloge, de la tension d'alimentation et de la tension de polarisation sont réalisées de manière à garantir l'absence d'erreurs temporelles.
A l'étape 54, le module d'analyse 32 détermine au moins deux fréquences d'horloge Fj_nf et FSUp correspondant à des points PM appartenant à l'enveloppe convexe <¾, la fréquence d'horloge Fj_nf étant strictement inférieure à la fréquence d'horloge cible Ftarget e^ fréquence d'horloge FSUp étant strictement supérieure à la fréquence d'horloge cible F-|-arge-|-. Selon un mode de réalisation, les points PM choisis sont les points d'extrémité des deux arcs de l'enveloppe convexe dont les fréquences d'horloge associées sont les plus proches de la fréquence d'horloge cible
Ftarget ·
Le module 22 commande l'actionneur 24 pour amener successivement la fréquence d'horloge à la valeur FSUp pendant une durée DSUp et à la valeur Fj_nf pendant une durée Dj_n . A titre de variante, la fréquence d'horloge FSUp peut être appliquée après la fréquence d'horloge Fj_nf. A titre d'exemple, en appelant D†- la durée d'exécution de la tâche à la fréquence d'horloge cible Ftarget' ^-es durées Dj_nf et DSUp peuvent être déterminées selon les relations (2) suivantes :
Dsup = «Dt (2) Dinf = (l-a)Dt
α = (Ftarget_Finf) / (FSUp-Fj_nf)
La figure 8 illustre un exemple dans le cas où la fréquence d'horloge cible F-|-arge-|- est située entre les abscisses des points PM]_+ et PM2- correspondant respectivement aux triplets (vdd,l' vbb,l+' Fl+) et (vdd,2' vbb,2-' F2-) ·
Dans ce cas, la puissance consommée lors de l'application successive des valeurs du triplet i^dd,l' vbb,l+' F]_+) et des valeurs du triplet ( ^d 2' vbb,2-' F2-) est minimale. Sur la figure 8, cette puissance correspond au point à la fréquence Ftarget appartenant à la droite L représentée en traits pointillés reliant les points PM]_+ et PM2-.
Le mode de réalisation décrit précédemment en relation avec la figure 8 implique une modification simultanée de la fréquence d'horloge, de la tension d'alimentation et de la tension de polarisation ^. Toutefois, selon le type
d' actionneurs 22, 24 et 26 utilisés, le passage d'une première valeur à une deuxième valeur de la fréquence d'horloge Fmax, de la tension d'alimentation et/ou de la tension de polarisation vbb Peut nécessiter une durée de transition qui n'est pas négligeable.
Selon un mode de réalisation, le passage du point PMSUp au point PMj_nf peut être réalisé en passant par un point intermédiaire PMj_n†-. Le point PMj_n-(- est associé à un triplet (V^y, vbb' Fmax) dont une composante est identique au triplet associé au point PMj_nf et dont une composante est identique au triplet associé au point PMSUp. La troisième composante est choisie pour garantir que le circuit est fonctionnel. De ce fait, lors du passage du point PMSUp au point PMj_n-j-, seuls deux paramètres sont modifiés. Le passage du point PMj_n-(- au point PMj_nf est alors obtenu en faisant varier la valeur du paramètre non modifié de la valeur pour le point PMSUp à la valeur pour le point PMj_nf, le troisième paramètre étant modifié à la valeur associée au point
La figure 9 est analogue à la figure 6 et illustre un tel mode de réalisation dans le cas où la tension de polarisation
^bb est e paramètre pour lequel la transition entre deux valeurs n'est pas instantanée. Le module 20 commande les actionneurs 22, 24 et 26 au point PMSUp associé au triplet i^dd,2' vbb,2-' F2-) pendant une durée OÎ' D†- . Le module 20 commande alors les actionneurs 22 et 24 au point PMj_n-(- associé au triplet i^dd,l' V"bb,2-' Fj_n†-) . Le module 20 commande ensuite les actionneurs 22 et 26 pour passer, en une durée Y ' D-|-, du point PM-j_n-(- au point PMj_nf en faisant varier la tension de polarisation de 2- A vbb, 1+ et en faisant varier la fréquence de Fj_n†- à F]_+ . La durée γ' dépend de la dynamique de l'actionneur 26. Le circuit 12 est maintenu au point PMj_nf pendant une durée β ' D†- .
La figure 10 représente un autre mode de réalisation d'un circuit électronique 60. Le circuit électronique 60 comprend l'ensemble des éléments du circuit électronique 10 représenté en figure 1. Le circuit électronique 60 comprend, en outre, un réseau
d'interconnexion 62 adapté à permettre l'échange de données entre les circuits électroniques unitaires 12. Le réseau d'interconnexion 62 peut comprendre un bus d'échange de données ou correspondre à un réseau de communication sur puce (en anglais "Network on Chip") . Le circuit électronique comprend K circuits électroniques élémentaires 12, K étant un nombre entier strictement supérieur à 1. A titre d'exemple, en figure 10, K est égal à quatre .
Le module de commande global 14 est adapté à attribuer les tâches à exécuter entre les circuits électroniques unitaires 12. On considère une application comprenant M tâches Taskm qui doivent être attribuées, M étant un nombre entier supérieur strictement à 1 et m étant un nombre entier qui varie entre 1 et M. A chaque tâche Taskm est associée une fréquence d'horloge cible Ftarget,m pour l'exécution de cette tâche. Les fréquences d'horloge cible peuvent être déterminées par le module de commande global 14.
Le module de commande global 14 est adapté à collecter les données représentatives des configurations optimales pour chaque circuit 12. Les données représentatives des configurations optimales ont été déterminées par chaque circuit électronique 12 comme cela a été décrit précédemment.
Dans le cas où l'un des circuits 12 met à jour ses données représentatives de configurations optimales, les données mises à jour sont transmises au module 14.
La figure 11 représente, sous la forme d'un schéma-bloc, un mode de réalisation du procédé d'attribution des tâches par le module de commande global 14. Le procédé est mis en oeuvre pour chaque tâche Taskm à exécuter.
A l'étape 70, le module de commande global 14 détermine si la fréquence d'horloge cible F-|-arge-|-^m de la tâche Taskm appartient à l'une des plages de fréquences accessibles [Fj__, Fj_+ ] de l'un des circuits électroniques 12. Si la fréquence d'horloge cible F†-ar.g-e†- ^m appartient à l'une des plages de fréquences accessibles [Fj__, Fj_+] de l'un des circuits électroniques 12, le
module 14 sélectionne ce circuit 12 si ce dernier n'exécute pas déjà une tâche et le procédé se poursuit à l'étape 72. Si la fréquence d'horloge cible F--arge--fTil n'appartient pas à l'une des plages de fréquences accessibles [Fj__, Fj_+] de l'un des circuits électroniques 12, le module de commande global 14 sélectionne le circuit électronique 12 disponible pour lequel la puissance consommée est la plus faible en appliquant le mode de commande Mode 2 décrit précédemment et le procédé se poursuit à 1 ' étape 74.
A l'étape 72, le module 14 attribue la tâche Taskm au circuit électronique 12 sélectionné et transmet la fréquence d'horloge cible F-|-arget,m au circuit électronique 12 sélectionné. Le circuit 12 sélectionné met alors en oeuvre un procédé de commande de type Mode 1 tel que décrit précédemment.
A l'étape 74, le module 14 attribue la tâche Taskm au circuit électronique 12 sélectionné et transmet la fréquence d'horloge cible F--arge--fTil au circuit électronique 12 sélectionné. Le circuit 12 sélectionné met alors en oeuvre un procédé de commande de type Mode 2 tel que décrit précédemment .
Des modes de réalisation particuliers ont été décrits.
Diverses variantes et modifications apparaîtront à l'homme de l'art. Bien que, dans les modes de réalisation décrits précédemment, les paramètres de fonctionnement du circuit électronique utilisés soient la fréquence d'horloge, la tension d'alimentation et la tension de polarisation de caissons de transistors, d'autres paramètres de fonctionnement peuvent être utilisés. A titre d'exemple, un paramètre représentatif de la vitesse de fonctionnement du circuit électronique, autre que la fréquence d'horloge, peut être utilisé. En particulier, dans le cas d'un circuit électronique mettant en oeuvre un système de stockage de données à disque dur, la vitesse de rotation du disque dur peut être utilisée comme paramètre de fonctionnement.
Même si des modes de réalisation dans lesquels le paramètre de fonctionnement discret est la tension d'alimentation du circuit électronique ont été décrits, un autre paramètre de
fonctionnement discret peut être utilisé. En effet, en considérant le circuit électronique 60 représenté en figure 10, le rang, ou numéro, du circuit 12 auquel la tâche est attribuée peut être le paramètre de fonctionnement discret du circuit 60. Un actionneur d'un tel paramètre de fonctionnement est alors adapté à faire exécuter par un circuit 12 une tâche initialement exécutée par un autre circuit 12. L'utilisation du rang comme paramètre de fonctionnement est particulièrement intéressante dans le cas où les circuits 12 présentent des performances différentes, par exemple en termes de consommation et vitesse de fonctionnement. Les deux autres paramètres de fonctionnement suivants à variation continue peuvent, en outre, être utilisés : la fréquence d'horloge de chaque circuit 12 et la tension de polarisation de caissons de transistors MOS de chaque circuit 12 ou la tension d'alimentation de chaque circuit 12 dans le cas d'une tension d'alimentation variant de façon continue ou discrète à pas fin ou discrète.
En outre, le paramètre de fonctionnement cible pourrait être une tension, par exemple la tension d'alimentation fournie par une batterie. Dans ce cas, on pourrait chercher à adapter les paramètres de fonctionnement, par exemple la fréquence de fonctionnement, pour optimiser un critère de performance, telle que la consommation du circuit. Dans ce cas, on pourrait avoir comme premier, deuxième et troisième paramètres de fonctionnement, respectivement la tension de polarisation de caisson Vbb, la fréquence du circuit, et la tension d'alimentation du circuit. On aurait alors des plages de variations de tension d'alimentation minimale en fonction de la fréquence pour une valeur de tension de polarisation donnée.
Par ailleurs, on pourrait chercher à optimiser un critère de performance autre qu'un critère de performance énergétique (puissance, énergie...), par exemple un critère de température, de réchauffement ou de vieillissement du circuit.
En outre, dans les modes de réalisation décrits précédemment, l'enveloppe <¾ de la donnée représentative du critère de performance est toujours croissante (par exemple pour
la puissance en fonction de la fréquence maximale, représentée en figure 4) ou toujours décroissante (si on prend par exemple l'énergie en fonction de la période d'horloge). Dans le cas où l'on obtiendrait une enveloppe croissante puis décroissante, ou l'inverse, en fonction du troisième paramètre, il est fort probable qu'une partie des configurations associées à la partie décroissante ou croissante soit sous-optimale par rapport à l'autre partie. Dans ce cas, on conservera en pratique une partie de l'enveloppe uniquement croissante ou uniquement décroissante. A titre d'exemple, si on considère que l'on a comme troisième paramètre la période d'horloge du circuit (1/fréquence) et que l'on choisit comme courbe d'évolution l'énergie en fonction de la période, alors il est fort possible que l'enveloppe convexe soit décroissante, puis croissante. Dans ce cas, on constate que la consommation statique devient prépondérante par rapport à la consommation dynamique quand la période devient trop grande (la fréquence trop faible) et il sera plus judicieux de faire fonctionner le circuit à des fréquences pas trop élevées, correspondant à la partie décroissante de l'enveloppe (avec l'éventuelle possibilité de mettre le circuit en mode veille si l'exécution de la tâche a été terminée plus rapidement que demandé) .
Par ailleurs, l'homme de l'art aura compris que la plage de valeurs utiles du troisième paramètre sera limitée et encadrée par les valeurs minimale et maximale du troisième paramètre susceptibles de correspondre aux configurations retenues afin que le procédé d'analyse fonctionne correctement.