Brevet FR3045870A1 (20170623)
REVENDICATIONS1) Procédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20, 21), ledit logiciel (1, 8, 9,\n<CLM>\1\tétant compatible avec un système d'exploitation prédéfini (8) et comprenant des composantes applicatives (1), un environnement d'exécution (9), un logiciel de base temps réel fournissant des services auxdites composantes applicatives (1), et une couche d'abstraction matérielle (15) de ladite architecture multicceur (20, 21), caractérisé en ce qu'il comprend: - une première étape (2) d'analyse des dépendances desdites composantes applicatives (1) produisant un graphe orienté comportant un premier ensemble (V) de noeuds formés par des éléments fonctionnels s'identifiant auxdites composantes applicatives (1) ou bien à des exécutables selon un niveau de granularité permis par ledit système d'exploitation (8), et un second ensemble (T) de transitions entre lesdits éléments fonctionnels; et en outre dans une itération courante: - une deuxième étape (5) de distribution desdits éléments fonctionnels sur des coeurs (20,\n<CLM>\1\tde ladite architecture multicceur (20,\n<CLM>\1\trésultant d'une optimisation courante d'une fonction de coût (7) par lesdits noeuds (V) et lesdites transitions (T) 20 sous des contraintes prédéterminées (6); - une troisième étape (10) de validation de ladite optimisation courante calculant un temps d'exécution (Texe) de chacun desdits éléments fonctionnels exécutés sur lesdits coeurs (20,\n<CLM>\1\tau moyen dudit logiciel de base et de ladite couche d'abstraction matérielle (15); 25 - une quatrième étape (16) d'évaluation de ladite optimisation courante calculant une distance (D) à un objectif prédéterminé et effectuant un retour (18) à ladite deuxième étape (5) pour une itération supplémentaire desdites deuxième, troisième et quatrième étapes (5, 10,\n<CLM>\1\tsi ladite distance (D) est supérieure à un seuil prédéterminé (DO). 30\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 1 précédente, caractérisé en ce que ladite optimisation courante est basée sur un algorithme métaheuristique. 3045870 - 20 -\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 1 précédente, caractérisé en ce que lesdites contraintes prédéterminées (6) comprennent des charges nominales desdits coeurs (20, 21), un équilibrage de charges courantes desdits coeurs (20, 5 21), et des stratégies d'implémentation.\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 1 précédente, caractérisé en ce que ladite fonction de coût (7) comprend des critères choisis parmi: 10 - une utilisation de ladite architecture multicceur (20, 21); - un temps système de communication entre lesdits coeurs (20, 21); - un temps de réponse global d'exécution d'enchaînements desdits éléments fonctionnels; - une estimation dudit temps d'exécution (Texe) de chacun desdits éléments 15 fonctionnels; - un temps d'accès de données.\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 4 précédente, caractérisé en ce que 20 ladite estimation est un pire temps d'exécution, un temps d'exécution moyen ou un modèle probabiliste.\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 4 précédente, caractérisé en ce que 25 lesdits critères sont déterminés dans une itération initiale desdites deuxième, troisième et quatrième étapes (5, 10,\n<CLM>\1\ten utilisant une plateforme monocceur de référence de ladite architecture multicceur (20, 21).\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture 30 multicceur (20,\n<CLM>\1\tselon la revendication 1 précédente, caractérisé en ce que ladite première étape (2) comprend: - une première phase dans laquelle, d'une part, lesdits noeuds (V) sont modélisés chacun par un premier groupe comprenant des premiers paramètres choisis parmi ledit temps d'exécution (Texe), un mode de déclenchement, une première période, et 3045870 - 21 - dans laquelle, d'autre part, lesdites transitions (T) sont modélisées chacune par un deuxième groupe comprenant des seconds paramètres choisis parmi un poids fonction d'une taille de données transmises, une seconde période d'un producteur; - une deuxième phase de classification desdites transitions (T) selon un troisième 5 groupe comprenant des classes prédéterminées (C1, C2, C3, C4) choisies parmi une première classe (C1) dans laquelle lesdites transitions (T) sont périodiques, une deuxième classe (C2) dans laquelle lesdits producteurs ou des consommateurs sont périodiques, une troisième classe (C3) sans périodicité, une quatrième classe (C4) dans laquelle lesdites transitions (T) sont invoquées sur un 10 évènement; - une troisième phase d'analyse des taux de transfert desdites données; - une quatrième phase d'analyse de séquences de communications et d'extraction de flux desdites données présentant desdits taux de transfert identiques. 15\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 1 précédente, caractérisé en ce que ladite deuxième étape (5) comprend: - une première phase de préparation transformant ledit graphe orienté en un graphe orienté acyclique au moyen d'une première opération consistant à placer lesdits noeuds (V) sur une ligne horizontale, des arcs directs étant placés au dessus de ladite ligne et des arcs rétrogrades étant placés au dessous de ladite ligne, d'une deuxième opération consistant à modifier un ordre desdits noeuds (V) de manière à former une succession desdits noeuds avec un minimum de coût desdits arcs rétrogrades, et d'une troisième opération consistant à supprimer lesdits arcs rétrogrades; - une deuxième phase réalisant ladite optimisation courante en se basant sur ledit graphe orienté acyclique et ladite fonction de coût (7); - une troisième phase de génération de fichiers de configuration (8,\n<CLM>\1\tdudit système d'exploitation (8) et dudit environnement d'exécution (9).\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 1 précédente, caractérisé en ce que ladite troisième étape (10) comprend en outre un calcul de durées d'exécution desdits services utilisés en communiquant entre lesdits coeurs (20, 21). 3045870 -22-\n<CLM>\1\tProcédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon la revendication 4 précédente, caractérisé en ce que dans ladite quatrième étape (16) ladite distance (D) est donnée par l'expression: Sortie(e) 5 D = Ilog Entrée(0) e où 0 sont lesdits critères, Entrée(0) sont des valeurs de référence desdits critères et Sortie(0) sont des valeurs courantes desdits critères dans ladite itération courante. 10\n<CLM>\1\tUtilisation du procédé hors ligne d'allocation d'un logiciel (1, 8, 9,\n<CLM>\1\tsur une architecture multicceur (20,\n<CLM>\1\tselon l'une quelconque des revendications 1 à 10 précédentes pour des applications sous un système d'exploitation temps réel (8) de type AUTOSAR destinées à être embarquées dans un véhicule automobile.