Les Architectures Multiprocesseursย
Classification des architectures multiprocesseurs
Il existe deux grandes classes dโarchitectures multiprocesseurs, suivant que les processeurs partagent ou non lโespace dโadressage entre les diffรฉrentes tรขches qui sโexรฉcutent sur les unitรฉs de traitement.
Les architectures ร mรฉmoire distribuรฉe
Dans une architecture multiprocesseurs ร mรฉmoire distribuรฉe, chaque processeur possรจde son propre espace dโadressage et dispose donc dโune mรฉmoire privรฉe dans laquelle il est le seul ร pouvoir lire et รฉcrire. Les tรขches sโexรฉcutant sur deux processeurs distincts, communiquent entre elles par passage de message.
Les architectures ร mรฉmoire partagรฉe
Dans les architectures ร mรฉmoire partagรฉe, tous les processeurs accรจdent au mรชme espace dโadressage. La mรฉmoire est logiquement partagรฉe, cependant elle peut รชtre physiquement distribuรฉe sur la puce : il sโagit des architectures NUMA (Non Uniform Memory Access).
Dans ce cas lโarchitecture est souvent dรฉcomposรฉe en sous systรจmes, appelรฉs clusters, oรน chaque cluster contient un petit nombre de processeurs et un contrรดleur mรฉmoire permettant dโaccรฉder ร une tranche de lโespace adressable. Dans le cadre de cette thรจse, nous visons particuliรจrement les architectures manycore ร mรฉmoire partagรฉe clusterisรฉes de type NUMA pour deux principales raisons :
โ Le caractรจre rรฉgulier de ces architectures facilite la modรฉlisation รฉnergรฉtique. En effet on admet que modรฉliser une architecture clusterisรฉe revient ร modรฉliser un cluster et le rรฉseau qui relie les diffรฉrents clusters entre eux.
โ La plupart des machines multiprocesseurs gรฉnรฉralistes (ordinateurs personnels, serveurs de calculs) utilisent un modรจle basรฉ sur la mรฉmoire partagรฉe. Pour comprendre comment modรฉliser la consommation รฉnergรฉtique au sein dโune architecture manycore ร mรฉmoire partagรฉe de type NUMA, il faut dโabord comprendre les sources et lโรฉvolution de la consommation dans de telles architectures.
Consommation รฉnergรฉtique dans les systรจmes manycore
la consommation รฉnergรฉtique a toujours รฉtรฉ un facteur important dans la conception des circuits intรฉgrรฉs aussi bien pour les systรจmes fixes que pour les systรจmes mobiles. Dans le cas des systรจmes mobiles, minimiser lโรฉnergie consommรฉe permet dโaugmenter la durรฉe de vie des batteries et donc leur autonomie. Dans le cas des systรจmes fixes, la performance du systรจme est plus importante que son autonomie. Cependant, la performance et la consommation sont รฉtroitement liรฉes puisquโaugmenter la vitesse de traitement revient ร augmenter la frรฉquence de fonctionnement et donc la puissance consommรฉe ce qui augmente le coรปt du systรจme de refroidissement. Lโรฉnergie consommรฉe est la somme de deux parties : une partie dynamique et une partie statique. La consommation dynamique est due ร lโactivitรฉ du circuit plus prรฉcisรฉment au changement dโรฉtats des transistors tandis que la consommation statique est reliรฉe aux courants de fuites. Les courants de fuites circulent entre la grille et le substrat dรจs que le circuit est alimentรฉ indรฉpendamment du changement dโรฉtat du transistor.
Contrรดle de la consommation รฉnergรฉtiqueย
Au sein dโune puce, la puissance thermique dissipรฉe par un transistor, lorsquโil change dโรฉtat, se propage vers tous les transistors voisins. De ce fait, la tempรฉrature dโune unitรฉ ne dรฉpend pas seulement de la puissance dissipรฉe par cette unitรฉ, mais รฉgalement de celle dissipรฉe par les unitรฉs voisines. Quand la tempรฉrature de la puce augmente, ceci favorise la circulation des courants de fuites. On se retrouve ainsi dans un cercle vicieux qui lie la tempรฉrature aux courants de fuites. De plus le phรฉnomรจne de dissipation thermique ne se produit pas de la mรชme faรงon au centre et sur les bords de la puce. En effet il est plus facile de dissiper la chaleur des unitรฉs qui se trouvent en pรฉriphรฉrie. Au regard de toutes ces complications liรฉes ร la consommation des circuits intรฉgrรฉs, comment les architectures manycore peuventelles nous offrir ร la fois de meilleures performances et une basse consommation ? Lโavantage des architectures manycore est quโelles prรฉsentent gรฉnรฉralement une rรฉgularitรฉ dans leur structure (exemple : dรฉcoupage en clusters identiques). Elles offrent la possibilitรฉ de gรฉrer le voltage et la frรฉquence de fonctionnement de chaque processeur ou de chaque cluster indรฉpendamment des autres. Ainsi, il est possible dโรฉteindre les processeurs qui ne sont pas utilisรฉs ou baisser leur frรฉquence de fonctionnement. Une telle technique sโappelle DVFS (Dynamic Voltage Frequency Scaling). Elle permet de diminuer la consommation des circuits intรฉgrรฉs pendant leur exรฉcution. Une autre faรงon de diminuer la consommation consiste ร inhiber le signal dโhorloge de certains composants lorsquโils ne sont pas utilisรฉs : il sโagit du ยซclock gatingยป. Les deux mรฉthodes DVFS et ยซclock gatingยป agissent sur la consommation du circuit pendant son fonctionnement ยซon lineยป.
รvaluation prรฉcoce de la consommation รฉnergรฉtique
Lโestimation de la consommation dโun systรจme embarquรฉ peut รชtre rรฉalisรฉe ร plusieurs niveaux dโabstraction. La prรฉcision de cette estimation est meilleure quand elle est rรฉalisรฉe sur une description du circuit proche de la rรฉalisation physique telle que le niveau porte logique et le niveau RTL. Au niveau porte logique, la puissance dynamique est dissipรฉe suite ร un changement de valeur dโun signal cโest ร dire dโun fil physique entre deux portes. Il suffit donc de dรฉtecter tous les รฉvรฉnements de ce type pour รฉvaluer la valeur totale de lโรฉnergie consommรฉe. Lโestimation obtenue est trรจs prรฉcise puisque lโon utilise une description du circuit fidรจle ร lโimplรฉmentation finale. Cette proximitรฉ du systรจme final constitue ร la fois un avantage et un inconvรฉnient puisque elle permet dโavoir une bonne prรฉcision en contre partie dโun temps de simulation trรจs long. Pour gagner en vitesse dโestimation, on peut utiliser une description plus gros grain du systรจme tel que la description RTL (Resgister Transfer Level). Au niveau RTL le systรจme est composรฉ de registres. Pour modรฉliser la consommation ร ce niveau il suffit de considรฉrer le changement de lโรฉtat dโun registre comme source de dissipation dโรฉnergie. Ce second type dโรฉvรจnement รฉtant
plus abstrait, on perd cependant de prรฉcision. De plus, au niveau RTL, les temps de simulation et les efforts de codage restent importants. Avec lโarrivรฉe des MPSoC, la nรฉcessitรฉ dโune รฉtude ร des niveaux dโabstraction plus hauts de la puissance dissipรฉe est devenue une รฉvidence. La figure 2.5 montre que le plus tรดt on intervient dans le cycle de fabrication des circuits intรฉgrรฉs pour minimiser la consommation, meilleurs sont les rรฉsultats. En effet, selon LโITRS (International Technology Roadmap for Semiconductors), intervenir au niveau comportemental permet de rรฉduire la consommation totale du systรจme final de 40% contre 20% au niveau physique. Lโรฉtude de la consommation รฉlectrique au niveau comportemental relรจve du prototypage virtuel. Il existe plusieurs niveaux dโabstraction pour le prototypage virtuel suivant la prรฉcision avec laquelle on dรฉcrit les diffรฉrents types de contention dans le matรฉriel qui affectent les temps dโexรฉcution : MISS sur les mรฉmoires caches, bande passante limitรฉe des bus, etc. A ce niveau les รฉvรจnements significatifs du point de vue รฉnergรฉtique sont encore plus abstraits. Il sโagit par exemple de lโexรฉcution dโune instruction par un processeur ou dโun MISS sur le cache processeur. Les descriptions comportementales les plus prรฉcises dites ยซ Cycle Accurate ยป modรฉlisent prรฉcisรฉment les caches et diffรฉrents bus du systรจme. Il est possible de simplifier encore plus la description comportementale du systรจme considรฉrรฉ en se passant de la dimension temporelle. Il sโagit du niveau comportemental qui ne dรฉcrit pas les contentions.
SoCLib
SoCLib [2] est une plate-forme de prototypage virtuel permettant la modรฉlisation et la simulation efficace de plate-formes multiprocesseurs ร espace mรฉmoire partagรฉ. Le coeur de la plate-forme SoCLib est une bibliothรจque de modรจles de simulation pour les composants matรฉriels (IP cores) constituant les briques de base de ces systรจmes. Les modรจles de simulation sont รฉcrits en utilisant le langage SystemC. La plate-forme SoCLib fournit deux types de modรจles de simulation
โ Les modรจles de niveau CABA (Cycle-Accurate and Bit-Accurate) [3], qui permettent une รฉvaluation prรฉcise des performances.
โ Les modรจles de niveau TLM-T (Transaction Level Model with Timing) [4] qui permettent une rรฉduction des temps de simulation au prix dโune lรฉgรจre perte de prรฉcision temporelle.
En plus de cette bibliothรจque, la plate-forme SoCLib fournit des outils logiciels aux concepteurs dโapplications embarquรฉes : accรฉlรฉrateurs de simulation, systรจmes dโexploitation embarquรฉs temps rรฉel, outils de configuration, outils de dรฉverminage et outils de qualification des modรจles. Tous les composants matรฉriels disponibles dans SoCLib respectent le protocole de communication VCI [5]. La plate-forme SoCLib possรจde deux caractรฉristiques qui nous intรฉressent particuliรจrement :
โ La plupart des modรจles sont gรฉnรฉriques et il est donc possible dโajuster diffรฉrents paramรจtres matรฉriels tels que la taille des caches, la capacitรฉ des bancs mรฉmoires, ou bien la latence et le dรฉbit de lโinfrastructure de communication. Tous ces paramรจtres jouent ร la fois sur la performance et la consommation รฉnergรฉtique.
โ Tous les composants matรฉriels disponibles possรจdent un modรจle RTL synthรฉtisable, ce qui permet donc la synthรจse physique sur FPGA, ou sur ASIC.
|
Table des matiรจres
1 Introduction
2 Problรฉmatique
2.1 Les Architectures Multiprocesseurs
2.2 Classification des architectures multiprocesseurs
2.2.1 Les architectures ร mรฉmoire distribuรฉe
2.2.2 Les architectures ร mรฉmoire partagรฉe
2.3 Consommation รฉnergรฉtique dans les systรจmes manycore
2.4 Contrรดle de la consommation รฉnergรฉtique
2.5 รvaluation prรฉcoce de la consommation รฉnergรฉtique
2.6 SoCLib
2.7 Le projet TSAR
2.8 Conclusion
3 รtat de lโart
3.1 Les diffรฉrentes approches dโestimation de la consommation des systรจmes embarquรฉs
3.2 Estimation de la consommation bas niveau
3.2.1 Estimation de la consommation au niveau transistor
3.2.2 Estimation de la consommation au niveau portes logiques
3.2.3 Estimation de la consommation au niveau RTL (Register Transfer Level)
3.2.4 Conclusion
3.3 Estimation haut niveau
3.3.1 WATTCH
3.3.2 AVALANCHE
3.3.3 PowerViP
3.3.4 MCPAT
3.3.5 HSL (Hybrid System Level Power Consumption Estimation)
3.4 Conclusion
4 EDPE : Mรฉthode dโestimation prรฉcoce de la consommation des architectures MPSoCs
4.1 EDPE : Principe
4.2 Plate-forme dโรฉtude
4.2.1 Le processeur : MIPS32
4.2.2 Le cache : XCache
4.2.3 LโInterconnect : Ring
4.2.4 La mรฉmoire : VCI-Simple-RAM
4.3 Les modรจles de consommation
4.3.1 Le modรจle du processeur
4.3.2 Le modรจle du Cache
4.3.3 Le modรจle du Bus
4.3.4 Le modรจle des mรฉmoires : RAM/ROM
4.3.5 Le modรจle รฉnergรฉtique de la plate-forme
4.4 Instrumentation de la plate-forme
4.5 Mesure de la puissance consommรฉe
4.5.1 Mesures physiques sur FPGA
4.5.2 Mesure de la consommation avec PowerPlay
4.5.3 Comparaison entre les deux mรฉthodes
4.6 Les Modes de fonctionnement
4.6.1 Mode 0 : STATIC
4.6.2 Mode 1 : DCACHE-RING-RAM
4.6.3 Mode 2 : PROC-ICACHE
4.6.4 Mode 3 : RING-ROM
4.6.5 Mode 4 : ICACHE-RAM
4.6.6 Mode 6 : DCACHE
4.6.7 Mode 7 : RAM-READ
4.6.8 Mode 8 : DCACHE-RAM-WRITE
4.6.9 Mode 9 : RAM-WRITE
4.6.10 Mode 10 : DCACHE-RAM-READ-AND-WRITE
4.6.11 Mode 11 : PROC-STUTTER
4.7 Conclusion
5 Conclusion
Tรฉlรฉcharger le rapport complet