FR 3089681 A1 20200612 FR 1872645 A 20181210 Description Titre de l'invention : Mémoire à lecture unique Domaine technique [0001] La présente description concerne de façon générale les circuits et systèmes élec- troniques et plus particulièrement la réalisation d'un mémoire à lecture unique ou à lecture destructrice. Technique antérieure [0002] Les mémoires se divisent en plusieurs catégories selon qu'elles sont, à lecture seule, réinscriptibles, volatiles, non volatiles, ainsi que selon les technologies utilisées (flash, EEPROM, SRAM, etc.) [0003] Une catégorie particulière de mémoires concerne les mémoires dites à lecture unique ou à lecture destructrice ou par effacement. Il s'agit d'une mémoire ou d'un élément de mémorisation qui a pour caractéristique que la lecture de la donnée qu'elle contient provoque son effacement. [0004] Cc type de mémoire est utilisé notamment dans les processus cryptographiques pour, par exemple, stocker des informations (typiquement des clés) à usage unique. Elles peuvent également servir à réaliser des compteurs non réversibles. Résumé de l'invention [0005] Un mode de réalisation pallie tout ou partie des inconvénients des circuits mémoire à lecture destructrice connues. 100061 Un mode de réalisation prévoit un circuit mémoire à lecture destructrice particu- lièrement simple. 100071 Un mode de réalisation prévoit un circuit mémoire à lecture destructrice à hase de bascules. 100081 Un mode de réalisation prévoit un circuit mémoire à lecture destructrice compatible avec tout type de cellule mémoire non volatile réinscriptihle. 100091 Un mode de réalisation prévoit un circuit mémoire comportant : - au moins une cellule mémoire non volatile réinscriptible ; et - un circuit d'effacement de la cellule mémoire à réception d'une requête en lecture. 100101 Selon un mode de réalisation, le circuit comporte en outre au moins une bascule dont une entrée de mise à un est reliée à une sortie de la cellule. 100111 Selon un mode de réalisation, le circuit comporte en outre une fonction logique combinant au moins une sortie de la bascule et la sortie de la cellule. 100121 Selon un mode de réalisation, la fonction logique prend également en compte un état indicateur d'une commande en lecture. 100131 Selon un mode de réalisation, la fonction logique est de type ET, dont une entrée 2 recevant la sortie de la cellule mémoire est inversée. [0014] Selon un mode de réalisation, la bascule est de type RS. [0015] Selon un mode de réalisation, le circuit comporte en outre une fonction logique combinant la sortie de la cellule à un état indicateur d'une commande en lecture. [0016] Selon un mode de réalisation, la fonction logique est de type ET. [0017] Selon un mode de réalisation, une lecture de l'état stocké dans la cellule est suivie d'un forçage d'une sortie du circuit dans un état constant. [0018] Selon un mode de réalisation, une lecture est précédée d'une programmation de la cellule mémoire dans un état prédéterminé. [0019] Selon un mode de réalisation, la cellule mémoire est de type à état vierge à l'état haut. [0020] Selon un mode de réalisation, le circuit comporte en outre une entrée d'application d'un signal de séquencement reliée à une entrée de séquencement de la cellule mémoire et, de préférence, à une entrée de séquencement du circuit d'effacement. [0021] Selon un mode de réalisation, le signal de séquencement est en outre appliqué à une entrée de séquencement de la bascule. [0022] Un mode de réalisation prévoit également une mémoire non volatile à lecture par ef- facement. [0023] Un mode de réalisation prévoit également un procédé de commande d'un circuit mémoire comportant au moins une cellule mémoire non volatile réinscriptible, comportant lors d'une étape de lecture, l'étape de provoquer un effacement de la cellule mémoire avant de fournir son contenu. [0024] Selon un autre aspect, un mode de réalisation prévoit un circuit de mémoire volatile comportant : - au moins une première bascule ; - au moins une deuxième bascule dont une entrée de mise à un est reliée à une sortie de la première bascule ; et - une première fonction logique combinant au moins une sortie de la deuxième bascule et une information représentative de la sortie de la première bascule. [0025] Selon un mode de réalisation, le circuit comporte en outre une deuxième fonction logique combinant une entrée de commande en lecture et une entrée de commande en programmation de la cellule. [0026] Selon un mode de réalisation, la deuxième fonction logique est de type OU Exclusif. [0027] Selon un mode de réalisation, la première fonction logique est de type ET, dont une entrée recevant la sortie de la première bascule est inversée. [0028] Selon un mode de réalisation, une sortie de la deuxième fonction logique est reliée, de préférence connectée, à l'entrée de remise à zéro de la première bascule. [0029] Selon un mode de réalisation, la première fonction logique est de type NON ET. 3 100301 Selon un mode de réalisation, une sortie de la deuxième fonction logique est reliée, de préférence connectée, à rentrée mise à un de la première bascule. [0031] Selon un mode de réalisation, une lecture de l'état stocké dans le circuit mémoire s'accompagne d'un forçage d'une sortie du circuit dans un état constant. [0032] Selon un mode de réalisation, une lecture est précédée d'un effacement du contenu de la première bascule. [0033] Selon un mode de réalisation, la première fonction logique prend également en compte l'état d'une entrée de commande en lecture. [0034] Selon un mode de réalisation, les bascules sont de type RS. [0035] Selon un mode de réalisation, le circuit comporte en outre une entrée d'application d'un signal de séquencement reliée à des entrées de séquencement des bascules. [0036] Un mode de réalisation prévoit une mémoire volatile à lecture unique. Brève description des dessins [0037] 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 : [0038] [fig.1] la figure 1 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un circuit électronique du type auquel s'appliquent les modes de mise en oeuvre décrits ; [0039] [fig.2] la figure 2 représente, de façon très schématique, un mode de réalisation d'un circuit mémoire à lecture destructrice ; [0040] [fig.3] la figure 3 illustre, par des chronogrammes, le fonctionnement du mode de réalisation de la figure 2 ; [0041] [fig.4] la figure 4 représente, de façon très schématique, un autre mode de réalisation d'un circuit mémoire à lecture destructrice ; [0042] [fig.5] la figure 5 représente, de façon très schématique, un autre mode de réalisation d'un circuit mémoire à lecture destructrice ; [0043] [fig.6] la figure 6 représente, de façon très schématique, un autre mode de réalisation d'un circuit mémoire à lecture destructrice ; [0044] [fig.7] la figure 7 illustre, par des chronogrammes, le fonctionnement du mode de réalisation de la figure 7 ; [0045] [fig.8] la figure 8 représente, de façon très schématique et partielle, un autre mode de réa- lisation d'un circuit mémoire à lecture destructrice ; et [0046] [fig.9] la figure 9 illustre, par des chronogrammes, le fonctionnement du mode de réalisation de la figure 8. Description des modes de réalisation [0047] 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 etiou 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. [0048] 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, la constitution d'une cellule mémoire réinscriptible n'a pas été détaillée, le circuit mémoire décrit étant compatible avec les cellules mémoire usuelles, par exemple de type flash, EEPROM, etc. De plus, les applications utilisant des mémoires à lecture destructrice n'ont pas non plus été détaillées, les modes de réalisation décrits étant compatibles avec les applications usuelles. [0049] Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés ou couplés entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés ou couplés par l'intermédiaire d'un ou plusieurs autres éléments. [0050] Dans la description qui suit, on fera référence à « 0 » et « 1 » pour désigner des états logiques respectivement bas et haut des signaux numériques. Sauf précision contraire, l'état 0 représente l'état inactif d'un signal de commande. [0051] Sauf précision contraire, les expressions "environ", "approximativement", "sen- siblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. [0052] La figure 1 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un circuit électronique 1 du type auquel s'appliquent les modes de réalisation décrits. [0053] Le circuit électronique 1 comporte : - une ou plusieurs unité 11 de traitement numérique (PU), par exemple de type machine d'états, microprocesseur, circuit logique programmable, etc. ; - une ou plusieurs mémoire 12, 13 de stockage volatil (RAM) et/ou non volatil (NVM) de données et programmes ; - un ou plusieurs bus 14 de données, d'adresses et/ou de commandes entre les différents éléments internes au circuit 1 ; - une ou plusieurs interfaces 15 d'entrée-sortie (1/0) de communication avec ou sans fil avec l'extérieur du circuit 1 ; et - divers autres circuits en fonction de symbolisés en figure 1 par des blocs 16 (FCT). [0054] Selon le mode de réalisation représenté, le circuit 1 comporte en outre une mémoire 2 (MEM) à lecture destructrice. La mémoire 2 est une mémoire volatile ou non selon les modes de réalisation. La mémoire 2 a la particularité que la lecture d'une information qu'elle contient provoque l'effacement de cette information. Plus particulièrement, une caractéristique des modes de réalisation décrits est que la donnée stockée dans la mémoire 2 ne sort (n'est fournie) qu'un fois que le circuit garantit l'effacement de cette donnée de la mémoire. [0055] La figure 2 représente, de façon très schématique, un mode de réalisation d'un circuit mémoire 3 à lecture destructrice. [0056] Le circuit 3 de la figure 2 constitue un circuit élémentaire d'un bit de la mémoire 2 de la figure 1. En d'autres termes, la mémoire 2 comporte un nombre de circuits 3 qui dépend de l'application et du nombre de bits de mémoire que l'on souhaite à lecture destructrice. En variante, certains éléments du circuit 3 sont mutualisés, c'est-à-dire sont communs à plusieurs bits de la mémoire 2, un circuit mémoire représentant un mot de plusieurs bits (par exemple 8, 16, 32, 64). [0057] Le mode de réalisation de la figure 2 concerne la réalisation d'un circuit mémoire à mémorisation volatile, basée sur des bascules 32 et 34, par exemple de type RS. [0058] Un bit du circuit 3 comporte au moins : - une première bascule 32 ; - une deuxième bascule 34 ; et - une fonction logique 38 de sortie. [0059] Le circuit 3 comporte en outre, pour chaque bit ou mutualisé pour plusieurs bits - une fonction logique 36 d'entrée. [0060] Pour simplifier les explications, on considère par la suite le cas d'un circuit 3 par bit (version non mutualisée). Toutefois la mutualisation de certains éléments ne change pas le fonctionnement de base. [0061] Ainsi, le circuit 3 comporte, à la manière d'une cellule mémoire réinscriptible, une borne 31 de commande en lecture, une borne 33 de commande en programmation vers un état 1, une borne 35 de sortie de donnée et, optionnellement, une borne 37 de commande d'effacement ou de programmation vers un état O. Le circuit 3 comporte en outre une borne 39 d'application d'un signal de séquencement ou d'horloge des 6 bascules 32 et 34. [0062] Les bascules 32 et 34 fournissent au repos des états 0 sur leurs sorties respectives Q1 et Q2. Chaque bascule 32, 34 comporte une entrée Sl, respectivement S2, de mise à un (set), une entrée R1, respectivement R2, de remise à zéro (reset) et une entrée de séquencement ou d'horloge. [0063] Les éléments et définitions faites ci-dessus en relation avec la description de la figure 2 sont communs à tous les modes de réalisation basés sur des bascules pour constituer un circuit mémoire à mémorisation volatile et à lecture destructrice (ou à effacement). [0064] Dans le mode de réalisation de la figure 2, l'entrée S1 de la bascule 32 est reliée, de préférence connectée, à la borne 33 de commande d'une programmation d'un état 1. L'entrée R1 de la bascule 32 est reliée, de préférence connectée, à la sortie de la fonction logique 36. Cette fonction logique 36 est, dans l'exemple représenté, une combinaison de type OU (porte OU) ou de type OU-Exclusif (porte OU-Exclusif) à deux entrées, respectivement reliées, de préférence connectées, à la borne 31 de commande en lecture et à la borne 37 de commande en programmation d'un état O. Quand la fonction 36 et une fonction de type OU, on considère que la commande en lecture est prioritaire. Selon une autre variante, les signaux de lecture et de programmation sont regroupés sur une seule entrée du circuit 3 et la fonction 36 est alors omise. [0065] La sortie Q1 (directe ou non-inversée) de la bascule 32 (correspondant fonction- nellement à une sortie de donnée d'un élément de mémorisation) est reliée, de préférence connectée, à l'entrée S2 de la bascule 34. La sortie QI est par ailleurs reliée, par exemple par un inverseur 342, à l'entrée R2 de la bascule 34. L'entrée et la sortie de l'inverseur 342 sont alors respectivement reliées, de préférence connectées, à la sortie QI et à l'entrée R2. En variante, l'inversion du signal de sortie QI, pour son application à l'entrée R2, s'effectue par l'utilisation d'une entrée inversée de remise à zéro de la bascule 34. Selon une autre variante, on utilise la sortie inversée NQ1 de la bascule 32 que l'on relie, de préférence connecte, à l'entrée R2. [0066] La sortie Q2 (directe ou non-inversée) de la bascule 34 est combinée avec l'inverse de la sortie QI de la bascule 32 par la fonction logique 38. La fonction 38 effectue, dans l'exemple représenté, une combinaison de type ET (porte ET) de ses deux entrées. L'inversion du signal prélevé sur la sortie QI de la bascule 32 est symbolisée par un inverseur 382 reliant la sortie QI de la bascule 32 à une entrée de la fonction 38, mais on peut également par exemple utiliser la sortie NQ1. La sortie de la fonction 38 est reliée, de préférence connectée, à la borne 35 de sortie du circuit mémoire 3. [0067] Dans le mode de réalisation de la figure 2, la sortie inversée NQ2 de la bascule 34 n'est pas utilisée. [0068] Fonctionnellement, la bascule 32 correspond à l'élément de mémorisation (l'élément qui stocke la donnée) et la bascule 34 sert pour la lecture et contient la même valeur 7 que la bascule 32 niais avec un cycle d'horloge de décalage. [0069] La figure 3 illustre, sous forme de chronogrammes, le fonctionnement du circuit mémoire 3 de la figure 2. [0070] La figure 3(a) représente un exemple de signal de déclenchement CK, appliqué sur la borne 39. La figure 3(h) représente un exemple de signal de commande en programmation vers l'état 0 (ou effacement), appliqué sur la borne 37. La figure 3(c) représente un exemple de signal de commande en lecture appliqué sur la borne 31. La figure 3(d) représente un exemple de signal de commande en programmation vers l'état 1, appliqué sur la borne 33, correspondant de la borne d'entrée Si de la bascule 32. La figure 3(e) représente l'état de sortie de la porte 36 ou de l'entrée RI de la bascule 32. La figure 3(f) représente le contenu de la cellule mémoire 32, soit l'état de la borne QI de sortie de la bascule 32. La figure 3(g) représente l'état correspondant de la borne S2 d'entrée de la bascule 34. La figure 3(h) représente l'état correspondant de la borne R2 d'entrée de la bascule 34. La figure 3(i) représente l'état correspondant de la borne Q2 de la bascule 34. La figure 3(j) représente l'état correspondant de la borne de sortie 35. [0071] On suppose que le signal CK active les bascules 32 et 34 sur front montant. Par conséquent, la bascule 32 prend en compte les états des signaux présents sur les entrées Si et RI à chaque front montant pour définir l'état de la cellule mémoire, donc l'état de la borne Ql. De même, la bascule 34 prend en compte les états des signaux présents sur les entrées S2 et R2 à chaque front montant pour fixer l'état de la sortie Q2. [0072] Dans le mode de réalisation de la figure 2 où l'on est en présence d'une cellule mémoire volatile, son contenu doit être fixé par un cycle de programmation initial, à la suite de la mise sous tension du circuit électronique qui intègre la cellule. De plus, le signal CK n'est pas nécessairement un signal périodique mais peut être un signal de déclenchement. En effet, un front sur le signal CK engendrant une prise en compte des états respectifs des entrées des bascules 32 et 34, un tel fi-ont ne peut donc apparaître que lorsque l'on effectue une opération volontaire (mise à 1, remise à 0, lecture). [0073] La partie gauche de la figure 3 illustre un exemple de fonctionnement pour une pro- grammation vers un état 1. La partie centrale de la figure 3 illustre un exemple de fonctionnement pour une programmation vers un état O. La partie droite de la figure 3 illustre un exemple de fonctionnement lors d'une lecture. [0074] Initialement (à la mise sous tension), tous les signaux de la figure 3 sont nor- malement à l'état bas (0), notamment les signaux appliqués sur les bornes 31, 33, 37 et 39, donc les signaux SI et RI. Avec tous ces signaux à l'état 0, la sortie 35 est forcée à l'état 0 au plus tard au bout de deux cycles (fronts montants du signal appliqué sur la borne 39). Toutefois, pour tenir compte du fait que, lors d'une programmation, le contenu peut déjà avoir été fixé par une programmation précédente, on symbolise par des zones hachurées, les états indéterminés ou indifférents. 8 [0075] On considère que la cellule mémoire 3 doit commencer par être programmée soit vers un état 1, soit vers un état O. En l'absence de programmation, dans l'exemple de la figure 3, la cellule fournit sa valeur d'effacement, soit l'état O. [0076] Pour programmer la cellule vers l'état 1 (partie gauche de la figure 3), on applique (instant t41), sur l'entrée 33, un état haut (1) à programmer. Cet état se retrouve sur l'entrée Si de la bascule 32. Au front de déclenchement qui suit (instant t43), l'état 1 est lu par la bascule 32 sur son entrée S1 et est reporté sur la sortie Q1 de la bascule 32, donc sur l'entrée S2 de la bascule 34. Par ailleurs, l'inverse, c'est-à-dire l'état 0, est reporté sur l'entrée R2. Au front montant suivant du signal de déclenchement (instant t47) la valeur 1 lue sur l'entrée S2 est reportée sur la sortie Q2. Toutefois la sortie 35 reste à l'état bas grâce à l'état bas présent sur la deuxième entrée de la porte 38. Dans l'exemple de la figure 3, on suppose que l'état haut sur l'entrée 33 disparait à un instant t45, intermédiaire entre les instants t43 et t47. Toutefois, il peut également subsister, la programmation sera simplement confirmée dans le même état à chaque front du signal de déclenchement. Pour être pris en compte, le signal de programmation doit cependant être présent au moins au premier front du signal de déclenchement qui suit son apparition. De façon simple, en supposant que le signal de déclenchement est un signal périodique ou d'horloge, le signal de programmation (vers l'état 1 sur l'entrée 33 ou vers l'état 0 sur rentrée 37) est appliqué pendant une durée au moins égale à une période et, de préférence d'une période. L'état mémorisé reste stable tant que ne se produit pas une lecture, une coupure d'alimentation ou une programmation vers l'état 0 (effacement). En particulier, s'agissant de bascules RS, elles conservent l'état 1 en sortie tant qu'elles ne sont pas remises à zéro par leurs entrées respectives RI et R2. [0077] Pour programmer la cellule vers l'état 0 (partie centrale de la figure 3), on applique (instant t5 I), sur l'entrée 37, un état haut (1) pour remettre à zéro la bascule 32. Cet état se retrouve sur l'entrée RI de la bascule 32. Au fi-ont de déclenchement qui suit (instant t53), l'état 1 est lu par la bascule 32 sur son entrée RI et un état 0 est donc forcé en sortie QI de la bascule 32, donc sur l'entrée S2 de la bascule 34. Par ailleurs, l'inverse, c'est-à-dire l'état 1, est reporté sur l'entrée R2. Au front montant suivant du signal de déclenchement (instant t57), la valeur 1 lue sur l'entrée R2 force la sortie Q2 à l'état O. La sortie 35 reste donc à l'état bas. On suppose ici également que l'état haut sur l'entrée 37 disparait à un instant t55, intermédiaire entre les instants t53 et t57. Toutefois, là encore, cet état peut également subsister. De même, comme pour la programmation vers l'état 1, pour être pris en compte, le signal de programmation vers l'état 0 doit être présent au moins au premier fiont du signal de déclenchement qui suit son apparition. Là encore, l'état mémorisé reste stable (jusqu'à une lecture, une programmation vers l'état 1 ou une coupure de l'alimentation). [0078] Pour effectuer une lecture du circuit 3 (partie droite de la figure 3), on applique 9 (instant t61) un état 1 sur l'entrée 31. Cet état se retrouve sur rentrée Rl. Au front de déclenchement qui suit (instant t63), l'état 1 est lu par la bascule 32 sur son entrée R1 et un état 0 est donc forcé en sortie Q1 de la bascule 32, donc sur l'entrée S2 de la bascule 34. Par ailleurs, l'inverse, c'est-à-dire l'état 1, est reporté sur l'entrée R2. Dans le même temps, l'état V mémorisé, qui est présent sur la sortie Q2, est reporté sur la sortie de la porte 38, par le basculement à l'état 1 de l'entrée R2 (si la sortie Q2 est à l'état 0, le résultat de la combinaison ET donne 0, si la sortie Q2 est à 1, le résultat de la combinaison ET donne 1). On notera que, avant l'instant t63, l'entrée R2 présente l'inverse NV de la valeur V mémorisée dans la cellule. Au front montant suivant du signal de déclenchement (instant t67), la valeur 1 lue sur l'entrée R2 force la sortie Q2 à l'état O. Cela efface la valeur de sortie qui, quel que soit l'état précédent, prend l'état bas. On suppose, là encore, que le signal de lecture n'est présent que pendant une durée correspondant à un cycle et disparaît donc à un instant t55, intermédiaire entre les instants t53 et t57. Toutefois, il peut, comme dans les cas précédents subsister. [0079] On notera que, dans le mode de réalisation illustré par les figures 2 et 3, la donnée ou valeur V présente en sortie 35 doit être prise en compte par les circuits avals au plus tard à l'instant t67. En effet, après cet instant, la valeur V est effacée. On dispose donc d'un cycle pour prendre en compte l'état lu. [0080] On notera que, dans l'exemple des figures 2 et 3, le fonctionnement en lecture est identique au fonctionnement en remise à l'état O. En d'autres termes, entre les états t53 et t57, le signal de sortie 35 prend en fait la valeur de la sortie Q2 (zone 59 hachurée en partie centrale de la figure 3). Ainsi, si une programmation vers l'état 0 suit une programmation vers l'état 1 sans qu'il y ait eu de lecture entre les deux, la sortie 35 prend l'état 1 temporairement. Cela revient à dire que, dans le mode de réalisation de la figure 2, il n'y a pas de lecture autrement que par un effacement. [0081] La figure 4 représente, de façon très schématique, un autre mode de réalisation d'un circuit mémoire à lecture destructrice ou lecture par effacement. [0082] Le mode de réalisation de la figure 4 permet d'éviter la situation du mode de réa- lisation de la figure 2 dans lequel une programmation vers l'état zéro est équivalent à une lecture. [0083] Par rapport au circuit de la figure 2, la fonction ou porte ET 38 est remplacée par une fonction ou porte ET à trois entrées 48 et sa troisième entrée reçoit directement le signal de commande en lecture, c'est-à-dire qu'elle est reliée, de préférence connectée, à la borne 31. Le reste du circuit est identique à celui exposé en relation avec la figure 2. [0084] Le fonctionnement est similaire à celui exposé en relation avec la figure 2 à deux dif- férences près. [0085] Une première différence est que la situation de lecture en cas de programmation vers l'état 0 (zone 59 en figure 3) ne peut plus se produire. En effet, le signal de commande en lecture étant à l'état bas, il force la sortie 35 à l'état bas pendant les phases de programmation et plus généralement, hors de toute période où le signal appliqué sur la borne 31 est à l'état haut. [0086] Une deuxième différence est que le signal de commande en lecture appliqué sur la borne 31 doit être maintenu pendant au moins deux cycles. En effet, comme la valeur V n'est fournie qu'à l'instant t67, il faut que la troisième entrée de la porte 48 soit encore à l'état 1 à l'instant t67 Cette durée est illustrée par le pointillé 69 en figure 3(c). [0087] La figure 5 représente, de façon très schématique, un autre mode de réalisation d'un circuit mémoire à lecture destructrice ou par effacement. [0088] Par rapport au mode de réalisation de la figure 4 : - l'inverseur 382 est supprimé, la sortie Q1 étant reliée, de préférence connectée, sans inversion à la porte ET 48 ; - l'état de sortie de la porte ET 48 est inversé avant d'être fourni à la borne 35 (par exemple par un inverseur 482 distinct ou en remplaçant la porte 48 par une porte de type NON-ET ; - la porte 36 est remplacée par une fonction 56 ou porte de type OU-Exclusif (ou de type OU) qui combine l'état du signal de commande en lecture (home 31) avec l'état du signal de programmation vers l'état 1 (entrée 33) ; et - seul le signal de commande en programmation vers l'état 0 est pris en compte par l'entrée RI de la bascule 32 (l'entrée RI est reliée, de préférence connectée, à la borne 37). [0089] Sur le plan du fonctionnement, la différence par rapport au mode de réalisation de la figure 4 est que l'état effacé, c'est-à-dire l'état présent en sortie 35 au repos, est l'état haut. Ce fonctionnement se déduit de l'exposé effectué en relation avec les figures précédentes. [0090] Le mode de réalisation illustré par la figure 5 peut également, en variante, utiliser une porte ET à deux entrées en guise de porte 48. Le fonctionnement est alors voisin de celui exposé en relation avec la figure 3, mais cette fois-ci, c'est une programmation vers l'état 1 qui a le même comportement qu'une lecture. [0091] La figure 6 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un circuit mémoire 7 non volatile à lecture destructrice ou à lecture par effacement. [0092] Selon ce mode de réalisation, le circuit mémoire 7 est basé sur l'utilisation de tout ou partie d'une mémoire flash. [0093] Dans l'exemple de la figure 6, on suppose que le circuit 7 comporte une mémoire flash 72 organisée en mots de k bits, par exemple trente-deux bits. Cependant, tout ce qui est décrit par la suite se transpose à une mémoire flash organisée en mots d'un 11 nombre k quelconque de bits. [0094] Cc mode de réalisation illustre une version dans lequel certains éléments du circuit mémoire 7 sont mutualisés, c'est-à-dire sont utilisés quel que soit le mot de la mémoire 72 traité. [0095] A la manière d'une mémoire flash usuelle, le circuit 7 comporte une entrée ADD d'un bus d'adresses, par exemple de k égal trente-deux bits, une entrée IN de données (bus de données) sur k bits, une entrée REQ de commande, indicatrice de l'opération souhaitée (programmation, lecture, effacement), et une entrée 79 de séquencement. Le circuit 7 comporte en outre une sortie 75 (OUT) de données (bus de données) sur k bits. Pour simplifier la description, on confond volontairement une home et le signal présent sur cette borne. [0096] Le bus d'adresse ADD est fourni directement à la mémoire 72 (entrée de bus d'adresse ADD'). Le bus de données IN et le signal de commande REQ sont traités par un circuit d'arbitrage 76 (AC) avant d'être fournis à la mémoire 72 (entrée de bus de données IN' et entrée de commande REQ'). De préférence, le circuit 76 fournit également, sur une home R, un signal de validation de lecture. Le circuit 76 reçoit également le signal de séquencement de la home 79. [0097] Le bus de sortie OUT' de la mémoire 72 fournit le mot de données lu dans celle-ci. Les k bits du bus sont traités individuellement par k bascules 74 de type RS. Ainsi, chaque bit du bus de sortie OUT' de la mémoire 72 est envoyé sur une entrée S' de mise à 1 d'une bascule 74 et son inverse (inverseur 742) est envoyé sur l'entrée de remise à zéro R' de la même bascule 74. [0098] Chaque bascule 74 est associée à une fonction logique 78 réalisant une combinaison de type ET. Selon un mode de réalisation simplifié, chaque fonction 78 a deux entrées combinant la sortie directe Q' de chaque bascule 74 à l'inverse de l'entrée S' de cette bascule. Dans le mode de réalisation représenté, la fonction 78 est à trois entrées. La sortie directe Q' de chaque bascule 74 est reliée, de préférence connectée, à une première entrée de la porte 78. Une deuxième entrée de toutes les portes 78 reçoit le signal de commande en lecture fourni par le circuit 76. Une troisième entrée de chaque porte 78 est reliée, par un inverseur 782, à l'entrée S' de la bascule 74 correspondante. [0099] Dans l'exemple de la figure 6, on suppose le cas d'une mémoire flash de type NAND, c'est-à-dire dont la programmation revient à l'écriture d'un 0 et dont l'effacement revient à l'écriture d'un 1. C'est pourquoi, la partie du circuit en aval de la mémoire 72 est similaire au mode de réalisation de la figure 4. Toutefois, ce qui est décrit par la suite se transpose au cas inverse (programmation par l'écriture d'un 1 sur un état effacé 0) en utilisant la partie du circuit en aval de la mémoire 72 comme dans le mode de réalisation de la figure 5. [0100] En outre, on suppose que la sortie OUT' n'est pas modifiée par une programmation 12 ou par un effacement, mais seulement par une lecture. Cette dernière condition rend optionnelle la prise en compte du signal R au niveau des portes 78 comme on le verra par la suite. [0101] Le rôle du circuit 76 est, à partir de la requête ou commande reçue REQ, de contrôler qu'en cas de lecture, le mot de données soit effacé de la mémoire 72 avant qu'il ne soit fourni par le circuit mémoire 7. [0102] Cela revient à appliquer les règles suivantes : - en cas de requête en programmation, transférer la requête REQ sur l'entrée REQ', transférer la donnée IN non modifiée sur l'entrée IN', et laisser le signal R inactif (état 0). La sortie 75 reste alors à l'état 0. Cet état 0 de la sortie est, dans l'exemple de la figure 4, forcé par le signal R. Dans une variante à porte ET à deux entrées, le fait que la sortie OUT' reste stable lors d'une opération de programmation garantit également que la sortie OUT reste à l'état 0 (soit la borne Q' est à l'état 0, soit la sortie de l'inverseur 782 est à 0). - en cas de requête en effacement, transférer la requête REQ sur l'entrée REQ', ne pas se préoccuper du bus IN (le transférer ou non n'a pas d'importance), et laisser le signal R inactif (état 0). La sortie 75 reste là encore à l'état 0 pour les mêmes raisons qu'en cas de programmation. - en cas de requête en lecture, modifier la requête de l'entrée REQ en une requête REQ' de lecture suivie d'une requête REQ' de programmation d'un 0, cc qui revient, au niveau de la mémoire 72, à effectuer successivement une lecture, une programmation d'un mot tout à 0 et de nouveau une lecture (de façon usuelle, dans une mémoire flash, une programmation est suivie d'une lecture). En outre, si un signal R est utilisé, celui-ci est porté à l'état actif (1) au moins pendant le cycle d'horloge qui suit la deuxième étape de lecture. [0103] La figure 7 illustre, par des chronogrammes, le fonctionnement du circuit mémoire de la figure 6. [0104] La figure 7(a) représente un exemple de signal de séquencement CK, appliqué sur la borne 79. La figure 7(b) représente un exemple de signal de commande REQ. La figure 7(c) représente l'allure correspondante du signal REQ'. La figure 7(d) représente un exemple de signal de données IN. La figure 7(e) représente l'allure correspondante du signal IN'. La figure 7(f) représente l'état de la borne de sortie OUT' de la mémoire 72. La figure 7(g) représente les états correspondants des bornes d'entrée S' des bascules 74. La figure 7(h) représente les états correspondants des bornes R' des bascules 74. La figure 7(i) représente les états des bornes Q' de sortie des bascules 74. La figure 7(j) représente l'état OUT de la sortie 75 du circuit mémoire 7. [0105] Pour simplifier, on néglige, dans la représentation de la figure 7, les temps de pro- pagation dans les fonctions logiques. De plus, on suppose arbitrairement et pour 13 simplifier que le temps de traitement par le circuit 76 est immédiat, c'est-à-dire que l'on néglige également son temps de propagation. En pratique, selon la réalisation pratique du circuit 76, la transition est soit quasi immédiate comme illustrée, soit prend un cycle d'horloge. Toutefois, côté mémoire 72, chaque opération prend un cycle d'horloge. Ainsi, une requête reçue sur l'entrée REQ est suivie d'effet sur la sortie OUT' au front montant démarrant le cycle suivant. [0106] On suppose que la mémoire est commandée par les fronts montants du signal CK. Le fonctionnement peut ainsi se résumer en cinq cycles d'horloge débutant respectivement par des instants t81, t82, t83, t84 et t85. Comme pour la description de la figure 3, on symbolise par des hachures les états quelconques ou inopérants. [0107] On suppose arbitrairement un état initial à 0 du signal OUT' afin de montrer des com- mutations des signaux S', R' et Q'. Toutefois, comme l'état du signal OUT' (donc du signal OUT) ne change pas pendant les requêtes d'effacement et de programmation de la mémoire 72, cela ne modifie pas le fonctionnement que le signal OUT' soit initialement à 1. De plus, on se contente d'exposer le fonctionnement en lecture, car le fonctionnement d'une requête REQ en effacement ou en programmation ne modifie pas les états en aval de la mémoire 72. Ainsi, l'état du signal IN est inopérant pendant tout le fonctionnement décrit en relation avec la figure 7. [0108] Comme le signal OUT' est initialement à l'état 0, le signal S' est à l'état 0, le signal R' est à l'état 1 et le signal Q' est à l'état 0. La sortie OUT est bien à l'état O. [0109] A l'instant t81, on suppose qu'une requête en lecture READ arrive sur l'entrée REQ et que cette requête est présente pendant un cycle (entre les instants t81 et t82) afin de pourvoir être prise en compte par la mémoire au front t82. L'entrée ADD reçoit par ailleurs l'adresse de lecture dans la mémoire 72 qui est transmise sur son entrée ADD'. [0110] Le circuit 76 convertit cette requête en trois requêtes successives REQ' de lecture READ, de programmation PROG et de lecture READ. Chaque requête REQ' dure un cycle. De plus, pendant le cycle de programmation (entre les instants t82 et t83), le signal IN' est forcé à l'état 0 par le circuit 76. [0111] A l'instant t82, la première requête de lecture de la mémoire 72 se traduit par la fourniture sur la sortie OUT' de la donnée D(ADD) stockée à l'adresse ADD. Il en découle que l'entrée S' prend l'état D(ADD) ou plus précisément que les entrées S' des k différentes bascules 74 prennent les états respectifs des bits de la donnée D(ADD), et que l'entrée R' prend l'état inverse ND(ADD). La sortie Q' reste à 0, de même que la sortie OUT. Par ailleurs, afin de préparer la programmation de l'état 0 à l'adresse ADD, le circuit 76 positionne le signal IN' avec tous les bits à l'état 0. [0112] A l'instant t83, la programmation de la valeur 0 est effectuée dans la mémoire 72 à l'adresse ADD. Côté sortie OUT' (donc entrées S' et R') rien ne change car la programmation en elle-même ne modifie pas l'état de la sortie OUT'. Toutefois, la valeur 14 D(ADD) se retrouve sur la borne Q'. La valeur OUT ne change pas. Par ailleurs, le circuit 76 génère la deuxième requête REQ' de lecture (toujours à l'adresse ADD). [0113] A l'instant t84, cette deuxième requête de lecture se traduit par le fait que la sortie OUT' prend l'état 0 (le mot mémoire a été effacé). Les entrées S' et R' prennent également l'état 0. Comme l'entrée R' est désormais à l'état 0, la sortie de l'inverseur 782 est à l'état 1 (tous ses bits sont à l'état 1). Par conséquent, la sortie 75 reflète l'état de la sortie Q', donc fournit le mot lu D(ADD). [0114] Dès l'instant t85 (cycle suivant), la sortie OUT' passe à l'état 0, cc qui fait disparaitrc le mot D(ADD) de la sortie OUT. [0115] On voit donc que la donnée est effacée de la mémoire 72 avant d'être fournie à la sortie 75 du circuit 7. [0116] Dans le cas de la figure 6, si l'on utilise le signal R, celui-ci est commuté à l'état 1 par le circuit 76 uniquement pendant le cycle compris entre les instants t84 et t85. Bien que cela ne soit pas indispensable avec le type de mémoire décrit, cela constitue une sécurité et peut de plus être utilise selon le fonctionnement de la mémoire 72. [0117] La figure 8 représente, de façon très schématique et partielle, sous forme de blocs, un autre mode de réalisation d'un circuit mémoire 7 non volatile à lecture destructrice ou à lecture par effacement. [0118] Par rapport au mode de réalisation de la figure 6, les bascules 74 et les portes ET 78 sont remplacées par des portes ET 78' combinant, un à un, les bits de sortie OUT' de la cellule 72 avec le signal R. Les sorties respectives des portes 78' constituent directement la sortie OUT. [0119] La figure 9 illustre, par des chronogrammes, le fonctionnement du circuit mémoire de la figure 8. [0120] Pour simplifier, seuls certains chronogrammes de la figure 7 sont repris en figure 9 et uniquement entre les instants t82 et t84. [0121] La figure 9(a) représente l'état de la borne de sortie OUT' de la cellule 72. La figure 9(b) représente l'état du signal R généré par le circuit 76 (figure 6). La figure 9(c) représente l'état de la borne OUT. [0122] Selon ce mode de réalisation, le signal R est activé (état 1) entre les instants t83 et t84. Ainsi, la sortie OUT porte la valeur D(ADD) entre ces instants t83 et t84. [0123] Un avantage du circuit mémoire décrit est qu'il est particulièrement simple à réaliser à partir d'une mémoire quelconque. [0124] Un avantage du circuit mémoire décrit est qu'il ne requiert aucune entrée-sortie sup- plémentaire de commande ou autre par rapport aux entrées-sorties d'une cellule mémoire non volatile. [0125] Un avantage des modes de réalisation décrits est qu'ils ne requièrent aucune modi- fication des circuits de commande en lecture par rapport à des cellules mémoire usuelle. En effet, il suffit de remplacer une cellule mémoire dans l'application par le circuit mémoire décrit, les entrées-sorties étant identiques. [0126] Le circuit mémoire décrit est compatible avec une organisation, par octets, mots, matrices, etc. à la manière d'une mémoire usuelle. Toutefois, dans la plupart des applications, le nombre de bits que l'on souhaite utiliser avec une lecture destructrice est peu important, par exemple de l'ordre du kilobit par rapport à une mémoire de plusieurs dizaines de mégaoctets qui équipe généralement les circuits électroniques à microprocesseur. Par conséquent, on pourra préférer réaliser la mémoire à lecture destructrice avec un nombre de circuits mémoire dédiés. [0127] Divers modes de réalisation et variantes ont été décrits. L'homme de l'art comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d'autres variantes apparaitront à l'homme de l'art. En particulier, bien que l'on ait décrit un mode de réalisation basé sur l'utilisation d'une cellule mémoire à programmation vers l'état 0 (état vierge 1), on pourra utiliser une cellule mémoire à état vierge 0 et programmable vers l'état 1 en adaptant les fonctions logiques. [0128] Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus. En particulier, le choix du signal de synchronisation (périodique ou non) dépend de l'application. 16 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] [Revendication 10] [Revendication 11] [Revendication 12] [Revendication 13]