Brevet FR2856162A1 — publié le 20041217

PROCEDE POUR LA SYNCHRONISATION D'AU MOINS DEUX HORLOGES D'UN SYSTEME MICROPROCESSEURS La présente invention concerne un procédé pour la 5 synchronisation d'au moins deux horloges d'un système multiprocesseurs. Dans un système multiprocesseurs, comme celui utilisé, par exemple, pour le traitement de grandes quantités de données et/ou de tâches différentes en temps 10 réel, il est difficile de synchroniser les horloges des processeurs individuels de manière à ce qu'elles fonctionnent de manière identique, c'est-à-dire que leur écart temporel ne dépasse pas une certaine valeur de tolérance prédéterminée. Il faut comprendre ici sous le 15 terme "horloge" un registre d'horloge ou générateur d'impulsions sous forme, par exemple, d'un compteur ("counter") ou d'un registre d'horloge ("timer") qui génère une donnée temporelle d'abord relative sous forme d'une estampille, mais qui peut être convertie en temps 20 réel à la manière d'une horloge en temps absolu. Un compteur est réalisé, la plupart du temps, par un quartz piézoélectrique précis qui oscille à une fréquence déterminée qui est plus ou moins précise en fonction de la qualité et du type de quartz. Un registre de comptage, 25 qui est incrémenté de 1 après chaque durée de période P ou une fraction de celle- ci, est, la plupart, du temps, relié au quartz. Le registre d'horloge est semblable au compteur, mais par contre il comporte un registre supplémentaire sous forme d'un registre appelé registre 30 d'arrêt. Après chaque durée de période T du quartz ou un multiple de celle-ci, le registre de comptage est décrémenté. Dès que celui-ci est décrémenté à zéro; une interruption est générée et le registre de comptage est mis sur la valeur dans le registre d'arrêt. Un problème résulte, d'une part, d'une déviation fondamentale de l'oscillation de quartz du fait que celui-ci "va" trop rapidement ou trop lentement et, d'autre part, d'une "dérive" en fonction de la température. La figure 2a) représente l'allure de la déviation d'un quartz à température constante, la figure 2b) la dérive d'abord en cas de changement de 5 température, par exemple lors du démarrage du processeur, puis une allure de déviation constante à température constante. La présente invention part d'un procédé pour la synchronisation d'au moins deux horloges contenues dans 10 un système multiprocesseur, dans lequel une première horloge avec une durée de cycle prédéterminée génère des estampilles successives affichant individuellement le temps et au moins une seconde horloge, qui comporte une durée de cycle réglable, est synchronisée avec la 15 première horloge selon des intervalles de temps déterminés. L'objectif de la présente invention est de proposer un procédé de ce type de manière à ce qu'un bus, par l'intermédiaire duquel les processeurs du système 20 multiprocesseurs sont reliés les uns aux autres, soit chargé le moins possible par la synchronisation. Cet objectif est atteint selon la présente invention par le procédé de synchronisation indiqué dans la revendication 1. Les perfectionnements du procédé selon la présente invention sont indiqués dans les sous-revendications. Grâce à la présente invention, on propose un procédé pour la synchronisation d'au moins deux horloges contenues dans un système multiprocesseurs, dans lequel 30 une première horloge avec une durée de cycle prédéterminée génère des estampilles successives affichant individuellement le temps et au moins une seconde horloge, qui comporte une durée de cycle réglable, est synchronisée avec la première horloge selon 35 des intervalles de temps déterminés. Il est prévu, selon la présente invention, que a) à des intervalles de temps prédéterminés, la position temporelle réciproque soit détectée par des flancs de la première et de la seconde horloge, représentant la transition entre deux estampilles successives, en que b) un facteur de 5 correction représentant l'écart de temps entre la première et la seconde horloge soit déterminé à partir de la modification de la position temporelle réciproque des flancs de transition de la première et de la seconde horloge, en que c) à l'aide du facteur de correction 10 représentant l'écart de temps entre la première et la seconde horloge, la durée de cycle de la seconde horloge soit ajustée dans le sens d'une réduction de l'écart de temps entre la première horloge et la seconde horloge, et en que d) les étapes a) à c) soient répétées. Selon un aspect de la présente invention, la position temporelle des flancs de transition de la première horloge et/ou de la seconde horloge peut être détectée par scrutation ("polling") pendant lequel l'estampille de l'horloge concernée est lue au moins deux 20 fois successivement et les estampilles ainsi obtenues sont comparées les unes aux autres et la lecture de l'estampille est répétée jusqu'à ce que l'estampille obtenue en dernier se différencie de l'estampille précédente. Selon un autre aspect de la présente invention, la modification de la position temporelle du flanc de transition de la première horloge et de la seconde horloge peut être détectée par une recherche de flanc en deux étapes, en lisant l'estampille de l'horloge 30 concernée une fois avant un flanc de transition supposé entre deux estampilles successives et une fois après un flanc de transition supposé entre deux estampilles successives et, à chaque fois, en comparant l'estampille obtenue à l'estampille prévue pour le moment de la 35 lecture et ce processus est poursuivi, moyennant quoi i) une concordance aussi bien de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue, que de l'estampille obtenue lors de la lecture après le flanc de transition supposé avec l'estampille prévue est évaluée dans le sens d'une 5 position correcte du flanc de transition supposé, ii) une concordance de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue et de l'estampille obtenue lors de la lecture après le flanc de transition supposé avec l'estampille 10 prévue, mais avec une estampille plus précoce que l'estampille prévue, est évaluée dans le sens d'une position retardée du flanc de transition supposé ou dans le sens d'un instant de lecture trop précoce, et iii) une concordance de l'estampille obtenue lors de la lecture 15 après le flanc de transition supposé avec l'estampille prévue et de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue, mais avec une estampille plus tardive que l'estampille prévue, est évaluée dans le sens d'une 20 position prématurée du flanc de transition supposé ou dans le sens d'un instant de lecture trop tardif. La lecture des estampilles peut se faire à chaque fois avant et après des flancs de transition supposés différents entre deux estampilles successives différentes. La lecture des estampilles se fait toutefois, de préférence, à chaque fois avant et après des flancs de transition supposés différents entre deux estampilles successives différentes, en particulier alternativement. 30 Il est particulièrement avantageux que la lecture des estampilles se fasse à chaque fois alternativement avant et après des flancs de transition supposés différents qui se suivent à des intervalles de temps égaux. Selon un exemple de réalisation particulièrement avantageux de la présente invention, il est prévu que, au début du processus de synchronisation, la position des flancs de transition soit détectée par scrutation en lisant l'estampille de l'horloge concernée au moins deux fois de suite et en comparant les estampilles ainsi 5 obtenues les unes aux autres et en répétant la lecture de l'estampille jusqu'à ce que l'estampille obtenue en dernier se différencie de l'estampille précédente, et qu'ensuite la modification de la position temporelle soit détectée par une recherche de flanc en deux étapes en 10 lisant l'estampille de l'horloge concernée une fois avant un flanc de transition supposé entre deux estampilles successives et une fois après un flanc de transition supposé entre deux estampilles successives et, à chaque fois, en comparant l'estampille obtenue à l'estampille 15 prévue à l'instant de la lecture et que ce processus soit poursuivi, moyennant quoi i) une concordance aussi bien de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue, que de l'estampille obtenue lors de la lecture après le flanc de 20 transition supposé avec l'estampille prévue est évaluée dans le sens d'une position correcte du flanc de transition supposé, ii) une concordance de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue et de l'estampille 25 obtenue lors de la lecture après le flanc de transition supposé avec l'estampille prévue, mais avec une estampille plus précoce que l'estampille prévue, est évaluée dans le sens d'une position retardée du flanc de transition supposé ou dans le sens d'un instant de 30 lecture trop précoce, et iii) une concordance de l'estampille obtenue lors de la lecture après le flanc de transition supposé avec l'estampille prévue et de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue, mais avec 35 une estampille plus tardive que l'estampille prévue, est évaluée dans le sens d'une position prématurée du flanc de transition supposé ou dans le sens d'un instant de lecture trop tardif. Il est prévu, de préférence, que le facteur de correction représentant l'écart de temps entre la 5 première et la seconde horloge soit déterminé par la comparaison de l'intervalle de temps entre deux flancs de transition mutuellement correspondants de la première et de la seconde horloge. Selon un autre mode de réalisation préféré de la 10 présente invention, il est prévu que la durée de cycle de la seconde horloge soit ajustée dans le sens d'une réduction de l'écart de temps entre la première et la seconde horloge (étape c)) lorsqu'au moins deux processus de lecture successifs ont eu pour résultat un écart de 15 temps dans la même direction dans le sens soit d'une position retardée des flancs de transition supposés ou dans le sens d'un instant trop précoce de lecture, ou dans le sens d'une position prématurée des flancs de transition supposés ou dans le sens d'un instant trop 20 tardif de lecture. Selon un mode de réalisation préféré du procédé selon la présente invention, la première horloge est une horloge centrale de précision. La au moins seconde horloge est, de préférence, une 25 horloge interne d'un processeur contenu dans le système multiprocesseurs. La seconde horloge interne est, de préférence, une horloge virtuelle qui est générée par un logiciel. Le système multiprocesseurs comprend, de préférence, 30 plusieurs processeurs avec plusieurs secondes horloges associées à ceux-ci, qui sont synchronisés avec la première horloge ou par l'intermédiaire de celle-ci. Il est prévu ici, de préférence, que les plusieurs secondes horloges soient synchronisées avec la première 35 horloge respectivement à différents instants successifs. Des exemples de réalisation du procédé selon la présente invention sont expliqués en détail ci-après à l'aide des dessins. Les figures montrent: Figure 1 une représentation schématisée d'un système multiprocesseurs dans lequel plusieurs processeurs sont synchronisés à l'aide d'une horloge centrale; Figures 2a) et b) des diagrammes pour expliquer la dérive de temps mesurée à l'aide d'un quartz 10 piézoélectrique; Figure 3 un diagramme pour expliquer une synchronisation continue d'une horloge virtuelle par rapport à une horloge centrale de précision; Figure 4 un diagramme pour expliquer une 15 synchronisation discontinue d'une horloge virtuelle par rapport à une horloge centrale de précision; Figure 5 un diagramme pour expliquer la problématique de l'accès en lecture lors de la synchronisation de deux horloges; Figure 6 un diagramme pour expliquer ce que l'on appelle une recherche de flancs en deux étapes lors de la réalisation du procédé selon la présente invention; Figure 7 un diagramme pour expliquer l'erreur de lecture maximale lors de la recherche de flancs en deux 25 étapes; Figure 8 un diagramme pour expliquer une synchronisation pendant laquelle une horloge interne d'un processeur est synchronisée de manière idéale avec une horloge centrale de précision; Figure 9 un diagramme pour expliquer une synchronisation pendant laquelle une horloge interne d'un processeur fonctionne trop lentement par rapport à une horloge centrale de précision; Figure 10 un diagramme pour expliquer une 35 synchronisation pendant laquelle une horloge interne d'un processeur fonctionne trop rapidement par rapport à une horloge centrale de précision; Figures lia) et b) chacune un diagramme pour expliquer la formation d'un facteur de correction avec 5 une horloge interne d'un processeur fonctionnant trop rapidement ou trop lentement; Figure 12 un diagramme pour expliquer la réalisation d'une correction de démarrage au début de l'exécution du procédé de synchronisation selon la présente invention 10 selon un exemple de réalisation de l'invention; Figure 13 un diagramme pour expliquer la détermination d'un facteur de correction avec une horloge interne d'un processeur fonctionnant trop lentement; Figure 14 un diagramme pour expliquer la 15 détermination d'un facteur de correction avec une horloge interne d'un processeur fonctionnant trop rapidement; Figure 15 un diagramme pour expliquer le problème du "balancement" tel qu'il peut se produire en cas de modification trop directe du facteur de correction; Figures 16 et 17 des diagrammes pour expliquer la modification du facteur de correction avec une horloge interne d'un processeur fonctionnant trop lentement ou trop rapidement selon un exemple de réalisation du procédé selon la présente invention; Figure 18 un diagramme pour expliquer le principe d'une répartition des accès sur un bus commun du système multiprocesseurs; Figure 19 un diagramme pour expliquer les plages de temps différentes pendant lesquelles divers processeurs 30 ont accès au bus commun; et Figure 20 un diagramme qui représente une vue d'ensemble d'un procédé de synchronisation selon un exemple de réalisation de la présente invention. La figure 1 montre une représentation schématisée 35 d'un système multiprocesseurs dans lequel plusieurs processeurs CPU 1 à CPU 16 sont reliés les uns aux autres par une liaison par bus sous forme d'un bus VME. Pour la synchronisation de ce système multiprocesseurs, il est prévu une première horloge qui est désignée par le terme "Mem Clock". Cette horloge doit être réalisée par un 5 quartz piézoélectrique auquel est couplé un registre de comptage qui est incrémenté de 1 après chaque durée de période T du quartz. Chacun des processeurs CPU 1 à CPU 16 est muni d'une horloge interne virtuelle, qui est l'une de plusieurs 10 secondes horloges au sens de la présente invention qui doivent être synchronisées avec la première horloge. Ces horloges virtuelles dont réalisées par logiciel et non pas par du matériel. Dans l'exemple de réalisation décrit, l'objectif doit être de maintenir une déviation 15 maximale souhaitée de chacune des secondes horloges virtuelles par rapport à la première horloge, "Mem Clock". Cette déviation peut être prévue, par exemple, inférieure à 5 ps. Cela signifie que deux processeurs différents parmi les processeurs CPU 1 à CPU 16 ne 20 doivent pas dévier de plus de 10 us l'un par rapport à l'autre. Sans mesures particulières pour la synchronisation de la première et de la second horloge, on obtiendrait une "dérive", comme déjà décrit au début en référence aux 25 figures 2a) et b). Pour la synchronisation des secondes horloges virtuelles avec la première horloge, il y a principalement deux possibilités pour adapter l'allure de chaque seconde horloge à la première horloge par une correction. La 30 première possibilité, représentée sur la figure 3, consiste à asservir en continu la seconde horloge à la première horloge, c'est-à-dire à corriger l'allure de la seconde horloge à des moments de synchronisation respectifs S de telle manière qu'elle oscille autour de 35 l'allure de la première horloge. L'horloge virtuelle fonctionne ainsi en continu, elle est seulement réglée pour fonctionner respectivement plus rapidement ou plus lentement pour l'asservir à la première horloge. Dans la synchronisation discontinue représentée sur la figure 4, la seconde horloge virtuelle est remise à la 5 valeur de la première horloge centrale aux moments de synchronisation respectifs S et elle redémarrée à partir de là. L'horloge virtuelle "saute" donc à un autre moment et, suivant que l'horloge virtuelle fonctionne trop rapidement ou trop lentement, il se produit un trou dans 10 la base de temps (pour rattraper le temps "perdu") ou une période de temps est répétée (pour recouvrir le temps "excédentaire"). Une réponse temporelle continue, comme celle représentée sur la figure 3, est, la plupart du temps, 15 préférable, toutefois si les sauts sont suffisamment petits dans un système avec une réponse temporelle discontinue selon la figure 4, des solutions avec une réponse temporelle discontinue sont également praticables. Une problématique est la résolution de la première horloge, la "Mem Clock". Si cette résolution est, par exemple, de 10 ps, c'est-à-dire que le registre de comptage est incrémenté toutes les 10 ps, cela peut représenter une erreur allant jusqu'à 10 ls lors de la 25 lecture instantanée de l'estampille de la première horloge. comme montré sur la figure 5. Pour l'estampille 150 ps, la valeur 150 us peut être sortie, par exemple lors de la lecture peu après le dernier flanc, la valeur réelle serait d'environ 151 ps. Lors d'un autre accès en 30 lecture peu avant le dernier flanc, une valeur de 150 ps serait de nouveau sortie, la valeur réelle serait cependant de 159 ps. Cela correspond à une erreur absolue de 9 ps, ce qui est trop pour une synchronisation adéquate. On entend par flanc le seuil entre deux 35 estampilles, c'est-à-dire par exemple entre l'estampille ps et 150 us ou entre l'estampille 150 ps et 160 ps. Il n'est donc pas si facile de prélever la valeur de l'estampille dans la première horloge sans exclure une plus grande erreur de lecture. Une possibilité simple consiste à chercher le flanc 5 par scrutation, c'est-à-dire que le processeur respectif CPU 1... 16 lit l'estampille de la première horloge au moins deux fois de suite et compare les deux estampilles. Si elles sont identiques, le CPU lit encore une estampille de la première horloge. Cela est répété 10 jusqu'à ce que l'estampille lue en dernier se différencie de l'estampille précédente. Si cela est le cas, le flanc de la première horloge a été trouvé. Ce principe est très simple à mettre en oeuvre, mais il présente l'inconvénient de charger beaucoup le bus. Une meilleure possibilité, liée à une charge du bus moindre, consiste en une procédure qui doit être désignée ici par le terme "recherche de flanc en deux étapes". L'idée ici est de trouver le flanc de la première horloge le plus près possible du flanc supposé de la première 20 horloge simplement à l'aide de deux processus de lecture différents, et ainsi de déterminer le taux de dérive de l'horloge interne du CPU respectif et de la synchroniser avec la vitesse de la première horloge. Sur la figure 6, les flancs sont représentés par des 25 barres épaisses et minces entre les estampilles respectives. Ici, les flancs à 100 ps, 1100 ps et 2100 ps, c'est-à-dire tous les 1000 ps, doivent être pris comme exemple. A 100 ps, il se produit une lecture peu avant le flanc attendu, elle est désignée par le terme 30 SBF (SyncBeforeFlank). A 1100 ps, la lecture se fait peu après le flanc prévu, ce qui est désigné par le terme SAF (SyncAfterFlank). A 2100 ps, il se produit de nouveau une lecture SBF. Ces deux opérations de lecture ou de synchronisation sont exécutées alternativement. L'écart 35 entre deux opérations de synchronisation, c'est-à-dire l'intervalle de synchronisation tsyncIntervall est constant et il doit être le plus grand possible afin de conduire à une charge du bus réduite. Pour des raisons de clarté, on a utilisé sur le graphique un intervalle de synchronisation tsyncIntervall = 1 ms, mais en réalité, 5 on utiliserait un intervalle plus grand. Pour la lecture SBF à 100 ps, on attend l'estampille 90 ps. Si celle-ci est effectivement lue, une opération de lecture a été effectivement réalisée avant le flanc. Pour la lecture SAF au flanc 1100 ps, on attend une estampille 1100 ps. 10 Si celle-ci est effectivement lue, une opération de lecture a été effectivement réalisée après le flanc. Pour une lecture SBF pour le flanc 2100 ps, on attend de nouveau l'estampille 2090 ps. Si celle-ci est effectivement lue, une opération de lecture a été 15 effectivement réalisée avant le flanc. Toutefois, si à 100 ps l'estampille 100 ps était déjà lue au lieu de l'estampille 90 ps, le flanc 100 ps de la première horloge serait prématuré, ce qui revient à dire que l'horloge interne du CPU a lu trop tard, c'est20 à-dire qu'elle fonctionne trop lentement. De manière appropriée, cela est également valable pour la lecture SBF au flanc 1100 us. Cependant, si lors de la lecture SAF au flanc 1100 ps, seule l'estampille 1090 ps est lue au lieu de l'estampille prévue 1100 ps, le flanc 1100 ps 25 de la première horloge est trop lent, ce qui revient à dire à l'inverse que l'horloge interne du CPU fonctionne trop rapidement. Cette recherche de flanc en deux étapes est représentée encore une fois sur la figure 7 de telle 30 manière que les deux opérations de lecture et de synchronisation avant le flanc SBF ou après le flanc SAF sont regroupées en une opération pour le même flanc. L'intervalle entre SBF et SAF correspond en même temps à l'erreur de lecture maximale. Pour pouvoir exécuter avec succès la recherche de flanc en deux étapes de cette manière, il est avantageux qu'un flanc soit trouvé par scrutation au départ de la manière décrite au début, puis que la recherche de flanc en deux étapes soit réalisée. La figure 8 montre la synchronisation d'une horloge 5 interne de CPU qui fonctionne de manière idéale en synchronisation avec la première horloge. Les synchronisations SAF peu après le flanc supposé ou SBF peu avant le flanc supposé se trouvent respectivement dans l'estampille correcte, aucune correction n'a donc 10 besoin d'être effectuée. La figure 9 montre un cas dans lequel l'horloge interne du CPU fonctionne trop lentement par rapport à la première horloge. Aux repères 1, 2 et 3, les synchronisations SAF, SBF et SAF sont encore dans 15 l'estampille correcte prévue, la déviation d'allure n'est pas encore détectée. Toutefois, au repère 4, l'opération de lecture SBF fournit à la première horloge l'estampille qui se trouve déjà après le flanc, mais on attend l'estampille avant le flanc. Ici, la dérive est détectée, 20 le flanc de la première horloge s'est déjà produit, l'horloge interne du CPU fonctionne donc trop lentement. Si on corrige l'horloge interne du CPU, une lecture SBF fournit alors au repère 6 effectivement de nouveau la valeur prévue avant le flanc. Au repère 5, lors de la 25 lecture SAF, la valeur est fournie après le flanc. Dans le cas montré sur la figure 10, l'horloge interne du CPU fonctionne trop rapidement par rapport à la première horloge. Alors qu'aux repères 1 et 2, la lecture SAF fournit la valeur correcte respectivement 30 prévue après le flanc et la lecture SBF fournit la valeur correcte respectivement prévue avant le flanc, au repère 3, lors de la lecture SAF, la valeur de l'estampille est attendue après le flanc, mais en réalité la valeur de l'estampille est fournie avant le flanc. Cela signifie 35 que le flanc au repère 3 est plus tardif que ce que l'on attendait ou que l'horloge interne du CPU fonctionne trop rapidement. En diminuant la durée de cycle, la valeur correcte de l'estampille après le flanc est de nouveau fournie au repère 5, comme prévu pour la lecture SAF. Au repère 4, l'estampille correcte est fournie pour la lecture SBF avant le flanc. Les figures lia) et b) montrent des exemples du facteur de correction pour une horloge trop rapide ou pour une horloge trop lente. Sur la figure lia), l'horloge interne fonctionne 10 trop rapidement, pour l'intervalle de temps réel tDistanz = 1 seconde de la première horloge. l'horloge interne a besoin, sur son axe de temps, d'un intervalle corrigé tKorrDistanz = 1,00000655 s. Sur la figure 11b), l'horloge interne fonctionne 15 trop lentement, pour l'intervalle de temps réel tDistanz = 1 seconde, l'horloge interne a simplement besoin, sur son axe de temps, d'un intervalle de temps corrigé tKorrDistanz = 0,99999345 s. On peut donc déterminer un facteur de correction à 20 l'aide des opérations de synchronisation de la manière suivante. D'abord, un flanc de la première horloge est déterminé par scrutation, une période fixe est attendue et le flanc de la première horloge est de nouveau déterminé par scrutation. Le temps de l'horloge interne 25 est mesuré pour cette période. De même, le temps de la première horloge est mesuré pour cette période. A partir de là, on peut calculer un premier facteur de correction kF = tinternDifferenz / tMemClockDifferenz - 1 (1) voir figure 12. Avec ce facteur de correction de départ, la 35 synchronisation peut commencer. Si une erreur est détectée pendant la synchronisation, le facteur de correction doit être adapté. La figure 13 montre le calcul du facteur de correction pour une horloge interne fonctionnant trop 5 lentement sur l'axe de temps de la première horloge. Les intervalles tsyncIntervall entre les opérations de synchronisation SBF, SAF sont choisis volontairement très courts pour mettre en évidence le principe de calcul du facteur de correction. Normalement, ceux-ci sont à une 10 plus grande distance les uns des autres. Au repère 1, la valeur de l'estampille peu après le flanc de la première horloge a été lue pour une lecture SBF, l'horloge interne fonctionnait donc trop lentement et a dû être corrigée. Au repère 2, c'est de nouveau la valeur de l'estampille 15 peu après le flanc de la première horloge. au lieu de l'estampille prévue avant le flanc, qui a été lue pour une lecture SBF, l'horloge interne fonctionne toujours trop lentement et doit être de nouveau corrigée. Entre les deux déviations erronées détectées de l'horloge 20 interne de la première horloge se trouvent cinq opérations de synchronisation ou un intervalle de temps de tgesIntervall = 6. tsyncIntervall. En outre, le facteur de correction kF existant jusqu'à présent est connu. Le nouveau facteur de correction peut être calculé 25 pour kF = kF - tKorrZeit / tgesIntervall (2) Moyennant quoi tKorrZeit = tmaxFlankIntervall / 2 (3) avec l'erreur de lecture maximale tmaxFlankIntervall montrée sur la figure 7. La nouvelle erreur doit être 35 soustraite car l'horloge interne fonctionne trop lentement. Cette formule n'est donc valable que pour la lecture SBF. Si l'horloge interne fonctionne trop rapidement, ce qui est détecté pendant la lecture SAF, le facteur de 5 correction doit être modifié, la formule valable est alors kF = kF + tKorrZeit / tgesIntervall (4) La correction de l'horloge interne trop rapide est montrée sur la figure 14. Si le facteur de correction était modifié dès que l'on détecte une alluretrop rapide ou trop lente de l'horloge interne comparée avec la première horloge, cela 15 pourrait conduire à un "balancement" de telle manière qu'à chaque opération de synchronisation SAF, au cours de laquelle l'estampille située avant le flanc est lue au lieu de l'estampille prévue après le flanc, ce qui revient à une allure trop rapide de l'horloge interne, 20 celle-ci est ralentie jusqu'à ce que, lors de la lecture BSF suivante, la valeur de l'estampille qui suit le flanc est lue au lieu de l'estampille prévue avant le flanc, après quoi l'horloge interne est de nouveau accélérée, ce qui conduit de nouveau à une allure trop rapide et ainsi 25 de suite. Une séquence de synchronisation exagérée de ce type est montrée sur la figure 15. Pour empêcher cela, une modification du facteur de correction kF n'est effectuée que lorsqu'une dérive constante est constatée de telle manière qu'une première 30 détection d'une déviation d'allure dans une direction déterminée est suivie d'une deuxième détection d'une déviation d'allure dans la même direction, comme représenté sur la figure 16 pour une dérive constante d'une horloge fonctionnant trop lentement, et sur la 35 figure 17 pour une dérive constante d'une horloge fonctionnant trop rapidement. La figure 18 montre le principe de la répartition des accès au bus de plusieurs processeurs CPU 0 à CPU 15 contenus dans le système multiprocesseurs avec pour objectif d'éviter une collision. Pendant la phase 5 d'initialisation au début de l'opération de synchronisation, chaque CPU prend une estampille de la première horloge comme valeur de référence à l'aide de laquelle on peut calculer le point de départ de la synchronisation. Pour cela, chaque CPU doit avoir une 10 identification claire pour pouvoir mettre à disposition de chaque CPU un point de départ différent. Chaque autre opération de synchronisation ou accès à la première horloge ne peut alors être exécutée qu'après multiplication d'un intervalle minimal défini préalablement. On garantit ainsi que les CPU ne se bloquent pas mutuellement lors de l'accès en lecture de la première horloge. La figure 19 montre des plages de temps respectivement séparées par un intervalle de sécurité 20 suffisant dans lesquelles les CPU individuels, ici le CPU 1 et le CPU 2, peuvent lire l'estampille de la première horloge. représentée sur l'axe de temps de la première horloge. La figure 20 montre une vue d'ensemble d'un modèle 25 de synchronisation selon un exemple de réalisation de la présente invention dans lequel le "temps interne" de plusieurs processeurs contenus dans un système multiprocesseurs est synchronisé avec un "temps réel" fourni par une première horloge "Mem Clock". Les 30 processeurs individuels fournissent alors, pour une utilisation par leur propre application, un "temps virtuel" qui dévie du "temps réel" au maximum d'une tolérance de temps prédéterminée. Ici, la première horloge est utilisée purement passivement comme esclave. 35 Pendant la phase d'initialisation, les accès en lecture au bus des divers CPU doivent être répartis sur la première horloge de manière à ce qu'ils ne se perturbent pas mutuellement ou de manière à éviter des temporisations lors de l'accès à la première horloge. Pour cela, pendant l'initialisation, un premier moment 5 d'accès valable à la première horloge et le point de départ pour la première opération de synchronisation sont calculés pour chaque CPU, comme déjà expliqué précédemment. Pour la synchronisation, on utilise la recherche de 10 flanc en deux étapes, c'est-à-dire qu'il existe deux opérations de synchronisation différentes, à savoir une synchronisation peu avant le flanc suivant SBF et une synchronisation peu après le dernier flanc SAF. Celles-ci sont démarrées alternativement avec un intervalle de 15 synchronisation déterminé tsyncIntervall. Enfin, l'horloge virtuelle est synchronisée et corrigée cycliquement, c'est-à-dire que la différence d'horloge actuelle est déterminée entre l'horloge interne et l'horloge virtuelle après un intervalle de mise à jour 20 (update) déterminé. Cette opération de mise à jour de l'horloge virtuelle est appelée "UpdateVirtualClock" (UVC). Il existe ainsi deux "algorithmes de synchronisation", à savoir "SyncBeforeFlank" ou 25 "SyncAfterFlank" pour le calcul ou la mise à jour du facteur de correction à partir du "temps réel" de la première horloge et du temps interne du registre de base de temps de chaque CPU, et "UpdateVirtualClock" pour le calcul ou la mise à jour de la différence d'horloge de 30 l'horloge interne et l'horloge virtuelle à partir de leurs valeurs de référence, du facteur de correction actuel kF et d'un temps interne actuel du registre de base de temps. Dans l'exemple de réalisation décrit ci-dessus, la 35 première horloge centrale de précision a été considérée comme la première horloge au sens de la présente invention dont les flancs ont été trouvés avec les opérations de lecture SAF peu après le flanc et SBF peu avant le flanc sur la base de la base de temps de chaque horloge interne de CPU comme seconde horloge. En d'autres 5 termes, les opérations de lecture SAF ou SBF, qui ont pour objectif d'obtenir les flancs supposés de la première horloge, sont "déclenchées" par les flancs de chaque horloge interne de CPU. Avec une modification appropriée de l'algorithme de 10 synchronisation, on peut cependant exécuter la recherche de flanc en deux étapes également dans l'autre direction, c'est-à-dire que les opérations de lecture SAF ou SBF sont "déclenchées" par la première horloge pour trouver les flancs supposés de chaque horloge interne de CPU. 15 Pour cela, il suffit d'échanger la première horloge et "l'horloge interne de CPU" sur les figures 8 à 17 et de procéder à des modifications correspondantes dans les équations (1) à (4). REVENDICATIONS 1. Procédé pour la synchronisation d'au moins deux horloges contenues dans un système multiprocesseurs, dans 5 lequel une première horloge avec une durée de cycle prédéterminée génère des estampilles successives affichant individuellement le temps, et au moins une seconde horloge qui comporte une durée de cycle réglable est synchronisée avec la première horloge selon des 10 intervalles de temps déterminés, caractérisé en ce que a) à des intervalles de temps prédéterminés, la position temporelle réciproque est détectée par des flancs de la première horloge et de la seconde horloge, représentant la transition entre deux estampilles successives, en ce 15 que b) un facteur de correction représentant l'écart de temps entre la première horloge et la seconde horloge est déterminé à partir de la modification de la position temporelle réciproque des flancs de transition de la première horloge et de la seconde horloge, en ce que c) à 20 l'aide du facteur de correction représentant l'écart de temps entre la première horloge et la seconde horloge, la durée de cycle de la seconde horloge est ajustée dans le sens d'une réduction de l'écart de temps entre la première horloge et la seconde horloge, et en ce que d) 25 les étapes a) à c) sont répétées. 2. Procédé selon la revendication 1, caractérisé en ce que la position temporelle des flancs de transition de la première horloge et/ou de la seconde horloge est 30 détectée par scrutation pendant lequel l'estampille de l'horloge concernée est lue au moins deux fois de suite et les estampilles ainsi obtenues sont comparées les unes aux autres, et la lecture de l'estampille est répétée jusqu'à ce que l'estampille obtenue en dernier se 35 différencie de l'estampille précédente. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la modification de la position temporelle du flanc de transition de la première horloge et de la seconde horloge est détectée par une recherche 5 de flanc en deux étapes en lisant l'estampille de l'horloge concernée une fois avant un flanc de transition supposé entre deux estampilles successives, et une fois après un flanc de transition supposé entre deux estampilles successives, et à chaque fois, en comparant 10 l'estampille obtenue à l'estampille prévue pour le moment de la lecture, et ce processus est poursuivi, moyennant quoi i) une concordance aussi bien de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue, que de l'estampille 15 obtenue lors de la lecture après le flanc de transition supposé avec l'estampille prévue, est évaluée dans le sens d'une position correcte du flanc de transition supposé, ii) une concordance de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec 20 l'estampille prévue et de l'estampille obtenue lors de la lecture après le flanc de transition supposé avec l'estampille prévue, mais avec une estampille plus précoce que l'estampille prévue, est évaluée dans le sens d'une position retardée du flanc de transition supposé, 25 et iii) une concordance de l'estampille obtenue lors de la lecture après le flanc de transition supposé avec l'estampille prévue et de l'estampille obtenue lors de la lecture avant le flanc de transition supposé avec l'estampille prévue, mais avec une estampille plus 30 tardive que l'estampille prévue, est évaluée dans le sens d'une position prématurée du flanc de transition supposé. 4. Procédé selon la revendication 3, caractérisé en ce que la lecture des estampilles se fait à chaque fois 35 avant et après le même flanc de transition supposé entre les deux mêmes estampilles successives. 5. Procédé selon la revendication 3, caractérisé en ce que la lecture des estampilles se fait à chaque fois avant et après des flancs de transition supposés 5 différents entre deux estampilles successives différentes. 6. Procédé selon la revendication 5, caractérisé en ce que la lecture des estampilles se fait à chaque fois 10 alternativement avant et après des flancs de transition supposés différents qui se suivent à des intervalles de temps égaux. 7. Procédé selon l'une quelconque des revendications 15 2 à 6, caractérisé en ce que, au début du processus de synchronisation, la position des flancs de transition est détectée par scrutation selon la revendication 2, et en ce qu'ensuite, la modification de la position temporelle est détectée par une recherche de flanc en deux étapes 20 selon la revendication 3. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le facteur de correction représentant l'écart de temps entre la première horloge 25 et la seconde horloge est déterminé par la comparaison de l'intervalle de temps entre deux flancs de transition mutuellement correspondants de la première et de la seconde horloge. 9. Procédé selon l'une quelconque des revendications 3 à 8, caractérisé en ce que la durée de cycle de la seconde horloge est ajustée dans le sens d'une réduction de l'écart de temps entre la première horloge et la seconde horloge (étape c)) lorsqu'au moins deux processus 35 de lecture successifs ont eu pour résultat un écart de temps dans la même direction dans le sens soit d'une position retardée, soit d'une position prématurée des flancs de transition supposés. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que la première horloge est une horloge centrale de précision. 11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que la au moins 10 seconde horloge est une horloge interne d'un processeur contenu dans le système multiprocesseurs. 12. Procédé selon l'une quelconque des revendications 1 à 11, caractérisé en ce que la seconde 15 horloge interne est une horloge virtuelle qui est générée par un logiciel. 13. Procédé selon l'une quelconque des revendications 1 à 12, caractérisé en ce que le système 20 multiprocesseurs comprend plusieurs processeurs avec plusieurs secondes horloges associées à ceux-ci, qui sont synchronisées avec la première horloge. 14. Procédé selon la revendication 13, caractérisé 25 en ce que les plusieurs secondes horloges sont synchronisées avec la première horloge respectivement à différents moments successifs.