Brevet FR2873830A1 — publié le 20060203

PROCEDE D'ORDONNANCEMENT DE TRAITEMENT DE TÂCHES ET DISPOSITIF POUR METTRE EN UVRE LE PROCEDE Domaine technique et art antérieur L'invention concerne un procédé d'ordonnancement de traitement de tâches ainsi qu'un dispositif pour mettre en oeuvre le procédé. L'invention concerne également un procédé de traitement de tâches ainsi que le dispositif associé. L'invention s'applique dans un très grand nombres de domaines tels que, par exemple, le domaine de l'électronique embarquée (téléphonie mobile, automobile, aéronautique, etc.) ou encore le domaine des systèmes électroniques distribués complexes destinés aux calculs intensifs tels que les supercalculateurs. L'électronique embarquée doit aujourd'hui répondre à des demandes de plus en plus fortes en terme de flexibilité et de performance. Par exemple, dans le domaine des applications multimédia (téléphones cellulaires, ordinateurs portables, etc.), les processeurs généralistes ne suffisent plus à eux seuls à répondre aux contraintes nouvellement imposées. Des systèmes composés de plusieurs processeurs spécialisés, de blocs reconfigurables, de mémoires, etc. sont ainsi apparus et ont donné lieu à l'émergence d'une technologie intégrée sur puce plus communément appelée technologie SoC pour Systems on Chip . Pour améliorer les performances et la flexibilité de la technologie SoC, des réseaux de communication ont été intégrés au sein des puces afin d'interconnecter les différents éléments qui sont intégrés sur les puces. Ces systèmes de réseaux sur puce, communément appelés NoC pour Network on Chip , apportent aujourd'hui une solution adaptée à l'intégration de futures technologies. Néanmoins, la gestion du parallélisme de tâches et l'exécution optimale d'applications restent des problèmes majeurs à résoudre sur ces réseaux. Les algorithmes d'ordonnancement de tâches sont largement représentés dans la littérature. Les algorithmes traitant des tâches non dynamiquement parallélisables (le nombre de processeurs est connu à la compilation) et dont l'ordonnancement est basé sur des listes de tâches triées sont l'objet de l'invention. D'autres solutions, telles que, par exemple, les algorithmes génétiques, sont plus performantes et permettent d'atteindre de meilleurs résultats. Cependant, ces solutions plus performantes sont trop complexes pour pouvoir être mises en oeuvre sur silicium et leur intérêt reste limité dans le cadre de l'invention. Blazewicz et son équipe ont apporté une solution intéressante pour déterminer les solutions exactes dans le cas où toutes les tâches ont le même temps d'exécution (cf. référence bibliographique [BLAZ86]). Néanmoins, l'algorithme nécessaire engendre un temps de calcul important ainsi que d'importants échanges de données. Jansen et son équipe ont quant à eux considéré l'ordonnancement de tâches indépendantes pouvant s'exécuter sur seulement un seul processeur (cf. référence bibliographique [JANS99]). Ils ont apporté une solution de complexité polynomiale, donc de faible complexité mathématique. Cela dit, une étude sur son implémentation physique révèle une mise en oeuvre trop complexe pour obtenir de bonnes performances. Des conclusions similaires sont vérifiées dans des travaux plus proches de la problématique de l'invention (cf. références bibliographiques [BAER73, BAKE81]). D'autres solutions nécessitent de pouvoir évaluer les temps restant aux tâches pour s'exécuter (cf. référence bibliographique [TOPCO2] et brevet US 6,567,840 B1). Mais ceci n'est pas envisageable pour des systèmes asynchrones et l'ordonnancement dynamique consomme énormément d'énergie puisqu'il nécessite des mises à jour continues. D'autres résultats ont également montré que le tri des tâches en fonction du nombre de ressources utiles se révèle particulièrement intéressant en termes de complexité et de temps d'exécution résultant [cf. références bibliographiques LI00 et IBAR88]. Pour l'allocation de tâches sur les ressources, la principale innovation présentée dans la littérature consiste à changer dynamiquement le nombre de ressources utiles à l'exécution de tâche. Ceci n'est néanmoins pas envisageable dans le cadre d'une solution physique puisque la compilation d'une tâche est dépendante du nombre de ressources nécessaires. Exposé de l'invention L'algorithme d'ordonnancement de traitement de tâches selon l'invention ne présente pas les inconvénients mentionnés cidessus. L'invention concerne un procédé d'ordonnancement de traitement de tâches dont l'exécution est conditionnée par un ordre de préséance, le traitement d'une tâche comprenant une étape de configuration de ressources nécessaires à l'exécution de la tâche et une étape d'exécution de la tâche sur les ressources ainsi configurées. Le procédé est caractérisé en ce qu'il comprend: - une sélection d'au moins un niveau de tâches à traiter, - une étape de tri des tâches du niveau de tâches à traiter pour définir, en accord avec l'ordre de préséance, un ordre de priorité dans le traitement des tâches, en fonction, d'une part, du nombre de ressources nécessaires au traitement des tâches et, d'autre part, d'une grandeur caractéristique des tâches, - une évaluation du nombre de ressources disponibles pour le traitement des tâches du niveau de tâches, et - une assignation des tâches du niveau de tâches aux ressources disponibles conformément à l'ordre de priorité. Selon une caractéristique supplémentaire de l'invention, l'étape de tri comprend, d'une part, un premier tri selon le nombre de ressources nécessaires à l'exécution des tâches de sorte que les tâches soient traitées selon un ordre décroissant du nombre de ressources nécessaires à leur traitement et, d'autre part, un deuxième tri selon la grandeur caractéristique des tâches de sorte que les tâches soient traitées selon un ordre croissant ou décroissant de leur grandeur caractéristique. Selon une première variante de l'invention, le premier tri précède le deuxième tri, le deuxième tri étant mis en oeuvre dès lors que le nombre de ressources nécessaires aux traitement de plusieurs tâches est identique pour lesdites plusieurs tâches. Selon une deuxième variante de l'invention, le deuxième tri précède le premier tri, le premier tri étant mis en oeuvre dès lors que la grandeur caractéristique des tâches relative à plusieurs tâches est identique pour lesdites plusieurs tâches. Selon une caractéristique supplémentaire de l'invention, la grandeur caractéristique des tâches est la durée de traitement des tâches, ou la durée de configuration des ressources nécessaires à l'exécution des tâches, ou la durée d'exécution des tâches, ou une durée qui reste à une tâche pour s'exécuter en fonction d'une contrainte temporelle d'exécution associée à la tâche, ou la durée de traitement, de configuration ou d'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une date de fin au plus tard de la configuration des tâches ou de l'exécution des tâches, ou une date de début au plus tôt ou au plus tard de la configuration ou de l'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une durée fonction d'une périodicité relative à une ou plusieurs tâches, ou une durée fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. Selon encore une caractéristique supplémentaire de l'invention, la grandeur caractéristique des tâches est une largeur de bande passante utile à l'exécution des tâches, ou une cadence d'arrivée des données traitées par les tâches, ou un nombre de ressources utiles au stockage ou à la communication des données traitées par les tâches, ou un coût de communications avec d'autres tâches ou avec des ressources partagées entre les tâches, ou une consommation d'énergie engendrée par le traitement des tâches, ou une information qui mesure la complexité des opérations associées à l'exécution des tâches, ou une information qui mesure la régularité d'un algorithme associé à l'exécution des tâches, ou une information qui mesure le parallélisme d'exécution des tâches, ou une information qui mesure une priorité indépendante des tâches et imposée par un utilisateur dans le cas d'une utilisation multi-utilisateur, ou une fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. Selon encore une caractéristique supplémentaire de l'invention, la grandeur caractéristique des tâches est une information relative à la position des tâches dans un graphe d'application. Selon encore une caractéristique supplémentaire de l'invention, l'information relative à la position des tâches dans un graphe d'application est la durée qui reste aux tâches pour s'exécuter avant la fin d'une contrainte temporelle imposée à la durée de traitement du graphe d'application, ou le plus grand nombre de tâches qui restent à traiter avant la fin du graphe d'application, ou le plus grand nombre de tâches de rang supérieur dans l'ordre de préséance des tâches, ou la somme des durées d'exécution des tâches de rang supérieur dans l'ordre de préséance des tâches, ou une fonction de tout ou partie des grandeurs énumérées ci-dessus. Selon encore une caractéristique supplémentaire de l'invention, le niveau de tâches est défini par validation de contraintes de préséance des tâches du niveau de tâches. Selon encore une caractéristique supplémentaire de l'invention, l'assignation des ressources disponibles en fonction de l'ordre de priorité est répétée de façon dynamique jusqu'à ce que toutes les tâches du niveau de tâches soient traitées. Selon encore une caractéristique supplémentaire de l'invention, le traitement d'un niveau de tâches de rang G débute dès lors que toutes les tâches du niveau de tâches de rang G-1 qui précède le niveau de tâches de rang G ont été configurées. L'invention concerne également un procédé de traitement de tâches dont l'exécution est conditionnée par un ordre de préséance, le traitement d'une tâche comprenant une étape de configuration de ressources nécessaires à l'exécution de la tâche et une étape d'exécution de la tâche sur les ressources ainsi configurées. Le procédé de traitement est caractérisé en ce qu'il comprend un ordonnancement du traitement des tâches selon le procédé de l'invention et en ce que la configuration des ressources et l'exécution des tâches sont activées, respectivement, par un jeton de configuration et par un jeton d'exécution. L'invention concerne également un dispositif d'ordonnancement de traitement de tâches dont l'exécution est conditionnée par un ordre de préséance, le traitement d'une tâche comprenant une étape de configuration de ressources nécessaires à l'exécution de la tâche et une étape d'exécution de la tâche sur les ressources ainsi configurées. Le dispositif est caractérisé en ce qu'il comprend: - un composant qui contient un ensemble de tâches à traiter, - un bloc de sélection pour sélectionner au moins un niveau de tâches à traiter parmi l'ensemble des tâches contenues dans le composant, - des moyens pour trier les tâches du niveau de tâches sélectionné selon un ordre de priorité de sorte que, en accord avec l'ordre de préséance, les tâches soient traitées, en fonction, d'une part, du nombre de ressources nécessaires au traitement des tâches et, d'autre part, d'une grandeur caractéristique des tâches, et - des moyens pour assigner des ressources disponibles au traitement des tâches en fonction de l'ordre de priorité. Selon une caractéristique supplémentaire de l'invention, les moyens pour trier les tâches d'un 30 niveau de tâches sélectionné comprennent: - un premier bloc mémoire contenant des informations représentatives du nombre de ressources nécessaires au traitement de chaque tâche, - un deuxième bloc mémoire contenant des informations 5 représentatives de grandeurs caractéristiques des tâches, - des premiers moyens de comparaison pour comparer entre elles les informations représentatives des grandeurs caractéristiques des tâches du niveau de tâches, - des deuxièmes moyens de comparaison pour comparer le nombre de ressources disponibles au nombre de ressources nécessaires aux traitements des tâches du niveau de tâches, et - des moyens pour établir l'ordre de priorité en fonction des résultats de comparaison délivrés par les premiers et deuxièmes moyens de comparaison. Selon une caractéristique supplémentaire de l'invention, les moyens pour établir l'ordre de priorité en fonction des résultats de comparaison comprennent un ensemble de registres à décalage contenant des données binaires. Selon une caractéristique supplémentaire de l'invention, le composant qui contient l'ensemble des tâches à traiter est un composant reconfigurable adapté au contrôle qui comprend N+l cellules représentant N+l états d'un graphe d'application de tâches à exécuter, chaque cellule contenant une tâche à exécuter, et un réseau d'interconnexion reconfigurable pour relier les différents états du graphe entre eux. Selon une caractéristique supplémentaire de l'invention, le bloc de sélection de tâches comprend des moyens pour rejeter le traitement de une ou plusieurs tâches du niveau de tâches à traiter afin d'autoriser un fonctionnement dégradé du système en vue de respecter des conditions environnementales, comme par exemple une puissance ou une énergie maximale disponible, une contrainte de temps imposée sur le niveau de tâches, une contrainte sur la disponibilité des ressources de calcul, de mémorisation ou de communication, ou une contrainte de comptabilité électromagnétique avec le milieu extérieur, ou tout ou partie des conditions énumérées ci-dessus. L'invention concerne également un dispositif de traitement de tâches, caractérisé en ce qu'il comprend un dispositif d'ordonnancement de tâches selon l'invention contenant un composant reconfigurable adapté au contrôle, un jeton de configuration et un jeton d'exécution parcourant le réseau d'interconnexion pour activer, respectivement, la configuration des tâches et l'exécution des tâches. Le procédé d'ordonnancement de traitement de tâches selon l'invention permet d'augmenter très sensiblement les performances de l'ordonnancement de tâches indépendantes. Le dispositif de mise en uvre du procédé de l'invention est composé de plusieurs entités. Les tâches à exécuter sont des tâches non préemptives (c'est-à-dire qu'elles ne peuvent pas être interrompues), non malléables (c'est-à-dire que le nombre de ressources utiles à leur exécution est connu à l'avance), de durées d'exécution et de grandeur caractéristique connues. Le procédé d'ordonnancement selon l'invention favorise l'allocation contiguë de ressources pour le traitement d'une même tâche. Il minimise la durée totale d'exécution des tâches et favorise l'occupation des ressources. Le procédé d'ordonnancement selon l'invention gère dynamiquement l'allocation et la libération des ressources de calcul et permet d'autoadapter les ressources en fonction des besoins. Il permet la configuration des ressources avant leur exécution tout en tenant compte des contraintes de préséance, et cela pour des systèmes constitués d'un nombre quelconque de ressources identiques ou hétérogènes. Par ressources hétérogènes, il faut entendre des ressources de nature différentes (mémoires, microprocesseurs, blocs reconfigurables, IP (IP pour Intellectual Property ), interfaces, bus, etc.) Brève description des figures D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture d'un mode de réalisation préférentiel fait en référence aux figures jointes, parmi lesquelles: - la figure 1 représente un exemple de graphe d'application de tâches; - la figure 2 représente un organigramme de 30 principe d'ordonnancement de traitement d'un niveau de tâches selon l'invention; - la figure 3 représente un exemple d'ordonnancement de traitement de tâches dans le cas où le nombre de ressources pour le traitement des tâches est illimité ; - la figure 4 représente un exemple d'ordonnancement de traitement de tâches selon l'invention; - la figure 5 représente un dispositif traitement de tâches selon figures 6A-6C représentent des exemples du dispositif d'ordonnancement de tâches selon l'invention. Sur toutes les figures, les mêmes repères 15 désignent les mêmes éléments. Description détaillée de modes de mise en oeuvre de l'invention La figure 1 représente un exemple de graphe d'application de tâches à exécuter. Les noeuds représentent les tâches et les flèches reliant les noeuds symbolisent l'ordre de préséance dans lequel les tâches doivent être exécutées. Avant la mise en oeuvre du procédé, les 25 informations suivantes sont connues: - l'ordre de préséance dans lequel les tâches doivent être exécutées (cf. ci-dessous), - le nombre total de ressources de calcul disponibles pour le traitement des tâches, - le nombre de ressources de calcul nécessaires au traitement de chaque tâche, 10 d'ordonnancement de l'invention; - les d' application traitement de - la durée nécessaire au traitement de chaque tâche. Par durée nécessaire au traitement d'une tâche , il faut entendre une durée égale à la somme de la durée de configuration des ressources qui doivent contribuer à l'exécution de la tâche et de la durée d'exécution de la tâche sur les ressources ainsi configurées. La durée de configuration des ressources est la durée pendant laquelle les opérations qui sont nécessaires à l'exécution de la tâche sont configurées dans les ressources. Les tâches sont exécutées niveau par niveau. Des contraintes de préséance conditionnent la définition des niveaux de tâches ainsi que la mise en oeuvre de l'exécution des tâches au sein d'un même niveau. L'ordre de préséance des douze tâches TOT11 à traiter est ici le suivant: - la tâche TO doit être exécutée avant les tâches Ti, T2 et T3, - la tâche Tl doit être exécutée avant les tâches T4, T5 et T6, - la tâche T2 doit être exécutée avant les tâches T5 et T6, - la tâche T3 doit être exécutée avant les tâches T7 et 25 T8, - chacune des tâches T4, T5 et T6 doit être exécutée avant la tâche T9, - chacune des tâches T7 et T8 doit être exécutée avant la tâche T10, - les tâches T9 et T1O doivent être exécutées avant la tâche T11. De façon générale, pour un graphe d'application donné, un niveau de tâches de rang G comprend toutes les tâches dont le début de l'exécution dépend directement de la fin de l'exécution des tâches du niveau de tâches précédent de rang G-1. Dans l'exemple choisi de la figure 1, il y a donc cinq niveaux de tâches successifs, à savoir: - le niveau NO qui comprend la tâche TO - le niveau N1 qui comprend les tâches Ti, T2, T3, 10 - le niveau N2 qui comprend les tâches T4, T5, T6, T7, T8, - le niveau N3 qui comprend les tâches T9 et TiO, et - le niveau N4 qui comprend la tâche T11. Dans la suite de la description, pour des raisons de simplification, une tâche sera dite tâche mère par rapport à une ou des tâches dite(s) tâche(s) fille(s) , lorsque l'exécution de la ou des tâche(s) fille(s) dépend directement de l'achèvement de l'exécution de la tâche mère. A titre d'exemple non limitatif, la tâche Ti est ainsi une tâche mère pour les trois tâches filles T4, T5, T6 et la tâche T2 est également une tâche mère pour les deux tâches filles T5 et T6. La figure 2 représente un organigramme de 25 principe du procédé d'ordonnancement d'un niveau de tâches selon l'invention. Une première étape du procédé consiste à sélectionner un niveau de tâches à traiter en fonction de l'ordre de préséance des tâches (étape 1). Une fois le niveau de tâches sélectionné, les tâches du niveau de tâches sont triées pour établir un ordre de priorité de traitement des tâches (étape 2). Selon le mode de réalisation préférentiel de l'invention, durant l'étape de tri, les tâches sont tout d'abord triées par ordre décroissant du nombre de ressources nécessaires à leur exécution et, si le nombre de ressources est identique entre plusieurs tâches, ces dernières sont alors triées par ordre décroissant de leur durée de traitement (comme mentionné ci-dessus, la durée de traitement d'une tâche est la somme de la durée de configuration des ressources affectées à la tâche et de la durée d'exécution de la tâche sur les ressources configurées). L'ordre de priorité ainsi défini privilégie le traitement de la tâche ou des tâches qui utilisent le plus de ressources et, à nombres de ressources identiques, la tâche qui demande la durée de traitement la plus longue. D'autres modes de réalisation de l'invention sont également possibles. Le tri selon la durée de traitement des tâches peut ainsi précéder le tri selon le nombre de ressources. C'est alors le traitement de la ou des tâches(s) de plus longue(s) durée(s) qui est privilégié et, à durées identiques, la tâche qui utilise le plus de ressources. D'autres critères de tri, selon d'autres grandeurs caractéristiques des tâches à traiter, peuvent également être utilisés dans le cadre de l'invention. Outre la durée de traitement des tâches, la grandeur caractéristique des tâches peut être la durée de configuration des ressources nécessaires à l'exécution des tâches, ou la durée d'exécution des tâches, ou une durée qui reste à une tâche pour s'exécuter en fonction d'une contrainte temporelle d'exécution associée à la tâche, ou la durée de traitement, de configuration ou d'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une date de fin au plus tard de la configuration des tâches ou de l'exécution des tâches, ou une date de début au plus tôt ou au plus tard de la configuration ou de l'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une durée fonction d'une périodicité relative à une ou plusieurs tâches, ou une durée fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. La grandeur caractéristique des tâches peut également être une largeur de bande passante utile à l'exécution des tâches, ou une cadence d'arrivée des données traitées par les tâches, ou un nombre de ressources utiles au stockage ou à la communication des données traitées par les tâches, ou un coût de communications avec d'autres tâches ou avec des ressources partagées entre les tâches, ou une consommation d'énergie engendrée par le traitement des tâches, ou une information qui mesure la complexité des opérations associées à l'exécution des tâches, ou une information qui mesure la régularité d'un algorithme associé à l'exécution des tâches, ou une information qui mesure le parallélisme d'exécution des tâches, ou une information qui mesure une priorité indépendante des tâches et imposée par un utilisateur dans le cas d'une utilisation multi-utilisateur, ou une fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. La grandeur caractéristique des tâches peut également être une information relative à la position des tâches dans un graphe d'application. L'information relative à la position des tâches dans le graphe d'application peut alors être la durée qui reste aux tâches pour s'exécuter avant la fin d'une contrainte temporelle imposée à la durée de traitement du graphe d'application, ou le plus grand nombre de tâches qui restent à traiter avant la fin du graphe d'application, ou le plus grand nombre de tâches de rang supérieur dans l'ordre de préséance des tâches, ou la somme des durées d'exécution des tâches de rang supérieur dans l'ordre de préséance des tâches, ou une fonction de tout ou partie des grandeurs énumérées ci-dessus. Une fois les tâches triées par ordre de priorité, le nombre de ressources disponibles est évalué (étape 3). Les tâches sont alors assignées aux ressources disponibles, en vue de leur traitement, conformément à l'ordre de priorité précédemment établi (étape 4). Le traitement des tâches est alors exécuté (étape 5). Les étapes d'évaluation du nombre de ressources disponibles, d'assignation des tâches aux ressources disponibles et de traitement des tâches sont répétées aussi longtemps qu'il reste des tâches à traiter (6). Le mécanisme d'assignation dynamique des tâches est également répété jusqu'à ce que toutes les tâches du niveau aient été traitées (retour de l'étape 5 vers l'étape 4). La mise en uvre de l'invention pour un graphe d'application de tâches tel que le graphe représenté en figure 1 va maintenant être décrite. Dans le cadre de l'invention, le nombre total de ressources pour le traitement de tâches est limité. A titre d'exemple non limitatif, le nombre Ri de ressources nécessaires pour exécuter la tâche Ti (i=0, 2, ..., 11) peut être représenté par le tableau suivant: Ti Ri TO 1 Tl 4 T2 1 T3 3 T4 1 T5 4 T6 1 T7 2 T8 1 T9 1 T1O 3 T11 2 Dans la suite de la description, la notation configTi représente la durée de configuration des ressources qui doivent exécuter la tâche Ti et la notation execTi représente la durée d'exécution de la tâche Ti sur les ressources ainsi configurées. La durée execTi succède donc à la durée configTi . La figure 3 représente un exemple d'ordonnancement de tâches dans un cas où le nombre de ressources pour le traitement des tâches est illimité. L'ordonnancement des tâches selon l'exemple de la figure 3 ne rentre donc pas dans le cadre de l'invention. Cet exemple est cité à seule fin didactique, pour illustrer, dans un cas idéal, l'articulation qui existe entre les étapes de configuration et les étapes d'exécution des tâches. La tâche TO est la première tâche à exécuter et représente, à elle seule, un premier niveau NO de tâches. La ressource destinée à exécuter la tâche TO est alors configurée pendant la durée configTO et, lorsque la configuration est terminée, la tâche est exécutée sur la ressource pendant la durée execTO . Lorsque la durée configTO s'achève, il y a validation des contraintes de préséance des tâches Tl, T2, T3 qui constituent le deuxième niveau N1 de tâches. Le nombre de ressources étant illimité, les ressources nécessaires à l'exécution des tâches Tl, T2 et T3 sont alors configurées, en parallèle, pendant les durées respectives configTl , configT2 , configT3 sur autant de ressources qu'il est nécessaire. Dès que la durée execTO est terminée, l'exécution des tâches dont les ressources ne sont pas occupées par l'opération de configuration débute. En l'occurrence, selon l'exemple choisi, les durées execTl et execT3 débutent en parallèle alors que la durée execT2 ne débute que dès l'achèvement de la durée configT2 . Simultanément à l'achèvement de la durée de configuration de la tâche T2 (dernière tâche du niveau N1), il y a validation des contraintes de préséance des tâches T4, T5, T6, T7 et T8 qui constituent le troisième niveau N2 de tâches. Les ressources nécessaires à l'exécution des tâches T4, T5, T6, T7 et T8 sont alors configurées. Les durées configT4 , configT5 , configT6 , configT7 , configT8 débutent simultanément, sur autant de ressources que nécessaire. Les tâches T4, T5, T6, T7 et T8 sont ensuite exécutées en respectant les validations des contraintes de préséance. Le procédé se poursuit ainsi, niveau par niveau, le traitement d'un nouveau niveau de tâches débutant dès lors que toutes les tâches du niveau précédent ont été configurées. Dans le cadre de l'invention, le nombre de ressources est limité et un ordre de priorité doit être établi pour assigner le traitement des tâches aux ressources. La figure 4 illustre le procédé d'ordonnancement de l'invention, à titre d'exemple non limitatif, dans le cas où le nombre de ressources est limité à quatre. Un niveau de tâches débute dès lors que toutes les tâches du niveau précédent ont été configurées. La configuration des tâches du niveau N1 débute donc lorsque la configuration de la tâche TO se termine, c'est-àdire lorsque la tâche TO commence son exécution. La tâche TO s'exécutant sur une seule ressource et le nombre total de ressources disponibles étant égal à quatre, le nombre de ressources disponibles est égal à trois. C'est donc la configuration de la tâche T3 qui débute, puisque celle- ci est la tâche qui utilise le plus de ressources (trois) dans les limites des trois ressources disponibles. L'exécution de la tâche T3 succède alors à la configuration de la tâche T3 et, lorsque l'exécution de la tâche TO s'achève, la ressource qui devient disponible est utilisée pour la configuration de la tâche T2 à laquelle succède l'exécution de la tâche T2. Aussi longtemps que la tâche T2 s'exécute, seules trois ressources sont disponibles. La configuration de la tâche Ti qui nécessite quatre ressources ne peut donc pas s'effectuer. Dès que la tâche T2 a terminé son exécution, la configuration de la tâche Ti peut alors commencer. A la fin de la configuration de la tâche Ti, toutes les tâches du niveau N1 ayant été configurées, le niveau N2 constitué des tâches T4, T5, T6, T7 et T8 est constitué. Le procédé se poursuit ainsi, niveau par niveau, un nouveau niveau de tâches à exécuter débutant dès lors que toutes les tâches du niveau précédent ont été configurées. Un dispositif pour la mise en uvre du procédé d'ordonnancement de tâches selon le mode de réalisation préférentiel de l'invention est représenté en figure 5. Ce dispositif comprend un composant reconfigurable adapté au contrôle CR qui contient l'ensemble des tâches à exécuter, un bloc de sélection de niveau BS qui permet de sélectionner, à un instant donné, toutes les tâches d'un même niveau, un premier bloc mémoire BM1 contenant des informations représentatives du nombre de ressources nécessaires à l'exécution de chaque tâche et des premiers moyens de comparaison, un deuxième bloc mémoire BM2 qui comprend des informations représentatives des grandeurs caractéristiques de chaque tâche (préférentiellement les durées de traitement des tâches) et des deuxièmes moyens de comparaison, une table de priorité TP qui indique de façon dynamique un ordre de priorité dans lequel les tâches doivent être traitées, un bloc de configuration BC qui contient les données de configuration nécessaires à la configuration des ressources associées à chaque tâche, un bloc d'assignation de tâches BA ayant pour fonction, entre autres, de configurer les tâches, un bloc d'évaluation de priorité BP qui indique la position de la tâche qui est prioritaire dans la table de priorité TP, un bloc de gestion des ressources BG et un bloc d'exécution des tâches BE. Le composant reconfigurable adapté au contrôle CR est préférentiellement un composant reconfigurable tel que celui décrit dans le brevet français publié sous le numéro 2 795 840 et délivré le 31 août 2001. Il est constitué de N+l cellules Ci (i=0, 1, 2, ..., N) représentant les N+l états du graphe d'application et d'un réseau d'interconnexion reconfigurable pour relier les différents états entre eux. Chaque cellule Ci contient la tâche Ti. Deux jetons parcourent le graphe d'application en fonction des validations des contraintes de préséance des tâches. Un premier jeton, appelé jeton de configuration , parcourt le réseau d'interconnexion pour activer la configuration des tâches, au fur et à mesure de l'évolution des configurations et des contraintes de préséance. Le second jeton, appelé jeton d'exécution , parcourt le réseau d'interconnexion pour activer l'exécution des tâches, au fur et à mesure de l'évolution des exécutions et des contraintes de préséance. Un jeton est la représentation d'un signal de validation se propageant de cellules en cellules suivant les contraintes de préséance et suivant la validation de ces contraintes. Une cellule propage son jeton à ses cellules filles si la contrainte de préséance est validée. Ce mécanisme est connu en soi dans le cadre de la théorie des graphes et plus particulièrement dans le cadre de la théorie des graphes de Pétri [cf. référence bibliographique PETE81]. De façon générale, une tâche mère transmet un jeton de configuration à ses tâches filles dès lors qu'elle a reçu un jeton d'exécution. Cette disposition ne concerne pas la ou les tâches sources d'un graphe d'application qui ne dépendent d'aucune tâche mère et peuvent, en conséquence, transmettre un jeton de configuration à leurs tâches filles dès que leur configuration débute. Au début de l'exécution du graphe d'application, une tâche source (tâche TO dans l'exemple choisi) contient un jeton de configuration et un jeton d'exécution. Les données contenues dans les blocs BM1, BM2, TP et BC sont disposées sous forme de N+l lignes de données de sorte que chaque ligne de données correspond à une tâche différente. Il s'ensuit que: - les données Ri (i=O, 1, 2, ..., N) représentatives du nombre de ressources nécessaires à l'exécution de chaque tâche sont disposées, dans le bloc mémoire BM1, sous la forme de N+1 lignes de données, - les données Di (i=O, 1, 2..., N) représentatives des durées de traitement des tâches contenues dans le bloc mémoire BM2 sont disposées sous la forme de N+l lignes de données, - la table de priorité TP est constituée de N+l lignes de registres à décalage, les registres à décalage de la ligne de rang i (i=O, 1, 2, ..., N) contenant un ensemble de données binaires représentatif du rang de priorité de la tâche Ti, - les données de configuration CFGi (i=0, 1, 2..., N) nécessaires à la configuration des ressources Ri sont disposées sous la forme de N+l lignes de données. Le fonctionnement du dispositif représenté en figure 5 va maintenant être décrit en référence au graphe d'application de la figure 1. A l'état initial, avant que le traitement des tâches ne débute, les registres à décalage de toutes les lignes de la table de priorité sont dans le même état. Ainsi, par exemple, tous les registres d'une même ligne comprennent-ils la valeur binaire 0 , à l'exception du registre à décalage situé à une extrémité de la ligne, par exemple l'extrémité droite (voir figure), qui comprend la valeur binaire 1 (niveau logique haut). Au début du traitement du graphe d'application, la cellule CO du graphe qui contient la tâche TO contient un jeton de configuration et un jeton d'exécution. La tâche TO est alors la tâche prioritaire à traiter puisqu'elle est seule à composer le niveau de tâches à exécuter. Sur la ligne mémoire qui correspond à la tâche TO, le niveau logique haut situé le plus à droite est alors décalé vers la gauche sous l'action du signal bs0 délivré par le bloc BS. Les ressources nécessaires à l'exécution de la tâche TO sont alors configurées grâce au bloc d'assignation BA. A cette fin, les données CFGO nécessaires à la configuration des ressources relatives à la tâche TO sont transmises, via un signal Scr, du bloc de configuration BC au bloc d'assignation BA. Un signal ScO qui indique que la configuration des ressources associées à la tâche TO débute est également transmis, via les blocs TP, BM2, BM1, BS, du bloc de configuration BC vers la cellule CO qui contient la tâche TO. A la réception du signal ScO, le jeton de configuration que contient la cellule CO est autorisé à se propager à toutes les cellules qui contiennent les tâches du niveau suivant, à savoir les cellules Cl, C2, C3 qui contiennent les tâches Tl, T2, T3 car CO contient un jeton d'exécution. Les cellules Cl, C2, C3 émettent alors, chacune, un signal de validation de tâche (signaux respectifs S(T1), S(T2), S(T3)) transmis au bloc de sélection BS. Lorsque la configuration des ressources associées à la tâche TO se termine, le bloc d'assignation BA délivre un signal de fin de configuration de ressources Sf au bloc d'évaluation de priorité BP. Le bloc BP délivre alors à la table de priorité TP un signal Sp qui commande le décalage du niveau logique haut complètement à droite sur la ligne mémoire qui correspond à la tâche T0. Les registres à décalage de la table de priorité TP se retrouvent alors dans un état identique à l'état initial (tous les niveaux logiques hauts se retrouvent complètement à droite dans la table de priorité TP). Le bloc d'évaluation de priorité BP transmet alors au bloc de gestion des ressources BG un signal S1 qui indique que la table de priorité TP est revenue à son état initial. Sous l'action du signal S1, le bloc de gestion de ressources BG délivre un signal de commande S2 au bloc de sélection BS qui mémorise alors les tâches correspondant aux signaux précédemment validés S(Tl), S(T2), S(T3). Le niveau de tâches Ti, T2, T3 est alors constitué comme nouveau niveau de tâches à exécuter. Un décalage à gauche de chaque ligne validée par le bloc BS est alors effectué dans la table de priorité TP grâce aux signaux bsi correspondants. Une phase d'initialisation débute alors. La phase d'initialisation consiste à initialiser la table de priorité TP. Au début de l'initialisation, les cases mémoires des registres à décalage situées les plus à droite sont à des niveaux logiques hauts, à l'exception des cases mémoires qui correspondent aux tâches validées par le bloc de sélection BS. Le niveau de tâches à exécuter est maintenant constitué des tâches Ti, T2, T3. Les signaux Scpi générés par le bloc de sélection BS permettent d'indiquer au bloc mémoire BM1 quelles sont les tâches à comparer. Les données Dl, D2, D3 représentant les durées de traitement respectives des tâches Tl, T2, T3 sont alors comparées entre elles à l'aide des deuxièmes moyens de comparaison MC2 intégrés dans le bloc BM2. Les niveaux logiques hauts contenus dans les registres à décalage de la table de priorité TP sont alors d'autant plus décalés vers la gauche que les durées des tâches qui leur correspondent sont longues. Les décalages se font grâce aux signaux SKi. A la fin des comparaisons des durées de traitement et des décalages des niveaux logiques hauts qui en découlent, un signal de fin de comparaison Sd est délivré par le bloc BM2 au bloc de gestion BG. A la réception du signal Sd, le bloc de gestion BG délivre un signal SR représentatif du nombre de ressources de calcul disponibles. Le signal SR représentatif du nombre de ressources de calcul disponibles est alors comparé aux données Ri sélectionnées par les signaux Scpi, et contenues dans le premier bloc mémoire BM1 à l'aide des premiers moyens de comparaison MC1. Si des lignes mémoire du bloc BM1 contiennent des données Ri représentant une valeur identique à la valeur représentée par le signal SR, alors des signaux Svi sont envoyés à la table de priorité TP. Si aucune ligne mémoire ne contient de données représentant une valeur identique, la valeur représentée par le signal SR est décrémentée jusqu'à ce que une ou des données Ri soit identique à la valeur représentée par le signal SR. La ligne de rang i sélectionnée par le signal Svi et qui correspond au registre à décalage qui contient le niveau logique haut le plus à gauche est alors la ligne prioritaire et un signal de validation de configuration S(CFGi) qui correspond à cette ligne est transmis au bloc de configurations BC. La détection de la ligne prioritaire se fait grâce au bloc d'évaluation de priorité BP, sous l'action des signaux de priorité Sp. Le contenu de la ligne du bloc de configuration BC validée par le signal S(CFGi) est alors envoyé au bloc d'assignation de tâches BA, via le signal Scr. Un signal Sdci est alors également envoyé au composant CR pour permettre la propagation du jeton de configuration. Le jeton de configuration n'est cependant propagé que si la cellule possède un jeton d'exécution. Si la tâche Ti est la tâche utilisant le plus grand nombre de ressources ou la tâche de plus longue durée (dans le cas du graphe d'application de la figure 1, la tâche Ti utilise le plus grand nombre de ressources), la configuration CFG1 est envoyée au bloc d'assignation des tâches BA. A la réception de la configuration CFG1, via le signal Scr délivré par le bloc BC, le bloc BA assigne alors la tâche Ti sur les ressources disponibles. Lorsque la configuration de la tâche est terminée, un signal Sf de fin de configuration de tâche est délivré par le bloc d'assignation BA au bloc d'évaluation de priorité BP. Le signal Sf commande le décalage complètement à droite du contenu de la ligne prioritaire précédemment sélectionnée (ligne de la tâche Ti, en l'occurrence), via le signal Sp, dans la table de priorité TP. De plus, l'emplacement de la tâche configurée sur les ressources est donné au bloc d'exécution BE via un signal S3. Un signal Sm de demande de mise à jour du nombre de ressources disponibles est alors délivré par le bloc d'assignation BA et transmis au bloc de gestion des ressources BG. Le traitement de toutes les tâches du niveau de tâches à exécuter s'exécute ainsi, jusqu'à la dernière tâche du niveau de tâches. Lorsque tous les niveaux logiques hauts se trouvent complètement à droite dans la table de priorité TP, cela signifie que le traitement du niveau de tâches est terminé et un signal S1 est transmis au bloc de gestion BG pour permettre la définition d'un nouveau niveau d'exécution via le signal S2. Le procédé d'ordonnancement de tâches se continue ainsi, niveau de tâches par niveau de tâches. La première tâche à exécuter du niveau de tâches comporte à l'initialisation un jeton de configuration et un jeton d'exécution. Ainsi, son exécution débute aussitôt que sa configuration est terminée. La cellule correspondante dans le composant reconfigurable adapté au contrôle CR débute son exécution en envoyant un signal celi au bloc d'exécution des tâches BE. Le bloc d'exécution des tâches BE connaissant l'emplacement de la tâche à exécuter qui a été préalablement configurée sur les ressources de calcul, exécute alors la tâche. A la fin de l'exécution de la tâche, un signal bei est envoyé à la cellule correspondante dans le composant reconfigurable adapté au contrôle CR. Ce signal a pour effet de propager le jeton d'exécution vers toutes ses cellules filles suivant les contraintes de préséance. Dans l'exemple décrit, la cellule correspondante à la tâche TO propage son jeton vers les cellules associées aux tâches Tl, T2, T3. A la réception du jeton d'exécution, les cellules Ti, T2, T3 peuvent propager leurs jetons de configuration à leurs cellules filles T4, T5, T6, T7, T8 et commencer leurs exécutions dès que leurs configurations sont terminées. Les tâches T4, T5, T6, T7, T8 pourront à leur tour demander leur configuration et s'exécuter. Pour effectuer l'ordonnancement des tâches sur un système hétérogène, il suffit d'intégrer dans la solution hardware autant de blocs BM1 qu'il y a de types de ressources différents. L'allocation des tâches se fait alors en prenant en compte le nombre de ressources libres pour chaque type de ressources présentes dans le système. Selon le mode de réalisation préférentiel de l'invention décrit ci-dessus, les tâches sont contenues dans un composant reconfigurable adapté au contrôle et les moyens pour établir l'ordre de priorité comprennent un ensemble de registres à décalage contenant des données binaires. Selon d'autres modes de réalisation de l'invention, le composant n'est pas un composant adapté au contrôle mais un simple composant contenant les tâches à traiter. De même, les moyens pour établir un ordre de priorité ne comprennent pas de registres à décalage mais des additionneurs capables d'incrémenter leur contenu en fonction des résultats des comparaisons, une incrémentation d'additionneur étant alors l'équivalent d'un décalage de registre à décalage. Les figures 6A-6C représentent des exemples d'application du dispositif d'ordonnancement de traitement de tâches selon l'invention. Les ressources de calcul gérées par le dispositif d'ordonnancement peuvent être identiques ou de différentes natures (ressources hétérogènes). Ces composants permettent de répondre aux fortes demandes de performance et de flexibilité associées aux applications embarquées. L'invention offre la possibilité de lier entre eux sur une même plateforme ou de façon plus distribuée, des éléments dont les caractéristiques sont complémentaires ou opposées pour adapter le niveau de performance, de consommation, de flexibilité et de surface en fonction des besoins de l'application. La figure 6A représente un premier exemple de composant de technologie SoC qui intègre un dispositif d'ordonnancement de traitement de tâches selon l'invention. Outre le dispositif d'ordonnancement 7, le composant 8 comprend un microprocesseur 9, un bloc 10 de calcul spécialisé CDMA (CDMA pour Code Division Multiple Access ), un bloc 11 dédié et propriétaire appelé IP (Intellectual Property), un bloc 12 de calcul reconfigurable, un bloc 13 de calcul reconfigurable et propriétaire, un bloc 14 de calcul spécialisé MPEG (MPEG pour Motion Picture Expert Group ). La figure 6B représente un deuxième exemple 30 de composant de technologie SoC qui intègre un dispositif d'ordonnancement selon l'invention. Le composant 15 comprend différentes entités hétérogènes, ainsi qu'un ensemble de capteurs D. Le dispositif de l'invention gère également des capteurs D situés à l'extérieur du composant et reliés à celui-ci à l'aide d'une interface adaptée 16. Les ressources hétérogènes sont ici des microprocesseurs 9 et des blocs dédiés et propriétaires 11. La figure 6C représente un troisième exemple de composant de technologie SoC qui intègre un dispositif d'ordonnancement selon l'invention. L'ensemble des entités gérées par le dispositif de l'invention est ici à l'extérieur du composant 17 et piloté par le dispositif de l'invention par l'intermédiaire d'une interface adaptée 16. REFERENCES BIBLIOGRAPHIQUES [BLAZ86] J. Blazewicz, M. Drabowski, et Weglarz. Scheduling Multiprocessor Tasks to Minimize Schedule Length. IEEE Transactions on Computers, 35(5):389-393, mai 1989. [JANS99] K. Jansen et L. Porkolab. Improved Approximation Schemes for Scheduling Unrelated Parallel Machines. In Annual ACM Symposium on Theory of Computing (STOC), mai 1999. [BAER73] J.L. Baer. A Survey of Some Theoretical Aspects of Multiprocessing. ACM Computing Surveys, 5(1):31-80, mars 1973. [BAKE81] B.S. Baker, D.J. Brown, et H.P. Katseff. A 5/4 Algorithm for TwoDimensional Packing. Journal of Algorithms, 2(4):348-368, juin 1981 [TOPCO2] H. Topcuoglu, S. Hariri, et M-Y. Wu. Performance and LowComplexity Task Scheduling for Heterogeneous Computing. IEEE Transactions on Parallel and Distributed Systems, 13(3):260-274, mars 2002. [BELK90] K. Belkhale et P. Banerjee. Approximate Scheduling Algorithms for the Partitionable Independent Task Scheduling Problem. In the 1990 International Conference of Parallel Processing (ICPP). août 1990. [LI00] K. Li et Y. Pan. Probabilistic Analysis of Scheduling Precedence Constrained Parallel Tasks on Multicomputers with Contiguous 20 Processor Allocation. IEEE Transactions on Computer, 49(10):1021-1030, octobre 2000. [IBAR88] T. Ibaraki et N. Katoh. Resource Allocation Problems: Algorithmic Approaches. The MIT Press, Cambridge, USA, 1988. [PETE81] James L. Peterson. Petri net theory and the modelling of systems. Practice Hall, ISBN: 0136619835. REVENDICATIONS 1. Procédé d'ordonnancement de traitement de tâches dont l'exécution est conditionnée par un ordre de préséance, le traitement d'une tâche comprenant une étape de configuration de ressources nécessaires à l'exécution de la tâche et une étape d'exécution de la tâche sur les ressources ainsi configurées, caractérisé en ce qu'il comprend: - une sélection (1) d'au moins un niveau de tâches à traiter, - une étape de tri (2) des tâches du niveau de tâches à traiter pour définir, en accord avec l'ordre de préséance, un ordre de priorité dans le traitement des tâches, en fonction, d'une part, du nombre de ressources nécessaires au traitement des tâches et, d'autre part, d'une grandeur caractéristique des tâches, une évaluation (3) du nombre de ressources disponibles pour le traitement des tâches du niveau de tâches, et - une assignation (4) des tâches du niveau de tâches aux ressources disponibles conformément à l'ordre de 25 priorité. 2. Procédé d'ordonnancement de traitement de tâches selon la revendication 1, caractérisé en ce que l'étape de tri (2) comprend, d'une part, un premier tri selon le nombre de ressources nécessaires à l'exécution des tâches de sorte que les tâches soient traitées selon un ordre décroissant du nombre de ressources nécessaires à leur traitement et, d'autre part, un deuxième tri selon la grandeur caractéristique des tâches de sorte que les tâches soient traitées selon un ordre croissant ou décroissant de leur grandeur caractéristique. 3. Procédé d'ordonnancement de traitement de tâches selon la revendication 2, caractérisé en ce que le premier tri précède le deuxième tri, le deuxième tri étant mis en oeuvre dès lors que le nombre de ressources nécessaires aux traitement de plusieurs tâches est identique pour lesdites plusieurs tâches. 4. Procédé d'ordonnancement de traitement de tâches selon la revendication 2, caractérisé en ce que le deuxième tri précède le premier tri, le premier tri étant mis en oeuvre dès lors que la grandeur caractéristique des tâches relative à plusieurs tâches est identique pour lesdites plusieurs tâches. 5. Procédé d'ordonnancement de traitement de tâches selon l'une quelconque des revendications précédentes, caractérisé en ce que la grandeur caractéristique des tâches est la durée de traitement des tâches, ou la durée de configuration des ressources nécessaires à l'exécution des tâches, ou la durée d'exécution des tâches, ou une durée qui reste à une tâche pour s'exécuter en fonction d'une contrainte temporelle d'exécution associée à la tâche, ou la durée de traitement, de configuration ou d'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une date de fin au plus tard de la configuration des tâches ou de l'exécution des tâches, ou une date de début au plus tôt ou au plus tard de la configuration ou de l'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une durée fonction d'une périodicité relative à une ou plusieurs tâches, ou une durée fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. 6. Procédé d'ordonnancement de traitement de tâches selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la grandeur caractéristique des tâches est une largeur de bande passante utile à l'exécution des tâches, ou une cadence d'arrivée des données traitées par les tâches, ou un nombre de ressources utiles au stockage ou à la communication des données traitées par les tâches, ou un coût de communications avec d'autres tâches ou avec des ressources partagées entre les tâches, ou une consommation d'énergie engendrée par le traitement des tâches, ou une information qui mesure la complexité des opérations associées à l'exécution des tâches, ou une information qui mesure la régularité d'un algorithme associé à l'exécution des tâches, ou une information qui mesure le parallélisme d'exécution des tâches, ou une information qui mesure une priorité indépendante des tâches et imposée par un utilisateur dans le cas d'une utilisation multi-utilisateur, ou une fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. 7. Procédé d'ordonnancement de traitement de tâches selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la grandeur caractéristique des tâches est une information relative à la position des tâches dans un graphe d'application. 8. Procédé d'ordonnancement de traitement de tâches selon la revendication 7, caractérisé en ce que l'information relative à la position des tâches dans un graphe d'application est la durée qui reste aux tâches pour s'exécuter avant la fin d'une contrainte temporelle imposée à la durée de traitement du graphe d'application, ou le plus grand nombre de tâches qui restent à traiter avant la fin du graphe d'application, ou le plus grand nombre de tâches de rang supérieur dans l'ordre de préséance des tâches, ou la somme des durées d'exécution des tâches de rang supérieur dans l'ordre de préséance des tâches, ou une fonction de tout ou partie des grandeurs énumérées ci-dessus. 9. Procédé d'ordonnancement de traitement de tâches selon l'une quelconque des revendications précédentes, caractérisé en ce que le niveau de tâches est défini par validation de contraintes de préséance des tâches du niveau de tâches. 10. Procédé d'ordonnancement de traitement de tâches selon l'une quelconque des revendications précédentes, caractérisé en ce que l'assignation des ressources disponibles en fonction de l'ordre de priorité est répété de façon dynamique jusqu'à ce que toutes les tâches du niveau de tâches soient traitées. 11. Procédé d'ordonnancement de traitement de tâches selon l'une quelconque des revendications précédentes, caractérisé en ce que le traitement d'un niveau de tâches de rang G débute dès lors que toutes les tâches du niveau de tâches de rang G-1 qui précède le niveau de tâches de rang G ont été configurées. 12. Procédé d'ordonnancement de traitement de tâches selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une étape de rejet du traitement de une ou plusieurs tâches du niveau de tâches à traiter afin d'autoriser un fonctionnement dégradé. 13. Procédé de traitement de tâches dont l'exécution est conditionnée par un ordre de préséance, le traitement d'une tâche comprenant une étape de configuration de ressources nécessaires à l'exécution de la tâche et une étape d'exécution de la tâche sur les ressources ainsi configurées, caractérisé en ce qu'il comprend un ordonnancement du traitement des tâches selon le procédé de l'une quelconque des revendications 1 à 12 et en ce que la configuration des ressources et l'exécution des tâches sont activées, respectivement, par un jeton de configuration et par un jeton d'exécution. 14. Dispositif d'ordonnancement de traitement de tâches dont l'exécution est conditionnée par un ordre de préséance, le traitement d'une tâche comprenant une étape de configuration de ressources nécessaires à l'exécution de la tâche et une étape d'exécution de la tâche sur les ressources ainsi configurées, caractérisé en ce qu'il comprend: - un composant (CR) qui contient un ensemble de tâches à traiter, - un bloc de sélection (BS) pour sélectionner au moins un niveau de tâches à traiter parmi l'ensemble des tâches contenues dans le composant (CR), - des moyens (BM1, BM2, TP) pour trier les tâches du niveau de tâches sélectionné selon un ordre de priorité de sorte que, en accord avec l'ordre de préséance, les tâches soient traitées, en fonction, d'une part, du nombre de ressources nécessaires au traitement des tâches et, d'autre part, d'une grandeur caractéristique des tâches, et - des moyens (BG) pour assigner des ressources disponibles au traitement des tâches en fonction de l'ordre de priorité. 15. Dispositif d'ordonnancement de traitement de tâches selon la revendication 14, caractérisé en ce que les moyens (BM1, BM2, TP) pour trier les tâches d'un niveau de tâches sélectionné comprennent: - un premier bloc mémoire (BM1) contenant des 30 informations (RO, R1, ... , RN) représentatives du nombre de ressources nécessaires au traitement de chaque tâche, - un deuxième bloc mémoire (BM2) contenant des informations (DO, Dl, ..., DN) représentatives de 5 grandeurs caractéristiques des tâches, - des premiers moyens de comparaison (MC1) pour comparer entre elles les informations représentatives des grandeurs caractéristiques des tâches du niveau de tâches, - des deuxièmes moyens de comparaison (MC2) pour comparer le nombre de ressources disponibles au nombre de ressources nécessaires aux traitements des tâches du niveau de tâches, et - des moyens (TP) pour établir l'ordre de priorité en 15 fonction des résultats de comparaison délivrés par les premiers et deuxièmes moyens de comparaison. 16. Dispositif selon la revendication 15, caractérisé en ce que les moyens (TP) pour établir l'ordre de priorité en fonction des résultats de comparaison comprennent un ensemble de registres à décalage contenant des données binaires. 17. Dispositif selon l'une quelconque des revendications 14 à 16, caractérisé en ce que la grandeur caractéristique des tâches est la durée de traitement des tâches, ou la durée de configuration des ressources nécessaires à l'exécution des tâches, ou la durée d'exécution des tâches, ou une durée qui reste à une tâche pour s'exécuter en fonction d'une contrainte temporelle d'exécution associée à la tâche, ou la durée de traitement, de configuration ou d'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une date de fin au plus tard de la configuration des tâches ou de l'exécution des tâches, ou une date de début au plus tôt ou au plus tard de la configuration ou de l'exécution de une ou plusieurs tâches de rang supérieur dans l'ordre de préséance des tâches, ou une durée fonction d'une périodicité relative à une ou plusieurs tâches, ou une durée fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. 18. Dispositif selon l'une quelconque des revendications 14 à 16, caractérisé en ce que la grandeur caractéristique des tâches est une largeur de bande passante utile à l'exécution des tâches, ou une cadence d'arrivée des données traitées par les tâches, ou un nombre de ressources utiles au stockage ou à la communication des données traitées par les tâches, ou un coût de communications avec d'autres tâches ou avec des ressources partagées entre les tâches, ou une consommation d'énergie engendrée par le traitement des tâches, ou une information qui mesure la complexité des opérations associées à l'exécution des tâches, ou une information qui mesure la régularité d'un algorithme associé à l'exécution des tâches, ou une information qui mesure le parallélisme d'exécution des tâches, ou une information qui mesure une priorité indépendante des tâches et imposée par un utilisateur dans le cas d'une utilisation multi-utilisateur, ou une fonction de tout ou partie des grandeurs caractéristiques énumérées ci-dessus. 19. Dispositif selon l'une quelconque des revendications 14 à 16, caractérisé en ce que la grandeur caractéristique des tâches est une information relative à la position des tâches dans un graphe d'application. 20. Dispositif selon la revendication 19, caractérisé en ce que l'information relative à la position des tâches dans un graphe d'application est la durée qui reste aux tâches pour s'exécuter avant la fin d'une contrainte temporelle imposée à la durée de traitement du graphe d'application, ou le plus grand nombre de tâches qui restent à traiter avant la fin du graphe d'application, ou le plus grand nombre de tâches de rang supérieur dans l'ordre de préséance des tâches, ou la somme des durées d'exécution des tâches de rang supérieur dans l'ordre de préséance des tâches, ou une fonction de tout ou partie des grandeurs énumérées ci-dessus. 21. Dispositif d'ordonnancement de traitement de tâches selon l'une quelconque des revendications 14 à 20, caractérisé en ce que le composant (CR) qui contient l'ensemble des tâches à traiter est un composant reconfigurable adapté au contrôle qui comprend N+1 cellules (Ci) représentant N+1 états d'un graphe d'application de tâches à exécuter, chaque cellule contenant une tâche à exécuter, et un réseau d'interconnexion reconfigurable pour relier les différents états du graphe entre eux. 22. Dispositif de traitement de tâches, caractérisé en ce qu'il comprend un dispositif d'ordonnancement de traitement de tâches selon la revendication 21, un jeton de configuration et un jeton d'exécution parcourant le réseau d'interconnexion pour activer, respectivement, la configuration des tâches et l'exécution des tâches. 23. Dispositif selon l'une quelconque des revendications 14 à 22, caractérisé en ce que le bloc de sélection (BS) comprend des moyens pour rejeter le traitement de une ou plusieurs tâches du niveau de tâches à traiter afin d'autoriser un fonctionnement dégradé.