Brevet FR3138255A1 — publié le 20240126

L’invention concerne un dispositif de synchronisation de temps symbole à architecture parallèle comprenant : un module (20) de mémorisation et de réordonnancement d’échantillons comprenant une unité de contrôle (22) et 2 x P FIFOs (21) ordonnées cycliquement, un module d’interpolation configuré pour fournir à chaque coup d’horloge une indication d’erreur temporelle (Err-Ind) prenant une valeur parmi « nominal », « dépassement inférieur » ou « dépassement supérieur », à un coup d’horloge courant, l’unité de contrôle (22) est configurée pour : écrire un échantillon dans chacune de P FIFOs (21) successives, lire un échantillon dans chacune de P, P - 1, ou P + 1 FIFOs (21) successives selon que l'indication d’erreur temporelle (Err-Ind) est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur », réordonner des échantillons à fournir au module d’interpolation à l’aide d’un réseau de permutation (23). Figure pour l’abrégé : Fig. 3 Dispositif et procédé de synchronisation de temps symbole avec une architecture parallèle Domaine de l’invention La présente invention appartient au domaine des communications numériques, notamment par satellite, et concerne plus particulièrement un dispositif et un procédé de synchronisation de temps symbole avec une architecture parallèle. L’invention est particulièrement bien adaptée pour un système de communications à haut débit entre un satellite et une station terrestre. Etat de la technique Dans les systèmes de communications numériques, un dispositif émetteur transmet un message à un dispositif récepteur sous la forme d’un signal transportant une séquence de symboles. Un symbole peut correspondre à un bit ou à un ensemble de bits de données. Un symbole peut par exemple correspondre à une valeur particulière de phase, d’amplitude et/ou de fréquence du signal, selon la modulation utilisée. Au niveau du dispositif récepteur, le signal reçu est échantillonné et les symboles doivent être synchronisés à partir des échantillons obtenus (un symbole correspond à plusieurs échantillons). Le temps symbole au niveau du dispositif émetteur est cadencé à partir d’une horloge appartenant au dispositif émetteur. Le temps symbole au niveau du dispositif récepteur est cadencé à partir d’une horloge appartenant au dispositif récepteur. Un biais temporel peut cependant exister entre l’horloge du dispositif émetteur et l’horloge du dispositif récepteur en raison de l’imperfection des oscillateurs qui forment ces horloges. Des erreurs temporelles peuvent également être introduites par effet Doppler en raison d’une variation de la vitesse relative du dispositif émetteur par rapport au dispositif récepteur (c’est particulièrement vrai pour une communication entre un satellite en orbite basse et une station au sol). Ces erreurs temporelles peuvent entraîner des erreurs dans la détermination des instants des symboles au cours de l’échantillonnage. Cela peut conduire à des erreurs dans le décodage des symboles et potentiellement à une impossibilité de décoder le message reçu. Il existe différentes méthodes de synchronisation de temps symbole. Il est notamment possible d’utiliser une méthode basée sur l’algorithme de Gardner, ou une méthode basée sur l’algorithme d’Oerder et Meyr. Ces algorithmes sont notamment utilisés dans les communications spatiales basées sur la technologie SCPC (acronyme anglais pour « Single Channel Per Carrier », en français « un seul canal par porteuse »), comme par exemple pour le système DVB-S2X (acronyme anglais pour « Digital Video Broadcasting – Second Generation Satellite Extensions », c’est une norme de diffusion de la télévision numérique par satellite). Pour ces technologies, le dispositif de synchronisation de temps symbole présente généralement une architecture série. Le CCSDS (acronyme anglais pour « Consultative Committee for Space Data Systems », en français « comité consultatif sur les systèmes de données spatiales ») est actuellement en train de définir un standard de communications offrant un débit de l'ordre de 10 Gbits/s et permettant ainsi à des satellites d’échanger des données à très haut débit avec des stations au sol via une liaison optique. Pour atteindre des débits aussi élevés, il devient nécessaire d’utiliser une architecture parallèle pour le dispositif de synchronisation de temps symbole, afin de répondre aux exigences temps-réel des technologies FPGA (acronyme anglais pour « Field-Programmable Gate Array », en français « circuit logique programmable ») ou ASIC (acronyme anglais pour « Application-Specific Integrated Circuit », en français « circuit intégré dédié à une application »). L'architecture parallèle introduit toutefois un défi de conception pour résoudre la dérive temporelle au niveau de l'échantillon sans trop complexifier le dispositif récepteur. Le document « A Parallel Timing Synchronization Structure in Real-Time High Transmission Capacity Wireless Communication Systems », Xin Hao et al., décrit un dispositif de synchronisation de temps symbole avec une architecture parallèle basée sur l’algorithme de Gardner. Il est mentionné dans ce document qu’un décalage en fréquence entre le dispositif émetteur et le dispositif récepteur entraîne une erreur temporelle qui augmente ou diminue continuellement. Pour corriger cette erreur temporelle, il convient de supprimer ou de conserver certains échantillons lorsque l’erreur s’est accumulée jusqu’à un certain niveau. Il devient alors nécessaire de réarranger les échantillons dans un ordre correct. Toutefois, ce document ne décrit pas d’exemple d’implémentation permettant de réarranger les échantillons de façon efficace et performante. La présente invention a pour objectif de remédier à tout ou partie des inconvénients de l’art antérieur, notamment ceux exposés ci-avant. A cet effet, et selon un premier aspect, il est proposé par la présente invention, un dispositif de synchronisation de temps symbole à architecture parallèle. Le dispositif de synchronisation de temps symbole est configuré pour être cadencé par une horloge, et il comprend : un module de mémorisation et de réordonnancement d’échantillons comprenant une unité de contrôle et 2 x P mémoires tampons de type « premier entré, premier sorti », aussi connues sous le terme « FIFOs », P étant un entier pair supérieur ou égal à quatre, chaque FIFO pouvant mémoriser plusieurs échantillons, les FIFOs étant ordonnés cycliquement ; un module d’interpolation configuré pour fournir à chaque coup d’horloge une indication d’erreur temporelle déterminée à partir d’échantillons en provenance du module de mémorisation et de réordonnancement, ladite indication d’erreur temporelle prenant une valeur parmi « nominal », « dépassement inférieur » ou « dépassement supérieur ». A un coup d’horloge courant, l’unité de contrôle est configurée pour : écrire un échantillon dans chacune de P FIFOs successives qui n’ont pas été utilisées en écriture au coup d’horloge précédent, lire un échantillon dans chacune de P, P - 1, ou P + 1 FIFOs successives selon que l'indication d’erreur temporelle est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur », les FIFOs dans lesquelles un échantillon doit être lu étant définies en fonction des FIFOs dans lesquelles des échantillons ont été lus au coup d'horloge précédent, réordonner des échantillons à fournir au module d’interpolation à l’aide d’un réseau de permutation et en fonction d'un compteur dont la valeur courante est définie en fonction de la valeur dudit compteur au coup d’horloge précédent et en fonction de l'indication d’erreur temporelle au coup d’horloge précédent. Il est à noter qu’on se place ici dans le cas générique où le coup d’horloge courant et le coup d’horloge précédent présentent des échantillons valides. Comme cela sera détaillé par la suite, il est possible de gérer une indication qui renseigne sur la validité des échantillons au coup d’horloge considéré, et de faire (ou ne pas faire) certaines actions en fonction de cette indication de validité. L’utilisation d’un réseau de permutation et sa gestion à l’aide d’un compteur mis à jour en fonction de l'indication d’erreur temporelle permettent de réarranger dynamiquement les échantillons à fournir au module d’interpolation en utilisant des opérations de rotation binaire relativement peu couteuses en termes d’implémentation matérielle et de temps de calcul. Dans des modes particuliers de réalisation, l’invention peut comporter en outre l’une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. Dans des modes particuliers de réalisation, l'écriture dans les FIFOs est contrôlée par un masque d'écriture binaire comportant 2 x P bits. Chaque bit est respectivement associé à une FIFO et indique si ladite FIFO doit ou non être utilisée en écriture. Le masque d’écriture peut prendre deux valeurs possibles distinctes présentant chacune exactement P bits indiquant que les FIFOs associées doivent être utilisées en écriture, lesdites valeurs ne présentant aucun bit en commun. L’unité de contrôle est configurée pour changer la valeur du masque d’écriture à chaque coup d'horloge (si des données valides sont disponibles pour le coup d’horloge considéré). Dans des modes particuliers de réalisation, la lecture dans les FIFOs est contrôlée par trois masques de lecture binaires comportant chacun 2 x P bits ordonnés cycliquement. Chaque bit est respectivement associé à une FIFO et indique si ladite FIFO doit ou non être utilisée en lecture. Chaque masque de lecture est associé respectivement à l'une des trois valeurs possibles de l'indication d’erreur temporelle. Chaque masque de lecture comporte exactement P, P - 1 ou P + 1 bits successifs indiquant que les FIFOs associées doivent être utilisées en lecture selon que le masque de lecture est associé respectivement à l’indication « nominal », « dépassement inférieur » ou « dépassement supérieur ». L’unité de contrôle est configurée, pour ledit coup d’horloge courant, pour : identifier le masque de lecture à utiliser en fonction de l'indication d’erreur temporelle, mettre à jour chaque masque de lecture, pour le coup d'horloge suivant, en effectuant une rotation binaire de la valeur courante dudit masque de lecture de P, P - 1 ou P + 1 bits selon que l'indication d’erreur temporelle est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Dans des modes particuliers de réalisation, pour réordonner les échantillons à fournir au module d’interpolation, l’unité de contrôle est configurée pour : commander le réseau de permutation pour effectuer une rotation binaire sur lesdits échantillons d'un nombre de bits défini à partir de la valeur courante du compteur, mettre à jour le compteur, pour le coup d'horloge suivant, en effectuant une addition modulo 2 x P de la valeur courante du compteur avec la valeur P, P - 1 ou P + 1 selon que l'indication d’erreur temporelle est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Selon un deuxième aspect, la présente invention concerne un dispositif récepteur d’un système de communications comportant un dispositif de synchronisation selon l’un quelconque des modes de réalisation précédents. Selon un troisième aspect, la présente invention concerne un satellite comportant un tel dispositif récepteur. Dans des modes particuliers de réalisation, le système de communications est un système de communications spatiales offrant un débit de données au moins égal à 100 Mbit/s. Selon un quatrième aspect, la présente invention concerne un procédé de fonctionnement d’un dispositif de synchronisation de temps symbole à architecture parallèle. Le dispositif de synchronisation est cadencé par une horloge et comprend : un module de mémorisation et de réordonnancement d’échantillons comprenant 2 x P mémoires tampons de type « premier entré, premier sorti », ou FIFOs, P étant un entier pair supérieur ou égal à quatre, chaque FIFO pouvant mémoriser plusieurs échantillons, les FIFOs étant ordonnés cycliquement, un module d’interpolation configuré pour fournir à chaque coup d’horloge une indication d’erreur temporelle déterminée à partir d’échantillons en provenance du module de mémorisation et de réordonnancement, ladite indication d’erreur temporelle prenant une valeur parmi « nominal », « dépassement inférieur » ou « dépassement supérieur ». Le procédé comporte, à un coup d’horloge courant : une écriture d’un échantillon dans chacune de P FIFOs successives qui n’ont pas été utilisées en écriture au coup d’horloge précédent, une lecture d’un échantillon dans chacune de P, P - 1, ou P + 1 FIFOs successives selon que l'indication d’erreur temporelle est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur », les FIFOs dans lesquelles un échantillon doit être lu étant définies en fonction des FIFOs dans lesquelles des échantillons ont été lus au coup d'horloge précédent, un réordonnancement d’échantillons à fournir au module d’interpolation en fonction d'un compteur dont la valeur courante est définie en fonction de la valeur du compteur au coup d’horloge précédent et en fonction de l'indication d’erreur temporelle au coup d’horloge précédent, une fourniture des échantillons réordonnés au module d’interpolation. Dans des modes particuliers de mise en œuvre, l’invention peut comporter en outre l’une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. Dans des modes particuliers de mise en œuvre, l'écriture dans les FIFOs est contrôlée par un masque d'écriture binaire comportant 2 x P bits. Chaque bit est respectivement associé à une FIFO et indique si ladite FIFO doit ou non être utilisée en écriture. Le masque d’écriture peut prendre deux valeurs possibles distinctes présentant chacune exactement P bits indiquant que les FIFOs associées doivent être utilisées en écriture, lesdites valeurs ne présentant aucun bit en commun. La valeur du masque d’écriture est changée à chaque coup d'horloge. Dans des modes particuliers de mise en œuvre, la lecture dans les FIFOs est contrôlée par trois masques de lecture binaires comportant chacun 2 x P bits ordonnés cycliquement. Chaque bit est respectivement associé à une FIFO et indique si ladite FIFO doit ou non être utilisée en lecture. Chaque masque de lecture est associé respectivement à l'une des trois valeurs possibles de l'indication d’erreur temporelle. Chaque masque de lecture comporte exactement P, P - 1 ou P + 1 bits successifs indiquant que les FIFOs associées doivent être utilisées en lecture selon que le masque de lecture est associé respectivement à l’indication « nominal », « dépassement inférieur » ou « dépassement supérieur ». La lecture comporte : une identification du masque de lecture à utiliser en fonction de l'indication d’erreur temporelle, une mise à jour de chaque masque de lecture, pour le coup d'horloge suivant, en effectuant une rotation binaire de la valeur courante dudit masque de lecture de P, P - 1 ou P + 1 bits selon que l'indication d’erreur temporelle est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Dans des modes particuliers de mise en œuvre, le réordonnancement des échantillons à fournir au module d’interpolation comporte : une opération de rotation binaire, sur lesdits échantillons, d'un nombre de bits défini à partir de la valeur courante du compteur, une mise à jour du compteur, pour le coup d'horloge suivant, en effectuant une addition modulo 2 x P de la valeur courante du compteur avec la valeur P, P - 1 ou P + 1 selon que l'indication d’erreur temporelle est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Dans des modes particuliers de mise en œuvre, chaque FIFO est configurée pour activer une indication de risque de débordement lorsque le nombre d'échantillons mémorisés dans ladite FIFO est supérieur ou égal à un seuil, et l'écriture dans les FIFOs est autorisée si et seulement si l'indication de risque de débordement n'est activée pour aucune des FIFOs. Dans des modes particuliers de mise en œuvre, chaque FIFO est configurée pour activer une indication de risque de pénurie lorsque le nombre d'échantillons mémorisés dans ladite FIFO est inférieur ou égal à un seuil, et la lecture dans les FIFOs est autorisée si et seulement si l'indication de risque de pénurie n'est activée pour aucune des FIFOs. Dans des modes particuliers de mise en œuvre, la fréquence des symboles en sortie du dispositif de synchronisation est supérieure ou égale à 100 Mbits/s. Présentation des figures L’invention sera mieux comprise à la lecture de la description suivante, donnée à titre d’exemple nullement limitatif, et faite en se référant aux figures 1 à 8 qui représentent : une représentation schématique d’un système de communications spatiales entre un satellite en orbite autour de la Terre et une station terrestre, une représentation schématique d’un dispositif de synchronisation de temps symbole selon l’invention une représentation schématique d’un mode de réalisation d’un module de mémorisation et de réordonnancement d’échantillons, une représentation schématique d’un mode de réalisation d’un module d’interpolation, une représentation schématique d’un exemple d’implémentation du contrôle de l’écriture de nouveaux échantillons dans les FIFOs du module de mémorisation et de réordonnancement, une représentation schématique d’un exemple d’implémentation du contrôle de la lecture d’échantillons dans les FIFOs du module de mémorisation et de réordonnancement, une représentation schématique d’un exemple d’implémentation du contrôle du réseau de permutation du module de mémorisation et de réordonnancement, une représentation schématique des principales étapes d’un procédé de fonctionnement d’un dispositif de synchronisation de temps symbole selon l’invention. Dans ces figures, des références identiques d’une figure à une autre désignent des éléments identiques ou analogues. Pour des raisons de clarté, les éléments représentés ne sont pas nécessairement à une même échelle, sauf mention contraire. Description détaillée d’un mode de réalisation de l’invention Dans la suite de la description, on se place de manière non limitative dans le cas d’un système de communications spatiales. La représente schématiquement un système de communications spatiales entre un satellite 70 en orbite autour de la Terre 73 et une station terrestre 71. Un signal 72 transportant des données est transmis par la station terrestre 71 à destination du satellite 70. Pour émettre le signal 72, la station terrestre 71 comporte une chaîne de transmission. La chaine de transmission est cadencée par une horloge et elle comporte généralement un codeur de canal, un entrelaceur, un modulateur, et d’autres éléments conventionnels participant à la transmission d’un signal (filtres, oscillateurs, amplificateurs, convertisseur numérique/analogique, etc.). Après codage et entrelacement, les données à émettre sont modulées sous la forme de symboles. Un symbole peut correspondre à un bit ou à un ensemble de bits de données. Un symbole peut par exemple correspondre à une valeur particulière de phase, d’amplitude et/ou de fréquence du signal, selon la modulation utilisée. Pour recevoir le signal 72, le satellite 70 comporte une chaîne de réception. La chaine de réception est cadencée par une horloge et elle comporte généralement un échantillonneur, un dispositif de synchronisation de temps symbole, un démodulateur, un désentrelaceur, un décodeur de canal, et d’autres éléments conventionnels participant à la réception d’un signal (filtres, oscillateurs, amplificateurs, convertisseur analogique/numérique, etc.). Le rôle de l’échantillonneur est de prélever des valeurs du signal 72 à intervalles réguliers pour produire une suite de valeurs discrètes nommées échantillons. Le dispositif de synchronisation de temps symbole a pour rôle de détecter et synchroniser les symboles transportés par le signal 72 à partir des échantillons ainsi obtenus. Les symboles sont ensuite transformés en données binaires par le démodulateur. Les données binaires sont finalement décodées. Le signal 72 peut être un signal radio ou un signal optique. Les débits de données visés pour les communications spatiales considérées sont relativement élevés, par exemple supérieurs à 100 Mbit/s, voire supérieurs à 1 Gbit/s, voire même supérieurs à 10 Gbit/s. La modulation peut notamment être de type PSK (acronyme anglais pour « Phase-Shift Keying », en français « modulation par changement de phase ») ou NRZ-O3K (acronyme anglais de « Non-Return-to-Zero Optical On-Off Keying », en français « modulation optique par modulation tout-ou-rien sans retour à zéro »). Dans l’exemple considéré, le signal 72 est émis par la station terrestre 71 à destination du satellite 70. Rien n’empêcherait toutefois, selon un autre exemple, que ce soit le satellite 70 qui soit à l’origine de l’émission d’un signal à destination de la station terrestre 71. Dans ce cas, c’est le satellite 70 qui jouerait le rôle de dispositif émetteur avec une chaîne de transmission telle que celle précédemment décrite, et la station terrestre 71 jouerait le rôle de dispositif récepteur avec une chaîne de réception telle que celle précédemment décrite. Rien n’empêcherait non plus de considérer un dispositif émetteur et un dispositif récepteur d’un autre système de communications, par exemple un système de communications terrestres cellulaires. Pour atteindre des débits élevés, il devient nécessaire d’utiliser une architecture parallèle pour le dispositif de synchronisation de temps symbole afin de répondre aux exigences temps-réel des technologies FPGA ou ASIC utilisées pour le concevoir. La représente schématiquement un dispositif 10 de synchronisation de temps symbole selon l’invention. Comme expliqué précédemment, le dispositif 10 de synchronisation de temps symbole prend en entrée des échantillons x n et fournit en sortie des symboles X k . Le dispositif 10 de synchronisation de temps symbole est cadencé par une horloge (celle-ci n’est pas représentée sur les figures par soucis de simplification). Tel qu’illustré sur la , le dispositif 10 de synchronisation de temps symbole comporte un module 20 de mémorisation et de réordonnancement d’échantillons et un module 30 d’interpolation. Le rôle du module 30 d'interpolation est de traiter les échantillons x j en provenance du module 20 de mémorisation et de réordonnancement pour détecter et synchroniser les symboles X k à fournir au démodulateur. Le module 30 d’interpolation est en outre configuré pour fournir à chaque coup d’horloge une indication d’erreur temporelle Err-Ind (ou erreur de synchronisation) estimée à partir des échantillons x j en provenance du module 20 de mémorisation et de réordonnancement. L’indication d’erreur temporelle Err-Ind prend une valeur parmi « nominal », « dépassement inférieur » (« underrun » en anglais), ou « dépassement supérieur » (« overrun » en anglais). L’erreur temporelle peut être due à un biais de fréquence entre l’horloge du dispositif émetteur et celle du dispositif récepteur, ou par l’effet Doppler induit par une variation de la vitesse relative du dispositif émetteur par rapport au dispositif récepteur. Le cas « dépassement inférieur » correspond à la situation où la fréquence d’échantillonnage du dispositif récepteur est trop rapide par rapport à la fréquence des symboles. Le cas « dépassement supérieur » correspond à la situation où la fréquence d’échantillonnage du dispositif récepteur est trop lente par rapport à la fréquence des symboles. Le cas « nominal » correspond à la situation où la fréquence d’échantillonnage du dispositif récepteur est sensiblement synchronisée avec la fréquence des symboles. La valeur de l’erreur temporelle peut varier au cours du temps, notamment en raison de l’effet Doppler. Pour annuler l'erreur temporelle, certains échantillons doivent être conservés (dans le cas « dépassement inférieur ») ou supprimés (dans le cas « dépassement supérieur ») lorsque l'erreur s'est accumulée jusqu'à un certain niveau. Dans une architecture parallèle, il est alors nécessaire de réordonner la séquence des échantillons à traiter lorsqu’une opération de conservation (« keep » en anglais) ou de suppression (« skip » ou « delete » en anglais) d’un échantillon se produit. Le module 20 de mémorisation et de réordonnancement d’échantillons est configuré pour réordonner (ou réarranger) les échantillons fournis par l’échantillonneur avant de les mettre à disposition du module 30 d’interpolation. Le réordonnancement des échantillons est fait en fonction de l’indication d’erreur temporelle Err-Ind. En d’autres termes, c’est le module 20 de mémorisation et de réordonnancement d’échantillons qui est responsable de conserver ou supprimer certains échantillons en fonction de l’erreur temporelle observée, et de réordonner les échantillons de façon appropriée avant de les mettre à disposition du module 30 d’interpolation. La représente schématiquement un mode de réalisation du module 20 de mémorisation et de réordonnancement d’échantillons. Ce module 20 comprend un ensemble de 2 x P mémoires tampons 21 de type « premier entré, premier sorti », ou FIFOs (acronyme anglais pour « First-In First-Out »). P correspond à un facteur de parallélisation. P est un entier pair supérieur ou égal à quatre. De façon avantageuse, le facteur de parallélisation P peut en outre être choisi pour correspondre à une puissance de deux (cela permet de simplifier certaines parties de l’implémentation). Dans l’exemple considéré et illustré sur la , le facteur de parallélisation est égal à quatre (P = 4). Chaque FIFO 21 peut mémoriser plusieurs échantillons (par exemple huit échantillons par FIFO). Dans l’exemple considéré, un échantillon correspond à une paire de valeurs échantillonnées chacune respectivement sur la voie I (voie « en phase ») et sur la voie Q (voie « en quadrature »). Selon un autre exemple, un échantillon pourrait correspondre à une seule des voies I et Q, et il suffit alors de dupliquer la solution pour traiter chacune des deux voies I et Q. Dans l’exemple considéré, un échantillon est codé sur huit bits avec une quantification en virgule fixe de type Q(2.6). Rien n’empêcherait toutefois d’encoder un échantillon de façon différente, par exemple sur un nombre de bits différent et/ou avec une méthode de quantification différente, par exemple en virgule flottante. Les différentes manières de définir et encoder un échantillon ne sont que des variantes de l’invention. Le choix d’une méthode d’encodage ou de quantification dépend notamment des modulations et des rapports signal sur bruit (SNR pour « Signal to Noise Ratio » en anglais) envisagés. Les FIFOs 21 sont ordonnées cycliquement. On entend par exemple par-là que les FIFOs peuvent être identifiées chacune par un indice variant entre 0 et (2 x P - 1), et qu'elles sont ordonnées selon leur indice de telle sorte que pour un indice i variant entre 1 et (2 x P - 1), la FIFO d'indice (i - 1) précède la FIFO d'indice i et la FIFO d'indice (2 x P - 1) précède la FIFO d'indice 0. Dans l’exemple considéré et illustré sur la , les FIFOs 21 sont identifiées et ordonnées selon un indice variant de 0 à 7 (dans ce cas, l’ordre cyclique des indices des FIFOs est 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, … etc.). Il est à noter que rien n'empêcherait d’ordonner les FIFOs de façon différente. Par exemple, il serait envisageable de considérer que les FIFOs sont ordonnées comme suit : d’abord les FIFOs d’indice pair, par ordre croissant, et ensuite les FIFOs d’indice impair, par ordre croissant (dans ce cas, l’ordre cyclique des indices des FIFOs est 0, 2, 4, 6, 1, 3, 5, 7, 0, 2, 4, …etc.). A un coup d’horloge courant, un échantillon est écrit dans chacune de P FIFOs 21 successives qui n’ont pas été utilisées en écriture au coup d’horloge précédent. Dans l’exemple illustré à la , au coup d’horloge courant, quatre échantillons x n , x n+1 , x n+2 , x n+3 sont écrits respectivement dans les FIFO d’indice 0 à 3 (l’échantillons x n est écrit dans la FIFO 0 , l’échantillons x n+1 est écrit dans la FIFO 1 , l’échantillons x n+2 est écrit dans la FIFO 2 , l’échantillons x n+3 est écrit dans la FIFO 3 ). Au coup d’horloge suivant, les quatre échantillons x n+4 , x n+5 , x n+6 , x n+7 seront écrits respectivement dans les FIFO d’indice 4 à 7. Et ainsi de suite. Au coup d’horloge courant, un échantillon est lu dans chacune de P, (P - 1), ou (P + 1) FIFOs 21 successives selon que l'indication d’erreur temporelle Err-Ind fournie par le module 30 d'interpolation pour le coup d’horloge considéré est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Autrement dit, P échantillons sont lus lorsque l’indication d’erreur temporelle Err-Ind est « nominal », (P - 1) échantillons sont lus lorsque l’indication d’erreur temporelle Err-Ind est « dépassement inférieur », et (P + 1) échantillons sont lus lorsque l’indication d’erreur temporelle Err-Ind est « dépassement supérieur ». Les FIFOs 21 dans lesquelles un échantillon doit être lu sont définies en fonction des FIFOs 21 dans lesquelles des échantillons ont été lus au coup d'horloge précédent (les échantillons sont lus dans les FIFOs qui suivent les FIFOs dans lesquelles des échantillons ont été lus au coup d'horloge précédent). De façon conventionnelle, une FIFO 21 correspond à une zone mémoire associée à un pointeur d’écriture et un pointeur de lecture. Le pointeur d’écriture indique une adresse de la zone mémoire à laquelle le prochain échantillon doit être mémorisé. Le pointeur de lecture indique une adresse de la zone mémoire à laquelle l’échantillon le plus ancien qui n’a pas encore été lu est mémorisé (prochain échantillon à lire). Le pointeur d’écriture (respectivement le pointeur de lecture) est incrémenté à chaque opération d’écriture d’un échantillon (respectivement à chaque opération de lecture d’un échantillon). Il est à noter qu’il existe différentes façons de gérer une FIFO (pointeur qui parcourt la mémoire de façon circulaire, pointeur binaire avec code de Gray qui compte les actions de lecture ou d’écriture, etc.). Le choix d’une méthode particulière pour gérer la lecture ou l’écriture dans une FIFO n’est qu’une variante de l’invention. Chaque FIFO 21 peut être configurée pour activer une indication de risque de débordement lorsque le nombre d'échantillons mémorisés dans la FIFO 21 est supérieur ou égal à un seuil (le nombre d'échantillons mémorisés dans une FIFO 21 correspond au nombre d’échantillons qui ont été écrits dans ladite FIFO 21 et qui n’ont pas encore été lus). De même, chaque FIFO 21 peut être configurée pour activer une indication de risque de pénurie lorsque le nombre d’échantillons mémorisés dans la FIFO 21 est inférieur ou égal à un seuil. Les opérations d’écriture et/ou de lecture dans les FIFOs 21 peuvent alors être contrôlées en fonction de ces indications de risque de débordement et/ou de risque de pénurie. Ces aspects seront décrits ultérieurement en référence aux figures 5 et 6. Pour chaque FIFO 21, le prochain échantillon à fournir au module 30 d’interpolation correspond à l’échantillon indiqué par le pointeur de lecture de ladite FIFO 21. Le module 20 de mémorisation et de réordonnancement d’échantillons comprend un réseau de permutation 23 configuré pour réordonner ces échantillons à fournir au module 30 d’interpolation. Le réseau de permutation 23 correspond par exemple à une unité de calcul capable d'effectuer des opérations de rotation binaire (« barrel shifter » en anglais). Une rotation binaire est similaire à un décalage logique (décalage des bits d’une ou plusieurs places vers la droite ou vers la gauche), à ceci près que chaque bit sortant est réinjecté à la place libérée par le décalage. Au coup d’horloge courant, la permutation à effectuer est définie en fonction d'un compteur dont la valeur courante est définie en fonction de la valeur dudit compteur au coup d’horloge précédent et en fonction de l'indication d’erreur temporelle Err-Ind fournie par le module 30 d'interpolation au coup d’horloge précédent. La permutation à effectuer dépend en effet de l’historique des opérations de conservation et/ou de suppression d’échantillons qui ont été successivement effectuées aux coups d’horloge précédents. La mise à jour du compteur à chaque coup d’horloge en fonction de l'indication d’erreur temporelle Err-Ind permet d’identifier la FIFO 21 à partir de laquelle les prochains échantillons doivent être fournis au module 30 d’interpolation. Le module 20 de mémorisation et de réordonnancement d’échantillons comprend une unité de contrôle 22 configurée pour exécuter les opérations de lecture et d’écriture dans les FIFOs 21 et les opérations de réordonnancement des échantillons avec le réseau de permutation 23. L’unité de contrôle 22 est notamment configurée pour contrôler les FIFOs dans lesquelles un échantillon doit être écrit, pour contrôler les FIFOs dans lesquelles un échantillon doit être lus, et pour contrôler le réseau de permutation 23. Sur l’exemple illustré à la , le contrôle en écriture est représenté par l’indication WC (« Write Control ») qui indique dans quelles FIFOs 21 un échantillon doit être écrit, le contrôle en lecture est représenté par l’indication RC (« Read Control ») qui indique dans quelles FIFOs 21 un échantillon doit être lu, et le contrôle du réseau de permutation 23 est représenté par l’indication SC (« Shift Control ») qui indique dans quel ordre les échantillons disponibles doivent être fournis au module 30 d’interpolation. Les figures 5 à 7, qui seront décrites en détail ultérieurement, illustrent des modes particuliers de mise en œuvre de l’écriture, de la lecture, et du réordonnancement des échantillons. La représente schématiquement un mode de réalisation du module 30 d’interpolation. Dans l’exemple considéré, l’algorithme de Gardner est utilisé (dans sa version pour une architecture parallèle). Le module 30 d’interpolation comprend deux blocs 31 parallèles d’interpolation. De façon similaire à ce qui est décrit dans le document « A Parallel Timing Synchronization Structure in Real-Time High Transmission Capacity Wireless Communication Systems », Xin Hao et al., chaque bloc 31 comprend deux interpolateurs 32 et une unité 33 de détection d’erreur temporelle. L’unité 33 de détection d’erreur temporelle est alimentée par les deux interpolateurs 32 du bloc 31 auquel elle appartient, ainsi que par l’un des deux interpolateurs 32 de l’autre bloc 31. A un coup d’horloge, chaque interpolateur 32 prend en entrée quatre échantillons parmi les échantillons mis à disposition par le module 20 de mémorisation et de réordonnancement d’échantillons : le premier interpolateur 32 du premier bloc 31 prend en entrée les échantillons x j , x j+1 , x j+2 , x j+3 ; le deuxième interpolateur 32 du premier bloc 31 prend en entrée les échantillons x j+1 , x j+2 , x j+3 , x j+4 ; le premier interpolateur 32 du deuxième bloc 31 prend en entrée les échantillons x j+2 , x j+3 , x j+4 , x j+5 ; le deuxième interpolateur 32 du deuxième bloc 31 prend en entrée les échantillons x j+3 , x j+4 , x j+5 , x j+6. Chaque bloc 31 fournit en sortie un symbole : le premier bloc 31 fournit le symbole X k ; le deuxième bloc 31 fournit le symbole X k+1. Ainsi, à chaque coup d’horloge quatre nouveaux échantillons (x n , x n+1 , x n+2 , x n+3 ) fournis par l’échantillonneur sont traités par le module 20 de mémorisation et de réordonnancement et deux nouveaux symboles (X k , X k+1 ) sont fournis par le module 30 d’interpolation. De façon générale, l’utilisation d’un facteur de parallélisation de valeur P permet au dispositif 10 de synchronisation de temps symbole, à chaque coup d’horloge, de traiter P nouveaux échantillons en entrée et de fournir P/2 nouveaux symboles en sortie. A chaque coup d’horloge P + 3 échantillons sont traités par le module 30 d’interpolation. Le module 30 d’interpolation comporte une unité de contrôle 37 configurée pour estimer, de façon conventionnelle (algorithme de Gardner) une erreur temporelle à partir des erreurs temporelles détectées individuellement par chacun des blocs 31. L’unité de contrôle 37 peut notamment s’appuyer sur des unités de calcul de type additionneur 34, multiplieur/diviseur 35 et filtre de boucle 36 pour estimer l’erreur temporelle. L’unité de contrôle 37 est aussi configurée pour fournir l’indication d’erreur temporelle Err-Ind au module 20 de mémorisation et de réordonnancement en fonction de l’erreur temporelle estimée. La représente schématiquement un mode particulier d’implémentation du contrôle de l’écriture dans les FIFOs de P nouveaux échantillons. Dans ce mode particulier d’implémentation, l'écriture dans les FIFOs est contrôlée par un masque d'écriture WM (« Write Mask ») comportant 2 x P bits. Chaque bit du masque d’écriture est respectivement associé à une FIFO 21 et indique si ladite FIFO 21 doit ou non être utilisée en écriture. Le masque d’écriture WM peut prendre deux valeurs possibles distinctes WM 1 et WM 2 présentant chacune exactement P bits indiquant que les FIFOs associées doivent être utilisées en écriture (il s’agit de FIFOs successives, c’est-à-dire qu’elles se suivent dans l’ordre cyclique des FIFOs). Les valeurs WM 1 et WM 2 ne présentent aucun bit en commun. Dans l’exemple considéré et illustré à la , le facteur de parallélisation P est égal à quatre (P = 4). Le masque d’écriture WM comporte donc huit bits (2 x P = 8). Un bit à ‘1’ indique que la FIFO associée doit être utilisée en écriture. Un bit à ‘0’ indique que la FIFO associée ne doit pas être utilisée en écriture. Les bits sont ordonnés de gauche à droite et l’indice d’un bit correspond à l’indice de la FIFO à laquelle il est associé. Le masque WM 1 dont la valeur binaire est 0b11110000 indique que seules les quatre FIFOs d’indice 0 à 3 doivent être utilisées en écriture. Le masque WM 2 dont la valeur binaire est 0b00001111 indique que seules les quatre FIFOs d’indice 4 à 7 doivent être utilisées en écriture. Il est à noter que rien n'empêcherait d’utiliser des valeurs différentes pour WM 1 et WM 2 . Par exemple, si les FIFOs sont ordonnées en considérant d’abord les FIFOs d’indice pair et ensuite les FIFOs d’indice impair, alors le masque WM 1 peut prendre la valeur binaire 0b10101010 et le masque WM 2 peut prendre la valeur binaire 0b01010101. On peut également noter qu’il n’est pas indispensable que l’indice d’un bit d’un masque d’écriture corresponde à l’indice de la FIFO à laquelle il est associé : il serait par exemple possible de considérer que les quatre premiers bits du masque d’écriture correspondent aux quatre FIFOs d’indice pair, puis que les quatre bits suivants du masque d’écriture correspondent aux quatre FIFOs d’indice impair. Rien n’empêcherait non plus d’utiliser une logique inversée pour laquelle un bit à ‘0’ indique que la FIFO associée doit être utilisée en écriture, et un bit à ‘1’ indique que la FIFO associée ne doit pas être utilisée en écriture. L’unité de contrôle 22 est configurée pour changer la valeur du masque d’écriture WM à chaque coup d'horloge. Dans l’exemple considéré et illustré à la , le choix de la valeur à utiliser pour le masque d’écriture WM parmi WM 1 et WM 2 est effectué par un multiplexeur 41 contrôlé par une valeur binaire 42 mise à jour à chaque coup d’horloge à l’aide d’une porte 43 configurée pour effectuer une opération logique « OU exclusif » (XOR) entre ladite valeur binaire 42 et la valeur ‘1’. D’autres modes d’implémentation pourraient toutefois être envisagés, par exemple en utilisant un registre mémorisant la valeur du masque d’écriture WM et sur lequel une opération de complément à un (inversion de tous les bits) est effectuée à chaque coup d’horloge. Le tableau ci-dessous donne un exemple de valeurs prises par le masque d’écriture WM à des coups d’horloge successifs. Dans le tableau ci-dessous, la notation CK p représente un coup d’horloge d’indice p. CK WM … … CK p-1 0b11110000 CK p 0b00001111 CK p+1 0b11110000 CK p+2 0b00001111 … … Comme indiqué précédemment, chaque FIFO 21 peut être configurée pour activer une indication 44 de risque de débordement lorsque le nombre d'échantillons mémorisés dans la FIFO 21 est supérieur ou égal à un seuil. Dans l’exemple considéré, chaque FIFO peut comporter jusqu’à huit échantillons, l’indication 44 de risque de débordement prend la valeur ‘1’ lorsqu’il y a au moins six échantillons présents dans la FIFO, sinon l’indication 44 de risque de débordement prend la valeur ‘0’. La porte 45 est configurée pour effectuer une opération logique « OU » (OR) entre les indications 44 de risque de débordement des différentes FIFOs 21. La porte 45 « OU » contrôle un multiplexeur 46 pour définir la valeur d’un masque binaire d’autorisation en écriture WA (« Write Authorization »). Le masque WA prend la valeur 0b00000000 lorsqu’une indication 44 de risque de débordement est à ‘1’ pour au moins une des FIFOs (c’est-à-dire lorsque le résultat de la porte 45 « OU » est ‘1’). Le masque WA prend la valeur 0b11111111 lorsque l’indication 44 de risque de débordement est à ‘0’ pour toutes les FIFOs (c’est-à-dire lorsque le résultat de la porte 45 « OU » est ‘0’). La porte 47 est configurée pour effectuer une opération logique « ET » (AND) entre le masque WM et le masque WA. La porte 47 « ET » fournit en sortie le masque binaire WC qui contrôle les FIFOs dans lesquelles un échantillon doit être écrit. Ainsi, l'écriture dans les FIFOs 21 est autorisée si et seulement si l'indication 44 de risque de débordement n'est activée pour aucune des FIFOs 21. Il convient de noter que, dans la description ci-avant de la , on fait l’hypothèse d’avoir P échantillons valides au coup d’horloge considéré. Ce n’est toutefois pas nécessairement toujours le cas. Par exemple, si l’horloge qui cadence le dispositif 10 de synchronisation de temps symbole est plus rapide que l’horloge du convertisseur analogique/numérique, de nouveaux échantillons pourraient ne pas être disponibles à certains coups d’horloge. Il est alors envisageable de prendre en compte une indication supplémentaire qui renseigne sur la validité des échantillons au coup d’horloge considéré (par souci de simplification, cette indication de validité des échantillons n’est pas représentée sur les figures). Dans un tel cas, l’écriture dans les FIFOs 21 ainsi que la mise à jour du masque d’écriture WM seraient conditionnées par cette indication de validité des échantillons. La représente schématiquement un mode particulier d’implémentation du contrôle de la lecture dans les FIFOs de P, (P - 1) ou (P + 1) échantillons en fonction de l’indiction Err-Ind. Dans ce mode particulier d’implémentation, la lecture dans les FIFOs 21 est contrôlée par un masque de lecture RM (« Read Mask ») comportant 2 x P bits. Ce masque de lecture RM correspond à l’un des masques de lecture RM 1 , RM 2 et RM 3 . Le choix du masque de lecture à utiliser est fait par l’intermédiaire du multiplexeur 53 qui est contrôlé par l’indication d’erreur temporelle Err-Ind. Par exemple, le masque de lecture RM 1 est utilisé lorsque l’indication d’erreur temporelle Err-Ind vaut « nominal », le masque de lecture RM 2 est utilisé lorsque l’indication d’erreur temporelle Err-Ind vaut « dépassement inférieur » et le masque de lecture RM 3 est utilisé lorsque l’indication Err-Ind vaut « dépassement supérieur ». Chaque bit d’un masque de lecture est respectivement associé à une FIFO 21 et indique si ladite FIFO 21 doit ou non être utilisée en lecture. Comme pour les FIFOs 21, les bits des masques de lecture sont ordonnés cycliquement : pour un indice i variant entre 1 et (2 x P - 1), le bit d'indice (i - 1) précède le bit d'indice i et le bit d'indice (2 x P - 1) précède le bit d'indice 0. Dans l’exemple considéré et illustré à la , le facteur de parallélisation P est égal à quatre (P = 4) et les masques de lecture comportent chacun huit bits. Un bit à ‘1’ indique que la FIFO associée doit être utilisée en lecture, un bit à ‘0’ indique que la FIFO associée ne doit pas être utilisée en lecture (là encore, rien n’empêcherait d’utiliser une logique inverse). Les bits sont ordonnés de gauche à droite et l’indice d’un bit correspond à l’indice de la FIFO à laquelle il est associé. Le masque de lecture RM 1 qui est associé à l’indication « nominal » comporte exactement P bits successifs à ‘1’. Le masque de lecture RM 2 qui est associé à l’indication « dépassement inférieur » comporte exactement (P - 1) bits successifs à ‘1’. Le masque de lecture RM 3 qui est associé à l’indication « dépassement supérieur » comporte exactement (P + 1) bits successifs à ‘1’. Par exemple, le masque de lecture RM 1 est initialisé à la valeur binaire 0b11110000 (pour indiquer que seules les quatre FIFOs d’indice 0 à 3 doivent être utilisées en lecture) ; le masque de lecture RM 2 est initialisé à la valeur binaire 0b11100000 (pour indiquer que seules les trois FIFOs d’indice 0 à 2 doivent être utilisées en lecture) ; le masque de lecture RM 3 est initialisé à la valeur binaire 0b11111000 (pour indiquer que seules les cinq FIFOs d’indice 0 à 4 doivent être utilisées en lecture). A un coup d’horloge courant, l’unité de contrôle 22 est configurée pour mettre à jour chacun des trois masques de lecture RM 1 , RM 2 et RM 3 , pour le coup d'horloge suivant, en effectuant une rotation binaire de la valeur courante desdits masques de lecture respectivement de P, (P - 1) ou (P + 1) bits selon que l'indication d’erreur temporelle Err-Ind fournie par le module 30 d'interpolation est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Autrement dit, si l’indication est « nominal », chacun des trois masques de lecture RM 1 , RM 2 et RM 3 subit une rotation de P bits ; si l’indication est « dépassement inférieur », chacun des trois masques de lecture RM 1 , RM 2 et RM 3 subit une rotation de (P - 1) bits ; si l’indication est « dépassement supérieur », chacun des trois masques de lecture RM 1 , RM 2 et RM 3 subit une rotation de (P + 1) bits. Ainsi, les FIFOs 21 dans lesquelles un échantillon doit être lu au coup d’horloge courant sont les FIFOs 21 qui suivent les FIFOs 21 dans lesquelles des échantillons ont été lus au coup d'horloge précédent : si l’indice de la dernière FIFO qui a été utilisée en lecture au coup d’horloge précédent pend une valeur i comprise entre 0 et (2 x P - 2), alors la première FIFO à utiliser en lecture au coup d’horloge courant est l’indice (i + 1) ; si l’indice de la dernière FIFO qui a été utilisée en lecture au coup d’horloge précédent a pour valeur (2 x P - 1), alors la première FIFO à utiliser en lecture au coup d’horloge courant est celle dont l’indice vaut 0. Sur la , les blocs 51 « ROT » représentent chacun un circuit électronique capable d’effectuer une opération de rotation binaire. Dans l’exemple considéré, il s’agit d’une rotation vers la droite (car le bit d’indice 0 correspondant à la première FIFO est le bit le plus à gauche, c’est-à-dire le bit de poids le plus fort) mais il est évident qu’on pourrait également utiliser une rotation vers la gauche si les bits étaient ordonnés dans l’autre sens. Le tableau ci-dessous donne un exemple de valeurs prises par les masques de lecture à des coups d’horloge successifs. Dans le tableau ci-dessous, la notation CK p représente un coup d’horloge d’indice p ; la notation RM correspond au masque de lecture utilisé pour le coup d’horloge courant ; la notation « Next RM i » correspond à la valeur du masque de lecture RM i mise à jour pour le coup d’horloge suivant (avec i = 1, 2 ou 3). CK Err-Ind RM Next RM 1 Next RM 2 Next RM 3 … … … 0b11110000 0b11100000 0b11111000 CK p-1 Normal 0b11110000 0b00001111 0b00001110 0b10001111 CK p Normal 0b00001111 0b11110000 0b11100000 0b11111000 CK p+1 Dépassement supérieur 0b11111000 0b10000111 0b00000111 0b11000111 CK p+2 Normal 0b10000111 0b01111000 0b01110000 0b01111100 … … … … … … Comme indiqué précédemment, chaque FIFO 21 peut être configurée pour activer une indication 54 de risque de pénurie lorsque le nombre d'échantillons mémorisés dans la FIFO 21 est inférieur ou égal à un seuil. Dans l’exemple considéré, chaque FIFO peut comporter jusqu’à huit échantillons, l’indication 54 de risque de pénurie prend la valeur ‘1’ lorsque le nombre d'échantillons dans la FIFO 21 est inférieur ou égal à deux, sinon l’indication 54 de risque de pénurie prend la valeur ‘0’. La porte 55 est configurée pour effectuer une opération logique « OU » (OR) entre les indications 54 de risque de pénurie des différentes FIFOs 21. La porte 55 « OU » contrôle le multiplexeur 56 pour définir la valeur d’un masque binaire d’autorisation en lecture RA (« Read Authorization »). Le masque RA prend la valeur 0b00000000 lorsqu’une indication 54 de risque de pénurie est à ‘1’ pour au moins une des FIFOs (c’est-à-dire lorsque le résultat de la porte 55 « OU » est ‘1’). Le masque RA prend la valeur 0b11111111 lorsque l’indication 54 de risque de pénurie est à ‘0’ pour toutes les FIFOs (c’est-à-dire lorsque le résultat de la porte 55 « OU » est ‘0’). La porte 57 est configurée pour effectuer une opération logique « ET » (AND) entre le masque RM et le masque RA. La porte 57 « ET » fournit en sortie le masque binaire RC qui contrôle les FIFOs dans lesquelles un échantillon doit être lu. Ainsi, la lecture dans les FIFOs 21 est autorisée si et seulement si l'indication 54 de risque de pénurie n'est activée pour aucune des FIFOs 21. Alternativement ou en complément, un mécanisme peut être mis en œuvre pour interdire la lecture dans les FIFOs 21 pendant un nombre prédéterminé de coups d’horloge après une réinitialisation du dispositif 10 de synchronisation, afin de laisser du temps aux FIFOs 21 de se remplir. Lorsque le contrôle de la lecture dans les FIFOs utilise des opérations de rotation sur des masques de lecture binaires, comme décrit ci-dessus en référence à la , les bits sont ordonnés de gauche à droite (ou de droite à gauche) dans le même ordre cyclique que les FIFOs auxquelles ils sont respectivement associés. On peut toutefois noter qu’il n’est pas indispensable que l’indice d’un bit d’un masque de lecture corresponde à l’indice de la FIFO à laquelle il est associé. Conformément à ce qui a été décrit précédemment en référence à la , il est envisageable d’utiliser une indication supplémentaire renseignant sur la validité des échantillons au coup d’horloge considéré. Dans un tel cas, la lecture dans les FIFOs 21 ainsi que la mise à jour des masques de lecture RM 1 , RM 2 , et RM 3 seraient conditionnées par cette indication de validité des échantillons. La représente schématiquement un mode particulier d’implémentation du contrôle du réseau de permutation 23. Dans l’exemple considéré, le réseau de permutation 23 est un circuit électronique capable d'effectuer des opérations de rotation binaire. Au coup d’horloge courant, la rotation à effectuer est définie en fonction de l’indication SC (« Shift Control »). Plus particulièrement, l’indication SC permet de définir le nombre de bits à décaler selon l’opération de rotation. L’indication SC correspond à un compteur 64 dont la valeur courante est définie en fonction de la valeur dudit compteur 64 au coup d’horloge précédent et en fonction de l'indication d’erreur temporelle Err-Ind fournie par le module 30 d'interpolation au coup d’horloge précédent. La mise à jour du compteur 64 à chaque coup d’horloge en fonction de l'indication d’erreur temporelle Err-Ind permet d’identifier la FIFO 21 à partir de laquelle les prochains échantillons doivent être fournis au module 30 d’interpolation. Le nombre de bits avec lesquels la valeur du compteur 64 est codée est égal au plafond (c’est-à-dire à l’entier supérieur le plus proche) du logarithme binaire de 2 x P (i.e. ), c’est-à-dire trois bits dans l’exemple considéré (P = 4 et ). Au coup d’horloge courant, l’unité de contrôle 22 est configurée pour mettre à jour le compteur 64, pour le coup d'horloge suivant, en effectuant une addition modulo 2 x P de la valeur courante du compteur 64 avec la valeur P, P - 1 ou P + 1 selon que l'indication d’erreur temporelle Err-Ind fournie par le module 30 d'interpolation est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Le choix de la valeur à utiliser en fonction de l'indication d’erreur temporelle Err-Ind est mis en œuvre par le multiplexeur 62. L’addition modulo 2 x P est mise en œuvre par l’additionneur 63 (il s’agit d’un additionneur 2 x P bits). On peut noter que choisir la valeur P comme une puissance de deux permet de simplifier l’implémentation matérielle de l’additionneur 63 (un additionneur sur N bits rend directement une somme modulo 2 N ). Comme indiqué précédemment, à un coup d’horloge, chaque interpolateur 32 prend en entrée quatre échantillons mis à disposition par le module 20 de mémorisation et de réordonnancement. Dans l’exemple considéré, il y a quatre interpolateurs 32 (P = 4) ; sept échantillons sont mis à disposition des quatre interpolateurs 32 (P + 3 = 7). Chacun de ces sept échantillons correspond au premier échantillon disponible dans une FIFO 21 (c’est-à-dire à l’échantillon indiqué par le pointeur de lecture de cette FIFO, ou autrement dit à l’échantillon qui sera lu à la prochaine lecture de cette FIFO). La valeur SC du compteur 64 indique l’ordre dans lequel ces échantillons doivent être mis à disposition du module 30 d’interpolation (le compteur 64 indique l’indice de la FIFO 21 à partir de laquelle les prochains échantillons doivent être mis à disposition du module 30 d’interpolation). En d’autres termes, si on considère la concaténation des valeurs binaires des échantillons disponibles à un coup d’horloge courant, le réordonnancement des échantillons à fournir au module 30 d’interpolation revient à effectuer une rotation binaire d’un nombre de bits égal à la valeur SC du compteur 64 multipliée par la taille en bits d’un échantillon. Le tableau ci-dessous donne un exemple des valeurs SC prises par le compteur 64 à des coups d’horloge successifs ainsi que les FIFOs à utiliser pour mettre des échantillons à disposition du module 30 d’interpolation. Dans le tableau ci-dessous, la notation CK p représente un coup d’horloge d’indice p ; la notation SC correspond à la valeur SC du compteur 64 pour le coup d’horloge courant ; la notation « Next SC » correspond à la valeur SC du compteur 64 après mise à jour pour le coup d’horloge suivant. CK Err-Ind SC Next SC FIFOs utilisées pour mettre des échantillons à disposition du module d’interpolation … … … 0 … CK p-1 Normal 0 4 FIFO 0 à FIFO 6 CK p Normal 4 0 FIFO 4 à FIFO 7 puis FIFO 0 à FIFO 2 CK p+1 Dépassement supérieur 0 5 FIFO 0 à FIFO 6 CK p+2 Normal 5 1 FIFO 5 à FIFO 7 puis FIFO 0 à FIFO 3 CK p+3 Normal 1 5 FIFO 1 à FIFO 7 CK p+4 Dépassement inférieur 5 0 FIFO 5 à FIFO 7 puis FIFO 0 à FIFO 3 CK p+5 Dépassement inférieur 0 3 FIFO 0 à FIFO 6 … … 3 … FIFO 3 à FIFO 7 puis FIFO 0 à FIFO 1 S’il n’y a pas eu de lecture dans les FIFOs au coup d’horloge courant, par exemple en raison d’un risque de pénurie, suite à une réinitialisation, ou si les échantillons ne sont pas valides, alors le compteur 64 n’est pas mis à jour et l’étape de réordonnancement des échantillons n’est pas effectuée. La représente schématiquement les principales étapes d’un procédé 100 de fonctionnement d’un dispositif de synchronisation de temps symbole selon l’invention, notamment un dispositif 10 de synchronisation de temps symbole tel que celui décrit ci-avant en référence aux figures 2 à 7. A un coup d’horloge courant, et dans un cas nominal (c’est-à-dire lorsque les échantillons en entrée sont valides et qu’il n’y a pas d’indication de risque de pénurie ou de débordement dans les FIFOs), le procédé 100 comporte les étapes suivantes : une écriture 101 d’un échantillon dans chacune de P FIFOs 21 successives qui n’ont pas été utilisées en écriture au coup d’horloge précédent, une lecture 102 d’un échantillon dans chacune de P, P - 1, ou P + 1 FIFOs 21 successives selon que l'indication d’erreur temporelle Err-Ind fournie par le module 30 d'interpolation est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur » ; les FIFOs 21 dans lesquelles un échantillon doit être lu étant définies en fonction des FIFOs 21 dans lesquelles des échantillons ont été lus au coup d'horloge précédent, un réordonnancement 103 des échantillons à fournir au module 30 d’interpolation en fonction d'un compteur 64 dont la valeur courante est définie en fonction de la valeur du compteur 64 au coup d’horloge précédent et en fonction de l'indication d’erreur temporelle Err-Ind fournie par le module 30 d'interpolation au coup d’horloge précédent, une fourniture 104 des échantillons réordonnés au module 30 d’interpolation. Les solutions présentées dans la description ci-avant permettent de mettre en œuvre de façon relativement simple et particulièrement efficace un dispositif 10 de synchronisation de temps symbole à architecture parallèle capable de supporter des débits très élevés. Les modes particuliers de réalisation décrits notamment en référence aux figures 5 à 7 sont particulièrement avantageux puisqu’ils permettent de réarranger dynamiquement les échantillons à fournir au module 30 d’interpolation en utilisant des opérations de rotation binaire relativement peu couteuses en termes d’implémentation matérielle et de temps de calcul. Il convient toutefois de noter que ces modes particuliers de réalisation ont été décrits à titre d’exemples non limitatifs, et que d’autres variantes sont par conséquent envisageables. L’invention a été décrite en considérant des systèmes de communications spatiales optiques ou radio avec des débits supérieurs à 100 Mbits/s. Rien n’exclut cependant, suivant d’autres exemples, de considérer d’autres systèmes de communications, notamment des communications terrestres, par exemple des communications cellulaires. Dispositif (10) de synchronisation de temps symbole à architecture parallèle, configuré pour être cadencé par une horloge, et comprenant : un module (20) de mémorisation et de réordonnancement d’échantillons comprenant une unité de contrôle (22) et 2 x P mémoires tampons (21) de type « premier entré, premier sorti », ou FIFOs (21), P étant un entier pair supérieur ou égal à quatre, chaque FIFO (21) pouvant mémoriser plusieurs échantillons, les FIFOs (21) étant ordonnés cycliquement, un module (30) d’interpolation configuré pour fournir à chaque coup d’horloge une indication d’erreur temporelle (Err-Ind) déterminée à partir d’échantillons en provenance du module (20) de mémorisation et de réordonnancement, ladite indication d’erreur temporelle (Err-Ind) prenant une valeur parmi « nominal », « dépassement inférieur » ou « dépassement supérieur », à un coup d’horloge courant, l’unité de contrôle (22) est configurée pour : écrire un échantillon dans chacune de P FIFOs (21) successives qui n’ont pas été utilisées en écriture au coup d’horloge précédent, lire un échantillon dans chacune de P, P - 1, ou P + 1 FIFOs (21) successives selon que l'indication d’erreur temporelle (Err-Ind) est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur », les FIFOs (21) dans lesquelles un échantillon doit être lu étant définies en fonction des FIFOs (21) dans lesquelles des échantillons ont été lus au coup d'horloge précédent, réordonner des échantillons à fournir au module (30) d’interpolation à l’aide d’un réseau de permutation (23) et en fonction d'un compteur (64) dont la valeur courante est définie en fonction de la valeur dudit compteur (64) au coup d’horloge précédent et en fonction de l'indication d’erreur temporelle (Err-Ind) fournie par le module (30) d'interpolation au coup d’horloge précédent. Dispositif (10) de synchronisation selon la revendication 1 dans lequel l'écriture dans les FIFOs (21) est contrôlée par un masque d'écriture (WM) binaire comportant 2 x P bits, chaque bit étant respectivement associé à une FIFO (21) et indiquant si ladite FIFO (21) doit ou non être utilisée en écriture, le masque d’écriture (WM) pouvant prendre deux valeurs (WM 1 , WM 2 ) possibles distinctes présentant chacune exactement P bits indiquant que les FIFOs (21) associées doivent être utilisées en écriture, lesdites valeurs (WM 1 , WM 2 ) ne présentant aucun bit en commun, et l’unité de contrôle (22) est configurée pour changer la valeur du masque d’écriture (WM) à chaque coup d'horloge. Dispositif (10) de synchronisation selon l’une quelconque des revendications 1 à 2 dans lequel la lecture dans les FIFOs (21) est contrôlée par trois masques de lecture (RM 1 , RM 2 , RM 3 ) binaires comportant chacun 2 x P bits ordonnés cycliquement, chaque bit étant respectivement associé à une FIFO (21) et indiquant si ladite FIFO (21) doit ou non être utilisée en lecture, chaque masque de lecture (RM 1 , RM 2 , RM 3 ) étant associé respectivement à l'une des trois valeurs possibles de l'indication d’erreur temporelle (Err-Ind), chaque masque de lecture (RM 1 , RM 2 , RM 3 ) comportant exactement P, P - 1 ou P + 1 bits successifs indiquant que les FIFOs associées doivent être utilisées en lecture selon que le masque de lecture (RM 1 , RM 2 , RM 3 ) est associé respectivement à l’indication « nominal », « dépassement inférieur » ou « dépassement supérieur », et l’unité de contrôle (22) est configurée, pour ledit coup d’horloge courant, pour : identifier le masque de lecture (RM 1 , RM 2 , RM 3 ) à utiliser en fonction de l'indication d’erreur temporelle (Err-Ind), mettre à jour chaque masque de lecture (RM 1 , RM 2 , RM 3 ), pour le coup d'horloge suivant, en effectuant une rotation binaire (51) de la valeur courante dudit masque de lecture (RM 1 , RM 2 , RM 3 ) de P, P - 1 ou P + 1 bits selon que l'indication d’erreur temporelle (Err-Ind) est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Dispositif (10) de synchronisation selon l’une quelconque des revendications 1 à 3 dans lequel, pour réordonner les échantillons à fournir au module (30) d’interpolation, l’unité de contrôle (22) est configurée pour : commander le réseau de permutation (23) pour effectuer une rotation binaire sur lesdits échantillons d'un nombre de bits défini à partir de la valeur courante du compteur (64), mettre à jour le compteur (64), pour le coup d'horloge suivant, en effectuant une addition modulo 2 x P de la valeur courante du compteur (64) avec la valeur P, P - 1 ou P + 1 selon que l'indication d’erreur temporelle (Err-Ind) est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Dispositif récepteur d’un système de communications comportant un dispositif (10) de synchronisation selon l’une quelconque des revendications 1 à 4. Satellite (70) comportant un dispositif récepteur selon la revendication 5. Satellite (70) selon la revendication 6 dans lequel le système de communications est un système de communications spatiales offrant un débit de données au moins égal à 100 Mbit/s. Procédé (100) de fonctionnement d’un dispositif (10) de synchronisation de temps symbole à architecture parallèle, ledit dispositif (10) de synchronisation étant cadencé par une horloge et comprenant : un module (20) de mémorisation et de réordonnancement d’échantillons comprenant 2 x P mémoires tampons (21) de type « premier entré, premier sorti », ou FIFOs (21), P étant un entier pair supérieur ou égal à quatre, chaque FIFO (21) pouvant mémoriser plusieurs échantillons, les FIFOs (21) étant ordonnés cycliquement, un module (30) d’interpolation configuré pour fournir à chaque coup d’horloge une indication d’erreur temporelle (Err-Ind) déterminée à partir d’échantillons en provenance du module (20) de mémorisation et de réordonnancement, ladite indication d’erreur temporelle (Err-Ind) prenant une valeur parmi « nominal », « dépassement inférieur » ou « dépassement supérieur », ledit procédé (100) comporte, à un coup d’horloge courant : une écriture (101) d’un échantillon dans chacune de P FIFOs (21) successives qui n’ont pas été utilisées en écriture au coup d’horloge précédent, une lecture (102) d’un échantillon dans chacune de P, P - 1, ou P + 1 FIFOs (21) successives selon que l'indication d’erreur temporelle (Err-Ind) est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur », les FIFOs (21) dans lesquelles un échantillon doit être lu étant définies en fonction des FIFOs (21) dans lesquelles des échantillons ont été lus au coup d'horloge précédent, un réordonnancement (103) d’échantillons à fournir au module (30) d’interpolation en fonction d'un compteur (64) dont la valeur courante est définie en fonction de la valeur du compteur (64) au coup d’horloge précédent et en fonction de l'indication d’erreur temporelle (Err-Ind) fournie par le module (30) d'interpolation au coup d’horloge précédent, une fourniture (104) des échantillons réordonnés au module (30) d’interpolation. Procédé (100) selon la revendication 8 dans lequel l'écriture (101) dans les FIFOs (21) est contrôlée par un masque d'écriture (WM) binaire comportant 2 x P bits, chaque bit étant associé respectivement à une FIFO (21) et indiquant si ladite FIFO (21) doit ou non être utilisée en écriture, le masque d’écriture (WM) pouvant prendre deux valeurs (WM 1 , WM 2 ) possibles distinctes présentant chacune exactement P bits indiquant que les FIFOs (21) associées doivent être utilisées en écriture, lesdites valeurs (WM 1 , WM 2 ) ne présentant aucun bit en commun, et la valeur du masque d’écriture (WM) est changée à chaque coup d'horloge. Procédé (100) selon l’une quelconque des revendications 8 à 9 dans lequel la lecture (102) dans les FIFOs (21) est contrôlée par trois masques de lecture (RM 1 , RM 2 , RM 3 ) binaires comportant chacun 2 x P bits ordonnés cycliquement, chaque bit étant associé respectivement à une FIFO (21) et indiquant si ladite FIFO (21) doit ou non être utilisée en lecture, chaque masque de lecture (RM 1 , RM 2 , RM 3 ) étant associé respectivement à l'une des trois valeurs possibles de l'indication d’erreur temporelle (Err-Ind), chaque masque de lecture (RM 1 , RM 2 , RM 3 ) comportant exactement P, P - 1 ou P + 1 bits successifs indiquant que les FIFOs associées doivent être utilisées en lecture selon que le masque de lecture (RM 1 , RM 2 , RM 3 ) est associé respectivement à l’indication « nominal », « dépassement inférieur » ou « dépassement supérieur », et la lecture (102) comporte : une identification du masque de lecture (RM 1 , RM 2 , RM 3 ) à utiliser en fonction de l'indication d’erreur temporelle (Err-Ind), une mise à jour de chaque masque de lecture (RM 1 , RM 2 , RM 3 ), pour le coup d'horloge suivant, en effectuant une rotation binaire (51) de la valeur courante dudit masque de lecture (RM 1 , RM 2 , RM 3 ) de P, P - 1 ou P + 1 bits selon que l'indication d’erreur temporelle (Err-Ind) est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Procédé (100) selon l’une quelconque des revendications 8 à 10 dans lequel le réordonnancement (103) des échantillons à fournir au module (30) d’interpolation dans les FIFOs (21) comporte : une opération de rotation binaire, sur lesdits échantillons, d'un nombre de bits défini à partir de la valeur courante du compteur (64), une mise à jour du compteur (64), pour le coup d'horloge suivant, en faisant une addition modulo 2 x P de la valeur courante du compteur (64) avec la valeur P, P - 1 ou P + 1 selon que l'indication d’erreur temporelle (Err-Ind) est respectivement « nominal », « dépassement inférieur » ou « dépassement supérieur ». Procédé (100) selon l’une quelconque des revendications 8 à 11 dans lequel chaque FIFO (21) est configurée pour activer une indication (44) de risque de débordement lorsque le nombre d'échantillons mémorisés dans ladite FIFO (21) est supérieur ou égal à un seuil, et l'écriture (101) dans les FIFOs (21) est autorisée si et seulement si l'indication (44) de risque de débordement n'est activée pour aucune des FIFOs (21). Procédé (100) selon l’une quelconque des revendications 8 à 12 dans lequel chaque FIFO (21) est configurée pour activer une indication (54) de risque de pénurie lorsque le nombre d'échantillons mémorisés dans ladite FIFO (21) est inférieur ou égal à un seuil, et la lecture (102) dans les FIFOs (21) est autorisée si et seulement si l'indication (44) de risque de pénurie n'est activée pour aucune des FIFOs (21). Procédé (100) selon l’une quelconque des revendications 8 à 13 dans lequel la fréquence des symboles en sortie du dispositif (10) de synchronisation est supérieure ou égale à 100 Mbits/s.