Brevet FR2941799A1 — publié le 20100806

B08-5028FR - FZ/EVH 08-LMS-304 Société par actions simplifiée dite : ST-NXP WIRELESS FRANCE Procédé et système de gestion du fonctionnement d'un dispositif de traitement de données multicoeurs Invention de : Arnaud ROSAY Procédé et système de gestion du fonctionnement d'un dispositif de traitement de données multicoeurs L'invention concerne les dispositifs de traitement de données multi unités de traitement ou multicoeurs, et plus particulièrement la gestion de leur fonctionnement de façon à réduire leur consommation électrique. L'invention s'applique avantageusement mais non limitativement aux appareils fonctionnant sur alimentation autonome, comme par exemple des batteries rechargeables, et incorporant de tels dispositifs. On peut citer à titre indicatif les appareils de communication sans fil, comme par exemple les téléphones mobiles cellulaires ou les dispositifs de navigation personnels. Les appareils portables offrent de plus en plus de services. C'est en particulier vrai pour les téléphones mobiles cellulaires qui incorporent de nombreuses nouvelles applications multimédias telles que des applications Java, des générations de sons polyphoniques, des fonctions vidéo, un appareil photo numérique, des fonctions incorporées de télévision, ... Cette inflation de nouvelles applications requiert davantage de puissance de traitement, ce qui peut être obtenu en particulier par des dispositifs de traitement de données comportant plusieurs unités de traitement telles que des coeurs de processeurs. Or, une augmentation de la puissance de traitement coïncide généralement avec une augmentation de la consommation d'énergie. Ceci a bien entendu un impact direct sur l'autonomie des batteries. Un mécanisme classique de réduction d'énergie consiste à placer une unité de traitement dans un mode basse consommation lorsque cette unité de traitement ne doit plus effectuer de traitement. Et, à chaque fois qu'un traitement est nécessaire, l'unité de traitement sort de son mode basse consommation, effectue le traitement et entre à nouveau dans le mode basse consommation jusqu'au prochain traitement nécessaire. Or, l'entrée et la sortie dans et du mode basse consommation consomment de l'énergie Et, cette énergie consommée est d'autant plus importante dans les dispositifs multicoeurs dans lesquels chaque coeur entre et sort indépendamment dans et de son mode basse consommation. Selon un mode de mise en oeuvre et de réalisation, il est proposé un procédé et un système permettant de réduire la consommation d'énergie d'un dispositif de traitement multicoeurs, et permettant par exemple d'augmenter l'autonomie d'un téléphone mobile cellulaire tout en n'ayant qu'un impact relativement faible sur le coût du produit. Selon un aspect, il est proposé un procédé de gestion du fonctionnement d'un dispositif de traitement de données comportant au moins deux unités de traitement. Chaque unité de traitement est alternativement dans un premier mode de fonctionnement, par exemple un mode de sommeil très basse consommation, et dans un deuxième mode de fonctionnement, par exemple un mode actif ; chaque unité de traitement passe dans son deuxième mode de fonctionnement à l'issue d'une phase transitoire comportant au moins une activation de ressources communes à ces deux unités de traitement, par exemple une activation d'alimentation principale et d'horloge maîtresse ; dans ce procédé, l'une au moins des deux unités est configurée pour passer au moins une fois, et préférentiellement plusieurs fois voire à chaque fois, dans son deuxième mode de fonctionnement avec une flexibilité temporelle, et on ajuste l'instant de passage dans son deuxième mode de fonctionnement de la ou des unités de traitement présentant ladite flexibilité de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement après que lesdites ressources communes ont été activées une seule fois au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec ladite flexibilité temporelle. Ainsi, par exemple, lorsque l'un des coeurs est déjà dans son deuxième mode de fonctionnement, les ressources communes ont déjà été activées. Et, lorsque l'autre coeur doit se réveiller, et qu'il est possible par exemple d'avancer ou de retarder ce réveil compte tenu de la flexibilité de ce coeur, à un instant où le premier coeur est toujours en activité, il n'est alors plus nécessaire pour ce deuxième coeur d'activer les ressources communes puisqu'elles l'ont déjà été. I1 ne sera éventuellement nécessaire que d'activer les ressources propres à ce deuxième coeur. On économisera donc ainsi l'énergie qui aurait été consommée dans le cas où le deuxième coeur se serait réveillé, tel qu'initialement prévu, alors que le premier coeur est en sommeil. Bien entendu, s'il n'est pas possible d'effectuer cet ajustement temporel de façon à avoir en quelque sorte un chevauchement des activités des deux coeurs (ce qui permet de n'activer qu'une seule fois les ressources communes), alors il n'y a pas d'économie d'énergie. Cela étant, la flexibilité temporelle de l'un au moins des coeurs permet au moins dans certains cas d'assurer cette économie d'énergie. Ceci sera d'autant plus facile lorsque les deux coeurs offrent des flexibilités temporelles. Cette flexibilité temporelle peut être fournie sous la forme d'une indication de flexibilité contenue dans une information de contrainte temporelle délivrée par le coeur concerné. Ainsi, selon un mode de mise en oeuvre, chaque unité de traitement fournit avant de passer dans son premier mode de fonctionnement une information de contrainte temporelle relative à son prochain passage dans son deuxième mode de fonctionnement, et l'une au moins de ces informations de contrainte temporelle contient une indication de flexibilité desdites contraintes temporelles ; on ajuste alors l'instant de passage de l'une au moins de ces deux unités de traitement dans son deuxième mode de fonctionnement, de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement après que lesdites ressources communes ont été activées une seule fois au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec lesdites informations de contrainte temporelle délivrées par les deux unités de traitement compte tenu de la ou des indications de flexibilité. I1 peut également arriver que les deux unités de traitement coopèrent avec des ressources partagées, par exemple avec un périphérique comportant des registres de configuration et effectuant des accès directs en mémoire (� DMA � selon un acronyme anglosaxon bien connu de l'homme du métier). I1 s'avère avantageux d'optimiser le contrôle de ce périphérique de façon à économiser de l'énergie lorsque les coeurs passent dans leur mode de sommeil. En effet, dans le cas d'un périphérique tel que celui indiqué ci-avant, il peut être nécessaire, avant de stopper ce périphérique, d'effectuer une procédure de sauvegarde des registres de configuration. Or, si l'un des coeurs a terminé ses traitements et décide de rentrer dans son mode de sommeil, il est inutile qu'il effectue une sauvegarde de ces registres tant que l'autre coeur utilise encore ces registres pour éventuellement y stocker d'autres données. Ainsi, on effectuera une seule fois la procédure de sauvegarde lorsque le deuxième coeur aura terminé ses traitements et devra rentrer dans son mode de sommeil. Ainsi, de ce fait, on économise l'énergie consommée lors d'une procédure de sauvegarde, puisque l'on n'en effectue qu'une seule pour les deux coeurs. Plus généralement, selon un mode de mise en oeuvre, lorsque les deux unités de traitement sont toutes les deux dans leur deuxième mode de fonctionnement et coopèrent chacune avec des ressources partagées destinées à être stoppées selon une procédure d'arrêt lors du retour des unités dans leur premier mode de fonctionnement, on ne déclenche cette procédure d'arrêt qu'une seule fois pour les deux unités lorsque plus aucune des deux unités ne coopère avec ces ressources partagées. Selon un autre aspect, il est proposé un système comprenant un dispositif de traitement de données comportant au moins deux unités de traitement, chaque unité de traitement étant configurée pour être alternativement dans un premier mode de fonctionnement et dans un deuxième mode de fonctionnement, l'une au moins des deux unités étant en outre configurée pour passer au moins une fois dans son deuxième mode de fonctionnement avec une flexibilité temporelle ; il est également prévu des ressources communes à ces deux unités de traitement configurées pour être activées lors d'une phase transitoire précédant pour chaque unité de traitement son passage dans son deuxième mode de fonctionnement, et des moyens de gestion configurés pour ajuster l'instant de passage dans son deuxième mode de fonctionnement de la ou des unités de traitement présentant ladite flexibilité de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement tout en activant lesdites ressources communes une seule fois au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec ladite flexibilité temporelle. Selon un mode de réalisation chaque unité de traitement est configurée pour fournir avant de passer dans son premier mode de fonctionnement une information de contrainte temporelle relative à son prochain passage dans son deuxième mode de fonctionnement, l'une au moins de ces informations temporelles contenant une indication de flexibilité desdites contraintes temporelles, et les moyens de gestion sont configurés pour recevoir lesdites informations de contraintes temporelles et pour ajuster l'instant de passage de l'une au moins de ces deux unités de traitement dans son deuxième mode de fonctionnement de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement tout en activant lesdites ressources communes une seule fois au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec lesdites informations de contraintes temporelles compte tenu de la ou des indications de flexibilité. Selon un mode de réalisation, le système comprend des ressources partagées configurées pour coopérer avec les deux unités de traitement et pour être stoppées selon une procédure d'arrêt lors du retour des unités dans leur premier mode de fonctionnement, et les moyens de gestion sont en outre configurés pour, lorsque les deux unités de traitement sont toutes les deux dans leur deuxième mode de fonctionnement et coopèrent chacune avec lesdites ressources partagées, ne déclencher ladite procédure d'arrêt qu'une seule fois pour les deux unités lorsque plus aucune des deux unités ne coopère avec ces ressources partagées. Selon un autre aspect, il est également proposé un appareil, par exemple un appareil de communication sans fil, capable de fonctionner avec une alimentation autonome, par exemple une batterie, et incorporant un système tel que défini ci-avant. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : - la figure 1 illustre de façon très schématique un mode de réalisation d'un système selon l'invention, et - les figures 2 à 4 illustrent schématiquement différents modes de mise en oeuvre du procédé selon l'invention. Sur la figure 1, la référence SYS désigne un système comportant un dispositif DIS de traitement de données multiprocesseurs ou multicoeurs ainsi que des moyens MGS configurés pour gérer le fonctionnement du dispositif, en particulier pour réduire la consommation d'énergie lors des passages des modes sommeil aux modes actifs des différents coeurs. Sur la figure 1, il n'a été représenté que deux unités de traitement aux coeurs CRI, CR2 à des fins de simplification, bien que l'invention s'applique également à des dispositifs multicoeurs ayant un plus grand nombre de coeurs de traitement. Le système SYS peut être par exemple incorporé au sein de l'étage numérique ETN couplé à l'antenne ANT par un étage analogique (non représenté ici à des fins de simplification) d'un appareil de communication sans fil WAP, tel qu'un téléphone mobile cellulaire. Sur la figure 1, les deux coeurs CRI et CR2 utilisent des ressources communes comme par exemple une alimentation principale ALMP et un bloc MCLK apte à générer un signal d'horloge maître, ce bloc MCLK étant destiné à être alimenté par le bloc ALMP. Outre ces ressources communes, chaque coeur CRI, CR2 possède des ressources propres représentées ici par des blocs CGU1 et CGU2. Ces blocs sont également des blocs de génération d'horloge et peuvent comporter des boucles à verrouillage de phase. Dans l'exemple qui est décrit ici, chaque coeur CRI, CR2 commande en outre un sous-système SBS1, SBS2 alimenté par une alimentation propre ALM1, ALM2. De plus, dans cet exemple, les deux coeurs, CRI, CR2, coopèrent avec des ressources partagées PRH telles que par exemple un périphérique incluant des registres de configuration et capable d'effectuer des accès directs en mémoire (DMA). Les moyens de gestion MGS, dont on reviendra plus en détails ci-après sur la fonction, sont représentés ici comme des moyens externes aux coeurs CRI, CR2. Ces moyens peuvent être réalisés de façon logicielle au sein d'un microcontrôleur ou bien sous forme de circuits logiques. Cela étant, il est tout à fait envisageable que ces moyens MGS soient incorporés, par exemple sous forme logicielle, au sein de l'un des coeurs. Chaque coeur possède un premier mode de fonctionnement, par exemple un mode sommeil dans lequel tous les blocs générateurs d'horloge ainsi que toutes les alimentations sont stoppés. Chaque coeur possède par ailleurs un deuxième mode de fonctionnement, par exemple un mode actif dans lequel il exécute les différents traitements qui lui sont alloués en utilisant par exemple les moyens contenus dans le sous-système associé ainsi que les ressources partagées PRH. Le passage du premier mode au deuxième mode comporte, pour chaque coeur, une phase transitoire au cours de laquelle les moyens de gestion MGS vont activer les ressources communes ALMP et MCLK puis les ressources propres au coeur concerné, par exemple les ressources CGUl pour le coeur CRI. Ainsi, plus précisément, pendant cette phase transitoire, on active l'alimentation principale ALMP et on va attendre la stabilisation de cette alimentation. Puis, on va attendre que le signal d'horloge généré par le bloc MCLK s'établisse. A ce moment-là, la boucle à verrouillage de phase de chaque bloc CGUl peut être activé et l'on va attendre que cette boucle soit verrouillée. C'est à ce moment-là que le coeur CRI passe dans son mode actif (deuxième mode de fonctionnement) pour commencer à exécuter les instructions prévues. Les alimentations individuelles ALM1 et ALM2 sont également activées et les sous-systèmes SBS1, SBS2 peuvent commencer à fonctionner lorsque ces alimentations individuelles sont devenues stables. Chaque coeur va être alternativement dans son mode sommeil ou dans son mode actif. Avant qu'un coeur ne quitte le mode actif pour rentrer dans le mode sommeil, il va fournir aux moyens de gestion MGS une information de contrainte temporelle relative à son prochain passage dans son deuxième mode de fonctionnement (mode actif). Cette information de contrainte temporelle définit par exemple la durée pendant laquelle le coeur doit rester dans son mode sommeil et la durée du prochain mode actif. Une telle information de contrainte temporelle peut également comporter une indication de flexibilité. C'est le cas par exemple lorsque certains traitements effectués par le coeur ne sont pas des traitements temps réel. L'indication de flexibilité peut prendre différentes formes. A titre indicatif, le coeur pourra indiquer la durée maximale autorisée pendant laquelle il peut rester en mode sommeil ainsi que la variation de durée qui est acceptable pour le coeur pour effectuer ses activités dans le mode actif. En fonction de ces informations de contrainte temporelle, dont l'une au moins d'entre elles est adjointe d'une indication de flexibilité, les moyens de gestion MGS vont alors, si possible, ajuster l'instant de passage de l'un au moins de ces deux coeurs dans son deuxième mode de fonctionnement (et donc ajuster les instants d'activation des moyens mis en oeuvre dans la phase transitoire entre le premier mode et le deuxième mode) de façon à obtenir un certain chevauchement des activités des deux coeurs, ce qui permet alors de n'activer qu'une seule fois les ressources communes, en l'espèce les blocs ALMP et MCLK. Ceci est illustré plus en détail sur la figure 2. Sur cette figure, dans les étapes 20 et 23, les coeurs CRI et CR2 sont tous deux dans leur mode actif. Avant qu'un coeur passe dans son mode sommeil (étape 22 et étape 25), celui-ci fournit (étape 21 et étape 24) l'information de contrainte temporelle ICT1, ICT2. Les moyens de gestion MGS vont alors procéder à une analyse de ces informations ICT1 et ICT2 de façon à ajuster, si possible, l'instant de passage de l'un au moins des coeurs dans son mode actif de façon à ce que les deux coeurs CRI et CR2 soient dans leur mode actif à l'issue de leurs phases transitoires PHT1 et PHT2 correspondantes tout en ayant activé seulement une fois (étape 26) les ressources communes ALMP et MCLK au cours de ces deux phases transitoires. Lorsque ces ressources communes ont été activées, on procède pour chacun des coeurs à l'activation de leurs ressources propres CGU1, CGU2 (étapes 27 et 28) conduisant alors ces deux coeurs dans leurs modes actifs 29, 30. Ce qui vient d'être décrit en rapport avec la figure 2 s'applique dans le cas où l'on souhaite faire passer les deux coeurs dans leur mode actif alors qu'ils sont tous les deux dans leur sommeil, ou bien dans le cas où l'on souhaite faire passer un coeur de son mode sommeil dans son mode actif alors que l'autre coeur est déjà dans son mode actif. Un exemple de mise en oeuvre d'un tel procédé est illustré sur la figure 4. Sur cette figure, on suppose que le coeur CRI a des contraintes temporelles figées, c'est-à-dire non flexibles, tandis que les contraintes temporelles du coeur CR2 sont, elles, supposées flexibles. En outre, à des fins de simplification, on supposera que les durées d'activation des blocs CGU1 et CGU2 (étapes 27 et 28) sont identiques, alors que bien entendu elles pourraient être différentes. Dans cet exemple, avant de passer dans son premier mode de fonctionnement (mode sommeil), le coeur CRI a indiqué qu'il devait être dans son prochain mode actif 29 entre les instants t2 et t5. De ce fait, les moyens de gestion MGS ont activé (étape 26) les ressources communes ALMP et MCLK à l'instant t0 et l'activation 27 du bloc CGU1 s'est produite à l'instant tl de façon à ce que le coeur puisse entre dans son mode actif à l'instant t2. Par ailleurs, le coeur CR2, avant de passer dans son mode sommeil, a indiqué aux moyens de gestion MGS qu'il devait être dans son prochain mode actif entre les instants t8 et t9, mais que ces informations de contraintes temporelles étaient assorties d'une indication de flexibilité permettant de décaler temporellement vers la gauche (flèche Fl), par exemple à l'instant t2, l'instant de passage du coeur CR2 dans le mode actif. Compte tenu de ces indications, les moyens de gestion MGS ont ajusté cet instant de passage dans le mode actif du coeur CR2 à l'instant t2. Or, pour que le coeur CR2 passe dans son mode actif, il est nécessaire d'activer les ressources communes 26 ainsi que le bloc CGU2. Mais, puisque le coeur CRI est également dans son mode actif à l'instant t2, il suffit d'activer une seule fois les ressources communes (étape 26) entre les instants t0 et tl et ce pour les deux coeurs. Après cette activation 26, on procède à l'activation 28 du bloc CGU2 associé au coeur CR2 pour faire passer celui-ci dans son mode actif 30. On voit immédiatement sur cette figure 4 que si l'on n'avait pas décalé vers la gauche l'instant de passage du coeur CR2 dans son mode actif, et qu'on l'avait laissé à l'instant t8, il aurait été nécessaire, pour faire passer ce coeur CR2 dans le mode actif, d'activer les ressources communes à partir de l'instant t7. On aurait donc eu une première activation des ressources communes à l'instant t0 pour le coeur CRI et une deuxième activation des ressources communes à l'instant t7 pour le coeur CR2. Le fait d'avoir décalé vers la gauche à l'instant t2 l'instant de passage du coeur CR2 dans le mode actif, a conduit à économiser une activation des ressources communes. Avant de repasser dans son mode sommeil, le coeur CRI indique aux moyens de gestion que le prochain passage dans son mode actif 29 doit s'effectuer à l'instant t12. De ce fait, les moyens de gestion déclenchent la phase transitoire PHT1 à l'instant t11. Le coeur CR2 quant à lui, a indiqué aux moyens de gestion que son prochain passage dans son mode actif devait s'effectuer à l'instant t16 mais que cette information de contrainte temporelle était assortie d'une indication de flexibilité permettant un décalage vers la droite (flèche F2) de l'instant de passage dans le mode actif 30. Or, par ailleurs, le coeur CRI a indiqué aux moyens de gestion avant de repasser dans son mode sommeil, qu'il devait repasser dans son mode actif à l'instant t21. Et, cet instant t2l se situe dans la plage de flexibilité du passage du coeur CR2 dans son mode actif. En conséquence, les moyens de gestion décident de décaler l'instant de passage du coeur CR2 dans son mode actif de l'instant t16 à l'instant t21. Ainsi, d'une façon analogue à ce qui a été expliqué ci-avant, il est nécessaire de n'activer qu'une seule fois (étape 26) les ressources communes au cours des deux phases transitoires respectivement associées aux passages des deux coeurs dans leur deuxième mode de fonctionnement (mode actif). Là encore, on économise l'énergie consommée lors d'une phase d'activation des ressources communes par rapport à une situation dans laquelle on aurait laissé le coeur CR2 passer dans son mode actif à l'instant t16 (conduisant à une activation des ressources communes pour ce coeur CR2 à l'instant tl5). Bien que l'on ait montré sur cette figure des instants de passage dans le mode actif alignés pour les deux coeurs, ceci n'est pas indispensable. En effet, même si les moyens de gestion avaient décalé vers la gauche l'instant de passage du coeur CR2 dans son mode actif, de l'instant t8 vers l'instant t3 par exemple, on aurait également économisé l'activation des ressources communes pour le coeur CR2 car à cet instant le coeur CRI est toujours dans son mode actif et par conséquent les ressources communes, déjà activées, sont toujours en marche. Bien entendu, à chaque passage d'un coeur dans son mode actif, les moyens de gestion informent ce coeur de la durée pendant laquelle il a été dans son mode sommeil de façon que les compteurs du coeur puissent être mis à jour compte tenu de sa durée effective de sommeil. Alors qu'on vient de voir qu'il est possible d'économiser de l'énergie à l'entrée dans le mode actif, il est également possible, comme illustré sur la figure 3, d'économiser de l'énergie lorsqu'un coeur quitte son mode actif, en particulier lorsque les deux coeurs coopèrent avec des ressources partagées que l'on stoppe à l'issue d'une procédure d'arrêt spécifique, par exemple une procédure nécessitant une sauvegarde des registres de configuration du périphérique. Lorsqu'un coeur veut entrer dans un mode sommeil, il fournit comme indiqué ci-avant, l'information de contraintes temporelles (étapes 20, 21, 23 et 24) puis va entrer, dans l'exemple décrit ici, préalablement dans un mode � repos � (étapes 31 et 32). Dans ce mode, les ressources utilisées uniquement par le coeur en question, par exemple les ressources contenues dans le sous-système SBS1 (SBS2) vont être désactivées en appliquant éventuellement des procédures d'arrêt telles que par exemple des procédures de sauvegarde de registres. Par contre, dans ce mode de repos, on ne désactive pas les ressources PRH partagées par les deux coeurs. A cet égard, on détermine, avant d'effectuer la procédure d'arrêt des ressources partagées comportant par exemple une procédure de sauvegarde de registres, si ces ressources partagées sont encore utilisées par l'un des deux coeurs. Si tel est le cas, le coeur qui n'utilise plus ces ressources partagées ne va pas effectuer cette procédure d'arrêt, par exemple la procédure de sauvegarde de registres de configuration, car les données dans ces registres de configuration pourront encore changer tant que l'autre coeur n'arrêtera pas d'utiliser ce périphérique. Et, c'est seulement lorsque aucun des deux coeurs n'utilise plus le périphérique partagé, que l'on va alors procéder une seule fois à la procédure d'arrêt 34 de la ressource partagée conduisant alors les coeurs dans leur mode sommeil (étape 35). Une telle procédure d'arrêt, par exemple une procédure de sauvegarde de registres, est consommatrice d'énergie. Aussi, le fait de ne l'effectuer qu'une seule fois pour les deux coeurs permet une économie d'énergie dans la rentrée dans le mode sommeil. Ceci est illustré également sur la figure 4. On voit par exemple que le coeur CR2 désactive les ressources qu'il contrôle lui-même entre les instants t3 et t4, ce qui est bien entendu consommateur d'énergie. Par contre, puisque le coeur CRI est toujours en mode actif et utilise la ressource partagée PRH, la désactivation des ressources contrôlée uniquement par le coeur CRI ainsi que la désactivation de la ressource partagée sont effectuées entre les instants t5 et t6. De ce fait, la procédure d'arrêt (sauvegarde de registres) du périphérique PRH n'est effectuée qu'une seule fois au lieu de deux (entre les instants t5 et t6 et entre les instants t9 et tl0) si on n'a pas décalé vers la gauche l'instant de passage du coeur CR2 dans son mode actif. On retrouve une telle économie d'énergie entre les instants t22 et t25 puisque là encore, le coeur CRI effectue la procédure de sauvegarde une seule fois dans la plage temporelle comprise entre les instants t24 et t25. I1 est ainsi possible d'effectuer une économie globale d'énergie AE comme illustré sur la figure 4, entre une configuration sans décalage selon les flèches Fl et F2 (courbe CVA d'énergie consommée) et la configuration avec décalage selon les flèches F 1 et F2 (courbe CVB d'énergie consommée). L'invention n'est pas limitée aux modes de mise en oeuvre et de réalisation qui viennent d'être décrits mais en embrassent toutes les variantes. Ainsi il n'est pas indispensable que chaque coeur fournisse des informations de contraintes temporelles pour autant que l'un au moins d'entre eux présente une flexibilité temporelle pour au moins un de ces passages dans son deuxième mode (mode actif). En effet si un coeur n'exécute que des activités qui ne supportent pas de décalage temporel de leurs exécutions, alors ce coeur pourrait, au lieu de délivrer avant de s'endormir des informations de contraintes temporelles même rigides c'est-à-dire non flexibles, délivrer au moment où il se réveille, un signal indiquant ce réveil. Dans ce cas les moyens de gestion peuvent essayer d'ajuster le réveil de l'autre coeur compte tenu de sa flexibilité. En d'autres termes selon cette version simplifiée, l'un des coeurs fournit une information de contrainte temporelle tandis que l'autre indique seulement s'il est actif ou non. Par ailleurs, ce qui vient d'être décrit avec deux unités de traitement peut être généralisé à plus que deux unités de traitement coopérant ensemble avec des ressources communes et/ou des ressources partagées ou bien dont des groupes d'au moins deux unités coopèrent avec des ressources communes et/ou partagées. 35 REVENDICATIONS1. Procédé de gestion du fonctionnement d'un dispositif de traitement de données comportant au moins deux unités de traitement, chaque unité de traitement (CRI, CR2) étant alternativement dans un premier mode de fonctionnement et dans un deuxième mode de fonctionnement, chaque unité de traitement passant dans son deuxième mode de fonctionnement à l'issue d'une phase transitoire (PHT1, PHT2) comportant au moins une activation de ressources communes à ces deux unités de traitement, procédé dans lequel l'une au moins des deux unités est configurée pour passer au moins une fois dans son deuxième mode de fonctionnement avec une flexibilité temporelle, et on ajuste l'instant de passage dans son deuxième mode de fonctionnement, de la ou des unités de traitement présentant ladite flexibilité de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement après que lesdites ressources communes ont été activées une seule fois (26) au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec ladite flexibilité temporelle. 2. Procédé selon la revendication 1, dans lequel chaque unité de traitement fournit avant de passer dans son premier mode de fonctionnement une information de contrainte temporelle (ICT1, ICT2) relative à son prochain passage dans son deuxième mode de fonctionnement, l'une au moins de ces informations de contraintes temporelles contenant une indication de flexibilité desdites contraintes temporelles, et on ajuste l'instant de passage de l'une au moins de ces deux unités de traitement dans son deuxième mode de fonctionnement de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement après que lesdites ressources communes ont été activées une seule fois au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec lesdites informations de contraintes temporelles délivrées par les deux unités de traitement compte tenu de la ou des indications de flexibilité. 3. Procédé selon la revendication 1 ou 2, dans lequel lorsque les deux unités de traitement sont toutes les deux dans leur deuxième modede fonctionnement et coopèrent chacune avec des ressources partagées (PRH) destinées à être stoppées selon une procédure d'arrêt lors du retour des unités dans leur premier mode de fonctionnement, on ne déclenche cette procédure d'arrêt qu'une seule fois (34) pour les deux unités lorsque plus aucune des deux unités ne coopère avec ces ressources partagées. 4. Système comprenant un dispositif de traitement de données comportant au moins deux unités de traitement, chaque unité de traitement (CRI, CR2) étant configurée pour être alternativement dans un premier mode de fonctionnement et dans un deuxième mode de fonctionnement, l'une au moins des deux unités étant en outre configurée pour passer au moins une fois dans son deuxième mode de fonctionnement avec une flexibilité temporelle, des ressources communes (ALMP, MCLK) à ces deux unités de traitement configurées pour être activées lors d'une phase transitoire précédant pour chaque unité de traitement son passage dans son deuxième mode de fonctionnement, et des moyens de gestion (MGS) configurés pour ajuster l'instant de passage dans son deuxième mode de fonctionnement, de la ou des unités de traitement présentant ladite flexibilité de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement tout en activant lesdites ressources communes une seule fois au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec ladite flexibilité temporelle. 5. Système selon la revendication 4, dans lequel chaque unité de traitement est configurée pour fournir avant de passer dans son premier mode de fonctionnement une information de contrainte temporelle (ICT1, ICT2) relative à son prochain passage dans son deuxième mode de fonctionnement, l'une au moins de ces informations temporelles contenant une indication de flexibilité desdites contraintes temporelles, et les moyens de gestion (MGS) sont configurés pour recevoir lesdites informations de contraintes temporelles et pour ajuster l'instant de passage de l'une au moins de ces deux unités de traitement dans son deuxième mode de fonctionnement de façon à ce que les deux unités soient dans leur deuxième mode de fonctionnement tout en activantlesdites ressources communes une seule fois au cours des deux phases transitoires respectives, si cet ajustement temporel est compatible avec lesdites informations de contraintes temporelles compte tenu de la ou des indications de flexibilité. 6. Système selon la revendication 4 ou 5, comprenant en outre des ressources partagées (PRH) configurées pour coopérer avec les deux unités de traitement et pour être stoppées selon une procédure d'arrêt lors du retour des unités dans leur premier mode de fonctionnement, et dans lequel les moyens de gestion sont en outre configurés pour, lorsque les deux unités de traitement sont toutes les deux dans leur deuxième mode de fonctionnement et coopèrent chacune avec lesdites ressources partagées, ne déclencher ladite procédure d'arrêt qu'une seule fois pour les deux unités lorsque plus aucune des deux unités ne coopère avec ces ressources partagées. 7. Appareil capable de fonctionner avec une alimentation autonome, incorporant un système selon l'une des revendications 4 à 6. 8. Appareil selon la revendication 7, formant un appareil de communication sans fil.