Consommation dans les circuits
Consommation dans les circuits CMOS
Il existe deux types de transistor en fonction de leur fonctionnement sur l’alimentation (Vdd) ou sur la masse (Vss), respectivement P et N. Ces deux transistors sont placés symétriquement entre l’alimentation et la masse tel que présenté Figure 1.1 ce qui constitue la fonction de base réalisée par des transistors CMOS, un inverseur de signal. Ceci permet, en fonction du niveau de tension appliqué sur la grille des transistors, d’avoir soit le transistor de type N passant, soit le transistor de type P passant. Lorsque l’entrée est à l’état 1 (niveau haut), le transistor N est passant et le transistor P est bloqué, alors la sortie est à l’état 0 (niveau bas). Le fonctionnement est inversé si l’entrée est à 0.
À partir de cette fonction de base, il est possible de réaliser des fonctions logiques telles que des portes NAND (NON-ET) ou des bascules. La technologie CMOS est alors utilisée dans la plupart des circuits intégrés, cependant, son fonctionnement produit des pertes de courant. Ces pertes se traduisent par une consommation d’énergie et par un échauffement du circuit. La consommation d’un inverseur CMOS (et de toute autre fonction) peut être regroupée en deux familles. Il s’agit de la consommation dynamique et la consommation statique. Les principes de base de la consommation dans les circuits CMOS sont exprimés par la suite, la formulation détaillée est exposée dans le livre [3] ainsi que la plupart des concepts liés à la consommation.
Consommation dynamique
La structure CMOS, qui consiste à placer un (ou plusieurs) transistor(s) de type P entre l’alimentation et la sortie (afin de pouvoir générer un signal à l’état 1) et un (ou plusieurs) transistor(s) N entre la sortie et la masse (pour générer un signal à l’état 0), est une structure qui peut provoquer une fuite de courant via ces transistors. Les grilles des transistors forment une surface possédant des charges, celle-ci se comporte alors comme une capacité par rapport aux autres éléments du transistor et du circuit intégré. La grille a donc besoin d’un courant de charge pour passer au niveau haut. Ce courant est issu de l’alimentation de l’étage en amont commandant le transistor. Puis lorsque cette grille doit passer au niveau bas, le courant de décharge est envoyé vers la masse. Tous les deux changements d’état d’un étage CMOS, la quantité d’énergie emmagasinée par la capacité de la grille est perdue (Figure 1.2). En plus de la capacité de la grille, les capacités des connexions entre les étages se comportent de la même manière que la capacité de grille ce qui augmente le courant de commutation.
Évolution de la technologie
Selon la seconde loi de Moore, le nombre de transistors sur un circuit intégré double tous les deux ans, soit une croissance exponentielle [4]. Cette prédiction (1975) s’est avérée assez exacte et suivie notamment par les concepteurs de processeurs.
Cette loi a été suivie notamment grâce à la réduction de largeur de gravure des transistors. Le processeur Intel 4004 lancé en 1971, par exemple, était gravé en 10 µm. Aujourd’hui, en 2013, Intel réalise ses processeurs en 22 nm [5] et est sur la voie du 14 nm. La réduction de largeur de gravure permet de concevoir des transistors plus petits et favorise une intégration plus dense. La réduction de largeur des transistors diminue ses capacités parasites, puisque sa surface est plus faible, et donc de réduire la consommation dynamique pour un même nombre de transistor. Cependant la réduction de cette largeur provoque un passage du courant de fuite plus important entre l’alimentation et la masse au travers des éléments du circuit. Ceci engendre une augmentation de la consommation statique qui devient prédominante dans les circuits à largeur de gravure fine [6].
Méthodes d’estimation
Les formules classiques , peuvent être utilisées pour l’estimation de la consommation. À première vue, ces équations sont simples mais en réalité leur application est plus complexe. Premièrement, elles correspondent à un modèle théorique de base. La température par exemple joue un rôle non négligeable dans la consommation puisque sa contribution au niveau de la puissance statique est assimilable à une inférence exponentielle [7]. Deuxièmement, il s’agit d’équations à bas niveau et il faut avoir connaissance des paramètres notamment de surface (Ntr) et de taux d’activité des circuits (α). De plus, l’équation de consommation de puissance dynamique est établie au niveau transistor avec connaissance de l’activité du signal et la capacité parasite propre à ce signal.
Cette section regroupe des méthodes d’estimation de la consommation et les améliorations proposées afin d’améliorer la précision des estimations en présentant tout d’abord les travaux concernant le bas niveau (niveau transistor ou RTL) puis en relevant progressivement le niveau de l’estimation en passant par la caractérisation de blocs élémentaires pour atteindre l’estimation au niveau de l’algorithme ou de l’application.
Bas niveau – Portes logiques
L’estimation de la consommation à bas niveau est en général complexe car tous les paramètres de chaque transistor ou fonction élémentaire sont pris en compte. Pour obtenir une estimation des transitions effectuées par les transistors au sein d’un bloc de traitement dont on veut estimer la consommation, les analyses sont souvent effectuées à partir de simulations [8], soit à partir d’un vecteur de test, soit à partir d’analyses probabilistes et statistiques afin d’analyser la propagation des transitions [9]. Cependant même à très bas niveau, ces estimations sont perfectibles. Par exemple [10] propose de prendre en compte les glitches puisque ces variations de signaux transitoires ont un effet sur la consommation. Avec l’estimateur développé, l’erreur d’estimation est environ divisée par trois entre une estimation avec prise en compte des glitches comparée à l’estimation sans prise en compte. La complexité croissante des applications et le détail nécessaire pour l’estimation à bas niveau apportent le besoin d’une simplification des estimateurs tout en conservant une bonne qualité d’estimation de la consommation. En ce sens, plusieurs contributions existent, par exemple dans [11, 12] les auteurs proposent un modèle de consommation au niveau RTL basé uniquement sur les informations structurelles, c’est-à-dire principalement les capacités des connexions. Ce modèle de consommation est alors indépendant des statistiques des signaux. Ceci permet d’éviter l’usage de simulations avec vecteurs de données ou simulations probabilistes et donc de réduire le temps d’estimation tout en permettant une estimation environ dix fois plus précise que l’utilisation de modèles dont les vecteurs de données sont caractérisées. De plus, un avantage intéressant proposé dans cette méthode est la possibilité d’estimer un résultat pire cas, ce qui permet de dimensionner les alimentations et le refroidissement d’un système. Ces fonctionnalités sont intégrées, parmi d’autres non décrites ici, dans l’outil d’estimation RTLEst [13].
|
Table des matières
Introduction
1 État de l’art
1.1 Consommation dans les circuits
1.1.1 Consommation dans les circuits CMOS
1.1.1.1 Consommation dynamique
1.1.1.2 Consommation statique
1.1.1.3 Évolution de la technologie
1.1.2 Méthodes d’estimation
1.1.2.1 Bas niveau – Portes logiques
1.1.2.2 Caractérisation de blocs
1.1.2.3 Haut niveau – Algorithmique
1.1.3 Méthodes de réduction
1.1.3.1 Clock gating
1.1.3.2 Power gating
1.1.3.3 Changement dynamique de tension et de fréquence
1.1.3.4 Accélérateurs matériels
1.2 Circuits logiques reconfigurables
1.2.1 Architectures pour la reconfiguration
1.2.2 Méthodes de reconfiguration
1.2.2.1 Reconfiguration complète
1.2.2.2 Reconfiguration dynamique partielle
1.2.2.3 Reconfiguration différentielle
1.2.3 Constructeurs et outils
1.3 Consommation des circuits reconfigurables
1.3.1 Répartition de la consommation
1.3.2 Estimation de la consommation
1.3.3 Techniques de réduction de la consommation dans les architectures reconfigurables
1.3.3.1 Optimisation dynamique de l’arbre d’horloge
1.3.3.2 Ordonnancement et allocation des ressources
1.3.3.3 Effacement de la configuration
1.3.3.4 Exploitation du parallélisme
1.4 Coût de la reconfiguration sur le système
1.4.1 Impact sur la surface
1.4.2 Impact sur les performances
1.4.3 Impact sur la puissance
1.5 Modélisation à haut niveau et estimation de la consommation
1.5.1 Approche MDE
1.5.2 Plateforme OpenPEOPLE
1.6 Conclusion et problématique
2 Étude de l’impact du parallélisme
2.1 Introduction
2.2 Procédure expérimentale
2.2.1 Plateforme
2.2.2 Multiplication matricielle
2.3 Analyse des mesures et extraction du modèle
2.3.1 Analyse du temps d’exécution
2.3.2 Analyse de la surface
2.3.3 Analyse de l’énergie
2.3.3.1 Énergie en fonction du déroulage de boucle
2.3.3.2 Énergie en fonction du temps d’exécution
2.3.3.3 Analyse des gains énergétiques
2.3.4 Extraction du modèle
2.4 Applications de validation du modèle
2.4.1 Estimation de mouvement
2.4.2 Filtre de déblocage (H.264)
2.4.3 Analyse et résultats
2.5 Emploi de la reconfiguration dynamique
2.5.1 Modélisation du FPGA
2.5.2 Modélisation des tâches et de la reconfiguration
2.5.3 Modélisation de la consommation énergétique
2.5.4 Effacement de la configuration
2.6 Conclusion
3 Analyse de la Consommation de la Reconfiguration Dynamique
3.1 Introduction
3.2 Modèles de consommation
3.2.1 Modèle à gros grain
3.2.2 Modèle à grain moyen
3.2.3 Étude de la précision
3.2.3.1 Procédure de mesure
3.2.3.2 Précision énergétique
3.2.3.3 Précision en puissance
3.2.4 Conclusion
3.3 Analyse détaillée de la consommation
3.3.1 Organisation du fichier de configuration
3.3.2 Lecture et écriture de la configuration
3.3.3 Application de la configuration
3.3.3.1 Surconsommations transitoires
3.3.3.2 Variations de la consommation idle
3.3.4 Extraction du modèle à grain fin
3.3.5 Étude de la précision du modèle à grain fin
3.3.5.1 Précision énergétique
3.3.5.2 Précision en puissance
3.4 Conclusion
4 Exploration de la consommation dans les plateformes reconfigurables
4.1 Optimisation du contrôleur de reconfiguration
4.1.1 Contrôleur de reconfiguration
4.1.2 Gestion de la reconfiguration
4.1.3 Implémentation et performances
4.1.4 Analyse de puissance
4.2 Modélisation de systèmes hétérogènes reconfigurables
4.2.1 Modélisation de l’architecture
4.2.1.1 Caractérisation des ressources
4.2.1.2 Caractéristiques de consommation idle
4.2.1.3 Caractéristiques de la reconfiguration dynamique
4.2.2 Modélisation de l’application
4.2.2.1 Graphe de dépendance des tâches
4.2.2.2 Instanciation des tâches
4.2.2.3 Temps d’exécution, puissance et énergie
Conclusion
Télécharger le rapport complet