• Aucun résultat trouvé

Simulateur utilisant l’ordonnancement statique basé sur division de fréquence

fréquences multiples et changeant dynamiquement

8.3.2 Simulateur utilisant l’ordonnancement statique basé sur division de fréquence

Figure 8.15: Changement de fréquence dans une architecture avec multiples horloges

ordonnanceur dynamique. Les composants comme le DVFS doivent être écrits spéciale-ment pour ce simulateur.

La vitesse de simulation est inférieure à celle de la version statique du simulateur. En fait, la vitesse de simulation est fortement influencée par le nombre de changements de fréquence. Le motif d’ordonnancement doit être reconstruit pour chaque changement de fréquence.

8.3.2 Simulateur utilisant l’ordonnancement statique basé sur division de fréquence

La deuxième solution pour l’ordonnancement statique des architectures contenant des composants utilisant des fréquences différentes consiste à choisir la fréquence de l’horloge unique dans l’architecture égale au plus petit commun multiple de toutes les fréquences possibles de tous les composants dans l’architecture.

Les fréquences requises par les composants matériels sont obtenues en divisant la fréquence PPCM. La période du motif d’ordonnancement sera la période correspondant à cette nouvelle fréquence. Le motif d’ordonnancement contient deux points de simula-tion, correspondant aux fronts positif et négatif d’horloge.

La Figure 8.16 montre comment l’architecture présentée dans la Figure 8.12est mod-élisée en utilisant la technique de division de la fréquence.

L’interconnexion, la mémoire, une partie de l’adaptateur de fréquence et tous les autres périphériques à l’exception des caches et des processeurs travaillent à la même fréquence. Cette fréquence ne change pas au cours de la simulation. Un nouvel élément introduit (ap-pelée Frequency divisor dans la figure) obtient cette fréquence divisant la fréquence PPCM par une constante entière. Si le diviseur de constante est 1, l’adaptateur de fréquence n’est pas nécessaire. La fréquence de chaque processeur, de sa mémoire cache et d’une autre partie de son adaptateur de fréquence est contrôlée par un composant DVFS. Ainsi, tous les composants à l’exception des diviseurs de fréquence et des DVFSes utilisent comme horloge la sortie d’un autre composant.

Pour accepter la dépendance sur un front d’un signal de sortie, nous avons modifié la façon dont un cycle est simulé. Le Listing 8.4 présente la simulation d’un cycle. Il

8.3 Simulateur d’ordonnancement statique acceptant des fréquences multiples et changeant dynamiquement Interconnect CLK TTY Other peripherals RAM SS CPU 2 SS CPU N ca che INST. DATA CPU DVFS Frequency adapter SS CPU 1 Frequency divisor

Figure 8.16: La modélisation des architectures avec fréquences multiples en divisant une seule fréquence

suppose que le simulateur applique les optimisations SystemCASS concernant l’écriture des ports de sortie et l’ordonnancement des fonctions Mealy. Par rapport au cycle normal de simulation, un appel aux processus dépendant sur un signal de sortie a été ajouté (lignes7à9).

Listing 8.4 La simulation d’un cycle dans le simulateur basé sur la division de fréquence 1 ✈♦✐❞ s✐♠✉❧❛t❡❴❛❴❝②❝❧❡ ✭ ✈♦✐❞ ✮ ④ 2 tr❛♥s✐t✐♦♥❴♣r♦❝❡ss❡s ✭✮❀ 3 ✉♣❞❛t❡❴r❡❣✐st❡rs ✭✮❀ 4 5 ♠♦♦r❡❴♣r♦❝❡ss❡s ✭✮❀ 6 7 ♦✉t❴s✐❣♥❛❧❴❝❧♦❝❦❴tr❛♥s✐t✐♦♥❴♣r♦❝❡ss❡s ✭✮❀ 8 ♦✉t❴s✐❣♥❛❧❴❝❧♦❝❦❴♠♦♦r❡❴♣r♦❝❡ss❡s ✭✮❀ 9 ✉♣❞❛t❡❴r❡❣✐st❡rs ✭✮❀ 10 11 ♠❡❛❧②❴♣r♦❝❡ss❡s ✭✮❀ 12

Les processus de Transition utilisant comme horloge un signal de sortie sont regroupés dans une liste. Les fonctions de Moore sont regroupées dans une autre liste. Les pro-cessus de ces listes sont appelés lorsque leur front requis arrive. Comme d’habitude, les fonctions de Transition doivent être exécutées avant les fonctions de Moore, autrement une transition dans un mauvais état peut se produire. Dans un simulateur basé sur événements pour l’ordonnancement dynamique, ces processus de Transition et de Moore seraient tous exécutés dans le même delta cycle. Pour simuler le même comportement, les registres sont mis à jour après l’exécution du processus de Moore.

Au regard des règles de FSM selon lesquelles seulement les processus de Moore et de Mealy peuvent écrire sur les ports de sortie, un processus de Mealy ne devrait pas participer à la génération du signal d’horloge parce que la variation de sa sortie pendant la phase de stabilisation créerait de faux cycles pour les composants pour lesquels cette sortie

représente le signal d’horloge. Ce sont les raisons pour lesquelles les processus dépendant d’un signal de sortie ne sont pas appelés après l’exécution des processus de Transition et de Mealy.

La restriction d’écriture des processus de Transition rend impossible la mise en œuvre d’un diviseur capable de faire une division par 1. Une solution pour résoudre ce problème est de doubler la fréquence de l’horloge système. La division par 1 devient une division par 2, ce qui peut être désormais mis en œuvre. Au moins la moitié des cycles simulés ne seront pas utilisés.

Tous processus de Mealy dans l’architecture sont stabilisés ensemble, peu importe le type de leur signal d’horloge.

En ce qui concerne la mise en œuvre du simulateur, les deux listes des processus dépen-dant des signaux de sortie sont construites lorsque les processus sont triés.

Avant le début de la simulation, une fonction est générée pour chacune de ces deux listes. La Figure8.5présente un exemple de fonction générée. Pour chaque signal de sortie dont au moins un processus dépend, une variable statique est créé. Ces variables gardent l’ancienne valeur des signaux de sortie, puisque seule la valeur actuelle est maintenue par défaut par les ports de sortie. Le type de la variable dépend de la taille de donnée du signal. En utilisant les deux valeurs, nous pouvons déterminer si l’événement nécessaire s’est produit. Lorsqu’un événement se produit, tous les processus de la liste dépendant de cet événement sont exécutés.

Listing 8.5 Fonction générée pour les processus dépendant sur les fronts montants des signaux de sortie 1 ✐♥❧✐♥❡ ✈♦✐❞ ♦✉t❴s✐❣♥❛❧❴❝❧♦❝❦❴tr❛♥s✐t✐♦♥❴♣r♦❝❡ss❡s ✭ ✈♦✐❞ ✮ ④ 2 r❡❣✐st❡r ❢❝t ♣❀ 3 4 st❛t✐❝ ✉♥s✐❣♥❡❞ ❝❤❛r ✈❛❧✶ ❂ ✵❀ 5 ✐❢ ✭✯✭ ✉♥s✐❣♥❡❞ ❝❤❛r ✯✮ ✵ ①✾✸✹❝❜✽✹❯▲▲ ✦❂ ✈❛❧✶ ✮ ④ 6 ✈❛❧✶ ❂ ✯✭ ✉♥s✐❣♥❡❞ ❝❤❛r ✯✮ ✵ ①✾✸✹❝❜✽✹❯▲▲ ❀ 7 ✐❢ ✭ ✈❛❧✶ ✮ ④ 8 ✴✴ ❆❘▼✶ ✲❃ tr❛♥s✐t✐♦♥ ✭✮ 9 ♣✳ ✐♥t❡❣❡r ❂ ✵ ①✽✵❛✼✶✻✵❯▲▲ ❀ 10 ♣✳♣❢ ✭✭ ✈♦✐❞ ✯✮ ✵ ①✽✻❞✶❢❛✽ ✮❀ 11 ✴✴ ❈❆❈❍❊✶ ✲❃ tr❛♥s✐t✐♦♥ ✭✮ 12 ♣✳ ✐♥t❡❣❡r ❂ ✵ ①✽✵❛❡✻✸✵❯▲▲ ❀ 13 ♣✳♣❢ ✭✭ ✈♦✐❞ ✯✮ ✵ ①✽✻❞✹✶✷✽ ✮❀ 14 ✴✴ ❋◗❆❉❆P❚❊❘✶ ✲❃ tr❛♥s✐t✐♦♥❴✐♥✐t✐❛t♦r ✭✮ 15 ♣✳ ✐♥t❡❣❡r ❂ ✵ ①✽✵✽✾❝❜✵❯▲▲ ❀ 16 ♣✳♣❢ ✭✭ ✈♦✐❞ ✯✮ ✵ ①✾✸✺✺❝❜✵ ✮❀ 17 ✳✳✳ 18 19 ✳✳✳ 20 21

Le simulateur d’ordonnancement statique présenté permet de simuler les architectures avec des fréquences multiples et changeant dynamiquement. Il ne peut pas simuler les architectures avec des horloges multiples. Une seule horloge est utilisée et les autres fréquences sont obtenues en divisant la fréquence de cette horloge.

Un seul niveau de dépendance du signal est autorisé. Il n’est pas permis à un com-posant, dont le signal d’horloge est fourni par la sortie d’un autre comcom-posant, de générer

8.4 Algorithme adaptatifDVFSpour les architecturesSMP le signal d’horloge d’autres composants.

Le HDL n’est pas modifié pour ce simulateur. Le concepteur d’architecture doit cal-culer le PPCM de toutes les fréquences possibles quand il construit l’architecture. Il faut également ajouter le diviseur de fréquence et définir sa constante de division.

Ce simulateur ne peut pas être utilisé s’il y a des fréquences du système inconnues lorsque l’architecture est construite. Une fréquence future inconnue rend impossible le calcul du PPCM.

Les rapports entre la fréquence d’horloge système et les fréquences des composants influencent la vitesse de simulation. De grandes valeurs de ce ratio engendrent un grand nombre de cycles de simulation non utilisés. Seules les fonctions de Transition et de Moore des diviseurs de fréquence et les fonctions de Mealy de toutes les composantes sont exé-cutées dans ces cycles, ce qui ralenti ainsi la simulation.

Le nombre de changements de fréquence n’a pas d’influence sur la vitesse de simula-tion. Comme la fréquence de l’horloge système est un multiple de toutes les fréquences dans le système, aucun calcul particulier n’a lieu lorsque une fréquence est modifiée.

8.4 Algorithme adaptatif DVFS pour les architectures SMP

Dans cette section, nous décrivons notre algorithme adaptatif d’économie d’énergie pour les architectures SMP exécutant un non-RTOS (système d’exploitation non temps réel) préemptif. L’algorithme est mis en œuvre au niveau du système d’exploitation et il sup-pose que les applications exécutées sur le système d’exploitation ne fournissent aucune information sur leurs besoins de traitement. Contrairement aux RTOS, où le délai et le WCET(pire temps d’exécution) de chaque tâche dans le système sont connues, aucune de ces informations ne sont connues sur un non-RTOS.

Comme tous les autres algorithmes de DVFS, l’algorithme proposé permet d’économiser de l’énergie en réduisant la fréquence et la tension des processeurs lorsque l’utilisation du système le permet. Une partie du temps d’inactivité qui se produit en rai-son de l’absence de calcul est remplacée de cette façon par le calcul étendue par réduction de la fréquence.

Documents relatifs