FR 3055734 A1 20180309 FR 1658232 A 20160905 1 Procédé et dispositif d'atténuation d'interférences électromagnétiques lors d'un transfert de données depuis ou vers une mémoire Des modes de réalisation et de mise en oeuvre de l'invention concernent les circuits intégrés, en particulier à des procédés et dispositifs d'atténuation d'interférences électromagnétiques lors d'un transfert de données depuis ou vers un système de mémoire telle qu'une mémoire à double débit de données. L'accès à des mémoires à double débit de données (ou DDR, de l'anglais « Double Data Rate »), comme par exemple des mémoires vives dynamiques synchrones (SDRAM) à double débit de données, est généralement mis en oeuvre par un lien parallèle haut débit. L'écriture et la lecture de données dans une mémoire DDR sont habituellement réalisées par le transfert d'un groupe de plusieurs mots vers ou provenant d'emplacements mémoire consécutifs, chaque mot étant transféré en un cycle d'un signal d'horloge. Chaque mot comporte plusieurs bits, généralement 16 ou 32 bits, et est transféré en un cycle d'horloge sur un lien parallèle comportant autant de lignes de bits. Le transfert (ou « burst » selon la dénomination anglosaxonne couramment employée) comporte par exemple 8 mots consécutifs en protocole BL8 (« Burst Length 8 » en anglais) ou 16 mots consécutifs en BL16. Ainsi, sur une ligne de bits quelconque du lien, un motif horizontal peut se répéter d'un transfert à un autre, notamment dans le cas d'une mémorisation répétée des mêmes données. Une telle répétition horizontale, c'est-à-dire une répétition d'un même motif sur une ligne de bits du lien, peut générer par résonnance des augmentations brutales de la densité spectrale de puissance rayonnée par le lien parallèle haut débit. En raison des hautes fréquences de transfert de données mises en oeuvre dans les mémoires DDR, ces pics d'énergie peuvent 3055734 2 provoquer des interférences électromagnétiques (EMI de l'anglais « ElectroMagnetic Interference ») à des fréquences utilisées par des systèmes électroniques voisins, tels qu'usuellement une antenne radiofréquence de télécommunication, par exemple du type WiFi, ou 5 tout autre système. Les solutions actuelles d'atténuation des EMI ont pour inconvénients de réduire les performances de transmission, comme par exemple le contrôle de vitesse de balayage (« Slew Rate control » en anglais), de n'être efficaces que pour les signaux d'horloge, comme 10 par exemple les techniques d'étalement de spectre (« Spread Spectrum » en anglais), ou alors d'être coûteuses à produire, comme par exemple les blindages électromagnétiques. Une solution de brouillage des données transférées, visant à réduire les variations de l'alimentation en embrouillant verticalement 15 selon une répartition équilibrée de « 0 » et de « 1 » les bits de chaque mot a été proposée dans la demande de brevet US 2009/0086972 Al, mais ne répond pas à la problématique d'interférences électromagnétiques générées par une répétition horizontale d'un motif de données. 20 C'est pourquoi il est proposé, selon des modes de réalisation et de mise en oeuvre, une solution simple, efficace et peu coûteuse d'atténuation des interférences électromagnétiques provenant d'une telle origine. Selon un aspect, il est proposé un procédé d'écriture ou de 25 lecture de données à une adresse d'une mémoire, lesdites données comportant plusieurs mots consécutifs ayant chacun plusieurs bits, le procédé comprenant un transfert desdits mots vers ou en provenance de ladite mémoire au rythme d'un signal d'horloge, chaque mot étant transféré en un cycle du signal d'horloge, et un embrouillage ou un 30 désembrouillage des bits desdits mots comportant une application sur lesdits bits de chaque mot d'une première fonction logique, identique pour l'embrouillage et le désembrouillage, faisant intervenir un bit-clé dédié audit mot et identique pour l'embrouillage et le désembrouillage, 3055734 3 chaque bit-clé étant issu d'une suite pseudo-aléatoire générée à partir de ladite adresse. On effectue un embrouillage en écriture et un désembrouillage en lecture. Cela étant comme on utilise la même première fonction 5 logique et les mêmes bits-clé lors de l'embrouillage et lors du désembrouillage, le désembrouillage est équivalent à un embrouillage. En d'autre termes un embrouillage/désembrouillage est réalisé horizontalement sur les lignes de bits du lien parallèle, en utilisant comme racine l'adresse dans laquelle sont écrites ou lues les données, 10 permettant avantageusement de ne pas avoir à modifier la conception de la mémoire ni les requêtes d'écriture et de lecture pour mettre en oeuvre l'embrouillage atténuant les interférences électromagnétiques. L'embrouillage horizontal, obtenu par l'application d'une première fonction logique faisant intervenir un bit-clé dédié à chaque 15 mot, permet de limiter les interférences électromagnétiques provenant d'une répétition horizontale d'un motif de données. En effet, selon cet aspect, les bits transférés consécutivement sur une ligne sont non corrélés entre eux. Ainsi on peut par exemple, dans plus de 90% des cas en BL8 et 20 en BL16, atténuer de plus de 20dB les pics d'énergie interférant dans les canaux de télécommunication cellulaire, et, dans 100% des cas en BL16, atténuer de plus de 20dB les pics d'énergie interférant dans le canal WiFi 5Ghz. Selon un mode de mise en oeuvre, on utilise comme première 25 fonction logique une fonction OU EXCLUSIF. Etant involutive, la fonction OU EXCLUSIF d'une variable avec un paramètre est avantageusement employée avec pour paramètre l'adresse utilisée en écriture et en lecture, afin que la mise en oeuvre du désembrouillage du procédé de lecture des données soit 30 rigoureusement identique à la mise en oeuvre de l'embrouillage du procédé d'écriture desdites données. Selon un mode de mise en oeuvre, le procédé comprend une application d'une deuxième fonction logique sur les bits de l'adresse de façon à obtenir un mot d'initialisation, et la suite pseudo-aléatoire 3055734 4 est générée par un registre à décalage à rétroaction linéaire parallélisé et initialisé avec le mot d'initialisation, la taille du mot d'initialisation étant égale à la taille polynomiale du registre à décalage à rétroaction linéaire parallélisé. 5 En effet, il peut être avantageux que la taille polynomiale du registre à décalage à rétroaction linéaire soit inférieure à la taille de l'adresse, notamment afin de minimiser la séquence maximale de bits identiques possible. Ainsi, la taille du mot d'initialisation est avantageusement 10 inférieure à la taille de ladite adresse. A cet égard, la deuxième fonction logique est par exemple une fonction logique OU EXCLUSIF appliquée entre un premier groupe de bits et un deuxième groupe de bits de ladite adresse. Par exemple, les bits de poids fort, soit la moitié des bits 15 composant l'adresse dont les poids sont les plus forts, forment le premier groupe de bits, et les bits de poids faible, soit la moitié des bits composant l'adresse dont les poids sont les plus faibles, forment le deuxième groupe de bits. D'autre part, il est possible qu'à un registre à décalage à 20 rétroaction linéaire donnée et à un mot d'initialisation donnée, la suite pseudo aléatoire générée soit, dans ses premiers termes, la même que pour un autre mot d'initialisation. Ainsi il est avantageux, selon un mode de mise en oeuvre de faire rétroagir sur toute sa longueur le registre à décalage à rétroaction linéaire avant d'utiliser ses termes en 25 tant que bits-clé. Autrement dit, les bits-clé sont avantageusement issus des termes de la suite pseudo-aléatoire qui ont un rang supérieur à la taille du mot d'initialisation. La parallélisation du registre à décalage à rétroaction linéaire 30 permet avantageusement de calculer simultanément les termes de la suite pseudo aléatoire, à la place du calcul récursif desdits termes d'une conception série habituelle. Cependant, en raison d'une potentielle complexité de la parallélisation, le calcul de certains termes de la suite pseudo aléatoire 3055734 5 peut nécessiter des passages de portes logiques qui peuvent être irréalisables en un seul cycle d'horloge. Ainsi, la génération d'au moins le bit-clé dédié au premier mot transféré est avantageusement réalisée lors du cycle du signal 5 d'horloge précédant directement le cycle du signal d'horloge au cours duquel est transféré le mot auquel il est dédié. Et en outre, la génération d'au moins un bit-clé dédié à un mot qui n'est pas le premier transféré peut être réalisée sur plusieurs cycles du signal d'horloge précédant le cycle d'horloge au cours 10 duquel est transféré le mot auquel il est dédié. Selon un autre aspect, il est proposé un dispositif comprenant un moyen de transfert configuré pour écrire ou lire des données dans un emplacement d'une mémoire ayant une adresse, lesdites données comportant plusieurs mots consécutifs ayant chacun plusieurs bits, en 15 transférant lesdits mots vers ou en provenance de ladite mémoire au rythme d'un signal d'horloge, chaque mot étant transféré en un cycle du signal d'horloge, le dispositif comprenant également un moyen d'embrouillage/désembrouillage comportant un moyen de génération configuré pour générer une suite pseudo-aléatoire à partir de ladite 20 adresse, et un premier circuit logique configuré pour appliquer une première fonction logique à ladite pluralité de bits de chaque mot avec un bit-clé respectivement dédié à chaque mot et issu de ladite suite pseudo-aléatoire. Selon un mode de réalisation, le premier circuit logique est 25 configuré pour appliquer une première fonction logique OU EXCLUSIF. Selon un mode de réalisation, le dispositif comprend un deuxième circuit logique configuré pour appliquer une deuxième fonction logique sur les bits de l'adresse de façon à obtenir un mot 30 d'initialisation, et dans lequel le moyen de génération comporte un registre à décalage à rétroaction linéaire parallélisé configuré pour être initialisé avec le mot d'initialisation, la taille du mot d'initialisation étant égale à la taille polynomiale du registre à décalage à rétroaction linéaire parallélisé. 3055734 6 Avantageusement, la taille du mot d'initialisation est inférieure à la taille de ladite adresse. Selon un mode de réalisation, la deuxième fonction logique est un OU EXCLUSIF effectué bit-à-bit entre un premier groupe de bits et 5 un deuxième groupe de bits de ladite adresse, par exemple entre les bits de poids fort et les bits de poids faible de ladite adresse. Les bits-clé sont avantageusement issus des termes de la suite pseudo-aléatoire ayant un rang supérieur à la taille du mot d'initialisation. 10 Avantageusement, le moyen de brouillage est configuré pour générer au moins le bit-clé dédié au premier mot transféré desdites données lors du cycle du signal d'horloge précédant directement le cycle du signal d'horloge au cours duquel est transféré le mot auquel il est dédié. 15 En outre, le moyen de brouillage peut être configuré pour générer au moins un bit-clé dédié à un mot desdites données qui n'est pas le premier mot transféré, sur plusieurs cycles du signal d'horloge précédant le cycle du signal d'horloge au cours duquel est transféré ledit mot auquel il est dédié. 20 Le dispositif peut avantageusement être incorporé de façon intégré au sein d'un système sur puce. Le dispositif peut être comporté par un système comportant en outre une mémoire, lesdits moyens de transfert étant aptes à écrire ou lire dans ladite mémoire. 25 La mémoire du système est avantageusement une mémoire du type à double débit de données. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen détaillé de modes de réalisation et de mise en oeuvre, nullement limitatifs, et des dessins annexés sur lesquels : 30 - les figures 1 à 6 représentent des modes de réalisation et de mise en oeuvre de l'invention. La figure 1 illustre un exemple d'un système SYS comportant un dispositif de système sur puce DIS comportant notamment un moyen de brouillage MSCR et un étage de transfert TX configuré pour 3055734 7 communiquer avec une mémoire à double débit de données MEM, notamment via un lien parallèle haut débit BUS. Le moyen de brouillage MSCR est configuré pour embrouiller ou désembrouiller les données à écrire ou à lire à un emplacement 5 mémoire EMP ayant une adresse ADD, et comporte un moyen de génération MGEN et un premier circuit logique CL1. Par abus de langage, le terme « adresse » désignera dans la suite à la fois l'adresse d'un emplacement mémoire et l'emplacement mémoire, comme par exemple dans l'expression « écrire à une 10 adresse ». Les données à transférer sont organisées en mots W1 (les mots non-embrouillés W1 ne sont pas représentés sur cette figure), avec 1 0 générée est identique, et d'autre part, à partir d'un rang suffisamment élevé, les termes de la suite à « 1 » et à « 0 » sont de répartition homogène et non corrélés. Ainsi, selon un mode de réalisation dans lequel la taille de 10 l'adresse ADR et la taille polynomiale du registre RGD1 sont égales, on peut utiliser l'adresse ADR comme mot d'initialisation f(ADR). Cependant, notamment dans le cas où les bits de poids faible d'une adresse ADR sont tous à « 0 », les premiers termes générés par le registre RGD1 représenté en figure 4 par exemple ne seront pas 15 « mélangés ». C'est pourquoi il est avantageux de faire rétroagir le registre RGD1 sur toute sa longueur, autrement dit « vider » le registre RGD1, avant d'utiliser ses termes en tant que bits-clé. Les bits-clé sont ainsi issus des termes de la suite pseudo- 20 aléatoire qui ont un rang supérieur à la longueur du registre RGD1, soit sa taille polynomiale, soit encore la taille du mot d'initialisation. En revanche, si l'adresse ADR et le polynôme caractéristique du registre RGD1 sont de tailles différentes, alors on initialise les bascules DO-D15 du registre RGD1 avec un mot d'initialisation 25 f(ADR) résultat d'une deuxième fonction logique FL2 appliquée sur les bits de l'adresse ADR, et de taille égale à la taille polynomiale du registre RGD1. Les adresses ADR de mémoires à double débit de données peuvent être écrites sur 32bits, par exemple. 30 Or, un mode de réalisation préférentiel du registre RGD1 est de taille polynomiale 16. Cela permet notamment de limiter la séquence maximale de bits identiques possible, qui est directement proportionnelle à la taille polynomiale du registre RGD1. 3055734 10 Dans une telle configuration il est avantageusement utilisé comme deuxième fonction logique FL2 une fonction OU EXCLUSIF appliquée bit-à-bit entre les seize bits de poids fort et les seize bits de poids faible de l'adresse ADR. 5 La figure 5 représente schématiquement un mode de réalisation préférentiel du moyen de brouillage MSCR, dans lequel le moyen de génération MGEN comporte un registre à décalage à rétroaction linéaire parallélisé RGD2. La parallélisation d'un registre à décalage à rétroaction linéaire 10 consiste à concevoir des circuits logiques CLj configurés pour, avec sur leurs entrées un mot d'initialisation f(ADR) donné, respectivement sortir le signal SCRj correspondant au terme de rang j, ou jième terme, de la suite pseudo-aléatoire générée par un registre à décalage à rétroaction linéaire série classique donné, par exemple le registre 15 RGD1 précédemment décrit en relation avec la figure 4, initialisé avec le même mot d'initialisation f(ADR). Chaque terme SCRj de la suite étant calculé par un circuit logique CLj dédié, la parallélisation permet de calculer simultanément des termes de la suite pseudo aléatoire. 20 Ainsi la parallélisation d'un registre à décalage à rétroaction linéaire permet de ne pas avoir à attendre le jième cycle d'horloge pour obtenir le jième terme de la suite pseudo-aléatoire de ce LFSR, ce qui permet notamment de générer immédiatement les termes (SCRj)T REVENDICATIONS1. Procédé d'écriture ou de lecture de données (WDAT, RDAT) à une adresse (ADR) d'une mémoire (MEM), lesdites données comportant plusieurs mots consécutifs (W1-WN) ayant chacun plusieurs bits, le procédé comprenant un transfert desdits mots (W1- WN) vers ou en provenance de ladite mémoire (MEM) au rythme d'un signal d'horloge (CLK), chaque mot étant transféré en un cycle (TcLK) du signal d'horloge, et un embrouillage ou un désembrouillage des bits desdits mots comportant une application sur lesdits bits de chaque mot d'une première fonction logique (FL1), identique pour l'embrouillage et le désembrouillage, faisant intervenir un bit-clé (K1-KN) dédié audit mot (Wl-WN) et identique pour l'embrouillage et le désembrouillage, chaque bit-clé (K1-KN) étant issu d'une suite pseudo-aléatoire (SCRj) générée à partir de ladite adresse. 2. Procédé selon la revendication 1, dans lequel on utilise comme première fonction logique (FL1) une fonction OU EXCLUSIF. 3. Procédé selon l'une quelconque des revendications 1 ou 2, comprenant une application d'une deuxième fonction logique (FL2) sur les bits de l'adresse (ADR) de façon à obtenir un mot d'initialisation (f(ADR)), et dans lequel la suite pseudo-aléatoire est générée par un registre à décalage à rétroaction linéaire parallélisé (MGEN) et initialisé avec le mot d'initialisation (f(ADR)), la taille du mot d'initialisation étant égale à la taille polynomiale du registre à décalage à rétroaction linéaire parallélisé. 4. Procédé selon la revendication 3, dans lequel ladite taille du mot d'initialisation (f(ADR)) est inférieure à la taille de ladite adresse (ADR). 5. Procédé selon l'une quelconque des revendications 3 ou 4, dans lequel ladite deuxième fonction logique (FL2) est une fonction logique OU EXCLUSIF appliquée bit-à-bit entre un premier groupe de bits et un deuxième groupe de bits de ladite adresse (ADR). 6. Procédé selon l'une quelconque des revendications 3 à 5, dans lequel lesdits bits-clé (K1-KN) sont issus des termes de la suite 3055734 15 pseudo-aléatoire (SCRj) qui ont un rang supérieur à la taille du mot d'initialisation. 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel la génération d'au moins le bit-clé (K1) dédié 5 au premier mot (W1) transféré, est réalisée lors du cycle (TcLK) du signal d'horloge précédant directement le cycle du signal d'horloge au cours duquel est transféré le mot (W1) auquel il est dédié. 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel la génération d'au moins un bit-clé (K11) 10 dédié à un mot (W11) qui n'est pas le premier transféré, est réalisée sur plusieurs cycles du signal d'horloge précédant le cycle d'horloge au cours duquel est transféré le mot (W11) auquel il est dédié. 9. Dispositif comprenant un moyen de transfert (TX) configuré pour écrire ou lire des données (WDAT, RDAT) dans un 15 emplacement (EMP) d'une mémoire (MEM) ayant une adresse (ADR), lesdites données comportant plusieurs mots consécutifs (W1-WN) ayant chacun plusieurs bits, en transférant lesdits mots vers ou en provenance de ladite mémoire (MEM) au rythme d'un signal d'horloge (CLK), chaque mot étant transféré en un cycle (TcLK) du signal 20 d'horloge, le dispositif (DIS) comprenant également un moyen d'embrouillage/désembrouillage (MSCR) comportant un moyen de génération (MGEN) configuré pour générer une suite pseudo-aléatoire (SCRj) à partir de ladite adresse (ADR), et un premier circuit logique (CL1) configuré pour appliquer une première fonction logique (FL1) à 25 ladite pluralité de bits de chaque mot (W1-WN) avec un bit-clé (K1- KN) respectivement dédié à chaque mot (W1-WN) et issu de ladite suite pseudo-aléatoire (SCRj). 10. Dispositif selon la revendication 9, dans lequel le premier circuit logique (CL1) est configuré pour appliquer une première 30 fonction logique OU EXCLUSIF. 11. Dispositif selon la revendication 10, comprenant un deuxième circuit logique configuré pour appliquer une deuxième fonction logique (FL2) sur les bits de l'adresse (ADR) de façon à obtenir un mot d'initialisation (f(ADR)), et dans lequel le moyen de 3055734 16 génération (MGEN) comporte un registre à décalage à rétroaction linéaire parallélisé configuré pour être initialisé avec le mot d'initialisation (f(ADR)), la taille du mot d'initialisation étant égale à la taille polynomiale du registre à décalage à rétroaction linéaire 5 parallélisé. 12. Dispositif selon la revendication 11, dans lequel ladite taille du mot d'initialisation (f(ADR)) est inférieure à la taille de ladite adresse (ADR). 13. Dispositif selon l'une quelconque des revendications 11 ou 10 12, dans lequel ladite deuxième fonction logique (FL2) est un OU EXCLUSIF destiné à être appliqué bit-à-bit entre un premier groupe de bits et un deuxième groupe de bits de ladite adresse (ADR). 14. Dispositif selon l'une quelconque des revendications 11 à 13, dans lequel lesdits bits-clé (K1-KN) sont issus des termes de la 15 suite pseudo-aléatoire (SCRj) ayant un rang supérieur à la taille du mot d'initialisation. 15. Dispositif selon l'une quelconque des revendications 9 à 14, dans lequel le moyen d'embrouillage/désembrouillage (MSCR) est configuré pour générer au moins le bit-clé (K1) dédié au premier mot 20 (W1) transféré desdites données lors du cycle du signal d'horloge précédant directement le cycle du signal d'horloge au cours duquel est transféré le mot (W1) auquel il est dédié. 16. Dispositif selon l'une quelconque des revendications 9 à 15, dans lequel le moyen d' embrouillage/désembrouillage est 25 configuré pour générer au moins un bit-clé (K11) dédié à un mot (W11) desdites données qui n'est pas le premier mot transféré, sur plusieurs cycles du signal d'horloge précédant le cycle du signal d'horloge au cours duquel est transféré ledit mot (W11) auquel il est dédié. 30 17. Dispositif selon l'une quelconque des revendications 9 à 16, incorporé de façon intégré au sein d'un système sur puce. 18. Système comportant un dispositif (DIS) selon l'une quelconque des revendications 9 à 17 et une mémoire (MEM), lesdits 3055734 17 moyens de transfert (TX) étant aptes à écrire ou lire dans ladite mémoire (MEM). 19. Système selon la revendication 17, dans lequel ladite mémoire (MEM) est une mémoire du type à double débit de données. 5