• Aucun résultat trouvé

A.3 Flot de conception d’un système sur puce

A.4.1 Contrôle des ressources partagées: Le ”virtual node”

Le ”noeud virtuel” (VN pour Virtual node en anglais) est défini comme un composant générique de modélisation qui contrôle l’accès à une ressource en mettant en oeuvre une politique d’accès. il alloue la ressource contrôlée à un demandeur, par exemple, le VN d’un CPU alloue le CPU à une tâche qui est prête à s’exécuter, ou le VN d’un bus alloue la bande passante du bus à un CPU qui tente d’accéder à la mémoire ou à d’autres noeuds de l’architecture qui sont connectés au bus. Le noeud virtuel dispose d’une sémantique d’exécution en troisétapes:

1. Il attend les requêtes des ressources. Le VN les stocke dans une file d’attente. 2. Il sélectionne une requête en fonction de sa politique d’accès. Après

l’écoulement d’un délai (le context switch), la ressource est allouée au deman- deur.

3. Il attend que soit la demande sélectionnée termine son exécution ou qu’une nou- velle requête soit arrivée pour réévaluer l’allocation (étape 1).

Le noeud virtuel a un type qu’il hérite du type de la ressource qu’il contrôle. Par conséquent, un noeud virtuel pourraitêtre un VN d’exécution, de communication ou de stockage. En contrôlant une ressource partagée, le noeud virtuel divise la ressource entre les demandeurs, comme s’il crée une ressource virtuelle pour chacun d’eux. Cette fonction de vitalisation permette la définition des classes de politique d’accès, par exemple, un noeud d’exécution peutêtre virtuellement allouée à deux requêtes distinctes en utilisant une politique d’accès de partage du temps,ou plusieurs noeuds d’exécution peuventêtre regroupées en une seule ressource virtuelle dans un scénario d’ordonnancement dynamique. Pour contrôler les deux types de ressources (physiques et virtuels), il ya deux catégories de noeuds virtuels: le noeud virtuel local (LocalVN) qui contrôle l’accès à une ressource physique et le noeud virtuel générique (Gener- icVN) qui contrôle une ressource virtuelle.

Les GenericVN peuvent être empilés de façon hiérarchique, de telle sorte qu’un GenericVN peutêtre connecté à un autre GenericVN qui est connecté à un autre Gener- icVN ou à un LocalVN. Toutefois, un GenericVN pourrait être relié à un seul Lo- calVN. En outre, chaque ressource matérielle est contrôlée par un et un seul noeud local virtuel. Pour mieux illustrer ce mécanisme d’empilement, les deux sous-sections suivantes fournissent deux exemples sur la façon d’utiliser les concepts présentés ci-dessus sur deux politiques de partage des ressources bien connues: les scénarios d’ordonnancement hiérarchique et dynamique.

Ordonnancement hiérarchique

Les systèmes embarqués peuvent exécuter en temps réel et simultanément des appli- cations hétérogènes. Par exemple, dans un téléphone mobile modern, des applications multimédias comme la vidéo peuvent être exécutées en parallèle avec des applications de contrôle (protocoles de télécommunication). Ces applications peuvent avoir des ex- igences spécifiques d’ordonnancement. En outre, l’application d’une seule politique d’accès à toutes les applications n’est pas la solution optimale [74].

Avec le concept des noeuds virtuels présenté ci-dessus, le concepteur peut utiliser un empilement hiérarchique de noeuds virtuels pour optimiser le partage des ressources lorsque des groupes hétérogènes demandent les ressources. Un noeud virtuel princi- pal contrôle une ressource matérielle et un noeud secondaire contrôle une ressource virtuelle pour chaque groupe de demandeurs. Cette approche nous permet d’optimiser les politiques d’accès pour mieux répondre aux exigences de tous les groupes. Cette composition hiérarchique de noeuds virtuels peut être utilisée pour le partage des ressources de l’exécution, de la communication et du stockage.

La partie gauche de la figureA.4montre un exemple d’un ordonnancement hiérar- chique de deux classes d’applications : "App1" est contrôlée à l’aide d’une politique ”round robin” alors que "App2" est contrôlée par une politique basée sur la priorité. Le CPU est partagée entre les deux applications par une politique de partage du temps (”time sharing”) mise en oeuvre par le VN principale (LocalVN),VN4CPU. Il alloue un intervalle du temps CPU à chacune des deux applications. Les noeuds virtuels génériques VN4App1 etVN4App2, en contrôlant respectivement les requêtes provi- ennent des App1 et App2, allouent le temps d’exécution disponibles (un intervalle de temps) à une ou plusieurs tâches selon la politique d’accès.

La partie droite de la figure A.4 montre un scénario d’exécution de ce modèle d’ordonnancement hiérarchique. Le temps CPU est divisé en périodes ”P”, en utilisant la politique ”Time Sharing” du noeud local virtuel. Dans cet exemple, chaque applica- tion obtient la moitié du temps du CPU. Les noeuds virtuels génériques choisissent les tâches des applications qui vont s’exécuter pendant l’intervalle d’exécution disponible.

Figure A.4: Un simple exemple d’ordonnacement hiérarchique

Ordonnancement dynamique

Dans les SoC modernes, il est fréquent de trouver des processeurs multi-noyau et/ou des ressources de calcul multiples. Pour optimiser l’utilisation de ces ressources, des techniques d’ordonnancement dynamiques sont généralement utilisées. Toutes les tâches sont en compétition pour s’exécution sur tous les processeurs et un ordon- nanceur global contrôle l’ensemble des coeurs disponibles (une ressource virtuelle) et expédie les tâches prêtes sur les noyaux disponibles en appliquant sa politique d’accè. Chacun des noyaux locaux est contrôlé par un noeud local virtuel.

La FigureA.5montre un exemple d’un noeud virtuel global (GlobalVN) qui est ex- pédie les tâches de l’application (T1 ... T5) sur deux noeuds virtuels local (VN4Core1 et VN4Core2), chacun d’entre eux contrôle un noyau d’exécution (Core1 et Core2 respectivement). Le noeud virtuel global utilise une politique d’accès ” le moins utilisé”, où il expédie dynamiquement les requêtes entrantes provenant des tâches de l’application vers le noyau le moins utilisé. Le diagramme de temps sur la partie droite de la figure montre l’exécution dynamique des tâches sur les noyaux. T1 est d’abord exécuté sur Core1 mais pendant sa deuxième exécution elle aété exécutée sur Core2, quiétait disponible alors que Core1 a été en train d’exécution T3.

Figure A.5: Un simple exemple d’ordonnacement dynamique

A.4.2

Modèle d’interaction des noeuds d’architecture Interaction

Documents relatifs