WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Affectation de circuits d'une bibliothèque a des unités fonctionnelles d'une partie opérative avec des contraintes de surface, de vitesse et de consommation d'énergie.

( Télécharger le fichier original )
par Farida LOUACHENI
Université Saad Dahleb Blida - Ingénieur d'état Informatique  2011
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

3.3.3 Algorithmes :

3.3.3.1 Algorithme pour la fonction récursive configuration() :

Cet algorithme détermine la surface, le temps et la consommation d'énergie d'une configuration donnée. Ces configurations sont déterminées de manière récursive où chacune d'elles est composée de Ni instances de chaque opérateur i utilisé dans le circuit. Un groupe de Ni instances est constitué en considérant tous les cas possibles et en se basant sur les nombres d'instances de cet opérateur en bibliothèque et dans le circuit à concevoir.

Variable : ptr1 : pointeur de type COMB_TYP_OP ; Ptr11 : pointeur de type INSTANCE ; surface_partielle : réel ;

DEBUT

surface_partielle :=surface ;

Si (ptr==0)

Alors {

// Faire appel à la fonction calculer_S_T_P() qui permet de calculer la surface, le // temps et la puissance d'une configuration

calculer_S_T_P (head_comb_ops) ;

flag :=1 ;

surface :=0 ;

return ;

}

Fsi

Afficher (`' configuration : ptr = `', ptr-)operateur),

Si (flag ? 0)

Alors

ptr_svg :=ptr_svg-)prev ;

Fsi

pour (ptr1:=ptr1-)head ; ptr1? 0 ; surface=surface_partielle, maj_dp(ptr,ptr1),

maj2_dp(ptr->next), ptr1=ptr1->next)

Faire {

ptr11:=ptr1-)head ;

//appel de fonction surface_temp_puissance

surface_temp_puissance (ptr11,ptr-)operateur) ;

Si (flag==0)

Alors {

Allocate (ptr_svg) ; // Allocation de l'espace mémoire pour le pointeur ptr_svg ptr_svg-)operation := ptr-)operateur ;

ptr_svg-)next := 0 ;

ptr_svg-)next := 0 ;

//Faire appel a la fonction inserer4

inserer4 (ptr_svg) ;

}

Fsi

configuration (ptr-)next) ;// appel récursif

}

Ffaire

ptr_svg := ptr_svg-)next ;

ptr := ptr-)prev ;

FIN

3.3.3.2 Algorithme qui calcule la surface, la vitesse et la puissance d'une configuration :

La détermination de la surface, du temps et de la consommation d'énergie d'une configuration donnée sera ultérieurement expliquée de manière simple et claire à travers un exemple.

calculer_S_T_P (variable : head_comb_ops : pointeur tête sur la structure 7 COMB_OPS) :

Variables : ptr2 : pointeur sur la structure COMB_OPS ;

max_delai, max_puissance, delai_moyen, puissance_moyenne : réel ;

fp, fp1 : Fichier ;

i, num_cycle : entier ;

ch_temp [4], fich_dp [20], mot [20] : chaîne de caractère ;

c : caractère ;

t_max, energie, e : réel ;

DEBUT max_delai := -1 ;

max_puissance := -1 ;

delai_moyen := 0 ;

puissance_moyenne := 0 ;

pour (i:=1 ; i = nb_traces ; i++)

Faire {

Ecrire la valeur de i dans la chaine ch_temp ;

Ecrire `' DP `' dans la chaine fich_dp;

Concaténer fich_dp et ch_temp ; // concaténation dans la chaine fich_dp

//ouvrir le fichier fp en lecture

fp :=ouvrir (fich_dp, en lecture) ;

temps := 0 ;

energie := 0 ;

Tant que non fin de fichier pointé par fp

Faire {

t_max := -1 ;

Lecture (fp, num_cycle, mot) ;

Tant que (mot ? `' FIN `')

Faire {

Si (mot ? `' # `')

Alors {

ouvrir le fichier mot en lecture ; // ce fichier est pointé par fp1

lire à partir de ce fichier s, t et e // s, t et e sont la surface, le temps et la

// consommation d'énergie d'une instance donnée

Fermer ce fichier;

Si (t > t_max)

Alors

t_max :=t ;

Fsi

energie :=energie+e ;

}

Fsi

lire à partir du fichier pointé par fp la chaîne de caractères suivante

// cette chaîne indique le nom d'une instance

}

Ffaire

Faire un saut de ligne dans le fichier ponté par fp ;

temps := temps + t_max ;

}

Ffaire

puissance :=energie / temps ;

Si (max_delai < temps)

Alors

max_delai :=temps ;

Fsi

Si (max_puissance < puissance) Alors

max_puissance :=puissance ;

Fsi

delai _moyen :=delai_moyen + max_delai ;

puissance_moyenne := puissance_moyenne + max_puissance ;

fermer le fichier pointé par fp ;

}

Ffaire

delai_moyen :=delai_moyen / nb_traces ;

puissance_moyenne := puissance_moyenne / nb_traces ;

Si (surface <= Sf ET max_delai <= Tf ET max_ puissance <= Pf)

Alors {

Afficher (`'SUCCES : surface:= , max_delai:= , max_ puissance:= `',surface, max_delai, max_puissance) ;

Afficher (`' delai_moyen:= , puissance_moyenne:= `', delai_moyen, puissance_moyenne) ;

Afficher (`' Utiliser les instances d'operateurs se trouvant dans les fichiers DP `') ; Invoquer Linux pour déterminer le temps CPU de cette exécution et le sauvegarder dans le fichier T_CPU_AFFECT ;

exit() ;
}

Sinon

Afficher (`'Echec : Contrainte(s) non satisfaite(s) avec cette combinaison `') ;

Fsi

FIN

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Un démenti, si pauvre qu'il soit, rassure les sots et déroute les incrédules"   Talleyrand