• Aucun résultat trouvé

CHAPITRE 8 EXPLORATION ARCHITECTURALE

8.1 D´efinition de l’espace de recherche

Soit S l’ensemble des sp´ecifications ex´ecutables d’applications embarqu´ees pouvant ˆetre cr´e´ees avec une m´ethodologie (par exemple un syst`eme de guidage d’un robot marcheur ou un d´ecodeur JPEG) et soit P l’ensemble des plates-formes pouvant ˆetre cibl´ees par cette m´etho- dologie (par exemple un FPGA Xilinx, un FPGA Altera ou un ASIC) et soit A l’ensemble des architectures pouvant ˆetre g´en´er´ees par cette m´ethodologie. Une fonction f ∶ S ×P → ℘(A) est d´efinie comme une fonction de d´efinition de l’espace de recherche. Concr`etement, cela signifie que pour une sp´ecification s ∈ S donn´ee et une plate-forme p ∈ P donn´ee, alors f (s, p) corres- pond `a un sous-ensemble de A qui est l’ensemble des architectures qui constituent l’espace de recherche pour cette sp´ecification `a impl´ementer sur cette plate-forme. De la mˆeme mani`ere, une fonction de d´efinition de l’espace de recherche peut s’appliquer sur un sous-ensemble P

⊆ P de plates-formes et avoir la forme f ∶ S × P

→ ℘(A)

formes ayant un seul type de processeur et un seul type de bus. On a choisi deux fonctions de d´efinition de l’espace de recherche soit f1∶ S × P1,1 → ℘(A) et f2∶ S × P1,1 → ℘(A). Supposons

que pour une plate-forme p ∈ P1,1 donn´ee et pour une sp´ecification s ∈ S donn´ee on ait

ns tˆaches logicielles, nh composants mat´eriels et nm modules qui peuvent ˆetre impl´ement´es

soit en mat´eriel, soit en logiciel sur la plate-forme p. (Dans le contexte d’une sp´ecification ex´ecutable SPACE, les ns tˆaches logicielles sont des modules qui doivent n´ecessairement ˆetre

impl´ement´es en logiciel alors que les nh composants mat´eriels sont soit des p´eriph´eriques,

soit des modules qui doivent n´ecessairement ˆetre impl´ement´es en mat´eriel.) Alors l’espace de recherche d´efini par f1(s, p) est constitu´e de l’ensemble des architectures qu’on peut obtenir

en faisant un choix `a chacune des ´etapes suivantes :

(a) Le partitionnement logiciel/mat´eriel : choisir, parmi les nm modules de l’application, ms

modules qui seront impl´ement´es en tant que tˆaches logicielles et donc les mh= nm− ms

autres modules qui seront impl´ement´es en tant que composants mat´eriels ;

(b) L’allocation des processeurs et l’assignation des tˆaches aux processeurs : choisir le nombre k de processeurs `a allouer, puis assigner chacune des ns+ ms tˆaches logicielles

du syst`eme `a un des k processeurs allou´es ;

(c) Le choix d’une topologie de communication : choisir le nombre l de bus `a allouer, puis assigner chacun des nh+ mh composants mat´eriels et des k processeurs du syst`eme `a

ces l bus.

De plus, les choix faits lors de ces ´etapes doivent r´epondre aux contraintes suivantes : 1. Chaque module a une et une seule impl´ementation logicielle ainsi qu’une et une seule

impl´ementation mat´erielle ;

2. On doit impl´ementer un module soit en tant qu’une et une seule tˆache logicielle, soit en tant qu’un et un seul composant mat´eriel, mais pas les deux `a la fois ;

3. Une tˆache logicielle doit ˆetre assign´ee `a un et un seul processeur ; 4. Un composant mat´eriel doit ˆetre assign´e `a un et un seul bus.

5. Si un processeur est allou´e, alors au moins une tˆache logicielle doit lui ˆetre assign´ee ; 6. Si un bus est allou´e, alors au moins un processeur ou deux composants mat´eriels doivent

lui ˆetre assign´es ;

La contrainte 1 signifie que l’optimisation de l’impl´ementation logicielle ou de l’impl´emen- tation mat´erielle d’un module donn´e ne fait pas partie de l’espace de recherche. On suppose que les impl´ementations logicielle et mat´erielle fournies pour chaque module ont d´ej`a ´et´e optimis´ees et l’exploration architecturale propos´ee se situe donc `a un niveau plus ´elev´e. Les contraintes 2 et 3 signifient que l’espace de recherche d´efini par f1 ne fait pas varier le nombre

d’instances d’un mˆeme module. La contrainte 4 signifie que cet espace de recherche contient seulement des architectures o`u les composants mat´eriels sont connect´es `a un seul bus. La seule

exception est les ponts qui relient les bus entre eux : on suppose que chaque paire de bus dans une architecture donn´ee est connect´ee par un pont bidirectionnel. Cependant, comme le mˆeme ensemble de ponts sera toujours allou´e et assign´e de la mˆeme mani`ere pour un mˆeme ensemble de bus, leur allocation et assignation ne font pas partie de l’espace de recherche, bien que les valeurs des m´etriques tiennent compte de la pr´esence des ponts. La contrainte 5 assure qu’aucun processeur superflu n’est allou´e. Finalement, la contrainte 6 fait en sorte qu’au moins deux composants mat´eriels (excluant les ponts) soient connect´es `a chaque bus qui est allou´e. Lorsqu’un processeur est allou´e, d’autres composants mat´eriels qui lui sont d´edi´es (par exemple un contrˆoleur d’interruption ou une minuterie) sont ´egalement allou´es et on suppose que, lorsqu’un processeur est assign´e `a un bus, ces composants mat´eriels d´edi´es sont ´egalement assign´es au mˆeme bus. Dans ce travail, l’exploration de l’allocation et de l’assignation de ces composants d´edi´es ne fait donc pas partie de l’espace de recherche, mais les ressources mat´erielles utilis´ees par ceux-ci sont tout de mˆeme prises en compte.

Il est possible que les bus, les adaptateurs de bus, les ponts et les processeurs d’une technologie cible puissent ˆetre configur´ees. On consid`ere que, pour une plate-forme p donn´ee, la configuration de chaque bus, adaptateur, pont ou processeur est fixe et identique, sauf dans les cas o`u elle doit varier strictement pour prendre en consid´eration les choix faits dans les ´etapes (a), (b) ou (c). Par exemple, l’arbitre d’un bus sur lequel on a assign´e dix composants mat´eriels diff`erera de l’arbitre d’un bus sur lequel seulement deux composants mat´eriels ont ´et´e assign´es, mais la configuration de cet arbitre d´ecoule directement de l’assignation des composants aux bus. Bien qu’on tienne compte de l’impact de ces configurations sur le nombre de ressources mat´erielles utilis´ees, l’exploration de ces configurations ne fait donc pas partie de l’espace de recherche.

La fonction f2∶ S ×P1,1→ ℘(A) est semblable `a la fonction f1, avec la diff´erence que, parmi

les nh composants mat´eriels de la sp´ecification, il y a nd composants mat´eriels double-port

qui ont deux interfaces de communication. Cela entraine un changement `a la contrainte 4 pour f2 : un composant mat´eriel qui a une seule interface de communication doit ˆetre assign´e

`a un et un seul bus ; un composant mat´eriel qui a deux interfaces de communication doit ˆetre assign´e soit `a un et un seul bus, soit `a exactement deux bus distincts.