• Aucun résultat trouvé

Vidéo Stockage Multiplexeur Entrées Sorties Audio Vidéo Sécurité GPU CPU secondaire 1

NoC

SoC

USB DDR3 Encodeur Vidéo CPU principal CPU secondaire n

Figure 6.1 – Architecture d’une carte embarquée de la famille Cannes produite par STMicroelectronics.

en complément des autres composants du système. Elles sont dédiées à des tâches précises comme par exemple le décodage du format vidéo Delta non supporté par les accélérateurs intégrés, ou encore le traitement des codecs audio. La plateforme Cannes utilisée pour les expérimentations contient un disque dur mémoire de type DDR3 de 32 bits capable d’un taux de transfert d’information maximal de 1866 Mbps (million bits per second) pour une fréquence de 933 MHz. Ce SE intègre également des ports de stockage de mémoire flash pour intégrer des cartes SD ainsi que des ports USB de type 2 et 3.

Un bloc de composants matériels est dédié à la sécurité de l’ensemble du système embarqué ainsi qu’à la gestion des données sensibles. Enfin, de nombreux ports d’entrées-sorties pour la vidéo, le son ou d’autres types de données permettent d’assurer la liaison avec l’environnement extérieur du SE.

Actuellement, la plateforme MERMAID tourne sur le processeur principal, le CPU ARM Cortex A9.

Pour certaines expérimentations, nous utilisons également un ordinateur doté d’un processeur Intel Core i7- 2820QM montant jusqu’à 3,40 GHz avec une mémoire cache niveau 3 de 8 Mo cadencée à 2,30 GHz. L’appareil comprend également un disque dur mémoire de type DDR3 cadencé à 1333 MHz. Les spécifications de cet ordinateur se démarquent suffisamment de notre SE pour établir un contexte hétérogène d’expériences.

6.2

|

Flexibilité des choix dans les SE

Dans la section2.3nous avons présenté différents algorithmes d’ordonnancement. Nous avons pu constater que ces algorithmes sont programmés de façon figée pour établir un tri selon des critères pré-définis. Ils ne prennent pas en compte les variations de leur contexte matériel ou de l’environnement utilisateur. Nous qualifions cet état de fait par un manque de flexibilité du système [Définition 17].

La flexibilité correspond à la capacité d’adaptation à un contexte en ayant plusieurs choix à disposition, fournis ici par les différents agents.

Définition #17 : Flexibilité

Pour réaliser un service nécessitant plusieurs actions, l’approche multi-agents permet de séparer ce service en plusieurs étapes, une pour chaque type d’action à effectuer et de rattacher un agent à chacune de ces étapes. Les agents interagissent pour échanger les informations nécessaires à la réalisation de chaque étape. Cette méthode per- met d’effectuer certaines actions en parallèle, impliquant une réduction du temps de réponse du service, là où une approche séquentielle traite chaque action l’une après l’autre.

CHAPITRE 6.Expérimentation de la flexibilité Z Y 6.2.Flexibilité des choix dans les SE

Pour chaque étape, plusieurs solutions matérielles peuvent être disponibles. Dans le cadre d’une approche de programmation déterministe, le choix de la solution à utiliser est pré-établi. Avec un système multi-agents, certains agents peuvent intégrer des solutions différentes pour une même étape. La solution employée, et donc l’agent appelé lors de l’exécution, peut ainsi varier en fonction du contexte ou des préférences de l’utilisateur. Ce choix est effectué par l’agent activant l’étape concernée en prenant en compte ce contexte d’exécution. Dans le cadre d’une program- mation séquentielle, la solution matérielle à employer doit être prédéfinie. Pour éviter une empreinte mémoire de l’algorithme trop importante, il est rare de définir tous les contextes et leur solution spécifique. Le choix le plus fréquent est de déterminer la solution la plus adaptée à la majorité des cas et de s’y tenir. Une modification des choix réalisés nécessite alors la modification de l’ensemble du système.

La capacité d’interaction des agents permet de prendre en compte de nouvelles informations au fur et à mesure de l’évolution du SMA. Par exemple si une nouvelle solution matérielle était ajoutée, l’ajout d’un nouvel agent capable d’utiliser cette solution au SMA suffirait pour la rendre accessible. Avec la Figure 6.2, nous illustrons l’organisation multi-agents. Le système contient trois agents, chacun lié à une solution matérielle différente pour un même traitement Sm. Un quatrième agent chargé de déterminer la solution à employer pourra ainsi faire appel à l’agent le plus apte à combler les besoins du système en fonction du contexte. Par ailleurs, cette répartition des capacités favorise le traitement parallèle : l’agent prenant la décision peut choisir d’appliquer plusieurs solutions en même temps pour raccourcir le temps de réponse ou à des fins de robustesse du résultat.

Figure 6.2 – Flexibilité des systèmes multi-agents pour le choix d’une solution de réalisation.

L’approche multi-agents permet donc d’obtenir un système évolutif avec une prise en compte dynamique du contexte.

A partir de ces constatations, nous posons l’hypothèse qu’utiliser des SMA au sein des SE permettrait d’apporter aux derniers la flexibilité caractéristique des premiers, ce qui reprend la proposition introduite dans la partie 1.5de ce document :

La réalisation d’une tâche partagée entre plusieurs processus agents nous apportera de la flexibilité via différents choix d’exécution et l’adaptation au contexte d’exécution.

Rappel hypothèse #4

L’emploi d’un SMA doit nous permettre de nous adapter aux variations des contraintes de ressources de notre système embarqué et à l’évolution des besoins des utilisateurs en termes de résultat. En effet, un SMA peut, grâce à ses capacités d’adaptation, prendre en compte les données à sa disposition pour effectuer un choix d’algorithme de traitement pertinent.

Nous nous concentrons sur le cas du zoom sur une image impliquant une interpolation de pixels. La répartition du travail entre les agents doit pouvoir permettre une flexibilité au niveau du choix de la méthode de calcul pour une même image.