Brevet FR3053485A1 — publié le 20180105

PROCEDE ET CIRCUIT DE CONTROLE DYNAMIQUE DE CONSOMMATION D'ENEM.GIE Domaine de l'invention La présente description concerne le domaine du contrôle de consommation d'énergie et en particulier un procédé et un 5 circuit de contrôle dynamique de consommation d'énergie dans un pipeline de traitement de données. Exposé de l'art antérieur Dans des pipelines de traitement de données synchrones, chaque étage du pipeline réalise son opération correspondante sur 10 chaque front significatif du signal d'horloge, ce qui provoque la propagation des données dans le pipeline. Un avantage de tels pipelines synchrones est qu'ils permettent des débits de traitement de données relativement élevés, puisque ce débit n'est limité que par le temps de traitement de données de chaque étage 15 et pas par le délai de propagation global du pipeline. Toutefois, un tel fonctionnement synchrone peut présenter des inconvénients dans certaines applications. Par exemple, dans le domaine des communications NFC (communications en champ proche), une carte RF est alimentée par 20 le champ RF généré par le lecteur NFC, et module le champ RF afin de renvoyer des données vers le lecteur. Si le champ RF est faible, 3053485 2 la carte RF peut réduire sa fréquence d'horloge afin de réduire sa consommation d'énergie. Toutefois, la consommation de courant des pipelines de traitement de données dans la carte RF va présenter des pics de consommation de courant ayant lieu sur chaque front d'horloge significatif, et à des fréquences basses, il pourrait ne pas être possible de lisser ces pics. Cela peut conduire à ce que la consommation de courant de la carte RF soit visible au niveau de l'antenne de la carte, ce qui peut perturber la communication entre la carte et le lecteur. En outre, des attaques par canaux auxiliaires (appelés aussi canaux cachés) contre des dispositifs sécurisés comme des circuits de chiffrement ou de déchiffrement utilisent des techniques de corrélation puissantes basées sur la consommation d'énergie pour essayer de déterminer les données en cours de traitement par le pipeline de traitement de données. Les pipelines synchrones n'assurent pas une protection suffisante contre de telles attaques. Résumé Un objet de modes de réalisation de la présente 20 description est de répondre au moins partiellement à un ou plusieurs problèmes de l'art antérieur. Selon un aspect, on prévoit un pipeline de traitement de données comprenant : un premier étage de pipeline recevant un premier signal d'horloge et agencé pour réaliser une première 25 opération déclenchée par des premiers fronts de synchronisation du premier signal d'horloge ; un deuxième étage de pipeline recevant un deuxième signal d'horloge et agencé pour réaliser une deuxième opération déclenchée par des deuxièmes fronts de synchronisation du deuxième signal d'horloge ; et un contrôleur 30 d'horloge agencé pour générer les premier et deuxième signaux d'horloge, le contrôleur d'horloge étant capable de fonctionner : dans un premier mode dans lequel, pendant un premier cycle de traitement de données du pipeline de traitement de données, un premier des premiers fronts de synchronisation est en phase avec 35 un premier des deuxièmes fronts de synchronisation ; et dans un 3053485 3 deuxième mode dans lequel, pendant un deuxième cycle de traitement de données du pipeline de traitement de données, un deuxième des premiers fronts de synchronisation est déphasé par rapport à un deuxième des deuxièmes fronts de synchronisation. 5 Selon un mode de réalisation, le contrôleur d'horloge est agencé pour générer les premier et deuxième signaux d'horloge sur la base d'un signal d'horloge maître. Selon un mode de réalisation, dans le premier mode, le contrôleur d'horloge est agencé pour sélectionner un premier front 10 de synchronisation du signal d'horloge maître pour former le premier des premiers et deuxièmes fronts de synchronisation ; et dans le deuxième mode, le contrôleur d'horloge est agencé pour sélectionner un deuxième front de synchronisation du signal d'horloge maître pour former le deuxième des premiers fronts de 15 synchronisation du premier signal d'horloge et pour sélectionner un troisième front de synchronisation du signal d'horloge maître pour former le deuxième des deuxièmes fronts de synchronisation du deuxième signal d'horloge. Selon un mode de réalisation, le contrôleur d'horloge 20 comprend un circuit de calcul adapté à générer : un premier signal d'activation pour sélectionner le deuxième front de synchrbnisation du signal d'horloge maître pour former le deuxième des premiers fronts de synchronisation du premier signal d'horloge ; et un deuxième signal d'activation pour sélectionner 25 le troisième front de synchronisation du signal d'horloge maître pour former le deuxième des deuxièmes fronts de synchronisation du deuxième signal d'horloge. Selon un mode de réalisation, le circuit de calcul est adapté à générer des valeurs courantes des premier et deuxième 30 signaux d'activation sur la base de valeurs précédentes des premier et deuxième signaux d'activation et sur la base du facteur de division d'horloge. Selon un mode de réalisation, dans le deuxième mode, le contrôleur d'horloge est adapté à étaler le deuxième cycle de 35 traitement de données sur n phases d'horloge, où n est compris 3053485 4 entre 2 et p, où p est le nombre d'étages de pipeline dans le pipeline de traitement de données. Selon un mode de réalisation, le premier étage de pipeline comprend une sortie couplée à une entrée du deuxième 5 étage de pipeline, et pendant le deuxième cycle de traitement de données du pipeline de traitement de données le contrôleur d'horloge est adapté à générer le deuxième des premiers fronts de synchronisation du premier signal d'horloge survenant à un premier instant et le deuxième des deuxièmes fronts de synchronisation du 10 deuxième signal d'horloge survenant à un deuxième instant en avance par rapport au premier instant. Selon un autre aspect, on prévoit une carte NFC comprenant le pipeline de traitement de données susmentionné, dans laquelle le contrôleur d'horloge est en outre adapté à contrôler 15 la période d'horloge des premier et deuxième signaux d'horloge sur la base de l'alimentation disponible pour la carte NFC. Selon un autre aspect, on prévoit un circuit cryptographique comprenant le pipeline de traitement de données susmentionné, dans lequel pendant le deuxième cycle de traitement 20 de données, j premiers étages du pipeline reçoivent le premier signal d'horloge, et k deuxièmes étages du pipeline reçoivent le deuxième signal d'horloge, et pendant un troisième cycle de traitement de données, 1 premiers étages du pipeline reçoivent le premier signal d'horloge, et m deuxièmes étages du pipeline 25 reçoivent le deuxième signal d'horloge, où j, k, 1 et m sont des entiers supérieurs ou égaux à 1, et j et 1 ne sont pas égaux. Selon un autre aspect, on prévoit un accélérateur matériel arithmétique modulaire comprenant le pipeline de traitement de données susmentionné, dans lequel les premier et 30 deuxième étages de pipeline mettent en oeuvre une opération de multiplication. Selon encore un autre aspect, on prévoit un processeur multi-coeur comprenant : un premier coeur comprenant un premier pipeline de traitement de données tel que susmentionné ; un 35 deuxième coeur comprenant un deuxième pipeline de traitement de 3053485 5 données tel que susmentionné ; et un circuit de contrôle d'horloge agencé pour fournir un premier signal d'horloge maître au premier coeur et un deuxième signal d'horloge maître au deuxième coeur, au moins certains des fronts d'horloge des premier et deuxième 5 signaux d'horloge maîtres étant déphasés entre eux. Selon encore un autre aspect, on prévoit un procédé de conception de circuit d'un pipeline de traitement de données, le procédé comprenant la génération d'une conception de circuit du pipeline de traitement de données de façon à comprendre : un 10 premier étage de pipeline agencé pour réaliser- une première opération déclenchée par des premiers fronts de synchronisation d'un premier signal d'horloge ; un deuxième étage de pipeline agencé pour réaliser une deuxième opération déclenchée par des deuxièmes fronts de synchronisation d'un deuxième signal d'horloge 15 indépendant du premier signal d'horloge ; et un contrôleur d'horloge agencé pour générer les premier et deuxième signaux d'horloge, le contrôleur d'horloge étant capable de fonctionner : dans un premier mode dans lequel, pendant un premier cycle de traitement de données du pipeline de traitement de données, un premier des premiers fronts de synchronisation est en phase avec un premier des deuxièmes fronts de synchronisation ; et dans un deuxième mode dans lequel, pendant un deuxième cycle de traitement de données du pipeline de traitement de données, un deuxième des premiers fronts de synchronisation est déphasé par rapport à un deuxième des deuxièmes fronts de synchronisation. Selon un mode de réalisation, la génération de la conception de circuit du pipeline de traitement de données comprend la modification d'une conception de circuit initiale du pipeline de traitement de données en divisant un étage de pipeline initial en des premier et deuxième sous-étages de pipeline parallèles. Selon un mode de réalisation, la génération de la conception de circuit du pipeline de traitement de données comprend en outre la génération de la conception de circuit de 35 façon à comprendre un ou plusieurs autres étages de pipeline 3053485 6 synchronisés par des signaux d'horloge indépendants correspondants, le nombre de signaux d'horloge indépendants dans la conception de circuit étant supérieur au nombre d'étages de pipeline de la conception de circuit initiale. 5 Selon un autre aspect, on prévoit un procédé de contrôle dynamique d'un pipeline de traitement de données comprenant : générer, par un contrôleur d'horloge, des premier et deuxième signaux d'horloge ; fournir le premier signal d'horloge à un premier étage de pipeline agencé pour réaliser une première 10 opération déclenchée par des premiers fronts de synchronisation du premier signal ,d'horloge ; fournir le deuxième signal d'horloge à un deuxième étage de pipeline agencé pour réaliser une deuxième opération déclenchée par des deuxièmes fronts de synchronisation du deuxième signal d'horloge ; dans lequel le contrôleur d'horloge 15 est capable de fonctionner : dans un premier mode dans lequel, pendant un premier cycle de traitement de données du pipeline de traitement de données, un ou plusieurs des premiers fronts de synchronisation sont en phase avec un ou plusieurs des deuxièmes fronts de synchronisation ; et dans un deuxième mode dans lequel, 20 pendant un deuxième cycle de traitement de données du pipeline de traitement de données, un ou plusieurs des premiers fronts de synchronisation sont déphasés par rapport à un ou plusieurs des deuxièmes fronts de synchronisation. Selon encore un autre aspect, on prévoit un dispositif 25 de traitement multi-coeur comprenant : un premier coeur de traitement recevant un premier signal d'horloge et agencé pour réaliser des opérations déclenchées par des premiers fronts de synchronisation du premier signal d'horloge ; un deuxième coeur de traitement recevant un deuxième signal d'horloge et agencé pour 30 réaliser des opérations déclenchées par des deuxièmes fronts de synchronisation du deuxième signal d'horloge ; et un contrôleur d'horloge agencé pour générer les premier et deuxième signaux d'horloge, le contrôleur d'horloge étant capable de fonctionner dans au moins un premier et un deuxième mode, et dans le premier mode, un premier des premiers fronts de synchronisation est en 3053485 7 phase avec un premier des deuxièmes fronts de synchronisation ; et dans le deuxième mode, un deuxième des premiers fronts de synchronisation est déphasé par rapport à un deuxième des deuxièmes fronts de synchronisation. 5 Brève description des dessins Les caractéristiques et avantages susmentionnés, et d'autres, apparaîtront clairement avec la description détaillée suivante de modes de réalisation, donnés à titre d'illustration et non de limitation en faisant référence aux dessins joints dans 10 lesquels : les figures lA et 1B sont des graphiques représentant une consommation de courant dans un pipeline' synchrone dans le cas d'une fréquence d'horloge relativement élevée ; les figures 2A et 2B sont des graphiques représentant 15 une consommation de courant dans un pipeline synchrone dans le cas d'une fréquence d'horloge relativement basse ; la figure 3 illustre schématiquement un pipeline synchrone ; la figure 4 illustre schématiquement un pipeline de 20 traitement de données selon un exemple de réalisation de la présente description ; les figures 5A et 5B sont des chronogrammes représentant des exemples de signaux dans le pipeline de la figure 4 ; la figure 6 illustre schématiquement un contrôleur 25 d'horloge de la figure 4 plus en détail selon un exemple de réalisation ; les figures 7A à 7D sont des diagrammes représentant des temps d'exécution d'opérations dans le pipeline de la figure 4 selon un exemple de réalisation ; 30 la figure 8A illustre schématiquement un circuit mettant en oeuvre une partie de l'algorithme cryptographique RSA ; la figure 8B illustre schématiquement le fonctionnement du pipeline du circuit de la figure 8A ; 3053485 8 la figure 9A illustre schématiquement le circuit de la figure 8A comprenant une indication de phases d'exécution selon un exemple de réalisation de la présente description ; la figure 9B illustre schématiquement le fonctionnement 5 du pipeline du circuit de la figure 9A selon un exemple de réalisation de la présente description ; la figure 10 illustre schématiquement un système de traitement multi-coeur selon un exemple de réalisation ; et la figure 11 est un chronogramme illustrant des exemples 10 de signaux d'horloge dans les coeurs de traitement de la figure 10 selon un exemple de réalisation. Description détaillée Le terme "connecté" est utilisé ici pour désigner une connexion électrique directe entre des éléments d'un circuit, 15 tandis que le terme "couplé" est utilisé ici pour désigner une connexion électrique qui peut être directe, ou peut se faire par l'intermédiaire d'un ou plusieurs composants intermédiaires comme des résistances, des condensateurs, des transistors, etc. La figure 1A est graphique illustrant un exemple de 20 consommation de courant dans un pipeline synchrone en supposant une fréquence d'horloge relativement élevée. Par exemple, le pipeline synchrone fait partie d'un circuit intégré d'une carte RF destinée à être utilisée dans des communications NFC. On peut voir que la consommation de courant est en forme de pics qui 25 surviennent sur chaque front montant du signal d'horloge. La figure 1B illustre la consommation de courant du circuit d'alimentation qui alimente le pipeline synchrone. Par exemple, le pipeline synchrone est alimenté par un LDO (régulateur à faible chute). Le LDO comprend par exemple un ou plusieurs 30 condensateurs lui permettant de maintenir une consommation de courant relativement stable. La figure 2A est un graphique illustrant la consommation de courant du pipeline synchrone dans le cas d'une fréquence d'horloge relativement basse. Par exemple, si la carte RF reçoit 35 un champ RF relativement faible, elle ralentit automatiquement sa 3053485 9 fréquence d'horloge dans le but de réduire sa consommation. Ainsi, les pics dans la consommation de courant surviennent à des intervalles de temps qui sont relativement espacés. Par exemple, alors que dans le cas de la figure lA la fréquence d'horloge est 5 d'environ 20 à 50 MHz, dans le cas de la figure 2A, la fréquence d'horloge est réduite à environ un seizième de sa valeur initiale pour réduire la consommation d'énergie. De façon plus générale, la fréquence du signal d'horloge est réduite d'un facteur compris entre 2 et 32. 10 La figure 2B illustre la consomiration de courant du circuit d'alimentation qui alimente le pipeline synchrone, comme un LDO. Dans ce cas, en raison des périodes de temps relativement longues entre les pics de courant, le LDO n'est pas capable de maintenir une consommation de courant stable, et la consommation 15 de courant présente des pics sur chaque front d'horloge du signal d'horloge. Les variations de consommation de courant en amont du LDO sont vues par l'antenne de la carte RF, et peuvent ainsi interférer avec des communications entre la carte RF et le lecteur RF. Par exemple, le lecteur RF peut interpréter de façon erronée 20 les variations au niveau de l'antenne comme une tentative de communication entre la carte RF et le lecteur RF. La figure 3 illustre schématiquement un exemple de pipeline synchrone 300. Le pipeline 300 comprend par exemple trois étages 302, 304, 306 couplés en série, et réalisant respectivement 25 des opérations OPERATION 0, OPERATION 1 et OPERATION 2 sur des données d'entrée. Les étages sont par.exemple disposés en série, de sorte que chaque étage reçoit, conutie données d'entrée, les données de sortie de l'étage précédent. Bien que cela ne soit pas illustré en figure 3, chaque étage de pipeline peut comprendre un 30 ou plusieurs registres d'entrée pour mémoriser temporairement les données d'entrée reçues de l'étage de pipeline précédent avant qu'elles soient traitées par l'étage, ou bien un ou plusieurs registres de sortie pour mémoriser temporairement les données de sortie avant qu'elles soient fournies à l'étage de pipeline 35 suivant. Chacun des étages reçoit le même signal d'horloge CLK, 3053485 10 et ainsi les opérations appliquées par chaque étage sont par exemple réalisées sensiblement au même instant, le terme sensiblement impliquant par exemple une marge de plus ou moins 5 % de la période d'horloge. 5 La figure 4 illustre schématiquement un pipeline synchrone 400 selon un exemple de réalisation de la présente description. Le pipeline 400 est similaire au pipeline 300, et les mêmes éléments portent les mêmes références. Toutefois, dans le mode de réalisation de la figure 4, les étages de pipeline 302, 10 304 et 306 reçoivent chacun un signal d'horloge CLKO, CLK1 et CLK2 respectivement. Chacun des signaux d'horloge CLKO, CLK1 et CLK2 est par exemple généré par un contrôleur d'horloge (CLOCK CONTROLLER) 402 sur la base d'un signal d'horloge maître MCLK. Chacun des signaux d'horloge a par exemple la même fréquence. 15 Le contrôleur d'horloge 402 est par exemple agencé pour générer les signaux d'horloge CLKO à CLKN afin de sélectionner le nombre de phases d'horloge sur lesquelles un cycle de traitement de données doit être étalé. Par exemple, le contrôleur d'horloge 402 peut générer tous les signaux d'horloge CLKO à CLKN de telle 20 sorte qu'ils aient un ou plusieurs fronts en phase, de sorte que les étages du pipeline fonctionnent de façon synchrone entre eux, ou de telle sorte que chaque cycle de traitement soit étalé sur 2 phases d'horloge ou plus, et jusqu'à N+1 phases d'horloge. Dans certains modes de réalisation, le contrôleur d'horloge 402 25 sélectionne le nombre de phases d'horloge pour chaque opération de traitement sur la base de l'alimentation en énergie disponible pour le circuit. Dans des variantes de réalisation, on pourrait utiliser d'autres critères pour sélectionner le nombre de phases d'horloge. Par exemple, dans le cas d'un circuit cryptographique 30 pour lequel la protection contre des attaques par canaux auxiliaires doit être augmentée, le nombre de phases d'horloge pourrait être sélectionné d'une manière aléatoire ou pseudoaléatoire. 3053485 11 Bien que la figure 4 illustre un exemple dans lequel il y a trois étages de pipeline, dans des variantes de réalisation il pourrait y avoir un nombre quelconque d'étages de pipeline. On va maintenant décrire plus en détail le fonction-5 nement du pipeline 400 de la figure 4 en faisant référence aux chronogrammes des figures 5A et 5B. La figure 5A illustre un exemple du signal d'horloge maître MCLK et des signaux d'horloge CLKO, CLK1 et CLK2 de la figure 4. 10 Dans le cas du pipeline de la figure 3, sur chaque front d'horloge significatif du signal d'horloge CLK, chaque étage de pipeline 302, 304, 306 va traiter les valeurs de données respectives DO, D1, D2 présentes sur son entrée et fournir un résultat sur sa sortie. Ces événements réalisés sur chaque front 15 d'horloge significatif dans le pipeline de la figure 3 vont être appelés ici cycles de traitement du pipeline. Dans l'exemple de la figure 5A, un cycle de traitement du pipeline est étalé sur trois périodes consécutives de la période d'horloge maître MCLK. Par exemple, le signal d'horloge 20 maître MCLK comprend une série d'impulsions hautes Pl à P9, et le signal d'horloge CLKO comprend seulement les impulsions P3, P6 et P9, le signal d'horloge CLK1 comprend seulement les impulsions P2, P5 et P8, et le signal d'horloge CLK2 comprend seulement les impulsions Pl, P4 et P7. Les impulsions Pl, P2 et P3 correspondent 25 par exemple à un premier cycle de traitement Cl du pipeline dans lequel chaque étage du pipeline est déclenché une seule fois. De façon similaire, les impulsions P4, P5 et P6 correspondent par exemple à un deuxième cycle de traitement C2 du pipeline, et les impulsions P7, P8 et P9 correspondent par exemple à un troisième 30 cycle de traitement C3 du pipeline. Bien sûr, alors que dans l'exemple de la figure 5A on a choisi des impulsions positives de l'horloge maître, dans des variantes de réalisation on pourrait choisir des impulsions négatives. Les étages du pipeline pourraient être cadencés par des fronts d'horloge descendants 35 et/ou montants. 3053485 12 Chaque cycle de traitement du pipeline Cl, C2 et C3 est ainsi réalisé sur une pluralité de phases d'horloge. Dans l'exemple de la figure 5A, les phases d'horloge de la plus avancée jusqu'à la plus tardive sont respectivement appliquées aux étages 5 du pipeline à partir du dernier jusqu'au premier. Ce choix est fait afin d'éviter d'altérer le comportement fonctionnel des opérations de traitement de données dans le pipeline, comme on va le décrire plus en détail ci-après. La figure 5B est un chronogramme illustrant le signal 10 d'horloge maître MCLK et les signaux d'horloge CLKO à CLK3 de la figure 4 selon un autre exemple de fonctionnement, en supposant dans cet exemple que le pipeline comprend quatre étages. Comme cela est illustré en figure 5B, le contrôleur d'horloge 402 est par exemple capable de modifier dynamiquement les phases d'horloge 15 de chaque étage du pipeline entre un cycle de traitement et le suivant. La figure 5B illustre des exemples de quatre cycles de traitement consécutifs C4 à C7. Dans les cycles de traitement C4 et C7 de la figure 5B, les signaux d'horloge CLKO à CLK3 comprennent tous la même 20 impulsion haute P10 de l'horloge maître, et ainsi tous les étages du pipeline fonctionnent de façon synchrone. Dans un cycle de traitement C5, les signaux d'horloge CLKO à CLK3 comprennent respectivement des impulsions hautes Pli à P14 du signal d'horloge maître, de sorte que le cycle de 25 traitement du pipeline est étalé sur quatre cycles d'horloge consécutifs de l'horloge maître. Dans un cycle de traitement C6, les signaux d'horloge CLK2 et CLK3 comprennent la même impulsion haute P15 de l'horloge maître, et les signaux d'horloge CLKO et CLK1 comprennent la même 30 impulsion haute P16 du signal d'horloge maître MCLK, de sorte que le cycle de traitement du pipeline est étalé sur deux cycles d'horloge consécutifs de l'horloge maître. Bien sûr, les cycles de traitement de la figure 5B ne sont qu'un exemple, et dans des variantes de réalisation, le 35 contrôleur d'horloge 402 est par exemple capable de sélectionner 3053485 13 dynamiquement un mode de fonctionnement pour chaque cycle de traitement. La sélection est par exemple basée sur la fréquence d'horloge souhaitée, et plus la fréquence est basse, plus le nombre de phases d'horloge est grand pour chaque cycle de 5 traitement du pipeline. Dans des variantes de réalisation, la sélection peut être basée sur d'autres critères, comme par exemple sur la gestion d'énergie ou sur la sécurité. En supposant un pipeline comportant p étages, chaque opération de traitement de données est par exemple étalée sur jusqu'à p phases d'horloge 10 consécutives. Dans l'exemple de la figure 5B, les étages de pipeline sont tous groupés ensemble dans le cycle de traitement C4, et sont groupés par paires dans le cycle C6. Dans certains modes de réalisation, un groupement dynamique des étages du pipeline 15 pourrait être réalisé entre un cycle de traitement et le suivant. Cela est par exemple avantageux pour des raisons de sécurité, puisque cela assure une protection contre des attaques par canaux auxiliaires. Par exemple, on pourrait utiliser deux phases d'horloge, et dans un premier cycle de traitement une première 20 phase pourrait être appliquée au quatrième étage du pipeline tandis que la deuxième phase est appliquée aux premier, deuxième et troisième étages du pipeline. Dans un cycle de traitement suivant, la première phase pourrait être appliquée aux troisième et quatrième étages du pipeline, tandis que la deuxième phase est 25 appliquée aux premier et deuxième étages du pipeline. Dans encore un autre cycle de traitement, la première phase pourrait être appliquée aux deuxième, troisième et quatrième étages du pipeline, tandis que la deuxième phase est appliquée au premier étage du pipeline. Dans un autre exemple, dans un pipeline à huit étages, 30 trois phases des signaux d'horloge pourraient être choisies pour activer successivement 6-1-1 étages du pipeline pendant un premier cycle de traitement, et 3-2-3 étages du pipeline pendant un cycle de traitement suivant. De façon plus générale, pendant un même cycle de traitement de données, j premiers étages du pipeline 35 reçoivent par exemple un premier signal d'horloge, et k deuxièmes 3053485 14 étages du pipeline reçoivent par exemple un deuxième signal d'horloge déphasé par rapport au premier signal d'horloge, et pendant un autre cycle de traitement de données, 1 premiers étages du pipeline reçoivent par exemple le premier signal d'horloge, et 5 m deuxièmes étages du pipeline reçoivent par exemple le deuxième signal d'horloge, j, k, 1 et m étant tous des entiers supérieurs ou égaux à 1, et j et 1 étant non égaux. En outre, alors que dans les modes de réalisation des figures 5A et 5B les impulsions d'horloge appliquées à chaque 10 étage du pipeline sont synchrones avec le signal d'horloge maître, dans des variantes de réalisation, les différences de phase entre les signaux d'horloge pourraient être inférieures à une période d'horloge de l'horloge maître. La figure 6 illustre schématiquement le contrôleur 15 d'horloge 402 de la figure 4 plus en détail selon un exemple de réalisation. L'exemple de la figure 6 concerne un cas dans lequel le contrôleur d'horloge 402 génère huit signaux d'horloge CLKO à CLK7. Bien sûr, dans des variantes de réalisation, le contrôleur 20 d'horloge 402 peut générer une pluralité de signaux d'horloge quelconque. Le contrôleur d'horloge 402 comprend par exemple une ligne d'entrée 602 recevant un signal de commande Div_umd indiquant le nombre de cycles d'horloge de l'horloge maître qu'il 25 faut utiliser pour chaque cycle de traitement du pipeline. La ligne 602 est par exemple couplée à une connexion en série de deux bascules 604, 606 qui par exemple synchronisent le signal avec le fonctionnement du pipeline en synchronisant le signal de commande Div cmd sur la baSe d'un signal temporel indiquant la fin de 30 chaque cycle de traitement et fourni sur une ligne d'entrée 608. Le signal temporel est par exemple activé lorsqu'une phase d'horloge finale Ena(7) d'un cycle de traitement a été activée. Le signal de commande synchronisé Div cmdsync est fourni sur une ligne 610 à un circuit logique de calcul (COMP LOGIC) 612, qui 3053485 15 par exemple génère un ensemble de signaux d'activation Nxt Ena(7:0). Les signaux d'activation Nxt Ena(7:0) chargent une ou plusieurs valeurs "1" logique dans des bascules 614, chacune étant 5 associée à l'un correspondant des signaux d'horloge CLKO à CLK7. Chaque bascule 614 est par exemple synchronisée par le signal d'horloge maître MCLK. Les bascules 614 fournissent les signaux d'activation correspondants sur des sorties Ena(7:0), qui sont par exemple fournies à des entrées d'activation EN de portes 10 d'horloge (CG) correspondantes 616. Les portes d'horloge 616 reçoivent chacune le signal d'horloge MCLK, et fournissent le signal d'horloge au niveau de leur sortie lorsque leur signal d'activation respectif est à un "1" logique. De cette manière, les portes d'horloge génèrent respectivement les signaux d'horloge 15 CLKO à CLK7 sur leurs sorties. Les signaux d'activation Ena(7:0) sont aussi par exemple renvoyés sur un chemin de rétroaction 618 vers le circuit logique de calcul 612. Le circuit 612 génère par exemple les signaux d'activation Nxt Ena(7:0) sur la base du signal de commande 20 Div cmd sync, et sur la base de la valeur précédente des signaux d'activation, correspondant aux signaux Ena(7:0). Par exemple, en supposant que le signal de commande Divcmdsync indique qu'un cycle de traitement doit être étalé sur n cycles d'horloge, et qu'il il y a q signaux d'horloge indépendants, le circuit 612 25 commence par exemple le cycle de traitement en activant les signaux d'activation Nxt Ena(0) à NxtEna((q/n)-1). Si n est égal à 1, le cycle de traitement est alors terminé. Toutefois si n est supérieur à 1, alors pour la période suivante de l'horloge maître, les q/n "1" logiques des signaux Ena(7:0) sont décalés de q/n 30 positions vers la gauche pour générer les signaux Nxt_Ena(7:0). Cela continue par exemple jusqu'à ce que tous les signaux d'horloge aient été activés pendant le cycle de traitement, par exemple jusqu'à ce que la valeur Nxt Ena(7) ait été activée. Dans certains modes de réalisation, les portes d'horloge 35 616 pourraient être omises, et les bascules 614 pourraient fournir 3053485 16 directement les signaux d'horloge CLKO à CLK7. Toutefois, un avantage du fait d'utiliser un passage de l'horloge dans des portes est que, lorsque les signaux d'activation Ena(7:0) sont tous activés, la fréquence des signaux d'horloge CLKO à CLK7 va 5 être celle de l'horloge maître MCLK, plutôt que d'être limitée à la moitié de la fréquence de l'horloge maître. Les figures 7A à 7D sont des diagrammes représentant les temps d'exécution d'opérations de traitement dans un pipeline selon des exemples de réalisation. On suppose que le pipeline 10 comporte quatre étages : un étage FSM (machine à états finis) contrôlant des multiplexeurs dans le pipeline pour fournir des données DO A et DO B dans le pipeline, un étage de commande CMD exécutant une commande CMD A sur les données DO A, ou une commande CMD B sur les données DO B, un étage de calcul CALC réalisant un 15 calcul CALC A ou CALO B, et un étage de résultat RES mémorisant le résultat RES A ou RES B. La figure 7A illustre un cas dans lequel l'horloge reçue par chaque étage du pipeline est la même. Dans un premier cycle de traitement Cl du pipeline, la machine FSM fournit les données 20 DO A. Dans un deuxième cycle C2 du pipeline, la machine FSM fournit les données DO B, et l'étage CMD réalise la commande CMD A. Dans un troisième cycle C3 du pipeline, l'étage CMD réalise la commande CMD B, et l'étage de calcul réalise le calcul CALC A. Dans un quatrième cycle C4 du pipeline, l'étage CALC réalise le calcul 25 CALO B et un résultat RES A est mémorisé. Dans un cinquième cycle C5, le résultat RES B est mémorisé. Aussi dans le cinquième cycle, la valeur A mémorisée dans l'opération RES A est par exemple utilisée par l'étage FSM, qui par exemple reçoit la valeur par l'intermédiaire d'un chemin de rétroaction du pipeline. 30 La figure 7B illustre un exemple dans lequel la fréquence d'horloge a par exemple été réduite par deux par rapport à l'exemple de la figure 7A, et il y a deux phases d'horloge, chaque cycle de traitement étant étalé sur deux périodes d'horloge. Ainsi, plutôt que d'être espacées d'une période 35 d'horloge entière, les opérations dans le pipeline sont espacées 3053485 17 d'une demi-période d'horloge. On peut voir que, dans cet exemple, le comportement du pipeline est fonctionnellement différent de celui de la figure 7A, puisque le résultat RES A va être disponible sur le chemin de rétroaction dans le troisième cycle de traitement 5 C3 de l'étage FSM, alors que les données sont utilisées seulement dans le cinquième cycle de traitement C5 de l'étage FSM. En d'autres termes, l'étalement des cycles de traitement sur plusieurs phases d'horloge crée des problèmes fonctionnels de maintien dans cet exemple. 10 La figure 7C illustre une solution pour réduire l'impact du problème fonctionnel de maintien identifié en figure 7B. Dans l'exemple de la figure 7C, chaque cycle de traitement est étalé sur quatre phases d'horloge, et la dernière phase de chaque cycle, notée PH4 en figure 7C, est fournie au premier étage du pipeline, 15 qui est l'étage FSM. En outre, la deuxième phase avant la dernière phase, PH3, est fournie au deuxième étage du pipeline, qui est l'étage CMD, la troisième phase avant la dernière phase, PH2, est fournie au troisième étage du pipeline, qui est l'étage CALC, et la phase la plus en avance PH1 est fournie au dernier étage, qui 20 est l'étage RES. On peut voir que ce choix de phases d'horloge signifie que le résultat RES A est disponible seulement un cycle en avant de ce qui est nécessaire. Il y a ainsi au plus un décalage d'un seul cycle d'horloge dans le comportement. La figure 7D illustre un autre exemple, similaire à 25 celui de la figure 7C, mais dans lequel le traitement du pipeline est modifié de telle sorte que les données restent stables un cycle d'horloge après leur utilisation. Ainsi un cycle non actif est ajouté après le cycle Cl de la FSM dans lequel les données DO A sont fournies, et de cette manière le résultat RES A reste 30 aussi valide pour le cycle C5 de l'étage RES, de sorte qu'il peut être utilisé par l'étage FSM par l'intermédiaire du chemin de rétroaction directement sans aucun maintien. La figure 8A illustre schématiquement un accélérateur matériel arithmétique modulaire selon un exemple de réalisation. 35 Ce circuit met en oeuvre par exemple une partie de l'algorithme 3053485 18 cryptographique RSA (Rivest, Shamir et Adleman), bien que dans d'autres variantes de réalisation il puisse avoir d'autres applications, corme un algorithme ECC (cryptographie à courbe elliptique), ou d'autres opérations de chiffrement ou de 5 déchiffrement. Le circuit de la figure 8 met en oeuvre par exemple une partie d'une exponentiation modulaire, et en particulier une fonction A.B + Y.N, en d'autres termes la multiplication modulaire de A.B modulo N. Chaque mot de données A est par exemple divisé en segments Ai pour le traitement. Par exemple, les valeurs A, B 10 et N sont les opérandes du calcul, et Y représente un nombre qui permet de satisfaire la propriété modulo, par exemple tel que 0 N. Un procédé de fabrication d'un pipeline de traitement de données 10 comprend par exemple la fabrication du pipeline de traitement de données sur la base de la conception de circuit. La figure 10 illustre schématiquement un système de traitement multi-coeur 1000 selon un exemple de réalisation. Le système 1000 comprend par exemple un coeur (CORE #1) 1002 et un 15 coeur (CORE #2) 1004, et le système 1000 peut en plus comprendre d'autres coeurs (non illustrés en figure 10). Les coeurs 1002, 1004 reçoivent par exemple des signaux d'horloge maîtres MCLKC1 et MCLK-C2 respectivement, qui sont par exemple générés par un circuit de ccumande (CTRL) 1006 sur la base d'un signal d'horloge 20 maître MCLK commun. Le circuit de commande 1006 peut en plus générer d'autres signaux d'horloge maîtres dans le cas où le système de traitement comprend d'autre coeurs. Chaque coeur 1002, 1004 comprend par exemple un pipeline (non illustré en figure 10) similaire à celui de la figure 4, 25 contrôlé par un contrôleur d'horloge similaire au contrôleur 402 de la figure 4, les contrôleurs d'horloge étant référencés 1008 et 1010 dans les coeurs 1002, 1004 respectivement. Chaque contrôleur d'horloge 1008, 1010 peut par exemple faire varier la phase de fonctionnement d'un ou plusieurs des 30 étages de pipeline comme cela a été décrit précédemment. En plus ou à la place, le contrôleur 1006 peut par exemple générer les signaux d'horloge maîtres MCLKC1 et MCLKC2 pour qu'ils soient déphasés entre eux, comme on va le décrire maintenant plus en détail en faisant référence à la figure 11. 3053485 23 La figure 11 est un chronogramme illustrant des exemples du signal d'horloge maître commun MCLK, des signaux d'horloge de pipeline PS1C1, PS2C1 pour piloter différents étages d'un pipeline du coeur 1002, et des signaux d'horloge de pipeline PS1C2, PS2C2 5 pour piloter différents étages d'un pipeline du coeur 1004. Dans l'exemple de la figure 11, le signal d'horloge maître commun MCLK comprend des impulsions P1 à P5 pendant une phase initiale. Cette phase correspond par exemple à au moins une partie d'une phase de démarrage des coeurs 1002, 1004. 10 Le signal d'horloge PS1C1 comprend par exemple les impulsions impaires Pl, P3, P5, etc. du signal d'horloge maître MCLK pendant la phase initiale, et le signal d'horloge PS2C1 comprend par exemple les impulsions paires P2, P4 etc. du signal d'horloge maître MCLK pendant la phase initiale. Par exemple, 15 l'horloge maître MCLK Cl fournie au coeur 1002 correspond .à l'horloge maître commune MCLK, et le contrôleur d'horloge 1008 génère les signaux PS1C1 et PS2C1 en sélectionnant des impulsions de cette horloge maître. Le signal d'horloge PS1C2 comprend par exemple, pendant 20 la phase initiale, les impulsions impaires Pl, P3, P5, etc. du signal l'horloge maître commun MCLK, chacune retardée d'une demi-période d'horloge. Le signal d'horloge PS2C2 comprend par exemple, pendant la phase initiale, les impulsions paires P2, P4 etc. du signal d'horloge maître commun MCLK, chacune retardée d'une demi- 25 période d'horloge. Par exemple, l'horloge maître MCLK C2 fournie au coeur 1004 correspond à l'horloge maître inversée MCLK, et le contrôleur d'horloge 1010 génère les signaux PS1C2 et PS2C2 en sélectionnant des impulsions de cette horloge maître inversée. La durée de la phase initiale pourrait correspondre à 30 un nombre d'impulsions de l'horloge maître commune MCLK plus petit ou grand que les cinq impulsions représentées en figure 11. Pendant une phase suivante, commençant par exemple à partir d'une énième impulsion de l'horloge maître MCLK, les signaux d'horloge PS1C1, PS2C1, PS1C2 et PS2C2 sont par exemple amenées en phase 35 entre eux pour revenir au fonctionnement synchrone normal. 3053485 24 Il apparaîtra clairement à l'homme de l'art que les exemples de la figure 11 ne représentent qu'un exemple de la façon dont les phases des signaux d'horloge fournis aux étages de pipeline dans les coeurs 1002, 1004, pourraient être choisies. Il 5 existe de nombreuses variantes de combinaisons de phases qui pourraient être utilisées dans des variantes de réalisation. En outre, dans certains modes de réalisation, les étages de pipeline se trouvant dans le coeur 1002 pourraient fonctionner de façon synchrone entre eux, et les étages de pipeline se trouvant 10 dans le coeur 1004 pourraient fonctionner de façon synchrone entre eux, et un déphasage pourrait être appliqué seulement entre les signaux d'horloge maître MCLK Cl et MCLK C2 fournis à chacun des coeurs du système de traitement multi-coeur 1000. Un avantage des modes de réalisation décrits ici est 15 que, en contrôlant dynamiquement les phases d'horloge des signaux d'horloge fournis à des étages d'un pipeline de traitement de données, la consommation d'énergie du pipeline peut être modifiée dynamiquement. Dans une carte NFC, le fait d'étaler la consommation d'énergie sur plusieurs phases d'horloge conduit à 20 l'avantage qu'on obtiendra une demande de courant plus lisse, ce qui aidera à éviter une situation dans laquelle la consommation de courant sera vue au niveau de l'antenne. Dans des circuits cryptographiques, l'étalement de la consommation d'énergie sur plusieurs phases d'horloge peut aider à empêcher des attaques par 25 canaux auxiliaires sur la base de la consommation du circuit, en particulier si les phases d'horloge fournies aux étages de pipeline sont modifiées de manière dynamique entre un cycle de traitement de données et le suivant. Dans d'autres circuits, comme dans un processeur multi-coeur, l'étalement de la consommation 30 d'énergie sur plusieurs phases d'horloge peut éviter des pics dans le courant d'alimentation, pics qui pourraient provoquer une forte chute dans les tensions d'alimentation présentes sur les rails de tension d'alimentation des coeurs. Un avantage de la mise en oeuvre de l'algorithme RSA des 35 figures 9A et 9B est que, en séparant une ou plusieurs opérations 3053485 25 de multiplication dans des étages de pipeline séparés et en contrôlant l'exécution de ces étages de pipeline sur différentes phases d'horloge, la consommation d'énergie sur chaque phase d'horloge peut être notablement réduite. En effet, les opérations 5 de multiplication ont tendance à être relativement consommatrices d'énergie. Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art. Par 10 exemple, alors que les figures 8A, 8B, 9A et 9B illustrent une mise en oeuvre spécifique d'une partie de l'algorithme RSA, il apparaîtra clairement à l'homme de l'art que les principes décrits en relation avec celle-ci pourraient être appliqués à d'autres types de circuits. 15 En outre, il apparaîtra clairement à l'homme de l'art que les divers éléments décrits en relation avec les divers modes de réalisation pourraient être combinés, dans des variantes de réalisation, selon diverses combinaisons. Par exemple, le fonctionnement dynamique décrit en relation avec la figure 5B 20 pourrait être appliqué au mode de réalisation RSA des figures 9A et 9B. REVENDICATIONS1. Pipeline de traitement de données comprenant : un premier étage de pipeline (302) recevant un premier signal d'horloge (CLKO) et agencé pour réaliser une première opération déclenchée par des premiers fronts de synchronisation du premier signal d'horloge (CLKO) ; un deuxième étage de pipeline (304) recevant un deuxième signal d'horloge (CLK1) et agencé pour réaliser une deuxième opération déclenchée par des deuxièmes fronts de synchronisation du deuxième signal d'horloge (CLK1) ; et un contrôleur d'horloge (402) agencé pour générer les premier et deuxième signaux d'horloge (CLKO, CLK1), le contrôleur d'horloge (402) étant capable de fonctionner : - dans un premier mode dans lequel, pendant un premier cycle de traitement de données du pipeline de traitement de 15 données, un premier des premiers fronts de synchronisation est en phase avec un premier des deuxièmes fronts de synchronisation ; et - dans un deuxième mode dans lequel, pendant un deuxième cycle de traitement de données du pipeline de traitement de 20 données, un deuxième des premiers fronts de synchronisation est déphasé par rapport à un deuxième des deuxièmes fronts de synchronisation. 2. Pipeline de traitement de données selon la revendication 1, dans lequel le contrôleur d'horloge (402) est 25 agencé pour générer les premier et deuxième signaux d'horloge (CLKO, CLK1) sur la base d'un signal d'horloge maître (MCLK). 3. Pipeline de traitement de données selon la revendication 2, dans lequel : dans le premier mode, le contrôleur d'horloge (402) est 30 agencé pour sélectionner un premier front de synchronisation du signal d'horloge maître (MCLK) pour former le premier des premiers et deuxièmes fronts de synchronisation ; et dans le deuxième mode, le contrôleur d'horloge (402) est agencé pour sélectionner un deuxième front de synchronisation du 3053485 B14785 - 15-GR2-0615 27 signal d'horloge maître (MCLK) pour former le deuxième des premiers fronts de synchronisation du premier signal d'horloge (CLKO) et pour sélectionner un troisième front de synchronisation du signal d'horloge maître (MCLK) pour former le deuxième des 5 deuxièmes fronts de synchronisation du deuxième signal d'horloge (CLK1). 4. Pipeline de traitement de données selon la revendication 3, dans lequel le contrôleur d'horloge (402) comprend un circuit de calcul (612) adapté à générer : 10 un premier signal d'activation (NxtEna(0)) pour sélectionner le deuxième front de synchronisation du signal d'horloge maître (MCLK) pour former le deuxième des premiers fronts de synchronisation du premier signal d'horloge (CLKO) ; et un deuxième signal d'activation (Nxt Ena(1)) pour 15 sélectionner le troisième front de synchronisation du signal d'horloge maître (MCLK) pour former le deuxième des deuxièmes fronts de synchronisation du deuxième signal d'horloge (CLK1). 5. Pipeline de traitement de données selon la revendication 4, dans lequel le circuit de calcul (612) est adapté 20 à générer des valeurs courantes des premier et deuxième signaux d'activation (Nxt Ena(7 :0)) sur la base de valeurs précédentes des premier et deuxième signaux d'activation (Ena(7:0)) et sur la base du facteur de division d'horloge. 6. Pipeline de traitement de données selon l'une 25 quelconque des revendications 1 à 5, dans lequel dans le deuxième mode, le contrôleur d'horloge (402) est adapté à étaler le deuxième cycle de traitement de données sur n phases d'horloge, où n est compris entre 2 et p, où p est le nombre d'étages de pipeline dans le pipeline de traitement de données. 30. 7. Pipeline de traitement de données selon l'une quelconque des revendications 1 à 6, dans lequel le premier étage de pipeline (302) comprend une sortie couplée à une entrée du deuxième étage de pipeline (304), et dans lequel pendant le deuxième cycle de traitement de données du pipeline de traitement 35 de données le contrôleur d'horloge (402) est adapté à générer le 3053485 B14785 - 15-GR2-0615 28 deuxième des premiers fronts de synchronisation du premier signal d'horloge survenant à un premier instant et le deuxième des deuxièmes fronts de synchronisation du deuxième signal, d'horloge survenant à un deuxième instant en avance par rapport au premier 5 instant. 8. Carte NFC (communications en champ proche) comprenant le pipeline de traitement de données de l'une quelconque des revendications 1 à 7, dans laquelle le contrôleur d'horloge (402) est en outre adapté à contrôler la période d'horloge des premier 10 et deuxième signaux d'horloge sur la base de l'alimentation disponible pour la carte NFC. 9. Circuit cryptographique comprenant le pipeline de traitement de données de l'une quelconque des revendications 1 à 7, dans lequel pendant le deuxième cycle de traitement de données, j premiers étages du pipeline reçoivent le premier signal d'horloge, et k deuxièmes étages du pipeline reçoivent le deuxième signal d'horloge, et pendant un troisième cycle de traitement de données, 1 premiers étages du pipeline reçoivent le premier signal d'horloge, et m deuxièmes étages du pipeline reçoivent le deuxième signal d'horloge, où j, k, 1 et m sont des entiers supérieurs ou égaux à 1, et j et 1 ne sont pas égaux. 10. Accélérateur matériel arithmétique modulaire comprenant le pipeline de traitement de données de l'une quelconque des revendications 1 à 7, dans lequel les premier et 25 deuxième étages de pipeline (816', 816", 824', 824") mettent en oeuvre une opération de multiplication. 11. Processeur multi-coeur comprenant : un premier coeur (1002) comprenant un premier pipeline de traitement de données selon l'une quelconque des revendications 30 1 à 7 ; un deuxième coeur (1004) comprenant un deuxième pipeline de traitement de données selon l'une quelconque des revendications 1 à 7 ; et un circuit de contrôle d'horloge (1006) agencé pour 35 fournir un premier signal d'horloge maître (MCLIU1) au premier 3053485 B14785 - 15-GR2-0615 29 coeur et un deuxième signal d'horloge maître (mcmu2) au deuxième coeur, au moins certains des fronts d'horloge des premier et deuxième signaux d'horloge maîtres étant déphasés entre eux. 12. Procédé de fabrication d'un pipeline de traitement 5 de données comprenant : la conception de circuit du pipeline de traitement de données, comprenant la génération d'une conception de circuit du pipeline de traitement de données de façon à comprendre : un premier étage de pipeline (302) agencé pour réaliser 10 une première opération déclenchée par des premiers fronts de synchronisation d'un premier signal d'horloge (CLKO) ; un deuxième étage de pipeline (304) agencé pour réaliser une deuxième opération déclenchée par des deuxièmes fronts de synchronisation d'un deuxième signal d'horloge (CLK1) indépendant 15 du premier signal d'horloge ; et un contrôleur d'horloge (402) agencé pour générer les premier et deuxième signaux d'horloge (CLKO, CLK1), le contrôleur d'horloge (402) étant capable de fonctionner : - dans un premier mode dans lequel, pendant un premier 20 cycle de traitement de données du pipeline de traitement de données, un premier des premiers fronts de synchronisation est en phase avec un premier des deuxièmes fronts de synchronisation ; et - dans un deuxième mode dans lequel, pendant un deuxième cycle de traitement de données du pipeline de traitement de données, un deuxième des premiers fronts de synchronisation est déphasé par rapport à un deuxième des deuxièmes fronts de synchronisation; et la fabrication du pipeline de traitement de données sur 30 la base de la conception de circuit. 13. Procédé selon la revendication 12, dans lequel la génération de la conception de circuit du pipeline de traitement de données comprend la modification d'une conception de circuit initiale du pipeline de traitement de données en divisant un étage 3053485 B14785 - 15-GR2-0615 de pipeline initial en des premier et deuxième sous-étages de pipeline parallèles. 14. Procédé selon la revendication 12, dans lequel la génération de la conception de circuit du pipeline de traitement 5 de données comprend en outre la génération de la conception de circuit de façon à comprendre un ou plusieurs autres étages de pipeline synchronisés par des signaux d'horloge indépendants correspondants, le nombre de signaux d'horloge indépendants dans la conception de circuit étant supérieur au nombre d'étages de 10 pipeline de la conception de circuit initiale. 15. Procédé de contrôle dynamique d'un pipeline de traitement de données comprenant : générer, par un contrôleur d'horloge (402), des premier et deuxième signaux d'horloge (CLKO, CLK1) ; 15 fournir le premier signal d'horloge (CLKO) à un premier étage de pipeline (302) agencé pour réaliser une première opération déclenchée par des premiers fronts de synchronisation du premier signal d'horloge (CLKO) ; fournir le deuxième signal d'horloge (CLK1) à un 20 deuxième étage de pipeline (304) agencé pour réaliser une deuxième opération déclenchée par des deuxièmes fronts de synchronisation du deuxième signal d'horloge (CLK1) ; dans lequel le contrôleur d'horloge (402) est capable de fonctionner : 25 - dans un premier mode dans lequel, pendant un premier cycle de traitement de données du pipeline de traitement de données, un ou plusieurs des premiers fronts de synchronisation sont en phase avec un ou plusieurs des deuxièmes fronts de synchronisation ; et 30 - dans un deuxième mode dans lequel, pendant un deuxième cycle de traitement de données du pipeline de traitement de données, un ou plusieurs des premiers fronts de synchronisation sont déphasés par rapport à un ou plusieurs des deuxièmes fronts de synchronisation.35