Brevet FR3038752A1 — publié le 20170113

B14240FR PROCEDE ET CIRCUIT POUR PROTEGER ET VERIFIER DES DONNEES D'ADRESSE Domaine La présente description concerne le domaine des interfaces mémoire, et en particulier une interface mémoire fournissant un procédé et un circuit pour protéger et vérifier 5 des données d'adresse. Exposé de l'art antérieur Lors de l'écriture dans tout type de dispositif mémoire comme un dispositif DRAM (mémoire dynamique à accès 10 aléatoire) ou SRAM (mémoire statique à accès aléatoire), il est possible que les signaux transitant sur les lignes d'entrée et/ou de sortie de la mémoire soient endommagés par exemple suite à l'occurrence d'un évènement unique. Bien que les interfaces mémoires comprennent souvent 15 un mécanisme de protection et/ou de correction pour les données écrites et lues dans la mémoire, il y a aussi un problème en ce que les données d'adresse peuvent être endommagées. Il est difficile de détecter que les données d'adresse ont été endommagées, puisque cela a pour résultat que des données sont 20 écrites ou lues à une adresse incorrecte. Les données mémorisées à l'adresse incorrecte peuvent ne pas être endommagées, et ainsi 3038752 B14240FR 2 les mécanismes de protection concernant le signal de données ne vont pas réussir à identifier/corriger l'erreur. Le fait d'avoir des données d'adresse endommagées sur les lignes d'entrée/sortie d'une mémoire peut être considéré comme relativement peu fréquent. Toutefois, pour certaines applications, comme les applications automobiles, l'aviation, et/ou les applications spatiales, il est souhaitable d'obtenir des dispositifs mémoires extrêmement fiables, puisque la sécurité humaine peut dépendre d'un fonctionnement correct. Il existe donc un besoin dans la technique pour un procédé et un dispositif de protection et de vérification de données d'adresse transmises sur les lignes d'entrée/sortie d'une mémoire. 15 Résumé Un objet de modes de réalisation de la présente description est de répondre au moins partiellement à un ou plusieurs besoins de l'art antérieur. Selon un aspect, on prévoit un circuit pour protéger 20 des données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus de données d'entrée, des données d'écriture à écrire dans un dispositif mémoire, et sur un bus d'adresse, une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et 25 générer des données d'écriture modifiées sur un bus de données de sortie, les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie étant plus grande que la largeur du bus de données d'entrée. 30 Selon un mode de réalisation, le circuit est en outre adapté à générer une valeur de protection de données sur la base des données d'écriture, les données d'écriture modifiées comprenant en outre la valeur de protection de données. Selon un mode de réalisation, le circuit comprend en 35 outre un circuit de génération d'adresse adapté à générer une 3038752 B14240FR 3 adresse d'écriture modifiée sur un bus d'adresse de sortie vers le dispositif mémoire. Selon un mode de réalisation, le circuit de génération d'adresse est adapté à générer l'adresse d'écriture modifiée en 5 décalant l'adresse d'écriture d'un bit vers la gauche. Selon un mode de réalisation, le nombre N de bits des données d'écriture est inférieur à la largeur M du bus de données d'entrée, et la valeur de protection d'adresse est générée sur la base d'une sous-adresse correspondant à la 10 position des N bits de données d'écriture dans la largeur du bus d'adresse. Selon un mode de réalisation, la largeur M du bus de données d'entrée est égale à un multiple P du nombre de bits N des données d'écriture, le circuit comprenant P codeurs d'adresse dont chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses. Selon un mode de réalisation, un circuit de génération de données de protection est adapté à générer la valeur de protection d'adresse en codant l'adresse d'écriture pour générer une valeur de Y bits, Y étant inférieur au nombre de bits de l'adresse d'écriture. Selon un mode de réalisation, le circuit comprend en outre un circuit de filtrage de plage d'adresses adapté à 25 déterminer si l'adresse d'écriture est dans une plage d'adresses à protéger, la valeur de protection d'adresse étant générée seulement si l'adresse est dans la plage d'adresses à protéger. Selon un mode de réalisation, le circuit comprend en outre un chemin de contournement pour- fournir les données 30 d'écriture directement au bus de sortie de données d'écriture si l'adresse d'écriture n'est pas dans une plage d'adresses à protéger, le chemin de contournement comprenant un circuit de pontage adapté à convertir N bits de données d'écriture en au moins N+Y bits de données d'écriture. 3038752 B14240FR 4 Selon un autre aspect on prévoit un circuit de vérification de données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus d'adresse, une adresse de lecture ; générer une valeur de protection d'adresse de 5 référence sur la base de l'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture provenant d'un dispositif mémoire, des données lues et une valeur de protection d'adresse lue dans le dispositif mémoire ; et vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse 10 lue dans le dispositif mémoire à la valeur de protection d'adresse de référence. Selon un mode de réalisation, le nombre N de bits des données de lecture est inférieur à la largeur M d'une portion de données de lecture du bus d'entrée de données de lecture, et la 15 valeur de protection d'adresse de référence est générée sur la base d'une sous-adresse correspondant à la position des N bits de données de lecture dans la largeur de la portion de données de lecture du bus d'entrée de données de lecture. Selon un mode de réalisation, la largeur M de la 20 portion de données de lecture du bus d'entrée de données de lecture est égale à un multiple P du nombre N de bits de données de lecture, le circuit comprenant P codeurs d'adresse dont chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses. Selon un autre aspect, on prévoit un circuit de protection/vérification d'adresse comprenant le circuit sus- mentionné de protection de données d'adresse mémoire et le circuit susmentionné de vérification dê données d'adresse mémoire. Selon encore un autre aspect, on prévoit un procédé de protection de données d'adresse mémoire comprenant : recevoir, sur un bus de données d'entrée, des données d'écriture à écrire dans un dispositif mémoire et, sur un bus d'adresse, une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et générer des 3038752 B14240FR 5 données d'écriture modifiées sur un bus de données de sortie, les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie étant plus grande que la largeur du bus 5 de données d'entrée. Selon encore un autre aspect, on prévoit un procédé de vérification de données d'adresse mémoire comprenant : recevoir, sur un bus d'adresse, une adresse de lecture ; générer une valeur de protection d'adresse de référence sur la base de 10 l'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture provenant d'un dispositif mémoire, des données lues et une valeur de protection d'adresse lue dans le dispositif mémoire ; et vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse lue dans le dispositif mémoire 15 à la valeur de protection d'adresse de référence. Brève description des dessins Les caractéristiques et avantages susmentionnés, et d'autres, apparaîtront clairement à la lecture de la description détaillée suivante de modes de réalisation, donnés à titre 20 d'illustration et non de limitation, en faisant référence aux dessins joints dans lesquels : la figure 1 illustre schématiquement un circuit intégré en communication avec un dispositif mémoire selon un exemple de réalisation ; 25 la figure 2 représente des donnés d'écriture modifiées selon un exemple de réalisation ; la figure 3 est un organigramme illustrant des opérations dans un procédé de protection de données d'adresse selon un exemple de réalisation ; 30 la figure 4 illustre schématiquement un circuit de protection d'adresse d'écriture de la figure 1 plus en détail selon un exemple de réalisation ; la figure 5 est un organigramme illustrant des opérations dans un procédé de vérification de données d'adresse 35 selon un exemple de réalisation de la présente description ; et 3038752 B14240FR 6 la figure 6 illustre schématiquement un circuit de vérification d'adresse de la figure 1 plus en détail selon un exemple de réalisation. Description détaillée 5 La figure 1 représente schématiquement un circuit intégré 102 et un dispositif mémoire 104. Le dispositif mémoire 104 est par exemple un dispositif à mémoire DRAM ou SRAM, ou un autre type de dispositif mémoire adressable. Le dispositif mémoire 104 est par exemple situé hors de la puce de circuit 10 intégré, ce qui signifie que les lignes d'entrée/sortie 106 entre le circuit intégré 102 et le dispositif mémoire 104 ont la forme de fils et/ou de pistes conductrices. Dans des variantes de réalisation, le dispositif mémoire 104 pourrait être intégré sur la puce, en tant que partie du circuit intégré 102. 15 Le circuit intégré 102 comprend des circuits destinés à s'interfacer avec le dispositif mémoire 104, et par exemple comprend une couche d'interface physique 108, couplée aux lignes d'entrée/sortie 106, un contrôleur de mémoire 110 couplé à la couche d'interface physique 108, un circuit de protection / 20 vérification d'adresse 112, une interconnexion SoC (système sur puce) 114, et un dispositif de traitement 116. Le dispositif de traitement 116 est par exemple un CPU (unité centrale de traitement), un GPU (unité de traitement graphique), une unité DMA (accès direct en mémoire), etc. 25 Le dispositif de traitement 116 est par exemple couplé au contrôleur mémoire 110 par l'intermédiaire d'une interconnexion SoC 114, et par l'intermédiaire du circuit de protection/vérification d'adresse 112. Toutefois, dans des variantes de réalisation, le circuit de protection/vérification 30 d'adresse 112 pourrait être incorporé dans le contrôleur mémoire 110 ou dans le dispositif de traitement 116. Un avantage du fait de placer le circuit 112 entre le dispositif de traitement 116 et le contrôleur mémoire 110 est qu'il est possible d'utiliser des dispositifs de traitement 116 et des contrôleurs mémoire 110 3038752 B14240FR 7 existants, et que le circuit 112 peut être mis en oeuvre de telle façon qu'il soit transparent pour les circuits existants. Le circuit 112 comprend par exemple un circuit de protection d'adresse 118, et un circuit de vérification 5 d'adresse 120. Le circuit de protection d'adresse 118 reçoit une adresse d'écriture (WRITE ADDR) sur un bus d'entrée 122, l'adresse d'écriture étant par exemple fournie au circuit de protection d'adresse sur deux chemins. L'un des chemins est 10 utilisé pour générer, sur un bus de sortie 124, une adresse modifiée à fournir au dispositif mémoire 104. L'adresse modifiée a par exemple une plage d'adresses étendue. L'autre chemin est par exemple utilisé pour générer une valeur de protection d'adresse sur la base de l'adresse d'écriture. Le circuit 118 15 reçoit aussi des données d'écriture (WRITE DATA) sur un bus d'entrée 126, et fournit, sur un bus de sortie 128, les données à écrire à l'adresse modifiée dans le dispositif mémoire 104, qui comprend les données d'écriture et la valeur de protection d'adresse. 20 Le adresse de l'adresse de vérification circuit lecture lecture de vérification d'adresse 120 reçoit une (READ ADDR) sur un bus d'entrée 130, étant par exemple fournie au circuit de chemins. L'un des chemins de sortie 132, une adresse dispositif mémoire 104. plage d'adresses étendue. d'adresse 120 sur deux est utilisé pour générer, sur un bus 25 de lecture modifiée à fournir au L'adresse modifiée a par exemple une L'autre chemin est par exemple utilisé pour générer une valeur de protection d'adresse de référence sur la base de l'adresse de lecture. En résultat de l'opération de lecture, le circuit 120 30 reçoit, sur un bus d'entrée 134 provenant du dispositif mémoire 104, les données lues, qui comprennent la valeur de protection d'adresse qui a été écrite en même temps que les données. Le circuit 120 compare par exemple la valeur d'adresse lue dans le dispositif mémoire 104 à 35 protection d'adresse de référence générée sur de protection la valeur de la base de 3038752 B14240FR 8 l'adresse de lecture. Le circuit 120 fournit des données lues (READ DATA) sur un bus de sortie 136, mais ces données sont par exemple produites seulement si la valeur de protection d'adresse concorde avec la valeur de protection d'adresse de référence. 5 Dans une variante, les données lues peuvent être produites toujours, mais un signal d'erreur séparé (non illustré en figure 1) peut être activé sur une sortie du circuit de vérification d'adresse 120 pour indiquer que les données d'adresse ont été endommagées. En effet, la valeur de protection d'adresse lue 10 dans le dispositif mémoire ne va pas concorder avec la valeur de protection d'adresse de référence si l'adresse d'écriture a été endommagée et les données ont été écrites par erreur dans l'adresse lue, ou si l'adresse lue a été endommagée, et qu'une adresse non souhaitée a par conséquent été lue. 15 Chaque circuit de protection/vérification d'adresse 112 peut mettre en oeuvre un découpage en tranches de sorte que la largeur complète du bus de données soit traitée en plus petites largeurs de N bits. Par exemple, en supposant que le bus de données a une largeur de M bits, le bus de données est par 20 exemple traité en P tranches de N bits, avec M=PxN. En outre, comme cela est représenté en figure 1, dans certains modes de réalisation il peut y avoir une pluralité de circuits de protection/vérification d'adresse 112 opérant en parallèle, chaque circuit 112 étant associé à un port séparé du 25 contrôleur mémoire 110. La figure 2 représente un exemple du contenu des données d'écriture fournies sur le bus 128, à écrire à une adresse mémoire du dispositif mémoire 104. Le même contenu va aussi être lu pendant une opération de lecture. 30 Comme cela est illustré, les données d'écriture comprennent N bits de données système (DATA), qui correspondent aux données fournies par le dispositif de traitement 116, à écrire à l'adresse mémoire. N est par exemple un entier égal à au moins 4, et est par exemple une puissance de 2, égale ou 35 supérieure à 8. Dans certains modes de réalisation, N est égal à 3038752 B14240FR 9 la largeur M du bus d'entrée de données 126 du circuit 118 de la figure 1. Toutefois, dans des variantes de réalisation, on peut avantageusement obtenir une vérification d'adresse plus précise en prenant N inférieur à la largeur du bus. Par exemple, dans 5 certains modes de réalisation, la largeur du bus 126 est de 64 bit, et N est égal à 8. Plus généralement, N est par exemple égal à M/P, où P est un entier supérieur ou égal à 2. Les données d'écriture par exemple comprennent aussi X bits formant une valeur de protection de données (DATA 10 PROTECTION) et Y bits formant la valeur de protection d'adresse (ADDRESS PROTECTION). La valeur de protection de données est optionnelle, puisque dans certains modes de réalisation la protection de données n'est pas mise en oeuvre, ou elle est mise en oeuvre par un circuit différent, comme le contrôleur mémoire 15 110. Dans certains modes de réalisation, X+Y=N, de sorte que N+X+Y=2N, où X est égal à 0 ou à un entier positif, et Y est égal à au moins 1. Le mode de codage particulier utilisé pour générer la valeur de protection d'adresse est par exemple 20 sélectionné sur la base des bits disponibles. Une valeur de protection d'adresse d'un seul bit est par exemple une simple valeur de contrôle de parité. Y a par exemple une limite supérieure de Q, où Q est le nombre de bits de l'adresse correspondant aux données de N bits. Dans un tel cas, l'adresse 25 est simplement recopiée, sans réduire le nombre de bits par un codage. Dans un mode de réalisation, N est égal à 8, X est égal à 5, et Y est égal à 3. La figure 3 est un organigramme représentant des 30 opérations, mises en oeuvre par le circuit 118, d'un procédé de protection de données d'adresse selon un exemple de réalisation. Dans une opération 301, le circuit 118 reçoit N bits de données à écrire dans un dispositif mémoire, et une adresse d'écriture correspondante. 3038752 B14240FR 10 Dans une opération suivante 302, le circuit 118 génère une valeur de protection d'adresse de Y bits, sur la base de l'adresse d'écriture. Dans certains modes de réalisation, une valeur dérivée de l'adresse d'écriture est générée, et la valeur 5 de protection d'adresse est générée sur la base de cette valeur dérivée. Par exemple, si le bus de données d'écriture 126 est de M bits, où M est égal à P fois N, alors P sous-adresses sont par exemple générées sur la base de l'adresse d'écriture, et une valeur de protection, d'adresse différente est générée pour 10 chacune des sous-adresses. La valeur de protection d'adresse est par exemple toute valeur permettant de vérifier l'exactitude des données d'adresse avec au moins un certain niveau de certitude. Par exemple, la valeur de protection d'adresse pourrait comprendre une ou plusieurs valeurs de contrôle de parité, un 15 code de correction d'erreur tel qu'un code de Hamming, un code de contrôle de redondance cyclique (CRC), ou même une copie de certains ou de la totalité des bits d'adresse. Dans une opération suivante 303, la plage d'adresses d'écriture est par exemple augmentée pour couvrir des blocs de 20 données d'au moins N+Y bits. En effet, l'adresse fournie sur le bus d'adresse 122 est par exemple basée sur les blocs de N bits de données système. Ainsi, la taille de l'espace d'adressage est par exemple augmentée par le circuit 118 afin que la valeur de protection d'adresse puisse être mémorisée en plus des données 25 système. Par exemple, dans le cas où la largeur du bus de données est doublée, et en supposant que le bit le moins significatif (lsb) de l'adresse corresponde à un multiplet, le fait de doubler l'adresse va entraîner que l'adresse couvre deux multiplets plutôt qu'un seul multiplet. Dans des variantes de 30 réalisation, il serait toutefois possible de ne pas modifier l'adresse, et au lieu de cela, pour chaque adresse il serait possible de couvrir un mot qui est deux fois plus large que chaque mot fourni sur le bus de données. Dans une opération 304, les N+Y bits sont écrits dans 35 l'adresse d'écriture modifiée dans le dispositif mémoire. 3038752 B14240FR 11 La figure 4 illustre schématiquement le circuit de protection d'adresse d'écriture 118 de la figure 1 plus en détail selon un exemple de réalisation. Le bus d'adresse d'entrée (WRITE ADDR) 122 est par 5 exemple couplé à un filtre de plage d'adresses (ADDR RANG FILT) 402, qui par exemple permet de fournir la protection / vérification d'adresse à seulement certaines plages d'adresses dans le dispositif mémoire. Par exemple, le dispositif mémoire pourrait être subdivisé en une première portion pour laquelle la 10 protection/vérification d'adresse doit être assurée, et une autre portion pour laquelle aucune protection/vérification d'adresse ne doit être assurée. La sortie du circuit 402 est couplée à un circuit d'alignement d'adresse (ADDR ALIGN) 404, qui par exemple 15 augmente la plage d'adresses d'écriture pour permettre d'insérer la valeur de protection d'adresse, et optionnellement une valeur de protection de données. Dans un exemple très simple, le dispositif mémoire peut avoir une plage adressable (exprimée en hexadécimal) allant de 0x00 à OxFF, mais le dispositif de 20 traitement 116 peut ne voir qu'une plage d'adresses égale seulement à la moitié du total, par exemple la plage de 0x00 à Ox7F. Ainsi, chacune de ces adresses est par exemple convertie en deux adresses physiques adjacentes dans le dispositif mémoire, l'adresse 0x01 devenant 0x02, l'adresse 0x02 devenant 25 0x04, et ainsi de suite, l'adresse Ox7F devenant OxFE. Ces conversions correspondent à un simple décalage vers la gauche de un bit de chaque adresse. L'adresse d'écriture modifiée WRITE ADDR' est fournie sur le bus d'adresse de sortie 124. L'adresse d'écriture provenant du filtre d'adresse 402 30 est aussi par exemple fournie à un tampon du type premier entré, premier sorti (FIFO) 406, qui par exemple mémorise une ou plusieurs des adresses, et les fournit sur demande à un dispositif d'incrémentation d'adresse (ADRR INC) 408, qui est par exemple utilisé pour générer, sur la base de l'adresse 35 d'écriture, les adresses à accéder pendant l'opération 3038752 B14240FR 12 d'écriture. Le dispositif d'incrémentation d'adresse 408 est par exemple adapté à incrémenter l'adresse par des incréments correspondant à la .largeur du bus de données d'écriture 122. Par exemple, si le bus de données d'écriture 122 a une largeur de 8 5 multiplets, et si le bit le moins significatif de l'adresse désigne un multiplet, avec chaque nouveau bloc de données d'écriture sur le bus de données d'écriture 126, le dispositif d'incrémentation d'adresse 408 est par exemple adapté à incrémenter l'adresse par incréments de 8. 10 La sortie du dispositif d'incrémentation d'adresse 408 est fournie à un codeur d'adresse (ADDR ENC) 410, qui par exemple génère une valeur de protection d'adresse de Y bits sur la base de la valeur d'adresse, et fournit la valeur de Y bits à un circuit de concaténation 412. Le codeur d'adresse 410 génère 15 par exemple la valeur de protection d'adresse sur la base de l'adresse de la valeur de données de N bits correspondante. Dans le cas où la largeur M du bus de données est égale à N, le codeur d'adresse 410 va simplement générer la valeur de protection d'adresse sur la base de l'adresse fournie par le 20 dispositif d'incrémentation d'adresse 408. Cependant, si M est égal à PxN, P étant un entier supérieur ou égal 2, le codeur d'adresse génère par exemple P valeurs de protection différentes, une pour chaque bloc de N bits sur la largeur du bus de données. 25 Par exemple, dans le cas où la largeur du bus de données est égale à 2N, le codeur d'adresse 408 génère par exemple une première valeur de protection d'adresse pour les N premiers bits des données d'écriture sur la base de l'adresse fournie par le dispositif d'incrémentation d'adresse 408, puis 30 génère une deuxième valeur de protection d'adresse pour les N deuxièmes bits des données d'écriture sur la base de l'adresse fournie par le dispositif d'incrémentation d'adresse 408, incrémentée de 1. Le circuit de concaténation 412 reçoit aussi les N 35 bits de données système fournis sur le bus de données d'écriture 3038752 B14240tR 13 d'entrée 126. Dans l'exemple de la figure 4, le bus 126 est aussi couplé à un circuit codeur de données 414 (DATA ENC), qui par exemple code les données pour générer une valeur de protection de données de X bits, aussi fournie au circuit de 5 concaténation 412. Le circuit 412 concatène les valeurs de N, X et Y bits pour former les données d'écriture à écrire dans le dispositif mémoire. La sortie du circuit de concaténation 412 est par exemple couplée à une entrée d'un multiplexeur 416 qui fournit, 10 sur sa sortie, des données d'écriture (WRITE DATA') sur le bus de données 128. Une autre entrée du multiplexeur 416 est par exemple couplée de façon à recevoir les données d'écriture provenant du bus d'entrée 126, sans l'ajout d'une valeur de protection d'adresse ou d'une valeur de protection de données. 15 Par exemple, les données d'écriture sont fournies par l'intermédiaire d'un circuit de pontage (BRIDGE) 418, qui convertit N bits de données d'écriture fournis sur un seul cycle d'accès mémoire en 2N bits de données d'écriture sur deux cycles d'accès mémoire. Par exemple, sur un premier cycle, les N bits de 20 données d'écriture sont mémorisés par le pont 418, et sur un cycle suivant, lorsque N autres bits ont été reçus, les 2N bits sont fournis sur le bus 128. Le multiplexeur 416 est par exemple adapté à sélectionner le chemin passant par le pont 418 si l'opération d'écriture concerne une plage d'adresses qui ne doit 25 pas se voir ajouter une protection d'adresse et de données. Dans certains modes de réalisation, le circuit de protection/vérification d'adresse 112 met en oeuvre un découpage en tranches de telle sorte que des portions différentes de la largeur du bus de données sont traitées en parallèle. Dans un 30 tel cas, le codeur d'adresse 410, le circuit de concaténation 412, et le codeur de données 414 sont chacun par exemple reproduits plusieurs fois sur la base du nombre de tranches. Les éléments 410, 412, 414 de chaque tranche traitent par exemple un bloc correspondant de N bits du bus de données. Les instances du 35 codeur d'adresse 410 fonctionnent par exemple chacune sur un 3038752 B14240FR 14 décalage fixe correspondant de l'adresse, représentant la position des N bits de données dans la largeur du bus de données. En outre, dans certains modes de réalisation, la granularité d'un accès en lecture ou en écriture est inférieure 5 à la largeur du bus de données, et correspond par exemple à un multiplet, alors que le bus de données a une largeur égale à une pluralité de multiplets. Ainsi, l'opération de lecture ou d'écriture peut pointer vers un multiplet de départ spécifique dans la largeur du bus de données. 10 Pour prendre un exemple spécifique, dans un mode de réalisation, M est égal à 2N, et N est égal à 8. Il y a par exemple 2 tranches, ce qui signifie que chacun du codeur d'adresse 410, du circuit de concaténation 412 et du codeur de données 414 est reproduit deux fois. Le tableau suivant donne 15 des exemples des adresses consécutives fournies par le dispositif d'incrémentation d'adresse (ADDR INC) 408 et codées par le premier des codeurs d'adresse (ADDR ENC#1) et par le deuxième des codeurs d'adresse (ADDR ENC#2) dans un tel mode de réalisation : ADDR INC 408 ADDR ENC#1 410 ADDR ENC#2 410 (sortie) (entrée) (entrée) 0000 0110 0000 0110 0000 0111 0000 1000 0000 1000 0000 1001 0000 1010 0000 1010 0000 1011 0000 1100 0000 1100 0000 1101 20 La figure 5 est un organigramme illustrant des opérations dans un procédé de vérification d'adresses selon un exemple de réalisation. Dans une opération 501, une adresse de lecture est reçue. 25 Dans une opération suivante 502, l'adresse de lecture est traitée pour générer une valeur de protection d'adresse de référence de Y bits. L'algorithme de codage appliqué dans 3038752 B14240.bH 15 l'opération 502 est le même que celui appliqué dans l'opération 302 de la figure 3. Dans une opération suivante 503, la plage d'adresses de l'accès en lecture est augmentée pour couvrir au moins des 5 blocs de N+Y bits. Cela implique de faire la même modification que celle décrite en relation avec l'opération 303 de la figure 3, excepté qu'elle est appliquée à une adresse de lecture plutôt qu'à une adresse d'écriture. Dans une opération suivante 504, l'accès mémoire est 10 réalisé, et les N+Y bits sont lus dans le dispositif mémoire. Dans une opération suivante 505, la valeur de protection d'adresse de Y bits lue dans le circuit mémoire est comparée à la valeur de protection d'adresse de référence. Si elle concorde, on considère par exemple qu'aucun donunage n'est 15 survenu dans l'adresse. Par contre, si elle ne concorde pas, on génère par exemple une alerte, et les données lues peuvent être éliminées. La figure 6 illustre le circuit de vérification d'adresse 120 de la figure 1 plus en détail selon un exemple de 20 réalisation. Comme cela est illustré, l'adresse de lecture (READ ADDR) sur le chemin d'adresse 130 est par exemple fournie à un filtre de plage d'adresses (ADDR RANGE FILT) 602, qui est par exemple similaire au circuit 402 de la figure 4. 25 La sortie du filtre de plage d'adresses 602 est par exemple fournie à un circuit d'alignement d'adresse (ADDR ALIGN) 604, qui par exemple fonctionne aussi de la même façon que le circuit 404 de la figure 4, en augmentant la plage d'adresses de lecture pour couvrir à la fois les données systèmes et la valeur 30 de protection d'adresse correspondante. Le circuit 604 fournit l'adresse de lecture READ ADDR' sur le bus d'adresse de sortie 132. La sortie du filtre de plage d'adresses 602 est par exemple fournie à un FIFO 606, qui est couplé par 35 l'intermédiaire d'un multiplexeur (MUX) 608 à un dispositif 3038752 B14240FR 16 d'incrémentation d'adresse (ADDR INC) 610. La sortie du dispositif d'incrémentation d'adresse 610 est couplée à un codeur d'adresse (ADDR ENC) 612 qui génère la valeur de protection d'adresse de référence (REF ADDR PROT) sur la base 5 d'adresse de lecture. Le dispositif d'incrémentation d'adresse 610 et le codeur d'adresse 612 opèrent par exemple de façon similaire au dispositif d'incrémentation d'adresse 408 et au codeur d'adresse 410. Le multiplexeur 608 est par exemple commandé par un 10 signal READ DATA ID provenant du dispositif mémoire 104, qui par exemple indique qu'elles sont les données lues fournies sur le bus 134, de sorte que le multiplexeur 608 sélectionne l'adresse de lecture correspondante dans le FIFO 606. Le dispositif d'incrémentation d'adresse 610 reçoit par exemple un ou 15 plusieurs signaux de suivi de phase (PHASE TRACKING), et est utilisé pour garantir que les adresses générées par le dispositif d'incrémentation 610 correspondent aux données lues présentes sur le bus 134. Dans le cas où l'interface avec le dispositif mémoire est une connexion AXI, lesdits un ou 20 plusieurs signaux de suivi de phase comprennent par exemple des signaux RVALID, RREADY et RLAST, ces signaux étant connus de l'homme de l'art. Le circuit 120 comprend aussi un circuit séparateur 614, qui reçoit, sur le bus 134 provenant du dispositif mémoire, 25 les données lues provenant de l'adresse READ ADDR', et qui extrait la valeur de protection d'adresse. Cette valeur de protection d'adresse (ADDR PROT) est fournie à un comparateur (COMPARE) 616, qui reçoit aussi la valeur de protection d'adresse de référence provenant du codeur d'adresse 612. Le 30 comparateur 616 compare la valeur de protection d'adresse à la valeur de protection d'adresse de référence, et génère un signal d'erreur (ERROR) sur une ligne de sortie 618 du comparateur. Si les valeurs de protection d'adresse concordent, le signal d'erreur n'est pas activé. Par contre s'il y a une discordance 35 entre ces valeurs, le signal d'erreur est activé. Dans certains 3038752 B14240.bM 17 modes de réalisation, la ligne 618 est couplée au dispositif de traitement 116 réalisant l'accès mémoire, et le signal d'erreur indique au dispositif de traitement 116 qu'on ne peut pas compter sur les données lues, vu que le signal d'adresse est 5 endommagé. Dans certains modes de réalisation, un circuit de vérification/correction de données (DATA CHECKING/CORRECTING) 620 est aussi prévu, qui reçoit du circuit séparateur 614 les données systèmes (DATA) extraites des données lues par le 10 séparateur 614, et aussi la valeur de protection de données de X bits (DATA PROT) extraite des données lues par le séparateur 614. La sortie du circuit 620 est par exemple couplée à un multiplexeur de données (DATA MUX) 622, qui fournit les données lues sur le bus de sortie 136. 15 Le multiplexeur 622 reçoit aussi les données lues provenant du bus d'entrée 134 par l'intermédiaire d'un circuit de pontage (BRIDGE) 624, qui permet de contourner les circuits 614, 616 et 620 si l'adresse de l'opération de lecture ne correspond pas à une plage d'adresses protégée. Le circuit de 20 pontage 624 convertit par exemple 2N bits de données lus fournis sur un seul cycle d'accès mémoire en N bits de données lus sur deux cycles d'accès mémoire. Par exemple, sur un premier cycle, les 2N bits de données lus provenant du bus 134 sont mémorisés par le pont 624 et fournis sur le bus 136 sur deux cycles. Le 25 multiplexeur 622 est par exemple adapté à sélectionner le chemin passant par le pont 624 si l'opération de lecture concerne une plage d'adresses qui n'a pas reçu l'ajout d'une protection d'adresse et de données. Dans certains modes de réalisation, un découpage en 30 tranches peut être mis en oeuvre dans le circuit de vérification d'adresse 120 d'une manière similaire à celle décrite précédemment en relation avec la figure 4. Dans le mode de réalisation de la figure 6, les éléments 612, 614, 616 et 620 sont par exemple dupliqués de telle sorte que chaque instance de 35 ces éléments traite un bloc de N bits correspondant. 3038752 B14240FR 18 Un avantage des modes de réalisation décrits ici est que la protection d'adresse est assurée de façon relativement simple, tout en conservant une interface standard avec le dispositif mémoire. En effet, la seule modification est par 5 exemple l'augmentation de la largeur du bus de données vers le dispositif mémoire, par exemple en doublant sa largeur. Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaitront facilement à l'homme de l'art. 10 En particulier, bien qu'on ait décrit des exemples dans lesquels la somme des X bits de la valeur de protection de données et des Y bits de la valeur de protection d'adresse soit égale au nombre N de bits des données système, de nombreux autres formats seraient possibles. Par exemple, il serait 15 possible que X+Y soit égal à N/2 ou N/4. REVENDICATIONS1. Circuit de protection de données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus de données d'entrée (126), des données d'écriture à écrire dans un dispositif mémoire (104), et sur un bus d'adresse (122), une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et générer des données d'écriture modifiées (WRITE DATA') sur un bus de données de sortie (128), les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie (128) étant plus grande que la largeur du bus de données d'entrée. 2. Circuit selon la revendication 1, dans lequel le circuit est en outre adapté à générer une valeur de protection de données sur la base des données d'écriture, les données d'écriture modifiées comprenant en outre la valeur de protection de données. 3. Circuit selon la revendication 1 ou 2, comprenant en outre un circuit de génération d'adresse (404) adapté à générer une adresse d'écriture modifiée (WRITE ADDR') sur un bus d'adresse de sortie (124) vers le dispositif mémoire. 4. Circuit selon la revendication 3, dans lequel le 25 circuit de génération d'adresse (404) est adapté à générer l'adresse d'écriture modifiée (WRITE ADDR') en décalant l'adresse d'écriture d'un bit vers la gauche. 5. Circuit selon l'une quelconque des revendications 1 à 4, dans lequel le nombre N de bits des données d'écriture est 30 inférieur à la largeur M du bus de données d'entrée (126), et la valeur de protection d'adresse est générée sur la base d'une sous-adresse correspondant à la position des N bits de données d'écriture dans la largeur du bus d'adresse. 3038752 B14240.bR 20 6. Circuit selon l'une quelconque des revendications 1 à 5, dans lequel la largeur M du bus de données d'entrée (126) est égale à un multiple P du nombre N de bits des données d'écriture, le circuit comprenant P codeurs d'adresse dont 5 chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses. 7. Circuit selon l'une quelconque des revéndiCatIons 1 à 6, dans lequel un circuit de génération de données de protection (410) est adapté à générer la valeur de protection 10 d'adresse en codant l'adresse d'écriture pour générer une valeur de Y bits, Y étant inférieur au nombre de bits de l'adresse d'écriture. 8. Circuit selon l'une quelconque des revendication 1 à 7, comprenant en outre un circuit de filtrage de plage 15 d'adresses (402) adapté à déterminer si l'adresse d'écriture est dans une plage d'adresses à protéger, dans lequel la valeur de protection d'adresse est générée seulement si l'adresse est dans la plage d'adresses à protéger. 9. Circuit selon leur revendication 8, comprenant en 20 outre un chemin de contournement pour fournir les données d'écriture directement au bus de sortie de données d'écriture (128) si l'adresse d'écriture n'est pas dans une plage d'adresses à protéger, le chemin de contournement comprenant un circuit de pontage (418) adapté à convertir N bits de données 25 d'écriture en au moins N+Y bits de données d'écriture. 10. Circuit de vérification de données d'adresse mémoire, le circuit étant adapté à : recevoir, sur un bus d'adresse (130), une adresse de lecture ; 30 générer une valeur de protection d'adresse de référence (REF ADDR PROT) sur la base de l'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture (134) provenant d'un dispositif mémoire (104), des données lues et une valeur de protection d'adresse lue dans le dispositif 35 mémoire ; et 3038752 1314240.bR 21 vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse lue dans le dispositif mémoire à la valeur de protection d'adresse de référence. 11. Circuit selon la revendication 10, dans lequel le 5 nombre N de bits des données de lecture est inférieur à la largeur M d'une portion de données de lecture du bus d'entrée de données de lecture (134), et la valeur de protection d'adresse de référence est générée sur la base d'une sous-adresse correspondant à la position des N bits de données de lecture 10 dans la largeur de la portion de données de lecture du bus d'entrée de données de lecture (134). 12. Circuit selon la revendication 11, dans lequel la largeur M de la portion de données de lecture du bus d'entrée de données de lecture (134) est égale à un multiple P du nombre N 15 de bits de données de lecture, le circuit comprenant P codeurs d'adresse dont chacun est adapté à générer la valeur de protection d'adresse sur la base de l'une correspondante des sous-adresses. 13. Circuit de protection/vérification d'adresse (112) 20 comprenant le circuit de l'une quelconque des revendications 1 à 9 et le circuit de l'une quelconque des revendications 10 à 12. 14. Procédé de protection de données d'adresse mémoire comprenant : recevoir, sur un bus de données d'entrée (126), des 25 données d'écriture à écrire dans un dispositif mémoire (104) et, sur un bus d'adresse (122), une adresse d'écriture correspondante ; générer une valeur de protection d'adresse sur la base de l'adresse d'écriture ; et 30 générer des données d'écriture modifiées (WRITE DATA') sur un bus de données de sortie (128), les données d'écriture modifiées comprenant les données d'écriture et la valeur de protection d'adresse, la largeur du bus de données de sortie (128) étant plus grande que la largeur du bus de données 35 d'entrée. 3038752. B14240.bR 22 15. Procédé de vérification de données d'adresse mémoire comprenant : recevoir, sur un bus d'adresse (130), une adresse de lecture ; 5 générer une valeur de protection d'adresse de référence (REF ADDR PROT) sur la base de l'adresse de lecture ; recevoir, sur un bus d'entrée de données de lecture (134) provenant d'un dispositif mémoire (104), des données lues et une valeur de protection d'adresse lue dans le dispositif 10 mémoire ; et vérifier les données d'adresse mémoire en comparant la valeur de protection d'adresse lue dans le dispositif mémoire à la valeur de protection d'adresse de référence.