Brevet FR3162095A1 — publié le 20251114

Procédé de réparation d'une mémoire une fois programmable La présente description concerne un procédé de commande d'une mémoire une fois programmable (80) comprenant des emplacements de mémoire identifiés chacun par une adresse, chaque emplacement de mémoire étant configuré pour stocker une donnée numérique ayant un nombre donné de bits, les emplacements de mémoire étant répartis en une première zone mémoire (20), une deuxième zone mémoire (ZW) et une troisième zone mémoire (ZADD). Le procédé comprend, lorsqu'une opération d'écriture d'une donnée numérique dans un premier emplacement de mémoire de la première zone mémoire (20) a échoué, l'écriture de la donnée numérique dans un deuxième emplacement de mémoire de la deuxième zone mémoire (ZW) et l'écriture dans un troisième emplacement de mémoire de la troisième zone mémoire (ZADD) de l'adresse du premier emplacement de mémoire et d'un identifiant du deuxième emplacement de mémoire. Figure pour l'abrégé : Fig. 5 Procédé de réparation d'une mémoire une fois programmable La présente description concerne de façon générale les procédés de réparation d'une mémoire une fois programmable. Une mémoire non volatile est une mémoire, comprenant des cellules mémoire dans lesquelles sont stockés les bits d'un signal numérique, qui est utilisée pour enregistrer des informations qui ne doivent pas être perdues la mémoire n'est plus alimentée en électricité. Une mémoire une fois programmable, également appelée mémoire OTP (sigle anglais pour One Time Programmable) est un type de mémoire qui peut être programmée une seule fois. Lors de la fabrication d'une mémoire, notamment une mémoire une fois programmable, certaines cellules mémoire peuvent ne pas être fonctionnelles. Pour pouvoir néanmoins utiliser la mémoire, il est connu de mettre en oeuvre des procédés de correction d'erreurs lors du stockage du signal numérique, ce qui permet de corriger un nombre limité de bits corrompus. Avec la tendance actuelle à la réduction des dimensions des cellules mémoire des mémoires une fois programmables, le nombre de cellules mémoire défaillantes peut augmenter et la mise en oeuvre de procédés de correction d'erreurs peut ne pas être suffisante pour compenser un nombre élevé de cellules mémoire défaillantes. De plus, la mise en oeuvre des procédés de correction d'erreurs, pour faire fonctionner la mémoire au moment d'un test après fabrication diminue la robustesse des mémoires dans les applications. Dans certains cas, les contraintes de fiabilité peuvent nécessiter de ne pas mettre en oeuvre les procédés de correction d'erreur pour faire fonctionner la mémoire au moment du test et seul un moyen de réparation peut permettre d’augmenter le rendement de fabrication. Un mode de réalisation pallie tout ou partie des inconvénients des mémoires une fois programmables connues. Un mode de réalisation prévoit un procédé de commande d'une mémoire une fois programmable comprenant des emplacements de mémoire identifiés chacun par une adresse, chaque emplacement de mémoire étant configuré pour stocker une donnée numérique ayant un nombre donné de bits, les emplacements de mémoire étant répartis en une première zone mémoire, une deuxième zone mémoire et une troisième zone mémoire, le procédé comprenant, lorsqu'une opération d'écriture d'une donnée numérique dans un premier emplacement de mémoire de la première zone mémoire a échoué, l'écriture de la donnée numérique dans un deuxième emplacement de mémoire de la deuxième zone mémoire et l'écriture dans un troisième emplacement de mémoire de la troisième zone mémoire de l'adresse du premier emplacement de mémoire et d'un identifiant du deuxième emplacement de mémoire. Selon un mode de réalisation, l'identifiant du deuxième emplacement de mémoire est égal à l'adresse du deuxième emplacement de mémoire. Selon un mode de réalisation, les emplacements de mémoire de la deuxième zone mémoire sont répartis en premiers groupes GW_j, j variant de 1 à N, comprenant chacun NA emplacements de mémoire successifs de la deuxième zone mémoire. Les emplacements de mémoire de la troisième zone mémoire sont répartis en deuxièmes groupes GADD_i, i variant de 1 à N, comprenant chacun NA emplacements de mémoire successifs de la troisième zone mémoire. Le deuxième emplacement de mémoire est situé dans le premier groupe GW_k, k étant un nombre entier variant de 1 à N, et le troisième emplacement de mémoire est situé dans le deuxième groupe GADD_k. Selon un mode de réalisation, l'identifiant du deuxième emplacement de mémoire est égal au rang du deuxième emplacement de mémoire dans le premier groupe GW_k. Selon un mode de réalisation, le rang est codé sur un nombre de bits inférieur ou égal à 4. Selon un mode de réalisation, le nombre NA varie de 2 à 16. Selon un mode de réalisation, l'écriture de la donnée numérique dans le deuxième emplacement de mémoire est réalisée dans l'un des premiers groupes GW_j, j variant de 1 à N. Aucune opération d'écriture n'a été déjà réalisée dans aucun des emplacements de mémoire dudit groupe. Selon un mode de réalisation, le procédé comprend, si l'écriture de la donnée numérique dans le deuxième emplacement de mémoire échoue, l'écriture de la donnée numérique dans le deuxième emplacement de mémoire suivant de la deuxième zone mémoire, et comprend, si l'écriture de l'adresse du premier emplacement de mémoire dans le troisième emplacement de mémoire échoue, l'écriture de l'adresse du premier emplacement de mémoire dans le troisième emplacement de mémoire suivant de la troisième zone mémoire. Selon un mode de réalisation, le démarrage de la mémoire une fois programmable comprend la lecture de la deuxième zone mémoire, et, si la deuxième zone mémoire n'est pas vide, la copie dans une mémoire supplémentaire, pour chaque opération d'écriture d'une donnée numérique dans un premier emplacement de mémoire de la première zone mémoire ayant échoué, l'adresse du premier emplacement de mémoire et l'adresse du troisième emplacement de mémoire. Selon un mode de réalisation, une opération de lecture dans la première zone mémoire de la mémoire une fois programmable comprend la fourniture d'une adresse, la recherche de l'adresse fournie dans la mémoire supplémentaire, dans le cas où l'adresse fournie n'est pas présente dans la mémoire supplémentaire, la lecture de la donnée numérique stockée dans l'emplacement de mémoire de la première zone mémoire à l'adresse fournie, et dans le cas où l'adresse fournie est présente dans la mémoire supplémentaire, la lecture de la donnée numérique stockée dans le troisième emplacement de mémoire de la deuxième zone mémoire. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la FIG. 1 représente schématiquement un mode de réalisation d'une mémoire une fois programmable ; la FIG. 3 est un schéma par blocs d'un mode de réalisation d'un procédé de réparation de la mémoire une fois programmable de la FIG. 1 ; la FIG. 3 est un schéma par blocs d'un mode de réalisation d'un procédé de démarrage de la mémoire une fois programmable de la FIG. 1 ; la FIG. 4 représente est un schéma par blocs d'un mode de réalisation d'un procédé de lecture dans la mémoire une fois programmable de la FIG. 1 ; la FIG. 5 représente schématiquement un autre mode de réalisation d'une mémoire une fois programmable ; la FIG. 6 est un schéma par blocs d'un mode de réalisation d'un procédé de réparation de la mémoire une fois programmable de la FIG. 5 ; la FIG. 7 est un schéma par blocs d'un mode de réalisation d'un procédé de démarrage de la mémoire une fois programmable de la FIG. 5 ; et la FIG. 8 représente est un schéma par blocs d'un mode de réalisation d'un procédé de lecture dans la mémoire une fois programmable de la FIG. 5 . De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, les technologies de mémoires une fois programmables sont connues de la personne du métier et ne sont pas décrites. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % ou à 10° près, de préférence à 5 % ou à 5° près. Selon un mode de réalisation, le procédé de réparation d'une mémoire OTP comprend, lorsqu'une opération d'écriture d'une donnée numérique dans un emplacement initial de la mémoire OTP n'est pas possible, d'écrire la donnée numérique à un autre emplacement de la mémoire OTP et d'écrire l'adresse de l'emplacement initial également dans un autre emplacement de la mémoire OTP. De façon avantageuse, la structure de la mémoire OTP peut ne pas être modifiée pour la mise en oeuvre du procédé de réparation. Ceci permet de façon avantageuse de mettre en oeuvre le procédé de réparation avec n'importe quel type de mémoire OTP. En outre, le fait d'écrire la donnée numérique réparée et l'adresse de l'emplacement initial dans des emplacements différents permet de façon avantageuse de réduire le risque de ne pas pouvoir réaliser la réparation. La probabilité que le procédé de réparation soit mis en oeuvre avec succès est de façon avantageuse ainsi augmentée. Le procédé de réparation tient compte de la même probabilité d'échec que pour une opération d'écriture normale dans la mémoire OTP. Le procédé de réparation présente ainsi de façon avantageuse la même robustesse que lors du fonctionnement normal de la mémoire OTP. Le procédé de réparation peut en outre de façon avantageuse mettre en oeuvre les mêmes techniques de correction que celles mises en oeuvre lors du fonctionnement normal de la mémoire OTP. La FIG. 1 représente schématiquement un mode de réalisation d'une mémoire OTP 10 adaptée pour la mise en oeuvre d'un procédé de réparation. La mémoire OTP 10 comprend des emplacements de mémoire 12. Un signal numérique ayant un nombre Nb_W déterminé de bits, par exemple 32 bits, peut être stocké dans chaque emplacement de mémoire 12. La position de chaque emplacement de mémoire 12 dans la mémoire 10 est identifiée par une adresse. Une adresse d'emplacement de mémoire est codée sur un nombre Nb_Add de bits. Le nombre Nb_Add de bits est généralement inférieur au nombre Nb_W. A titre d'exemple, le nombre Nb_Add est égal à 8 bits. Un circuit électronique 15 de commande de la mémoire 10 est configuré pour réaliser une opération d'écriture ou de lecture dans la mémoire 10. Selon un mode de réalisation, plusieurs opérations d’écriture peuvent être mise en oeuvre dans la mémoire OTP 10. Par contre, il n’est pas possible d’effacer une donnée qui a été écrite précédemment. Une opération d'écriture dans la mémoire OTP 10 par le circuit de commande 15 comprend la fourniture d'une adresse et d'un signal numérique par le circuit de commande 15 à la mémoire OTP 10 et le stockage du signal numérique stocké dans l'emplacement de mémoire 12 correspondant à cette adresse. Une opération de lecture dans la mémoire OTP 10 par le circuit de commande 15 comprend la fourniture par le circuit de commande 15 à la mémoire OTP 10 d'une adresse, la mémoire OTP 10 fournissant alors le signal numérique stocké dans l'emplacement de mémoire 12 à cette adresse. Selon la technologie de mémoire une fois programmable mise en oeuvre, une opération de lecture dans un emplacement de mémoire dans lequel aucune opération d'écriture n'a été réalisée retourne des bits tous à la valeur logique "0" ou tous à la valeur logique "1". Selon un mode de réalisation, les emplacements de mémoire 12 de la mémoire OTP 10 sont répartis en une première zone mémoire 20, appelée zone mémoire principale par la suite, une deuxième zone mémoire ZW, appelée zone mémoire de réparation de données par la suite, et une troisième zone mémoire ZADD, appelée zone mémoire de réparation d'adresses par la suite. La zone mémoire principale 20 est utilisée pour le stockage de données lors d'un fonctionnement sans erreur de la mémoire 12. La zone mémoire principale 20 comprend un nombre T d'emplacements de mémoire W_k ayant des adresses add_k, k étant un nombre entier variant de 1 à T. Les zones mémoire de réparation d'adresses et de données ZADD et ZW sont utilisées pour réaliser une opération de réparation. La zone mémoire de réparation d'adresses ZADD comprend un nombre NT d'emplacements de mémoire ZADD_i ayant des adresses Spare_add_i, i étant un nombre entier variant de 1 à NT. La zone mémoire de réparation de données ZW comprend le nombre NT d'emplacements de mémoire ZW_j, ayant des adresses Spare_add_NT+j, j étant un nombre entier variant de 1 à NT. A titre d'exemple, en FIG. 1 , NT est égal à 7, et, pour les zones mémoire de réparation d'adresses et de données ZADD et ZW, chaque adresse est indiquée à côté de l'emplacement de mémoire correspondant. Selon un mode de réalisation, les adresses des emplacements de mémoire de la zone mémoire de réparation d'adresses ZADD et les adresses des emplacements de mémoire de la zone mémoire de réparation de données ZW sont successives. Ceci signifie qu'une adresse est égale à la somme de l'adresse précédente et du chiffre "1". L'adresse Spare_add_1 est appelée première adresse de la zone mémoire de réparation d'adresses ZADD et l'adresse Spare_add_NT est appelée dernière adresse de la zone mémoire de réparation d'adresses ZADD. De façon analogue, l'adresse Spare_add_NT+1 est appelée première adresse de la zone mémoire de réparation de données ZW et l'adresse Spare_add_2NT est appelée dernière adresse de la zone mémoire de réparation de données ZW. Selon un mode de réalisation, dans chaque emplacement de mémoire ZW_j de la zone mémoire de réparation de données ZW peut être stocké un mot qui n'a pas pu être stocké dans un emplacement de mémoire 12 de la zone mémoire principale 20, appelé emplacement défaillant par la suite. Selon un mode de réalisation, dans chaque emplacement de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD peut être stockée l'adresse add_k de l'emplacement défaillant W_k de la zone mémoire principale 20 et l'adresse de l'emplacement de mémoire ZW_j de la zone mémoire de réparation de données ZW dans lequel a été stocké le mot qui aurait dû être stocké dans l'emplacement défaillant. Selon un mode de réalisation, dans chaque emplacement de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD peut en outre être stocké un ou des bits fournis par un procédé de correction d'erreur. Selon un mode de réalisation, dans chaque emplacement de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD peut en outre être stocké au moins un bit de validité indiquant que l'opération d'écriture dans l'emplacement de mémoire ZADD_i s'est déroulée sans erreur. Les données stockées dans un emplacement de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD sont appelées paramètres d'adresse par la suite. La FIG. 2 est un schéma par blocs d'un mode de réalisation d'un procédé de réparation de la mémoire OTP 10 de la FIG. 1 . A l'étape 30, le circuit de commande 15 sélectionne l'adresse de lecture à la valeur Spare_add_NT+1, c’est-à-dire à la première adresse de la zone mémoire de réparation de données ZW. Le procédé se poursuit à l'étape 31. A l'étape 31, le circuit de commande 15 fait une lecture dans la zone mémoire de réparation de données ZW à l'emplacement de mémoire à l'adresse sélectionnée. Si la donnée lue est différente de la valeur attendue en l'absence d'opération d'écriture, ceci signifie que l'emplacement de mémoire de la zone mémoire de réparation de données ZW à l'adresse sélectionnée n'est pas disponible et le procédé se poursuit à l'étape 32. A l'étape 32, le circuit de commande 15 sélectionne l'adresse suivante de la zone mémoire de réparation de données ZW. Le procédé se poursuit à l'étape 33. A l'étape 33, le circuit de commande 15 détermine si l'adresse sélectionnée est supérieure à la dernière adresse Spare_add_2NT de la zone mémoire de réparation de données ZW. Si l'adresse sélectionnée est inférieure ou égal à la dernière adresse de la zone mémoire de réparation de données ZW, le procédé se poursuit à l'étape 31. Si l'adresse sélectionnée est supérieure à la dernière adresse de la zone mémoire de réparation de données ZW, cela signifie qu'aucun emplacement de mémoire de la zone mémoire de réparation de données ZW n'est disponible, le procédé se poursuit à l'étape 34. A l'étape 34, le circuit de commande 15 fournit un signal d'alerte indiquant que l'opération de réparation a échoué. A l'étape 31, si la donnée lue lors de l'opération de lecture est égale à la valeur attendue en l'absence d'opération d'écriture, le procédé se poursuit à l'étape 35. A l'étape 35, le circuit de commande 15 mémorise l'adresse Spare_add_NT+j de l'emplacement de mémoire ZW_j de la zone mémoire de réparation de données ZW qui est disponible pour réaliser une opération de réparation. Le procédé se poursuit à l'étape 36. Aux étapes 36 à 40, le circuit de commande 15 de la mémoire 10 écrit la donnée numérique à réparer dans la zone mémoire de réparation de données ZW. A l'étape 36, le circuit de commande 15 réalise une opération d'écriture de la donnée numérique à réparer dans l'emplacement de mémoire disponible de la zone mémoire de réparation de données ZW à l'adresse sélectionnée. Le procédé se poursuit à l'étape 37. A l'étape 37, le circuit de commande 15 fait une lecture dans la zone mémoire de réparation de données ZW à l'emplacement de mémoire à l'adresse sélectionnée. Si l'étape de lecture échoue, le procédé se poursuit à l'étape 38. A l'étape 38, le circuit de commande 15 sélectionne l'adresse suivante de la zone mémoire de réparation de données ZW. Le procédé se poursuit à l'étape 39. A l'étape 39, le circuit de commande 15 détermine si la nouvelle adresse sélectionnée est supérieure à la dernière adresse de la zone mémoire de réparation de données ZW. Si la nouvelle adresse sélectionnée est inférieure ou égale à la dernière adresse de la zone mémoire de réparation de données ZW, le procédé se poursuit à l'étape 36. Si la nouvelle adresse sélectionnée est supérieure à la dernière adresse de la zone mémoire de réparation de données ZW, cela signifie qu'il n'y a plus d'emplacement de mémoire disponible dans la zone mémoire de réparation de données ZW, et le procédé se poursuit à l'étape 40. A l'étape 40, le circuit de commande 15 fournit un signal d'alerte indiquant que l'opération de réparation a échoué. A l'étape 37, si l'opération de lecture se déroule correctement, le procédé se poursuit à l'étape 41. Aux étapes 41 à 48, le circuit de commande 15 de la mémoire 10 écrit les paramètres d'adresse de la donnée numérique à réparer dans la première mémoire de réparation ZADD. A l'étape 41, le circuit de commande 15 sélectionne l'adresse de la première mémoire de réparation ZADD qui a le même décalage par rapport à la première adresse de la première mémoire de réparation ZADD que le décalage de l'adresse de l'emplacement de mémoire disponible de la zone mémoire de réparation de données ZW par rapport à la première adresse de la zone mémoire de réparation de données ZW. A titre d'exemple, lorsque l'adresse de l'emplacement de mémoire disponible de la zone mémoire de réparation de données ZW est, en codage binaire sur 8 bits, de la forme 001xxxx, l'adresse sélectionnée de l'emplacement de mémoire de la première mémoire de réparation ZADD peut être de la forme 000xxxxx. Le procédé se poursuit à l'étape 42. A l'étape 42, le circuit de commande 15 réalise une opération d'écriture des paramètres d'adresse dans l'emplacement de mémoire de la première mémoire de réparation ZADD à l'adresse sélectionnée. Le procédé se poursuit à l'étape 43. A l'étape 43, le circuit de commande 15 fait une lecture dans la première mémoire de réparation ZADD à l'emplacement de mémoire à l'adresse sélectionnée. Si l'étape de lecture échoue, le procédé se poursuit à l'étape 44. A l'étape 44, le circuit de commande 15 sélectionne l'adresse suivante de la première mémoire de réparation ZADD. Le procédé se poursuit à l'étape 45. A l'étape 45, le circuit de commande 15 détermine si la nouvelle adresse sélectionnée est supérieure à la dernière adresse de la zone mémoire de réparation d'adresses ZADD. Si la nouvelle adresse sélectionnée est inférieure ou égale à la dernière adresse de la zone mémoire de réparation d'adresses ZADD, le procédé se poursuit à l'étape 42. Si la nouvelle adresse sélectionnée est supérieure à la dernière adresse de la zone mémoire de réparation d'adresses ZADD, cela signifie qu'il n'y a plus d'emplacement de mémoire disponible dans la première mémoire de réparation ZADD, et le procédé se poursuit à l'étape 46. A l'étape 46, le circuit de commande 15 fournit un signal d'alerte indiquant que l'opération de réparation a échoué. A l'étape 43, si l'opération de lecture se déroule correctement, le procédé se poursuit à l'étape 47. A l'étape 47, le circuit de commande 15 vérifie que les paramètres d'adresse ont été écrits correctement. Ceci peut comprendre la vérification du bit de validité des paramètres d'adresse. Si l'opération de vérification de validité échoue, le procédé se poursuit à l'étape 44. Si l'opération de vérification de validité réussit, le procédé se poursuit à l'étape 48. A l'étape 48, le circuit de commande 15 indique que l'opération de réparation s'est déroulée correctement. La FIG. 3 est un schéma par blocs d'un mode de réalisation d'un procédé de démarrage de la mémoire 10. Le circuit de commande 15 détermine si des opérations de réparation ont eu lieu. Dans ce but, il réalise une opération de lecture dans la zone mémoire de réparation d'adresses ZADD. A l'étape 50, le circuit de commande 15 sélectionne la première adresse Spare_add_1 de la zone mémoire de réparation d'adresses ZADD. Le procédé se poursuit à l'étape 51. A l'étape 51, le circuit de commande 15 fait une lecture dans la première mémoire de réparation ZADD à l'emplacement de mémoire à l'adresse sélectionnée. Si la donnée numérique lue est égale à la valeur attendue en l'absence d'opération d'écriture, cela signifie qu'il n'y a pas eu d'opération de réparation et le procédé se poursuit à l'étape 56. Si la donnée numérique lue est différente de la valeur attendue en l'absence d'opération d'écriture, cela signifie qu'il y a eu au moins une opération de réparation, et le procédé se poursuit à l'étape 52. A l'étape 52, le circuit de commande 15 vérifie que les paramètres d'adresse lus sont corrects. Ceci peut comprendre la vérification du bit de validité des paramètres d'adresse. Si l'opération de vérification de validité échoue, le procédé se poursuit à l'étape 53. Si l'opération de vérification de validité réussit, le procédé se poursuit à l'étape 54. A l'étape 53, le circuit de commande 15 sélectionne l'adresse suivante de la première mémoire de réparation ZA. Le procédé se poursuit à l'étape 51. A l'étape 54, le circuit de commande 15 mémorise dans une mémoire de travail MEM, différente de la mémoire OTP, par exemple une mémoire vive, parmi les paramètres d'adresse, l'adresse de l'emplacement défaillant la zone mémoire principale 20 qui a été réparé et l'adresse de la zone mémoire de réparation de données ZW où est stockée la donnée numérique qui aurait dû être stockée dans l'emplacement défaillant. Le procédé se poursuit à l'étape 55. A l'étape 55, le circuit de commande 15 sélectionne l'adresse suivante de la première mémoire de réparation ZA. Si la nouvelle adresse sélectionnée est inférieure ou égale à la dernière adresse de la zone mémoire de réparation d'adresses ZADD, le procédé se poursuit à l'étape 51. Si la nouvelle adresse sélectionnée est supérieure à la dernière adresse de la zone mémoire de réparation d'adresses ZADD, le procédé se poursuit à l'étape 56. A l'étape 56, le procédé de démarrage est arrêté. La FIG. 4 est un schéma par blocs d'un mode de réalisation d'un procédé de lecture dans la mémoire 10. A l'étape 60, le circuit de commande 15 reçoit une requête de lecture avec une adresse de la zone mémoire principale 20 de la mémoire 10. Le procédé se poursuit à l'étape 61. A l'étape 61, le circuit de commande 15 détermine si l'adresse de lecture fait partie des adresses stockées dans la mémoire de travail MEM utilisée lors du démarrage de la mémoire 10. Si l'adresse ne fait pas partie des adresses stockées dans la mémoire de travail MEM, le procédé se poursuit à l'étape 62. Si l'adresse fait partie des adresses stockées dans la mémoire de travail MEM, le procédé se poursuit à l'étape 63. A l'étape 62, le circuit de commande 15 fait une opération de lecture dans la zone mémoire principale 20 de la mémoire 10 à l'adresse reçue à l'étape 60. A l'étape 63, le circuit de commande 15 lit dans la mémoire de travail MEM l'adresse de la zone mémoire de réparation de données ZW dans la mémoire de travail MEM qui est associée avec l'adresse demandée. A l'étape 64, le circuit de commande 15 fait une opération de lecture dans la zone mémoire de réparation de données ZW de la mémoire 10 avec l'adresse récupérée à l'étape 63. La FIG. 5 représente schématiquement un autre mode de réalisation d'une mémoire OTP 80 adaptée pour la mise en oeuvre d'un procédé de réparation. La mémoire OTP 80 comprend l'ensemble des éléments de la mémoire OTP 10 à la différences que les T emplacements de mémoire de la zone mémoire de réparation d'adresses ZADD sont agencés en N groupes GADD_i de NA emplacements de mémoire chacun, i variant de 1 à N, et que les T emplacements de mémoire de la zone mémoire de réparation de données ZW sont agencés en N groupes GW_j de NA emplacements de mémoire chacun, j variant de 1 à N. Selon un mode de réalisation, le nombre NA est supérieur ou égal à 2, et, de préférence, varie de 2 à 16, plus préférentiellement de 2 à 10. Le nombre NA dépend notamment du taux de défaillance de la mémoire OTP 80 et des objectifs de réparations nécessaires. On a représenté le premier groupe GADD_1 d'emplacements de mémoire ZADD_1, ZADD_2, ..., ZADD_NA de la zone mémoire de réparation d'adresses ZADD et le N ième groupe GADD_N d'emplacements de mémoire ZADD_NA*(N-1)+1, ZADD_NA*(N-1)+2, ..., ZADD_NA*N de la zone mémoire de réparation d'adresses ZADD et on a représenté le premier groupe GW_1 d'emplacements de mémoire ZW_1, ZW_2, et ZW_NA de la zone mémoire de réparation de données ZW et le N ième groupe GW_N d'emplacements de mémoire ZW_NA*(N-1)+1, ZW_NA*(N-1)+2, ..., ZW_NA*N de la zone mémoire de réparation de données ZW. Selon un mode de réalisation, les adresses des emplacements de mémoire de la zone mémoire de réparation d'adresses ZADD et des emplacements de mémoire de la zone mémoire de réparation de données ZW sont successives. Les adresses des NA premiers emplacements de mémoire de la zone mémoire de réparation d'adresses ZADD sont Spare_add_1, Spare_add_2, ..., Spare_add_NA et les adresses des NA derniers emplacements de mémoire de la zone mémoire de réparation d'adresses ZADD sont Spare_add_NA*(N-1)+1, Spare_add_NA*(N-1)+2, ..., Spare_add_NA*N. Les adresses des NA premiers emplacements de mémoire de la zone mémoire de réparation de données ZW sont Spare_add_NA*N+1, Spare_add_NA*N+2, ..., Spare_add_NA*(N+1) et les adresses des NA derniers emplacements de mémoire de la zone mémoire de réparation de données ZW sont Spare_add_NA*(2N-1)+1, Spare_add_NA*(2N-1)+2, ..., Spare_add_NA*2N. Selon un mode de réalisation, pour la mémoire 80, le nombre total de réparations pouvant être réalisé est égal à N. Pour chaque réparation, le nombre maximum de tentatives pour effectuer la réparation est égal à NA. Chaque groupe GW_i, i variant de 1 à N, de NA emplacements de mémoire de la zone mémoire de réparation de données ZW est associé avec le groupe GADD_i de NA emplacements de mémoire de la zone mémoire de réparation d'adresses ZADD. Comme cela a été décrit précédemment pour la mémoire OTP 10, dans chaque emplacement de mémoire ZW_j, j variant de 1 à NA*N, de la zone mémoire de réparation de données ZW de la mémoire OTP 80 peut être stocké une donnée numérique qui n'a pas pu être stockée dans un emplacement de mémoire W_k, k variant de 1 à T, défaillant de la zone mémoire principale 20. Toutefois, selon un mode de réalisation, les paramètres d'adresse stockés dans les emplacements de mémoire ZADD_i, i variant de 1 à NA*N, de la zone mémoire de réparation d'adresses ZADD de la mémoire OTPPT 80 sont différents des paramètres d'adresse stockés dans les emplacements de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD de la mémoire OTP 10. Selon un mode de réalisation, à la différence de ce qui a été décrit précédemment pour la mémoire OTP 10, dans chaque emplacement de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD de la mémoire OTP 80 peut être stockée l'adresse add_k de l'emplacement défaillant W_k de la zone mémoire principale 20 et le rang entre 1 et NA de l'adresse Spare_add_j, j variant de NA*N+1 à NA*2N, de l'emplacement de mémoire ZW_j de la zone mémoire de réparation de données ZW dans lequel a été stocké la donnée numérique qui n'a pas pu être stockée dans l'emplacement défaillant W_k de la zone mémoire principale 20. Selon un mode de réalisation, dans chaque emplacement de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD peut en outre être stocké un ou des bits fournis par un procédé de correction d'erreur. Selon un mode de réalisation, dans chaque emplacement de mémoire ZADD_i de la zone mémoire de réparation d'adresses ZADD peut en outre être stocké au moins un bit de validité indiquant que l'opération d'écriture dans l'emplacement de mémoire ZADD_i s'est déroulée sans erreur. La FIG. 6 est un schéma par blocs d'un mode de réalisation d'un procédé de réparation de la mémoire OTP 80. Aux étapes 100 à 105, le circuit de commande 15 de la mémoire OTP 80 détermine s'il y a un emplacement de mémoire disponible dans la zone mémoire de réparation de données ZW. A l'étape 100, le circuit de commande 15 sélectionne l'adresse à la valeur Spare_add_4N+1, c’est-à-dire à la première adresse de la zone mémoire de réparation de données ZW. Le procédé se poursuit à l'étape 101. A l'étape 101, le circuit de commande 15 fait une lecture dans la zone mémoire de réparation de données ZW à l'emplacement de mémoire à l'adresse sélectionnée. Si la donnée lue est différente de la valeur attendue en l'absence d'opération d'écriture, ceci signifie que l'emplacement de mémoire de la zone mémoire de réparation de données ZW à l'adresse sélectionnée n'est pas disponible et le procédé se poursuit à l'étape 102. A l'étape 102, le circuit de commande 15 sélectionne l'adresse suivante de la zone mémoire de réparation de données ZW. Le procédé se poursuit à l'étape 103. A l'étape 103, le circuit de commande 15 détermine si l'adresse sélectionnée est supérieure à la dernière adresse Spare_add_8N de la zone mémoire de réparation de données ZW. Si l'adresse sélectionnée est inférieure ou égal à la dernière adresse de la zone mémoire de réparation de données ZW, le procédé se poursuit à l'étape 101. Si l'adresse sélectionnée est supérieure à la dernière adresse de la zone mémoire de réparation de données ZW, cela signifie qu'aucun emplacement de mémoire de la zone mémoire de réparation de données ZW n'est disponible, le procédé se poursuit à l'étape 104. A l'étape 104, le circuit de commande 15 fournit un signal d'alerte indiquant que l'opération de réparation a échoué. A l'étape 101, si la donnée lue lors de l'opération de lecture est égale à la valeur attendue en l'absence d'opération d'écriture pour les quatre adresses du groupe, le procédé se poursuit à l'étape 105. A l'étape 105, le circuit de commande 15 mémorise le rang de l'emplacement de mémoire ZW_j de la zone mémoire de réparation de données ZW qui est disponible pour réaliser une opération de réparation. A titre d'exemple, lorsque l'adresse de l'emplacement de mémoire disponible de la zone mémoire de réparation de données ZW est, en codage binaire sur 8 bits, de la forme 001rrrxx, où rrr code le suffixe i du groupe GW_i auquel appartient l'emplacement de mémoire ZW_j lorsque N est égal à 8 et où xx code le rang de l'emplacement de mémoire ZW_j lorsque NA est égal à 4. Le procédé se poursuit à l'étape 106. Aux étapes 106 à 111, le circuit de commande 15 de la mémoire 80 écrit la donnée numérique à réparer dans la zone mémoire de réparation de données ZW. A l'étape 106, le circuit de commande 15 sélectionne l'adresse du premier emplacement de mémoire du groupe dans lequel les NA emplacements de mémoire sont disponibles. A titre d'exemple, l'adresse sélectionnée du premier emplacement de mémoire d'un groupe GW_i d'emplacements de mémoire disponibles de la zone mémoire de réparation de données ZW est, en codage binaire sur 8 bits, de la forme 001rrr00 où rrr code le suffixe i du groupe GW_i. Le procédé se poursuit à l'étape 107. A l'étape 107, le circuit de commande 15 réalise une opération d'écriture de la donnée numérique à réparer dans l'emplacement de mémoire disponible de la zone mémoire de réparation de données ZW à l'adresse sélectionnée. Le procédé se poursuit à l'étape 108. A l'étape 108, le circuit de commande 15 fait une lecture dans la zone mémoire de réparation de données ZW à l'emplacement de mémoire à l'adresse sélectionnée. Si l'étape de lecture échoue, le procédé se poursuit à l'étape 109. A l'étape 109, le circuit de commande 15 sélectionne l'adresse suivante de la zone mémoire de réparation de données ZW. Le procédé se poursuit à l'étape 110. A l'étape 110, le circuit de commande 15 détermine si la différence entre la nouvelle adresse sélectionnée et l'adresse sélectionnée initialement lors de la première tentative d'écriture est égale à NA. Si la différence entre la nouvelle adresse sélectionnée et l'adresse sélectionnée initialement lors de la première tentative d'écriture est inférieure à NA, le procédé se poursuit à l'étape 107. Si la différence entre la nouvelle adresse sélectionnée et l'adresse sélectionnée initialement lors de la première tentative d'écriture est égale à NA, cela signifie qu'aucun des NA emplacements de mémoire du groupe de la zone mémoire de réparation de données ZW n'est disponible, et le procédé se poursuit à l'étape 111. A l'étape 111, le circuit de commande 15 fournit un signal d'alerte indiquant que l'opération de réparation a échoué. A l'étape 108, si l'opération de lecture se déroule correctement, le procédé se poursuit à l'étape 112. Aux étapes 112 à 119, le circuit de commande 15 de la mémoire 80 écrit les paramètres d'adresse de la donnée numérique à réparer dans la zone mémoire de réparation d'adresses ZADD. A l'étape 112, le circuit de commande 15 sélectionne l'adresse du premier emplacement de mémoire du groupe de la zone mémoire de réparation d'adresses ZADD qui est associé au groupe de la zone mémoire de réparation de données ZW dans lequel la donnée numérique réparée a été écrite. A titre d'exemple, lorsque l'adresse du premier emplacement de mémoire du groupe GW_i d'emplacements de mémoire de la zone mémoire de réparation de données ZW dans lequel la donnée numérique réparée a été écrite est, en codage binaire sur 8 bits, de la forme 001rrr00, où rrr code le suffixe i du groupe GW_i, l'adresse du premier emplacement de mémoire du groupe GADD_i de la zone mémoire de réparation d'adresses ZADD qui est associé au groupe de la zone mémoire de réparation de données ZW dans lequel la donnée numérique réparée a été écrite peut être de la forme 000rrr00. Le procédé se poursuit à l'étape 113. A l'étape 113, le circuit de commande 15 réalise une opération d'écriture des paramètres d'adresse dans l'emplacement de mémoire de la zone mémoire de réparation d'adresses ZADD à l'adresse sélectionnée. Le procédé se poursuit à l'étape 114. A l'étape 114, le circuit de commande 15 fait une lecture dans la zone mémoire de réparation d'adresses ZADD à l'emplacement de mémoire à l'adresse sélectionnée. Si l'étape de lecture échoue, le procédé se poursuit à l'étape 115. A l'étape 115, le circuit de commande 15 sélectionne l'adresse suivante de la zone mémoire de réparation d'adresses ZADD. Le procédé se poursuit à l'étape 116. A l'étape 116, le circuit de commande 15 détermine si la différence entre la nouvelle adresse sélectionnée et l'adresse sélectionnée initialement lors de la première tentative d'écriture est égale à NA. Si la différence entre la nouvelle adresse sélectionnée et l'adresse sélectionnée initialement lors de la première tentative d'écriture est inférieure à NA, le procédé se poursuit à l'étape 113. Si la différence entre la nouvelle adresse sélectionnée et l'adresse sélectionnée initialement lors de la première tentative d'écriture est égale à NA, cela signifie qu'aucun des NA emplacements de mémoire du groupe de la zone mémoire de réparation d'adresses ZADD n'est disponible, le procédé se poursuit à l'étape 117. A l'étape 117, le circuit de commande 15 fournit un signal d'alerte indiquant que l'opération de réparation a échoué. A l'étape 114, si l'opération de lecture se déroule correctement, le procédé se poursuit à l'étape 118. A l'étape 118, le circuit de commande 15 vérifie que les paramètres d'adresse ont été écrits correctement. Ceci peut comprendre la vérification du bit de validité des paramètres d'adresse. Si l'opération de vérification de validité échoue, le procédé se poursuit à l'étape 115. Si l'opération de vérification de validité réussit, le procédé se poursuit à l'étape 119. A l'étape 119, le circuit de commande 15 indique que l'opération de réparation s'est déroulée correctement. Le mode de réalisation du procédé de réparation décrit précédemment en relation avec la FIG. 6 permet, de façon avantageuse, de réduire le nombre de bits nécessaire pour désigner l'emplacement de mémoire de la zone mémoire de réparation de données ZW. En effet, le rang peut être codé sur un nombre réduit de bits, de préférence sur moins de quatre bits, par exemple sur deux ou trois bits, en fonction du nombre NA de tentatives de réparation. La FIG. 7 est un schéma par blocs d'un mode de réalisation d'un procédé de démarrage de la mémoire 80. Le circuit de commande 15 détermine si des opérations de réparation ont eu lieu. Dans ce but, il réalise une opération de lecture dans la zone mémoire de réparation d'adresses ZADD. A l'étape 200, le circuit de commande 15 sélectionne la première adresse Spare_add_1 de la zone mémoire de réparation d'adresses ZADD. Le procédé se poursuit à l'étape 201. A l'étape 201, le circuit de commande 15 fait une lecture dans la zone mémoire de réparation d'adresses ZADD à l'emplacement de mémoire à l'adresse sélectionnée. Si la donnée numérique lue est égale à la valeur attendue en l'absence d'opération d'écriture, cela signifie qu'il n'y a pas eu d'opération de réparation et le procédé se poursuit à l'étape 206. Si la donnée numérique lue est différente de la valeur attendue en l'absence d'opération d'écriture, cela signifie qu'il y a eu au moins une opération de réparation, et le procédé se poursuit à l'étape 202. A l'étape 202, le circuit de commande 15 vérifie que les paramètres d'adresse lus sont corrects. Ceci peut comprendre la vérification du bit de validité des paramètres d'adresse. Si l'opération de vérification de validité échoue, le procédé se poursuit à l'étape 203. Si l'opération de vérification de validité réussit, le procédé se poursuit à l'étape 204. A l'étape 203, le circuit de commande 15 sélectionne l'adresse suivante de la zone mémoire de réparation d'adresses ZA. Le procédé se poursuit à l'étape 201. A l'étape 204, le circuit de commande 15 mémorise dans une mémoire de travail MEM, différente de la mémoire OTP, par exemple une mémoire vive, parmi les paramètres d'adresse, l'adresse de l'emplacement défaillant de la zone mémoire principale 20 qui a été réparé et le rang. Comme les données sont stockées successivement dans la mémoire de travail MEM, des données (l'adresse de l'emplacement défaillant de la zone mémoire principale 20 qui a été réparé et le rang) stockées dans le k ème emplacement de mémoire de la mémoire de travail MEM signifie que la réparation a été réalisée dans le groupe GW_k de la zone mémoire de réparation de données ZW et le groupe GADD_k de la zone mémoire de réparation d'adresses ZADD. Selon un autre mode de réalisation, le circuit de commande 15 mémorise dans une mémoire de travail MEM, différente de la mémoire OTP, par exemple une mémoire vive, parmi les paramètres d'adresse, l'adresse de l'emplacement défaillant de la zone mémoire principale 20 qui a été réparé et l'adresse de l'emplacement de mémoire de la zone mémoire de réparation d'adresses ZADD utilisée pour la réparation. Le procédé se poursuit à l'étape 205. A l'étape 205, le circuit de commande 15 sélectionne la première adresse du groupe suivant de la zone mémoire de réparation d'adresses ZA. Le procédé se poursuit à l'étape 201. A l'étape 205, s'il n'y a plus de groupe suivant de la zone mémoire de réparation d'adresses ZA, le procédé se poursuit à l'étape 206. A l'étape 206, le procédé de démarrage est arrêté. La FIG. 8 est un schéma par blocs d'un mode de réalisation d'un procédé de lecture dans la mémoire 80. A l'étape 300, le circuit de commande 15 reçoit une requête de lecture avec une adresse de lecture de la zone mémoire principale 20 de la mémoire 80. Le procédé se poursuit à l'étape 301. A l'étape 301, le circuit de commande 15 détermine si l'adresse de lecture fait partie des adresses de lecture stockées dans la mémoire de travail MEM utilisée lors du démarrage de la mémoire 80. Si l'adresse ne fait pas partie des adresses stockées dans la mémoire de travail MEM, le procédé se poursuit à l'étape 302. Si l'adresse fait partie des adresses stockées dans la mémoire de travail MEM, le procédé se poursuit à l'étape 303. A l'étape 302, le circuit de commande 15 fait une opération de lecture dans la zone mémoire principale 20 de la mémoire 80 à l'adresse reçue à l'étape 300. A l'étape 303, le circuit de commande 15 récupère le rang de la zone mémoire de réparation de données ZW et détermine une adresse corrigée. Le procédé se poursuit à l'étape 304. A l'étape 304, le circuit de commande 15 fait une opération de lecture dans la zone mémoire de réparation de données ZW de la mémoire 80 à l'adresse corrigée. Le dispositif est par exemple destiné à l'industrie automobile. L’électrification des véhicules automobiles génère un niveau élevé et croissant de contenu électronique dans les véhicules. L’automatisation de la conduite génère également un niveau élevé et croissant de contenu électronique dans les véhicules. Le dispositif peut par exemple être utilisé dans le domaine industriel. Plus particulièrement, le dispositif vise par exemple à être utilisé pour le développement des énergies vertes ou pour l'électrification d'infrastructures, par exemple pour des bornes de recharge ou pour l'incorporation d'énergie solaire. L’appareil peut également être utilisé dans le domaine de l’Internet des objets et de la maison intelligente. L'appareil peut également être utilisé dans la mise en œuvre de cloud, de réseaux 5G, de centres de données et de serveurs. Le dispositif est par exemple destiné à être utilisé dans l'électronique personnelle, dans les appareils de connexions 5G ou plus généralement dans les appareils connectés. L'appareil est par exemple un smartphone ou une partie d'un réseau Internet des objets. Le dispositif est par exemple destiné à être utilisé dans des équipements de communication, ou dans des ordinateurs et périphériques. Par exemple, l'appareil peut être utilisé dans une infrastructure 5G et des centres de données dédiés. Le dispositif peut également être utilisé dans des satellites. Toutefois, il est clair que les applications décrites précédemment sont indiquées à titre d'exemple seulement, et que d'autres applications peuvent être envisagées. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Procédé de commande d'une mémoire une fois programmable (10 ; 80) comprenant des emplacements de mémoire identifiés chacun par une adresse, chaque emplacement de mémoire étant configuré pour stocker une donnée numérique ayant un nombre donné de bits, les emplacements de mémoire étant répartis en une première zone mémoire (20), une deuxième zone mémoire (ZW) et une troisième zone mémoire (ZADD), le procédé comprenant, lorsqu'une opération d'écriture d'une donnée numérique dans un premier emplacement de mémoire de la première zone mémoire (20) a échoué, l'écriture de la donnée numérique dans un deuxième emplacement de mémoire de la deuxième zone mémoire (ZW) et l'écriture dans un troisième emplacement de mémoire de la troisième zone mémoire (ZADD) de l'adresse du premier emplacement de mémoire et d'un identifiant du deuxième emplacement de mémoire. Procédé selon la revendication 1, dans lequel l'identifiant du deuxième emplacement de mémoire est égal à l'adresse du deuxième emplacement de mémoire. Procédé selon la revendication 1, dans lequel les emplacements de mémoire de la deuxième zone mémoire (ZW) sont répartis en premiers groupes GW_j, j variant de 1 à N, comprenant chacun NA emplacements de mémoire successifs de la deuxième zone mémoire (ZW), dans lequel les emplacements de mémoire de la troisième zone mémoire (ZADD) sont répartis en deuxièmes groupes GADD_i, i variant de 1 à N, comprenant chacun NA emplacements de mémoire successifs de la troisième zone mémoire (ZADD), dans lequel le deuxième emplacement de mémoire est situé dans le premier groupe GW_k, k étant un nombre entier variant de 1 à N, et dans lequel le troisième emplacement de mémoire est situé dans le deuxième groupe GADD_k. Procédé selon la revendication 3, dans lequel l'identifiant du deuxième emplacement de mémoire est égal au rang du deuxième emplacement de mémoire dans le premier groupe GW_k. Procédé selon la revendication 4, dans lequel le rang est codé sur un nombre de bits inférieur ou égal à 4. Procédé selon l'une quelconque des revendications 3 à 5, dans lequel le nombre NA varie de 2 à 16. Procédé selon l'une quelconque des revendications 3 à 6, dans lequel l'écriture de la donnée numérique dans le deuxième emplacement de mémoire (ZW) est réalisée dans l'un des premiers groupes GW_j, j variant de 1 à N, et dans lequel aucune opération d'écriture n'a été déjà réalisée dans aucun des emplacements de mémoire dudit groupe. Procédé selon l'une quelconque des revendications 1 à 7, comprenant, si l'écriture de la donnée numérique dans le deuxième emplacement de mémoire échoue, l'écriture de la donnée numérique dans le deuxième emplacement de mémoire suivant de la deuxième zone mémoire (ZW), et comprenant, si l'écriture de l'adresse du premier emplacement de mémoire dans le troisième emplacement de mémoire échoue, l'écriture de l'adresse du premier emplacement de mémoire dans le troisième emplacement de mémoire suivant de la troisième zone mémoire (ZADD). Procédé selon l'une quelconque des revendications 1 à 8, dans lequel le démarrage de la mémoire une fois programmable (10 ; 80) comprend la lecture de la deuxième zone mémoire (ZADD), et, si la deuxième zone mémoire (ZADD) n'est pas vide, la copie dans une mémoire supplémentaire (MEM), pour chaque opération d'écriture d'une donnée numérique dans un premier emplacement de mémoire de la première zone mémoire (20) ayant échoué, l'adresse du premier emplacement de mémoire et l'adresse du troisième emplacement de mémoire. Procédé selon la revendication 9, dans lequel une opération de lecture dans la première zone mémoire (20) de la mémoire une fois programmable (10 ; 80) comprend la fourniture d'une adresse, la recherche de l'adresse fournie dans la mémoire supplémentaire (MEM), dans le cas où l'adresse fournie n'est pas présente dans la mémoire supplémentaire (MEM), la lecture de la donnée numérique stockée dans l'emplacement de mémoire de la première zone mémoire (20) à l'adresse fournie, et dans le cas où l'adresse fournie est présente dans la mémoire supplémentaire (MEM), la lecture de la donnée numérique stockée dans le troisième emplacement de mémoire de la deuxième zone mémoire (ZW).