Brevet FR2954979A1 — publié le 20110708

PROCEDE POUR SELECTIONNER UNE RESSOURCE PARMI UNE PLURALITE DE RESSOURCES DE TRAITEMENT, DE SORTE QUE LES DELAIS PROBABLES AVANT DEFAILLANCE DES RESSOURCES EVOLUENT DE MANIERE SENSIBLEMENT IDENTIQUE Domaine technique : La présente invention concerne un procédé pour sélectionner, parmi une pluralité de ressources de traitement capables dans un système de traitement de l'information d'effectuer un type donné de traitement, l'une des ressources afin qu'elle effectue un traitement du type donné, de telle sorte que les délais probables avant défaillance des ressources évoluent de manière sensiblement identique. Elle s'applique notamment dans le domaine de l'ordonnancement des tâches sur les systèmes embarqués multiprocesseur. Art antérieur et problème technique : De nombreux systèmes embarqués mettent aujourd'hui en oeuvre des traitements dynamiques nécessitant de fortes puissances de calcul et manipulant de grandes quantités de données, ceci tout en assurant un certain niveau de fiabilité. La contrainte de fiabilité prend une place de plus en plus importante, que ce soit à la conception ou tout au long du cycle de vie des dispositifs embarqués. Ceci est principalement dû à l'évolution des technologies d'intégration, qui rendent les dispositifs sur silicium de plus en plus sensibles aux fautes, affectant d'une part le niveau de rendement de fabrication et d'autre part la durée de vie d'utilisation des puces. Parallèlement, la complexité des applications embarquées ne cesse de croître, tandis que le nombre d'applications intégrées augmente constamment. Ceci s'explique notamment par la volonté d'intégrer toujours plus de fonctionnalités au sein des systèmes embarqués, en associant par exemple dans un téléphone mobile des fonctions multimédia, de télécommunication, de positionnement ou encore des jeux. Ceci peut également s'expliquer par l'accroissement des volumes de données à traiter, qui sont liés aux capacités des capteurs vidéos, des convertisseurs rapides, etc. A cette augmentation des complexités calculatoires s'ajoute celle de la dynamicité des traitements. Ceux-ci tendent en effet à s'adapter de plus en plus rapidement à leur environnement, en fonction du contexte d'utilisation et des données manipulées. Il est donc difficile de prédire le comportement d'une application ou son temps d'exécution, tant le flot de contrôle et les données manipulées sont complexes. Pourtant, le comportement de l'application a une forte incidence sur le vieillissement des différents éléments matériels du système d'accueil. En effet, l'activité d'un élément ou sa durée d'activation influe directement sur son cycle de vie et sur la fréquence d'apparition des premières fautes. Dans les systèmes multiprocesseur composés d'une pluralité de ressources de calcul, de ressources de mémorisation et de réseaux d'interconnexions, l'ordonnancement des tâches sur les ressources de calcul et l'allocation mémoire se font dynamiquement pendant l'exécution d'une application, sans prendre en compte leur impact sur le vieillissement des ressources de calcul et de mémorisation. Dans la présente demande, une tâche est une séquence d'instructions pouvant être exécutées par une ressource de calcul sans interruption, un algorithme d'ordonnancement permettant de décider de l'instant d'exécution de ladite séquence sur ladite ressource. Or, bien que le phénomène de vieillissement d'un circuit intégré soit inévitable, ce manque de considération a toutefois pour conséquence d'accélérer l'instant d'apparition d'une défaillance du système pendant son utilisation. En effet, l'utilisation d'une technique d'ordonnancement sous optimale dans laquelle une ressource de calcul ou de mémorisation serait surexploitée par rapport aux autres - l'activité d'une ressource influant sur son vieillissement - peut entraîner l'apparition d'une faute plus tôt dans le cycle de vie de la ressource, dans les technologies de fabrication silicium actuelles comme à venir. L'occurrence d'une faute peut entraîner une erreur logique qui peut résulter en une défaillance fatale du système. Cette situation est inacceptable dans le domaine de l'embarqué. Il s'agit là de l'un des problèmes techniques que la présente invention se propose de résoudre. Le vieillissement d'un Circuit Intégré (CI) est un phénomène lent et naturel d'usure des structures internes du circuit dans le temps, comme l'usure de l'oxyde des transistors MOS (Métal-Oxyde-Semi-conducteur) ou l'usure des lignes de métal, cette usure étant due notamment aux conditions d'utilisation et d'environnement. Au minimum, cette usure entraîne la variation, de manière réversible ou irréversible, de paramètres électriques dans les transistors MOS, comme les tensions de seuil ou les fréquences de commutation. Mais cette usure peut aller jusqu'à entraîner des dégradations irréversibles des structures, comme par exemple la création d'une absence d'atomes dans le via d'une ligne de métal. Le vieillissement d'un Cl dépend de plusieurs facteurs, parmi lesquels peuvent être cités par exemple: o la technologie de fabrication: la géométrie des structures, les matériaux utilisés, le procédé de fabrication et d'encapsulation mis en 10 oeuvre; o la qualité des tests en production (par exemple burn-in); o l'environnement externe du Cl: la température, l'humidité, les radiations ou encore le facteur humain; o la conception du Cl: l'agencement spatial des composants, les 15 bibliothèques utilisées, l'architecture mise en oeuvre et ses logiciels d'exploitation, ou encore les outils de synthèse disponibles. Le contrôle du vieillissement des Cl fait l'objet d'intensifs travaux. Les différentes solutions proposées actuellement dans la littérature tentent 20 d'influer sur un ou plusieurs de ces facteurs. Par exemple, des solutions industrielles visent à améliorer la robustesse de la technologie de fabrication et la qualité des tests en production. Mais ces approches nécessitent toutefois la connaissance et la maîtrise du procédé de fabrication. D'autres solutions visent à améliorer la conception du CI, en 25 particulier son architecture et ses logiciels d'exploitation. En effet, le vieillissement dépendant de nombreux paramètres électriques tels que la température, la fréquence de commutation, la tension de grille des transistors et autres, une variation d'un ou plusieurs de ces paramètres peut affecter significativement le vieillissement du CI. Or, ces paramètres varient en 30 fonction du profil des tâches exécutées sur le système et du mode opératoire des ressources en termes de tension et de fréquence. Un large éventail de solutions adresse indirectement le problème du vieillissement en tentant de contrôler son paramètre prépondérant, à savoir la température de jonction. En effet, une variation linéaire de la 35 température de jonction entraîne une variation exponentielle du vieillissement des structures d'un Cl. Pour la majorité des mécanismes connus de vieillissement, plus la température de jonction est élevée et plus la probabilité d'apparition d'une faute à un instant donné est élevée ou l'instant de défaillance des structures est avancé. Ces solutions de gestion thermique consistent à empêcher dans les ressources de calcul : i. l'apparition de points chauds, c'est-à-dire des sites où la température est supérieure à une limite maximale de sécurité, qui d'une part nécessitent l'ajout de mécanismes onéreux de refroidissement du boîtier et qui d'autre part accélèrent le vieillissement des structures ~o chaudes; ii. l'accumulation dans le temps de larges cycles thermiques qui dégradent le boîtier et les soudures du Cl ; iii. les gradients extrêmes de température entre les ressources du Cl qui peuvent causer la violation du déphasage dans les arbres d'horloge 15 ainsi qu'un stress thermomécanique élevé entre les structures. Les solutions de gestion thermique peuvent se classer en deux catégories selon l'approche adoptée. La première catégorie regroupe les techniques réactives de contrôle de la température. La température des ressources est 20 surveillée pendant le fonctionnement avec l'aide de capteurs de température intégrés. Lorsque la température des ressources chaudes atteint le seuil thermique prédéfini, une contre-réaction est appliquée de manière prioritaire afin de stopper l'élévation de température. Par exemple, la fréquence d'horloge de la ressource de calcul chaude est réduite, voire temporairement 25 inhibée. Un inconvénient majeur de ce type d'approche est qu'elle pénalise les performances. Un autre inconvénient est l'absence de considération pour les gradients de température et les larges cycles temporels thermiques. Or, ces deux phénomènes influent de manière significative sur le vieillissement. La seconde catégorie regroupe les techniques proactives de contrôle, dans 30 lesquelles le contrôle de l'exécution des tâches se base sur la prédiction ou l'estimation du profil thermique de chaque ressource de calcul. Ces solutions tentent d'anticiper le profil futur de température de chaque ressource de manière à éviter tout recours à des contre-réactions urgentes au détriment des performances. A chaque réveil d'horloge, l'ordonnanceur utilise le 35 résultat d'estimation de température afin de décider des tâches à exécuter et des ressources de calcul à utiliser. Son algorithme assure le meilleur compromis entre les contraintes de température et de performance. Ces solutions diffèrent les unes des autres essentiellement sur l'algorithme d'ordonnancement et sur le modèle d'estimation de la température. La plupart associe également une gestion dynamique de la tension et de la fréquence d'alimentation des ressources de calcul. Malheureusement, ces techniques ne contribuent que très partiellement à minimiser ou à équilibrer le vieillissement, car elles ne tiennent pas compte de tous les paramètres qui affectent le vieillissement des ressources de calcul, elles ne considèrent que la température. De plus, elles n'adressent pas explicitement le problème du vieillissement des ressources de mémorisation, car la température de ces dernières est largement inférieure à celle des ressources de calcul. Enfin, diminuer la température pour ralentir le vieillissement n'est sans doute pas optimum quand on sait que l'activation de certains mécanismes de défaillance est a contrario accélérée lorsque la température diminue ! Un article paru en 2008 intitulé "Task Activity Vectors: A new metric for temperature-aware scheduling" (A. Merkel et al.) décrit une solution de gestion thermique utilisant un vecteur d'activité des tâches. Ce vecteur est utilisé pour guider l'ordonnancement des tâches de manière à équilibrer et à minimiser la température d'un microprocesseur ou d'un système multiprocesseur. La taille du vecteur est égale au nombre d'unités fonctionnelles des ressources de calcul. Un élément du vecteur représente le degré d'utilisation de l'unité fonctionnelle correspondante lorsqu'une tâche est exécutée, compris entre 0 (minimum) et 1 (maximum). Le vecteur est alimenté par différents dispositifs de surveillance insérés dans le processeur, comme des compteurs de performance, ou encore par des estimations de consommation d'énergie issues de modèles prédictifs. Le vecteur est mis à jour périodiquement par le système d'exploitation, afin de tenir compte du fait que le comportement de la tâche peut changer en fonction des données à traiter. Là encore, quoique ne se limitant pas à la température, l'un des inconvénients majeurs de cette solution est qu'elle ne tient pas compte de tous les paramètres qui affectent le vieillissement des ressources de calcul. En particulier, elle ne tient pas compte des changements de l'environnement externe au Cl. II s'agit là encore de l'un des problèmes techniques que la présente invention se propose de résoudre. Résumé de l'invention L'invention a notamment pour but de considérer tous les paramètres qui influent sur le vieillissement. Outre la température, elle prend notamment en compte de manière explicite l'activité de commutation des ressources à l'aide de compteurs atomiques, qui sont des dispositifs permettant de mesurer l'activité de commutation dans les ressources et fonctionnant selon des principes similaires aux compteurs classiques de performance. Elle prend également en compte les conditions courantes dans l'environnement externe du Cl, à l'aide de capteurs externes de température voire d'humidité et à l'aide d'historiques d'activité dans les ressources voisines. L'invention repose notamment sur un procédé de test permettant de mesurer explicitement la marge temporelle des chemins critiques, c'est-à-dire les chemins de propagation de signaux dans le CI qui sont les plus sensibles au vieillissement. Ces chemins ne sont pas nécessairement les chemins critiques des ressources, mais peuvent être des chemins choisis après une pré-caractérisation du comportement du Cl vis-à-vis du vieillissement, à l'aide de la simulation par exemple. L'invention utilise également une pré-caractérisation de l'accélération du vieillissement des ressources induite par chaque tâche. Cette pré-caractérisation peut être obtenue par simulation à partir de modèles analytiques de vieillissement, mais elle peut également être obtenue par expérimentation avec des véhicules de test fabriqués sur la technologie ciblée. A cet effet, l'invention a pour objet un procédé pour sélectionner, parmi une pluralité de ressources de traitement capables dans un système de traitement de l'information d'effectuer un même type de traitement, l'une des ressources afin qu'elle effectue un traitement dudit type. Le procédé comporte une étape d'estimation d'un délai probable avant défaillance pour chacune des ressources, la ressource étant sélectionnée de telle sorte que les délais probables avant défaillance des ressources évoluent de manière sensiblement identique. Avantageusement, l'étape d'estimation peut comporter une étape de mesure d'au moins un paramètre permettant d'estimer les délais probables avant défaillance des ressources. Dans un mode de réalisation préférentiel, l'étape d'estimation peut utiliser une table qui associe, à des valeurs possibles du paramètre mesuré, des valeurs de délais probables avant défaillance, ladite table étant remplie préalablement à l'utilisation du système et/ou l'étape d'estimation peut utiliser une équation analytique qui permet d'associer, à toute valeur possible du paramètre mesuré, une valeur de délai probable avant défaillance. Dans un mode de réalisation préférentiel, le délai estimé pour chacune des ressources peut être le délai probable avant défaillance qui résulterait si la ressource effectuait le traitement. Dans un mode de réalisation préférentiel, la ressource sélectionnée peut être celle dont le délai probable estimé avant défaillance 15 est le plus long. Dans un mode de réalisation préférentiel, le paramètre mesuré peut être un paramètre interne aux ressources, comme la tension de fonctionnement et/ou la fréquence de fonctionnement et/ou le courant de fuite et/ou la température de jonction et/ou l'intervalle de temps entre l'instant 20 de commutation de la sortie d'un chemin sensible et l'instant de capture dans le registre de sortie par le signal d'horloge, auquel est déduit le temps de préchargement dudit registre de sortie. Avantageusement, le paramètre interne peut également être mesuré grâce à des compteurs d'activité disposés dans chacune des 25 ressources, chaque compteur fournissant une information sur l'activité de commutation courante de la ressource dans laquelle il est disposé. Par exemple, les ressources de traitement peuvent être des ressources de calcul capables d'exécuter des tâches. Ces ressources de calcul peuvent être des processeurs à architecture en pipeline, chaque 30 compteur d'activité pouvant alors fournir le nombre de fois qu'un étage de pipeline est traversé ou le nombre d'instructions chargées ou le nombre d'accès en lecture/écriture à un fichier de registre ou le nombre de d'instructions de chargement/stockage exécutées ou le nombre de commutations de bits sur les entrées et les sorties dans un étage de pipeline. Par exemple, les ressources de traitement peuvent être des ressources de mémorisation capables de réserver des espaces mémoires. Chaque compteur d'activité peut alors fournir le nombre d'accès en lecture ou en écriture à la ressource de mémorisation ou le nombre d'accès par banc mémoire ou le nombre d'accès par ligne mémoire ou le nombre de commutations de bits. Dans un autre mode de réalisation, le paramètre mesuré peut être un paramètre externe aux ressources, comme la température ambiante et/ou l'humidité ambiante et/ou la radioactivité ambiante. Dans un mode de réalisation préférentiel, si une ressource a un délai probable avant défaillance inférieur à un seuil prédéterminé, alors la tension d'alimentation et la fréquence d'horloge de ladite ressource peuvent être diminuées ou les tâches déjà allouées à ladite ressource peuvent être réallouées à d'autres ressources dont les délais probables avant défaillance sont supérieurs au seuil ou encore ladite ressource peut être éteinte. Avantages L'invention a encore pour principaux avantages qu'elle prend également en compte le vieillissement des ressources de mémorisation. De plus, le niveau de vieillissement de chaque ressource est "mémorisé" sans avoir recours à une mémoire non volatile, ceci malgré l'existence de période de coupure de l'alimentation. En effet, à chaque mise sous tension, l'état courant du vieillissement est mesuré. Cela permet d'initialiser le niveau de vieillissement des ressources à leur niveau réel, en prenant en compte le phénomène de régénération des transistors qui s'est produit pendant la dernière période d'extinction. Par ailleurs, cette technique permet également de prendre en compte l'impact sur le vieillissement de la variabilité due au procédé de fabrication. Description des figures D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard de dessins annexés qui représentent : la figure 1, par un diagramme, un exemple de système multiprocesseur composé d'une pluralité de ressources de calcul et d'une pluralité de ressources de mémorisation; la figure 2, par un diagramme, un exemple d'architecture d'une ressource de contrôle selon l'invention; les figures 3a et 3b, par des diagrammes, des exemples de ressources de calcul pouvant fonctionner à des couples tension-fréquence différents ou pouvant être mises en veille ou isolées électriquement selon l'invention; la figure 4, par un diagramme, un exemple de fonctionnement d'une unité de contrôle selon l'invention; la figure 5, par un diagramme, un exemple de module d'estimation du vieillissement des ressources selon l'invention; La présente demande se propose tout d'abord d'exposer les principes de l'invention permettant de fiabiliser un groupement de ressources de calcul grâce à un contrôle centralisé. Par exemple, l'invention peut être mise en oeuvre sous la forme d'une extension de la fonction de contrôle d'un groupement de processeurs. Plus précisément, l'invention propose de contrôler l'exécution des tâches sur les ressources de calcul et de placer des données de type page de données et de type instruction dans des bancs SRAM partagés ("Static Random Access Memory"). Le contrôle proposé par l'invention répartit la charge d'activité imposée par les applications entre les différents éléments de l'architecture, de manière à équilibrer leur vieillissement. L'ordonnancement des tâches est déterminé en ligne et l'assignation des tâches sur les ressources de calcul respecte la règle suivante: après le chargement d'une application dans le groupement de processeurs, le contrôleur de tâches sélectionne la première tâche à exécuter et l'alloue à la ressource de calcul libre. Une tâche est alors allouée sur une seule ressource de calcul. L'allocation et le placement des pages est déterminé en ligne par le contrôleur de mémoire. Le réseau d'interconnexions entre les ressources de calcul et les bancs mémoires est conçu de manière à garantir un temps d'accès identique entre une ressource de calcul et n'importe quel banc mémoire. Lorsqu'un choix entre plusieurs placements est offert, le placement retenu est celui qui évite le partage d'un banc mémoire entre deux ressources de calcul ou plus. Ceci afin d'éviter l'ajout de cycles d'attentes en lecture/écriture, qui sont causés par des conflits d'accès entre plusieurs ressources de calcul sur un même banc. Le vieillissement au cours du temps des matériaux d'une puce, qu'il s'agisse de silicium, de métal ou d'oxyde, se traduit par l'activation de mécanismes de dégradation qui peuvent causer une défaillance du circuit. Parmi les principaux mécanismes de dégradation, peuvent être cités, entre autres, le claquage d'oxyde ou "time-dependent dielectric breakdown" (TDDB), l'électromigration (EM), le stress thermomécanique ou "stress migration" (SM), le "negative bias temperature instability" (NBTI), les porteurs chauds ou "hot carrier injection" (HCI), ou encore les larges cycles thermiques de fatigue ou "thermal cycling" (TC). Les phénomènes TDDB, EM, SM et TC sont des phénomènes destructifs pour les matériaux. Ils se traduisent tout d'abord par l'apparition de retards, on parle de "variabilité dynamique", causant des violations de marges temporelles sur les chemins qui traversent les transistors affectés par ces phénomènes. Ils peuvent ensuite causer la perte définitive de fonctionnalité. Les phénomènes NBTI et HCI, quant à eux, se traduisent essentiellement par l'apparition de retards, on parle là aussi de "variabilité dynamique", qui peuvent être intermittents et même réversibles. Là encore, la variabilité des paramètres peut provoquer une erreur logique. Cette liste de phénomènes n'est pas exhaustive et dépend de la technologie de fabrication de la puce. L'invention propose de contrôler l'exécution des tâches sur les ressources de calcul ainsi que le placement des pages en mémoire, qu'il s'agisse de pages de type données ou de type instructions, en tenant compte d'un ou plusieurs critères liés au vieillissement des éléments. Parmi ces critères peuvent être cités, entre autres, le délai probable avant défaillance ou TTF pour "Time-To-Failure", la variation de la marge temporelle des chemins critiques pour le vieillissement ou "Slack Time", la température ou encore la puissance totale consommée, qu'elle soit statique ou dynamique. L'invention propose notamment de retenir comme critère de vieillissement le TTF de chaque ressource de calcul et de chaque banc mémoire, qui est une métrique courante de fiabilité. Le TTF s'exprime en heures. La réciproque du TTF est le FIT pour "Failure In Time", qui représente la fréquence d'occurrence d'une défaillance et qui s'exprime en nombre d'erreurs pour 109 heures de fonctionnement. Bien que l'invention vise a priori l'équilibre du vieillissement entre les ressources, elle peut être facilement adaptée à d'autres objectifs. Une alternative serait notamment d'accélérer le vieillissement d'un élément en particulier et de l'associer à des mécanismes de détection d'erreurs afin de détecter l'occurrence de la première défaillance. Un principe de l'invention est d'extrapoler au niveau architectural les phénomènes de défaillance décrits précédemment, afin d'obtenir des macro-modèles de défaillances qui permettent d'estimer de manière approximative le TTF des ressources de calcul et de mémorisation. Pour cela, chaque mécanisme de dégradation peut avantageusement être analysé dans chaque ressource, afin d'extraire les principaux paramètres qui peuvent affecter significativement l'évolution du mécanisme considéré. Par exemple, la relation entre le vieillissement et la température est exponentielle. Pour les autres paramètres, une idée directrice peut être d'obtenir une relation entre leur évolution et l'activité de commutation dans la ressource, ainsi que la variation de la marge temporelle des chemins sensibles de la ressource. Après détermination de cette relation, des dispositifs de surveillance simples peuvent avantageusement être intégrés dans l'architecture, afin de mesurer en ligne la valeur des paramètres. Ces dispositifs de surveillance peuvent se décliner sous différentes formes, comme par exemple: o plusieurs capteurs de température, qui peuvent être insérés dans la puce pour mesurer la température de jonction de chaque élément, ou disposés sur le boîtier, ou encore disposés à côté du Cl afin de mesurer la température ambiante; o un ou plusieurs capteurs d'humidité sur le boîtier du CI, voire à côté 30 du boîtier; o plusieurs moyens de comptage du nombre d'accès dans chaque ressource de calcul et dans chaque ressource de mémorisation. Par la suite, ces moyens pourront être appelés "compteurs atomiques". Pour une ressource de calcul, il peut s'agir typiquement de compter le 35 nombre de cycles de chargement ("fetch") et de chargement/stockage ("Ioad/store"), voire plus finement, le nombre d'accès dans l'UAL ("Unité Arithmétique et Logique") ou dans le fichier de registre. Pour une ressource de mémorisation, il peut s'agir typiquement de compter le nombre d'accès en lecture/écriture par banc ou par ligne. II pourrait également s'agir de compter le nombre de commutations sur les entrées/sorties. Ainsi, un compteur peut être incrémenté lorsqu'au moins une commutation arrive sur les entrées/sorties surveillées ou à chaque commutation d'entrée/sortie; o des moyens de mesure de la marge temporelle des chemins les plus sensibles au vieillissement, par exemple en mettant en oeuvre la technique de "scan paramétrique" décrite dans la demande de brevet numéro EP2007060591. Cette technique permet d'évaluer la variation de la marge temporelle d'un chemin pendant une phase de test, sans modifier la tension d'alimentation ni la fréquence. Un dispositif mettant en oeuvre cette technique peut être inséré à la sortie de n'importe quel chemin et en particulier ceux déterminés comme étant les plus sensibles au vieillissement; o des moyens de mesure du courant consommé par une ressource, la mesure pouvant par exemple mettre en oeuvre la technique "Iddq", qui permet de mesurer le courant de fuite et sa variation pendant une phase de test. Dans un premier mode de réalisation, l'assignation des tâches et l'allocation des bancs de mémoire peuvent être décidées et effectuées en ligne à partir de TTF évalués hors ligne. Il s'agit alors d'évaluer, hors ligne, le TTF pour chacune des défaillances associées, pendant l'exécution de l'application, à l'assignation de chacune des tâches et à l'allocation en mémoire des différentes données à consommer ou à produire, ainsi qu'à l'allocation en mémoire des instructions. Cette évaluation peut se faire par exemple à l'aide d'outils de simulation. Dans ce mode de réalisation, aucun dispositif de surveillance matériel n'est nécessaire. Les contrôleurs de tâche et de mémoire peuvent disposer d'une table qui renseigne, pour chaque tâche et pour chaque donnée, le TTF (ou le FIT) des éléments associés à leur utilisation. Par ailleurs, ces contrôleurs peuvent disposer d'une autre table qui contient la valeur du TTF courant de chaque élément. Le TTF courant de chaque élément peut être mis à jour à chaque étape d'assignation ou d'allocation. La valeur courante est la réciproque de la somme du FIT courant et du FIT associé à la tâche assignée ou du FIT associé aux données allouées. Ces grandeurs peuvent ainsi être utilisées pour la décision en ligne de l'assignation des tâches et de l'allocation des données. Avant l'assignation effective d'une tâche, le contrôleur des tâches peut estimer le TTF résultant sur l'ensemble des ressources de calcul. Il peut ainsi prendre la meilleure décision de manière à équilibrer le TTF de chacune des ressources de calcul. Par exemple, il peut sélectionner celles dont les TTF résultants sont les plus longs. De manière similaire, le contrôleur mémoire peut estimer le TTF résultant de l'ensemble des bancs mémoires et déterminer ainsi l'allocation optimale, c'est-à-dire l'allocation conduisant à un vieillissement équitable ou sensiblement identique entre les différents bancs mémoires. Dans une variante du premier mode de réalisation, il est également possible de décider hors ligne l'assignation de toutes les tâches et le placement de toutes les données afin d'obtenir un vieillissement équitable ou sensiblement identique entre tous les éléments. Lorsque l'application est chargée dans le circuit, les contrôleurs peuvent appliquer directement les choix d'assignation et d'allocation définis hors ligne. Les tables de valeurs courantes ne sont alors pas nécessaires. Pour être équivalent à l'approche précédente, ceci suppose toutefois que tous les éléments ont le même niveau d'usure (TTF) au chargement de l'application. Dans un deuxième mode de réalisation, l'assignation des tâches et l'allocation des bancs de mémoire peuvent être effectuées en ligne à partir d'informations fournies en ligne par des dispositifs de surveillance matériels. Contrairement au mode de réalisation précédent, aucune prédiction sur le TTF associé à chaque tâche et à chaque donnée n'est donnée aux contrôleurs. La sélection des tâches à exécuter est donc décidée en dehors du contexte du vieillissement. Chaque élément peut disposer de dispositifs de surveillance internes ou à proximité, capables de mesurer des paramètres électriques ou architecturaux à n'importe quel instant. Pour chaque type de défaillance, les valeurs courantes des dispositifs de surveillance peuvent ensuite être utilisées pour l'estimation du TTF courant de chaque élément. L'estimation peut être effectuée de manière régulière, à l'instant de changement de contexte dans l'architecture par exemple. Comme précédemment, les contrôleurs peuvent disposer d'une table contenant les résultats de l'estimation. A chaque mise à jour de la table, le contrôleur de tâche peut modifier l'assignation des tâches en cours de manière à équilibrer le vieillissement entre toutes les ressources de calcul. Par exemple, après une ou plusieurs évaluations consécutives, si pour un type de défaillance l'écart entre les TTF de deux ressources de calcul en cours d'utilisation dépasse un seuil critique, l'assignation des deux tâches respectives peut être changée en migrant chacune depuis sa ressource initiale vers l'autre ressource. Les seuils critiques peuvent être déterminés en fonction de la technologie utilisée, du procédé de fabrication et de la conception de la puce. De manière similaire, le contrôleur mémoire peut modifier l'allocation des données de manière à répartir équitablement le vieillissement entre tous les bancs. Un troisième mode de réalisation peut être une combinaison des deux modes de réalisation précédents. L'évaluation du TTF courant de chaque élément peut être la réciproque de la somme entre le FIT courant et le FIT estimé de l'élément. L'estimation du FIT de l'élément peut être effectuée selon la technique décrite dans le deuxième mode de réalisation précédent, c'est-à-dire à l'aide de dispositifs de surveillance, alors que l'assignation des tâches et l'allocation de la mémoire peuvent reposer sur les principes décrits dans le premier mode de réalisation. Cette approche a plusieurs avantages. En comparaison avec le premier mode de réalisation, elle permet d'améliorer la précision sur le TTF résultant de chaque élément. En effet, l'estimation du FIT d'un processeur en sommant le FIT engendrée par les tâches exécutées, le FIT étant calculé hors ligne, risque très probablement de diverger du FIT réel du processeur. De plus, le fait de pouvoir, en ligne, estimer le TTF réel de chaque élément peut permettre de tenir compte de la dynamicité des tâches. En effet, l'exécution d'une tâche peut prendre plusieurs chemins différents en fonction des données traitées et donc engendrer un vieillissement différent. Par ailleurs, l'estimation de la température peut être difficile hors-ligne et il peut être intéressant de la corriger pendant l'exécution. II faut noter que l'estimation en ligne a un rôle d'asservissement pour les contrôleurs de tâches et de mémoire. Il faut noter également que le TTF de chaque ressource de calcul peut également prendre en compte les mémoires locales proches du processeur, comme par exemple les caches de donnée et d'instruction, les TLB (Translation Lookaside Buffer) ou encore les mémoires "scratch". Il faut également comprendre que les trois modes de réalisation décrits précédemment peuvent être améliorés pour prendre en compte d'autres 1 o critères, tels que la puissance consommée ou la marge temporelle des chemins critiques. La décision de l'exécution des tâches peut alors être le résultat d'une combinaison entre les différents critères. 15 La figure 1 illustre par un diagramme un exemple de système multiprocesseur pouvant comporter n ressources de calcul PE1 à PEä ("Processing Element") et m ressources de mémorisation SMB1 à SMBm ("Shared Memory Bank") physiquement partagées entre les ressources de calcul. Par ailleurs, un réseau d'interconnexion PN ("Programmable 20 Network") relie les ressources de calcul aux ressources de mémorisation. Enfin, une ressource centrale de contrôle MC ("Main Controller") décide, sélectionne, ordonnance et alloue les tâches sur les ressources de calcul. La ressource de contrôle MC permet également le chargement des instructions et des données, ainsi que l'allocation dynamique de mémoire. C'est donc 25 dans MC que peut être implémentée l'invention. Chaque ressource de calcul PEk (1 La figure 3a illustre par un diagramme comment n'importe quelle 35 ressource de calcul PEk (1 _ La figure 4 illustre par un diagramme comment, sur réveil d'horloge et en relation avec la mémoire SIS, le module de contrôle CU enchaîne en boucle une phase TSL de sélection des tâches ("Task SeLection"), une phase TSD d'ordonnancement des tâches ("Task ScheDuling") et une phase TAL d'allocation des tâches ("Task ALlocation"). Avantageusement, le module de contrôle CU peut utiliser un graphe CDFG ("Control-Data Flow Graph") de contrôle et de données qui, pour chaque application, décrit toutes les dépendances de contrôle et de données entre les tâches. En effet, l'exécution de chacune des tâches est contrainte par l'exécution des tâches précédentes et un graphe CDFG permet au module CU d'activer successivement les nouvelles tâches en fonction de l'état d'avancement des tâches courantes. Tout d'abord, le module CU ordonnance les tâches suivant une ou plusieurs grandeurs caractéristiques comme l'échéance, la laxité, la température induite, le vieillissement induit ou encore la consommation induite. Puis, le module CU détermine, à chaque réveil d'horloge, l'ensemble des tâches prêtes à être exécutées. Chaque tâche est ainsi ordonnée suivant une priorité d'exécution. La période entre deux réveils inclut un ou plusieurs cycles d'horloge. Parmi cette liste de tâches prêtes, le module CU sélectionne p tâches actives les plus prioritaires, où p correspond au nombre de ressources disponibles (p Lorsque la tâche active est en cours d'exécution, l'estimation du TTFre de chaque couple tâche active - ressource active consiste à multiplier le TTFra par le TTFta, pour le mode DVFS en cours. Lorsque la tâche active n'est pas encore exécutée, l'estimation du vecteur TTFre consiste à multiplier le TTFra par le TTFta correspondant au « meilleur » mode DVFS, c'est-à-dire le mode le moins agressif offrant les performances maximales. Le module CU sélectionne alors les meilleurs couples tâche active - ressource active qui minimisent le plus grand TTFre et homogénéisent le vieillissement résultant des ressources. Il peut être également envisageable d'effectuer cette sélection selon plusieurs critères, en y incluant par exemple la température résultante ou la consommation d'énergie résultante. Si, malgré la sélection des meilleurs couples, la différence entre le vieillissement des ressources de calcul est supérieure au seuil prédéfini ou que le vieillissement résultant d'une ressource est supérieur au seuil prédéfini, une stratégie de mitigation peut être appliquée. Si un mode DVFS plus agressif, c'est-à-dire à tension ou/et fréquence réduite, existe et si les contraintes temps-réel peuvent toujours être respectées, celui-ci est appliqué sur la ressource active ayant le TTFre le plus petit correspondant au vieillissement le plus élevé. Le module CU alloue ensuite les tâches actives. Si aucun mode DVFS n'est disponible et si une ressource froide est disponible, le module CU active celle-ci et le processeur ayant le TTFre le plus petit est éteint. Le module CU recherche à nouveau les meilleurs couples en y incluant cette nouvelle ressource. Si aucun processeur froid n'est disponible, le module CU sauve le contexte de la ressource ayant le plus petit TTFre si la tâche active est en cours d'exécution et éteint la ressource. La ressource peut rester éteinte définitivement. Mais la ressource peut également rester éteinte jusqu'à ce qu'elle se soit suffisamment régénérée, à la prochaine mise sous tension du système par exemple. Elle peut aussi rester éteinte jusqu'à ce que le TTFre des autres ressources ait suffisamment diminué. Pour décider de la remise en service de la ressource ou non, le module CU peut avantageusement utiliser des moyens de test paramétrique inclus dans le module AVEU pour obtenir une estimation du vieillissement de la ressource isolée après sa mise sous tension. Ces moyens de test paramétrique seront décrits plus en détail par la suite. Le module CU informe ensuite le processeur système qu'il ne peut plus garantir les contraintes temps-réels. Le module CU élimine enfin la tâche active la moins prioritaire de la liste des couples et effectue une nouvelle sélection des meilleurs couples, en considérant les tâches restantes et la nouvelle liste de ressources actives. Lorsque le processus d'allocation des tâches est fini, l'ensemble 7o des tâches est alloué sur les ressources de calcul qui leur sont attribuées. Les tâches actives en cours d'exécution peuvent être amenées à être préemptées puis migrées vers une nouvelle ressource. Pendant l'exécution des tâches, le vieillissement des ressources utilisées sont mis à jour par le module AVEU afin de permettre, au prochain réveil d'horloge, la sélection de 15 nouveaux couples tâche active - ressource active. Le vieillissement induit par une tâche active (TTFta) est pré-calculé hors ligne pour chaque tâche. D'autres grandeurs peuvent également être pré-calculées : la durée d'exécution de la tâche, la puissance consommée induite, la température induite, etc. Les valeurs hors-lignes sont 20 approximées à l'aide d'une série de caractérisation sur des cas d'exécution typiques. La figure 5 illustre par un diagramme un exemple d'architecture 25 interne du module AVEU selon l'invention. Son rôle est d'estimer le vieillissement courant (TTFra) ou la variabilité dynamique de chaque ressource active du système. Périodiquement, un module d'estimation EST lit et mémorise les valeurs fournies par un dispositif de surveillance MOC ("MOnitor Controler"), qui peut par exemple être relié à des compteurs 30 d'activité a, b et c insérés dans les coeurs de processeurs PC1 et PC2 respectivement. Le module d'estimation EST peut également lire et mémoriser les valeurs fournies par des capteurs externes via une interface EIS ("External Sensor Interface"). Par exemple, il peut s'agir des valeurs fournies par des capteurs externes de température et mémorisées dans la 35 mémoire SIS par le module DTM. Les capteurs externes peuvent être situés autour ou sur le boîtier de la puce d'accueil, de manière à mesurer la température et l'humidité ambiantes par exemple. Dans d'autres modes de réalisation de l'invention, le module EST peut prendre en compte d'autres types de capteurs, comme par exemple la radioactivité environnante. Ensuite, le module EST calcule un vecteur TTFra[r] dans lequel l'entrée r représente la valeur estimée du TTF de la ressource r. L'estimation peut reposer sur des équations analytiques ou sur des LUT ("Look-Up Table"). Les équations analytiques peuvent permettre de déterminer le TTF de la ressource r en fonction de paramètres électriques comme par exemple la tension, la fréquence ou le courant de fuite, ainsi qu'en fonction de paramètres technologiques comme par exemple la température de jonction ou la température ambiante. Par ailleurs, le module EST peut être relié au module DPM de gestion de consommation énergétique et au module DTM de gestion de la température, afin de connaître le mode de fonctionnement des ressources: allumée ou éteinte, en mode veille ou non, tension et fréquence de fonctionnement, etc. Selon la méthode d'estimation ou selon les modèles de défaillance utilisés, les dispositifs de surveillance peuvent se décliner sous différentes formes : sondes de courant insérées en série sur les lignes d'alimentation, sondes de température insérées sur le Cl, etc. Dans le présent exemple de réalisation de l'invention, deux types de dispositifs de surveillance peuvent être essentiellement utilisés: les compteurs d'activité comme a, b et c, ainsi que des dispositifs de mesure de marge temporelle comme explicité par la suite. Ces dispositifs de mesure de marge temporelle sont utilisables via des modules d'interface TCIi et TCl2 ("Test Control Interface") dans PC1 et PC2 respectivement. C'est pourquoi le module AVEU peut avantageusement comporter un module de test paramétrique PTC ("Parametric Test Controler") permettant d'obtenir, par l'intermédiaire de TCIi et TCl2, une estimation du vieillissement des coeurs de processeur PC1 et PC2 respectivement. A cela peut être associée la durée d'utilisation de chaque ressource par les applications depuis la dernière mise sous tension. Avantageusement, les compteurs d'activité a, b et c peuvent permettent d'obtenir une information sur l'activité de commutation courante dans les coeurs de processeur PC1 et PC2. Outre la température de jonction, les autres paramètres des modèles de défaillance sont intimement liés au stress électrique des structures. Les compteurs d'activité a, b et c reflètent le stress électrique dans les coeurs de processeur PC1 et PC2. Une ressource peut contenir un ou plusieurs compteurs, comme PC2 sur la figure 5. Par exemple, dans un processeur à architecture en pipeline, ces compteurs d'activité peuvent par exemple indiquer le nombre de fois qu'un étage du pipeline est traversé ou le nombre d'instructions chargées ("fetch") ou le nombre d'accès en lecture/écriture au fichier de registre ou le nombre de chargement/stockage ("load/store") effectués ou encore le nombre d'opérations effectuées par les unités fonctionnelles. Cette liste n'est pas limitative et d'autres dispositifs de surveillance peuvent également comptabiliser le nombre de commutations de bits sur les entrées et sorties dans un étage du pipeline. Dans une ressource de mémorisation, ces dispositifs de surveillance peuvent indiquer par exemple le nombre d'accès en lecture/écriture d'une mémoire. De manière similaire aux ressources de calcul, d'autres compteurs peuvent y être insérés et compter le nombre d'accès par banc mémoire ou par ligne mémoire. D'autres dispositifs de surveillance peuvent également comptabiliser le nombre de commutation de bits dans la mémoire. Dans les ressources d'interconnexion, les compteurs peuvent comptabiliser le nombre de fois qu'un canal de communication est emprunté par une communication entre une ressource de calcul et une ressource de mémorisation. Ce descriptif n'est pas exhaustif et ne limite pas la portée de l'invention, le module EST pouvant prendre en compte de nombreux types de dispositifs de surveillance. Ces compteurs peuvent être associés à des annotations insérées dans le code des tâches à la compilation. Ces annotations permettent d'indiquer au module MOC l'instant de la remise à zéro des compteurs, voire les instants importants de lecture de la valeur des compteurs. Avantageusement, la mesure de la marge temporelle des chemins de la ressource peut être effectuée, quant à elle, à chaque mise sous tension et permettre d'initialiser le TTF de chaque ressource. Les compteurs peuvent également être initialisés à zéro à chaque mise sous tension. Dans le présent exemple de réalisation de l'invention, la mesure peut avantageusement être effectuée à l'aide d'un test paramétrique. Toutefois, d'autres techniques de mesure peuvent être utilisées. Le TTF initial dépend de deux phénomènes : la régénération complète ou partielle des mécanismes de défaillance dans les transistors, ainsi que la variabilité statique en sortie de fonderie. Ces deux phénomènes affectent les délais de propagation des chemins des ressources et donc leur marge temporelle. La marge temporelle est l'écart de temps entre l'instant de commutation de la sortie du chemin et l'instant de capture dans le registre de sortie par le signal d'horloge, moins le temps de préchargement du registre. L'estimation du TTFra initial de chaque ressource peut être obtenue à l'aide d'une table de conversion associée à la ressource. Cette table peut prendre en entrée la ou les différentes valeurs de marge temporelle mesurées dans la ressource et donner un TTFra correspondant. La table de conversion et le choix des chemins à mesurer peuvent être déterminés à partir d'une analyse en simulation. La table peut être chargée dans la mémoire SIS au démarrage du système. Les chemins mesurés ne sont pas nécessairement les chemins critiques de la ressource, mais plutôt les chemins sensibles aux stress électrique et thermique. Comme pour les autres valeurs TTF estimées, la valeur estimée du TTF initial est mémorisée dans la mémoire SIS. Dans le présent exemple de réalisation, un dispositif de mesure de marge temporelle peut être disposé dans le coeur de processeur PCC. Ce même dispositif peut être inséré dans les éléments de mémorisation. Il est utilisable par l'intermédiaire du module d'interface TCI1. C'est le module PTC qui peut avantageusement effectuer la mesure par test paramétrique à la mise sous tension. Dans le présent exemple de réalisation de l'invention, le test paramétrique peut être celui décrit dans la demande de brevet numéro EP2007060591, qui repose sur une technique classique de BIST ("Built ln Self Test"). Dans cette demande de brevet, la conception des registres scan est modifiée de manière à dégrader les transitions montantes et descendantes des signaux en sortie. Cet artifice permet de ralentir le délai de propagation des chemins connectés à la sortie de ces registres modifiés. Cette modification est appliquée à un sous-ensemble prédéfini de chemins, donc de registres scan. Un module de contrôle de test contrôle l'application du test et la configuration du mode de dégradation des registres scan. II contrôle tout d'abord l'isolation logique du circuit sous test, puis l'activation du générateur de vecteurs de test, le chargement des registres de scan, la récupération des réponses sur les sorties et le déchargement des chaines de scan. Enfin, il retourne un résultat SUCCES ou ECHEC au module PTC. Ce dernier contrôle le démarrage ou l'arrêt du test : il envoie des informations de configuration CONFIG concernant le mode de dégradation et lit le résultat SUCCES ou ECHEC du test. Une mesure de marge temporelle se traduit par la détermination d'un mode de dégradation. Si un résultat SUCCES est obtenu, cela indique à l'estimateur que la marge temporelle réelle du processeur sous test est supérieure ou égale à une référence. Dans le cas d'un ECHEC, cela lui indique que la marge temporelle est en deçà de la référence. Autres avantages : L'invention décrite précédemment permet ainsi d'équilibrer le plus possible le vieillissement entre les différentes ressources, de manière à retarder l'instant d'apparition des défaillances. En répartissant intelligemment les tâches sur les ressources de calcul et l'utilisation des ressources de mémorisation en fonction du vieillissement induit, l'invention permet d'améliorer sensiblement la fiabilité des architectures multiprocesseurs. De plus, la présente invention ne nécessite pas de modifier le point de fonctionnement de la ressource sous test, c'est-à-dire sa tension d'alimentation courante et sa fréquence d'horloge courante. REVENDICATIONS1. Procédé pour sélectionner, parmi une pluralité de ressources de traitement (PE1,...,PEn, SMB1,...,SMBm) capables dans un système de traitement de l'information d'effectuer un même type de traitement, l'une des ressources afin qu'elle effectue un traitement dudit type, le procédé étant caractérisé en ce qu'il comporte une étape d'estimation d'un délai probable avant défaillance pour chacune des ressources, la ressource étant sélectionnée de telle sorte que les délais probables avant défaillance des ressources évoluent de manière sensiblement identique. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape d'estimation comporte une étape de mesure d'au moins un paramètre permettant d'estimer les délais probables avant défaillance des ressources (PE1,...,PEn, SMB1,...,SMBm). 3. Procédé selon la revendication 2, caractérisé en ce que l'étape d'estimation utilise : une table qui associe, à des valeurs possibles du paramètre mesuré, des valeurs de délais probables avant défaillance, ladite table étant remplie préalablement à l'utilisation du système, et/ou ; une équation analytique qui permet d'associer, à toute valeur possible du paramètre mesuré, une valeur de délai probable avant défaillance. 4. Procédé selon la revendication 1, caractérisé en ce que le délai estimé pour chacune des ressources est le délai probable avant défaillance qui résulterait si la ressource effectuait le traitement. 5. Procédé selon la revendication 1, caractérisé en ce que la ressource sélectionnée est celle dont le délai probable estimé avant défaillance est le plus long. 6. Procédé selon la revendication 2 ou 3, caractérisé en ce que le paramètre mesuré est un paramètre interne aux ressources (PE1,...,PEn, SMB1,...,SMBm). 7. Procédé selon la revendication 6, caractérisé en ce que le paramètre interne mesuré est, pour chacune des ressources (PE1,...,PE,,, SMB1,...,SMBm) : - la tension de fonctionnement, et/ou ; la fréquence de fonctionnement, et/ou ; le courant de fuite, et/ou ; la température de jonction, et/ou ; - l'intervalle de temps entre l'instant de commutation de la sortie d'un chemin sensible et l'instant de capture dans le registre de sortie par le signal d'horloge, auquel est déduit le temps de préchargement dudit registre de sortie. 8. Procédé selon la revendication 6, caractérisé en ce que le paramètre interne est mesuré grâce à des compteurs d'activité (a, b, c) disposés dans chacune des ressources (PEI, PE2), chaque compteur fournissant une information sur l'activité de commutation courante de la ressource dans laquelle il est disposé. 9. Procédé selon la revendication 1, caractérisé en ce que les ressources de traitement sont des ressources de calcul (PE1,...,PEä) capables d'exécuter des tâches. 10. Procédé selon la revendication 8 et 9, caractérisé en ce que, les ressources de calcul étant des processeurs à architecture en pipeline, chaque compteur d'activité fournit le nombre de fois qu'un étage de pipeline est traversé ou le nombre d'instructions chargées ou le nombre d'accès en lecture/écriture à un fichier de registre ou le nombre de d'instructions de chargement/stockage exécutées ou le nombre de commutations de bits sur les entrées et les sorties dans un étage de pipeline. 11. Procédé selon la revendication 1, caractérisé en ce que les ressources de traitement sont des ressources de mémorisation (SMB1,...,SMBm) capables de réserver des espaces mémoires. 12. Procédé selon la revendication 8 et 11, caractérisé en ce que chaque compteur d'activité fournit le nombre d'accès en lecture ou en écriture à la ressource de mémorisation (SMB1,...,SMBm) ou le nombre d'accès par banc mémoire ou le nombre d'accès par ligne mémoire ou le nombre de commutations de bits. 13. Procédé selon la revendication 2 ou 3, caractérisé en ce que le paramètre mesuré est un paramètre externe aux ressources (PE1,...,PE,,, SMB1,...,SMBm). 14. Procédé selon la revendication 13, caractérisé en ce que le paramètre externe mesuré est : la température ambiante, et/ou ; - l'humidité ambiante, et/ou ; la radioactivité ambiante. 15. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que, si une ressource a un délai probable avant défaillance inférieur à un seuil prédéterminé, alors: la tension d'alimentation et la fréquence d'horloge de ladite ressource sont diminuées, ou; les tâches déjà allouées à ladite ressource sont réallouées à d'autres ressources dont les délais probables avant défaillance sont supérieurs au seuil, ou; ladite ressource est éteinte.