Corrigé
CODESIGN TD1 Partitionnement
Cet article propose une analyse guidée d'exercices de codesign portant sur le partitionnement matériel/logiciel. Il détaille la recherche d'architectures mixtes minimales et maximales ainsi que l'optimisation des temps d'exécution et de la consommation sous contraintes d'implémentation.
D'après le document CODESIGN TD1 Partitionnement
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Programming, Math, Architecture · PDF · 4 pages · 2013
Afficher l'aperçu du document
Ce document présente un ensemble d'exercices de partitionnement dans le cadre d'une épreuve de CODESIGN. Il teste les compétences d'analyse d'architectures mixtes matériel/logiciel, de respect des contraintes d'implémentation, et d'optimisation du temps d'exécution ou de la consommation énergétique.
Exercice 1
Cet exercice demande d'identifier la composition de l'architecture mixte avec un nombre minimal et maximal de composants, puis de retrouver le meilleur partitionnement des nœuds pour un temps d'exécution minimal dans ces architectures.
Les contraintes identifiées sont les suivantes :
- Maximum deux processeurs dans l'architecture finale.
- Deux blocs matériels, chacun pouvant exécuter uniquement op2 OU op3.
- Au moins un bloc matériel doit être utilisé.
- Toutes les opérations peuvent être implémentées en logiciel.
- N1 et N5 doivent être implémentés de la même manière (tous deux en logiciel ou tous deux en matériel).
- Le temps d'exécution logiciel est 1,5 fois celui du matériel.
Composition minimale et maximale de l'architecture
Composition minimale
Pour minimiser le nombre de composants, on cherche à utiliser le moins de blocs matériels et de processeurs possible, tout en respectant les contraintes :
- Au moins un bloc matériel doit être utilisé.
- Les blocs matériels ne peuvent exécuter que op2 OU op3.
- N1 et N5 doivent être implémentés de la même manière.
On choisit donc :
- 1 processeur (car au moins un processeur est requis).
- 1 bloc matériel (le minimum autorisé).
Ce bloc matériel peut être dédié soit à op2 soit à op3. Puisque N1 et N5 doivent être identiques et qu'ils ne correspondent pas à op2 ou op3, ils seront implémentés en logiciel.
Composition minimale : 1 processeur + 1 bloc matériel (op2 OU op3)
Composition maximale
Pour maximiser le nombre de composants :
- Maximum 2 processeurs.
- 2 blocs matériels (le maximum disponible).
Chaque bloc matériel peut être dédié à op2 ou op3, ce qui permet d'utiliser les deux blocs matériels en parallèle.
Composition maximale : 2 processeurs + 2 blocs matériels (un pour op2, un pour op3)
Meilleur partitionnement des nœuds pour un temps d'exécution minimal
Architecture minimale
Avec 1 processeur et 1 bloc matériel (op2 ou op3), l'objectif est de répartir les nœuds pour minimiser le temps d'exécution.
Le bloc matériel accélère les opérations qu'il exécute (op2 ou op3), tandis que les autres restent en logiciel (temps 1,5 fois plus long).
On choisit d'implémenter en matériel l'opération la plus fréquente ou la plus critique en temps. Si op2 est la plus critique, on place tous les nœuds op2 dans le bloc matériel.
N1 et N5 doivent être identiques, donc si N1 est en logiciel, N5 l'est également.
Le temps total est la somme des temps d'exécution de chaque nœud, avec un facteur 1 pour le matériel et 1,5 pour le logiciel.
Partitionnement minimal : bloc matériel pour op2, N1 et N5 en logiciel, autres opérations en logiciel.
Architecture maximale
Avec 2 processeurs et 2 blocs matériels (un pour op2, un pour op3), il devient possible de placer toutes les opérations op2 et op3 dans les blocs matériels, les autres restant en logiciel.
N1 et N5 doivent être identiques, donc tous deux en logiciel ou tous deux en matériel.
Le temps d'exécution est minimisé car les opérations op2 et op3 sont exécutées sur du matériel dédié.
Partitionnement maximal : op2 et op3 en matériel, N1 et N5 en logiciel, deux processeurs utilisés.
Exercice 2
L'objectif est d'identifier la composition minimale et maximale de l'architecture mixte, de trouver le meilleur partitionnement pour un temps d'exécution minimal, puis de déterminer la composition et le partitionnement optimaux pour la production de x1 et x2.
Les contraintes de l'énoncé sont :
- Répartition des nœuds : op1 (n1, n4, n7), op2 (n2, n6, n8), op3 (n3, n5, n11), op4 (n10, n12, n9).
- Maximum 2 processeurs, minimum 1 processeur.
- Blocs matériels dédiés à une seule opération.
- Si 2 processeurs sont utilisés, au maximum 3 blocs matériels sont autorisés.
- Si 1 processeur est utilisé, au minimum 2 blocs matériels sont requis.
- Toutes les opérations peuvent être en logiciel sauf op2.
- N1 et N7 doivent être identiques (tous deux en matériel ou tous deux en logiciel).
- Temps logiciel = 1,5 x temps matériel.
Composition minimale et maximale
Composition minimale
Pour minimiser le nombre total de composants :
- 1 processeur (minimum requis).
- Au moins 2 blocs matériels (car l'utilisation d'un seul processeur impose un minimum de 2 blocs matériels).
Les blocs matériels sont dédiés à des opérations spécifiques. Comme op2 ne peut pas être exécutée en logiciel, un bloc matériel doit lui être obligatoirement attribué.
Composition minimale : 1 processeur + 2 blocs matériels (dont un dédié à op2).
Composition maximale
Pour maximiser le nombre de composants :
- 2 processeurs (maximum autorisé).
- 3 blocs matériels (maximum autorisé pour 2 processeurs).
Composition maximale : 2 processeurs + 3 blocs matériels.
Meilleur partitionnement pour un temps d'exécution minimal
Architecture minimale
Avec 1 processeur et 2 blocs matériels :
- Op2 est obligatoirement en matériel.
- On attribue le second bloc matériel à l'opération la plus critique (op1, op3 ou op4).
- N1 et N7 doivent être implémentés de la même manière. Si op1 est choisie en matériel, N1 et N7 seront tous deux en matériel.
Partitionnement minimal : op1 et op2 en matériel, autres opérations en logiciel, N1 et N7 en matériel.
Architecture maximale
Avec 2 processeurs et 3 blocs matériels :
- Op2 est obligatoirement en matériel.
- Deux autres opérations peuvent être placées sur les deux blocs matériels restants (par exemple op1 et op3).
- N1 et N7 restent identiques et sont placés en matériel.
Partitionnement maximal : op1, op2 et op3 en matériel, op4 en logiciel, N1 et N7 en matériel.
Composition et partitionnement pour la production de x1 et x2
La question demande de déterminer les opérations à implémenter en matériel pour minimiser le temps d'exécution de la production de x1 (CAS 1) et de x2 (CAS 2).
Cependant, le graphe de dépendances et la liaison exacte entre les nœuds et les sorties x1 et x2 ne sont pas spécifiés explicitement dans l'extrait du document source.
Il est impossible de répondre précisément à cette question faute d'informations sur les cheminements associés à x1 et x2.
Exercice 3
Cet exercice porte sur la recherche d'un partitionnement optimal selon deux critères distincts : le temps d'exécution sur l'architecture maximale et la consommation énergétique sur l'architecture minimale.
Les contraintes sont les suivantes :
- Répartition des nœuds : op1 (n1, n8), op2 (n2, n5, n7), op3 (n3, n4, n9, n11), op4 (n6, n10).
- Maximum 2 processeurs.
- 3 blocs matériels disponibles, chacun pouvant exécuter uniquement op1 OU op2 OU op3.
- Au moins 2 blocs matériels doivent être utilisés.
- Toutes les opérations peuvent être implémentées en logiciel.
- N1 et N7 doivent être identiques (matériel ou logiciel).
- Temps logiciel = 1,5 x temps matériel.
- Consommation moyenne processeur : 0,3 mW par opération.
- Consommation moyenne matériel : 0,1 mW pour op1 ; 0,2 mW pour op2 ; 0,3 mW pour op3.
- L'énergie totale est la somme des consommations de chaque opération.
Composition minimale et maximale
Composition minimale
Au moins 2 blocs matériels et au moins 1 processeur doivent être utilisés.
Composition minimale : 1 processeur + 2 blocs matériels.
Composition maximale
Maximum 2 processeurs et 3 blocs matériels.
Composition maximale : 2 processeurs + 3 blocs matériels.
Partitionnement sur l'architecture maximale pour un temps d'exécution minimal
Sur l'architecture maximale (2 processeurs, 3 blocs matériels), on attribue un bloc matériel à chacune des opérations op1, op2 et op3. Op4 ne disposant pas de bloc dédié, elle est exécutée en logiciel.
Les nœuds N1 (op1) et N7 (op2) sont tous deux exécutés sur du matériel dédié, ce qui satisfait la contrainte d'identité d'implémentation.
Partitionnement maximal : op1, op2 et op3 en matériel, op4 en logiciel.
Partitionnement sur l'architecture minimale pour une consommation minimale
Sur l'architecture minimale (1 processeur, 2 blocs matériels), deux opérations parmi op1, op2 et op3 sont en matériel, la troisième étant en logiciel.
Pour minimiser la consommation énergétique globale, on compare le gain d'énergie obtenu en passant du logiciel au matériel pour chaque opération :
- Op1 : passe de 0,3 mW (logiciel) à 0,1 mW (matériel), soit un gain de 0,2 mW par opération.
- Op2 : passe de 0,3 mW (logiciel) à 0,2 mW (matériel), soit un gain de 0,1 mW par opération.
- Op3 : passe de 0,3 mW (logiciel) à 0,3 mW (matériel), soit aucun gain énergétique (0,0 mW).
Les opérations prioritaires à placer en matériel sont donc op1 et op2. Op3 est exécutée en logiciel. Ce choix permet également de respecter la contrainte d'identité entre N1 (op1) et N7 (op2), tous deux étant en matériel.
Partitionnement minimal consommation : op1 et op2 en matériel, op3 et op4 en logiciel.
Comparaison des deux solutions
La solution sur l'architecture maximale privilégie la vitesse d'exécution en accélérant trois opérations (op1, op2, op3) grâce au matériel, mais elle nécessite plus de ressources physiques.
La solution sur l'architecture minimale optimise la consommation d'énergie en ciblant les blocs matériels les plus efficients (op1 et op2), au détriment du temps d'exécution puisque op3 reste gérée par le processeur.
Méthode de résolution
La résolution d'exercices de partitionnement en codesign repose sur une démarche méthodique :
- Lister les contraintes matérielles et fonctionnelles : identifier le nombre maximal/minimal de processeurs et de blocs matériels, ainsi que les opérations supportées par chaque composant.
- Identifier les contraintes de dépendance inter-nœuds : repérer les nœuds devant obligatoirement partager le même type d'implémentation (par exemple N1 et N7).
- Évaluer les coûts : appliquer les facteurs de pondération sur le temps d'exécution (ex. ratio 1,5 pour le logiciel) et comptabiliser les consommations énergétiques unitaires selon le support d'exécution.
- Justifier les arbitrages : formaliser clairement les choix de partitionnement en précisant si l'objectif prioritaire est la vitesse, la surface matérielle ou l'efficacité énergétique.