2.4.2 Vitesse
En supposant que le système S sera
implémenté par un ASIC (Circuit Intégré à
Application Spécifique), la vitesse (ou le temps) d'exécution de
toutes les tâches du système sera estimée selon que des
opérations s'exécutent séquentiellement ou
parallèlement (à la différence d'un processeur classique
à usage général où les opérations sont
exclusivement exécutées séquentiellement). Pour ce
paramètre, il s'agit aussi d'une estimation (la valeur exacte du temps
d'exécution ne sera connue qu'à la toute dernière
étape de conception). Toutefois, en comparant des aspects comparables
(c'est-à-dire que les paramètres qui ne sont pas pris en compte
ont le même impact pour toutes les combinaisons), la conception faite
à ce niveau ne faussera pas les tâches menées aux autres
stades de conception.
Dans le prochain chapitre, des détails seront
donnés sur les fichiers d'entrée (fichiers de données)
nécessaires pour notre travail. Soulignons seulement que notre
présent travail est conduit après deux tâches de
synthèse de circuits appelées ordonnancement d'opérations
et allocation de ressources physiques.
L'ordonnancement d'opérations est défini,
succinctement, comme étant la manière dont sont
exécutées les opérations d'un circuit. En d'autres termes,
quelles sont les opérations qui seront exécutées
séquentiellement ou parallèlement, et à quel moment. Cette
tâche d'ordonnancement est menée de manière à
satisfaire les trois contraintes (surface, vitesse et consommation de
puissance).
L'allocation des ressources physiques, menée
après la tâche d'ordonnancement, consiste à allouer des
registres aux différentes variables utilisées par l'algorithme de
l'application à implémenter par un circuit, ainsi que
l'allocation des interconnexions qui seront utilisées pour les
différents transferts de données entre les registres et les
unités fonctionnelles. Aussi bien pour les registres que pour les
interconnexions, il s'agit d'un problème où il faut optimiser les
nombres de registres et d'interconnexions sans qu'il y'ait pour autant un
conflit quelconque (utilisation simultanée d'un registre par deux ou
plusieurs variables, ou transfert simultané de deux données ou
plus sur la même interconnexion).
Ceci étant dit, l'estimation du temps induit par la
combinaison en cours d'étude se fait en consultant le fichier
d'ordonnancement. Ce temps est défini comme suit :
Nb cycles
_
T = max ; 1
t = =
j Nb
comb j (2.5)
j j,
j=1
Nb_cycles est le nombre total de cycles (pas de
contrôle dans notre contexte) ayant servi pour l'ordonnancement des
différentes opérations ; ti,j est le temps
d'exécution de la jème opération
ordonnancée dans le ième cycle ; Nbi est le
nombre total d'opérations s'exécutant en parallèle dans le
ième cycle.
En notant que chacune des opérations est
exécutée par l'une des instances de la combinaison, le temps
tij est clairement défini (il caractérise le temps
d'exécution de cette instance - incluse dans la bibliothèque
-).
Ainsi, le temps total d'exécution induit par une
combinaison peut être simplement estimé par l'équation
(2.5). Enfin, notons que ce temps T sera une donnée importante pour
fixer la fréquence de fonctionnement du circuit. Théoriquement, F
= 1/T, mais afin de garantir un fonctionnement correct du circuit, F sera
légèrement inférieure à 1/T. Ceci est
évidemment valable si T englobe le temps d'exécution de
toutes les parties (opératives et de contrôle) depuis
l'introduction des signaux d'entrée jusqu'à la
génération totale des signaux de sortie.
|