INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Ces variations entrainent que les résistances des mémoires résistive qui sont programmées dans l’état LRS peuvent dériver vers un état HRS, et les résistances qui sont programmées dans l’état HRS peuvent dériver vers un état LRS. Dès lors, ce glissement des valeurs des résistances programmées peut engendrer des erreurs lors des opérations de lecture, et diminuer la performance des mémoires.
Une manière courante d’améliorer la performance des mémoires RRAM est de diminuer leur taux d’erreur. Pour réduire le taux d’erreur des mémoires, une solution couramment utilisée consiste à utiliser un code correcteur d’erreurs ou ECC (pour « Error Correcting Code » selon la terminologie anglo-saxonne) qui encode les données avant leur écriture en mémoire. Lors de l'encodage de données avec un code ECC, des bits de vérification sont ajoutés aux bits de données, les bits de vérification représentant une information redondante calculée à partir des bits de données, qui permet la détection et la correction des erreurs affectant aussi bien les bits de données que les bits de vérification. L’ensemble des bits de données et des bits de vérification forme un mot de code.
En présence d’un taux d’erreurs élevé, une solution est d’utiliser des ECCs de plus en plus puissants. Cependant, cela entraine un surcoût en termes de surface de stockage pour les bits de vérification et de surface, de latence et de consommation du décodeur ECC.
Une approche pour éviter l’utilisation d’un ECC puissant, est de réduire le taux d’erreurs primaire, c’est-à-dire le taux d’erreurs en sortie du circuit mémoire qui serait obtenu sans l’utilisation d’un ECC. Pour réduire le taux d’erreurs primaire, une méthode consiste à utiliser des mémoires 2T2R au lieu de mémoires 1T1R. Cependant, il reste des cas où même avec l’utilisation d’une mémoire 2T2R le taux d’erreurs primaire reste élevé.
Aussi, dans ces situations ou encore celles où il faudrait choisir un ECC avec un moindre surcoût et donc une capacité de correction plus faible, une solution connue est d’identifier les cellules qui sont dans un état pouvant être considéré comme faible, c'est-à-dire des cellules susceptibles de délivrer un bit erroné, ces bits étant désignés comme « erasure », puis d’utiliser cette information pour améliorer la correction d’erreurs.
L’article de C.L. Chen et M.Y. Hsiao, "Error-Correcting Codes for semiconductor memory applications: a state of the art review," IBM Journal of Research and Development, volume 28, issue 2, 1984, présente une méthode de détection de cellules mémoires qui sont affectées par des fautes de collage (« stuck-at fault » en anglais). Tout bit lu à partir d’une telle cellule est considéré comme une erasure. Suite à la détection d’un nombre d’erreurs non corrigeables dans un mot mémoire, ce type d’erasure peut être détecté par une opération d’écriture du mot inversé suivie d’une opération de lecture à la même adresse mémoire. Tout bit qui ne change pas de valeur suite à l’écriture du mot inversé est alors considéré comme une erasure. Après la correction d’erreurs améliorée par l’identification d’erasures, le mot corrigé qui est inversé une deuxième fois, est stocké toujours à la même adresse dans la mémoire. Cette méthode ne permet d’identifier que des erasures très particulières, i.e. celles associées à des bits stockés dans des cellules mémoires qui ne fonctionnent pas.
L’article de S. Evain, V. Savin et V. Gherman, "Error Correction Schemes with Erasure Information for Fast Memories," Journal of Electronic Testing: Theory and Applications (JETTA), volume 30, issue 2, d’avril 2014, décrit une méthode et des dispositifs pour des mémoires permettant d’augmenter la capacité de correction d’un ECC en s’appuyant sur l’identification d’erasures. Cette méthode utilise l’identification d’erasures par des opérations de lecture supplémentaires qui comparent une valeur lue à différentes valeurs de référence. Cette méthode requière la modification du circuit mémoire due à la nécessité d’ajouter des multiplexeurs supplémentaires avant chaque amplificateur de détection, dans le but de choisir des valeurs de référence supplémentaires.
Aussi, face à la problématique générale de la dérive des valeurs de résistance dans les cellules mémoires résistives RRAM, et face aux limites des solutions connues basées sur l’utilisation de code correcteur d’erreur, il existe le besoin d’une solution pour diminuer les erreurs de lecture dans les mémoires résistives RRAM, en particulier dans les mémoires RRAM 2T2R.
où est la valeur intermédiaire d’un pixel élémentaire Pe appartenant à un quatrième macropixel M4 (PIR), est un quatrième coefficient de pondération, et les sont les signaux de sortie des capteurs associés aux pixels élémentaires Pe appartenant audit quatrième macropixel M4.
On met donc en œuvre un binning spatial 2x2 (par macropixel) suivant les groupes.
Pour des pixels élémentaires de taille 4µm x 4µm à 6µm x 6µm, on obtient donc des pixels équivalents ayant pour taille 8µm x 8µm à 12µm x 12µm.
On obtient ainsi un gain en sensibilité (car la calibration colorimétrique est sensible au bruit dans les images à petits pixels et dans les images à faible flux). L’image est obtenue par une seule lecture pour 4 pixels élémentaires.
On obtient de plus un étalement de la PSF (pour Point Spread Function , ou fonction d’étalement du point) par réglage de l’optique suivant 2x2 pixels élémentaires (pixel élémentaire supérieur ou égal à 4µm x 4µm), et une décontrainte sur l’optique en terme de fréquence de coupure optique.
La résolution optique est réduite et la tâche optique est étalée.
Avantageusement, le regroupement spatial est réalisé en hardware , c’est-à-dire par des composants électroniques (et non logiciels). Cela permet une amélioration du rapport signal à bruit capteur. Les charges accumulées de chaque pixel physique sont par exemple cumulées en utilisant des portes de sommation pour obtenir les valeurs intermédiaires de l’image intermédiaire.
L’image en couleur et infrarouge est ensuite reconstituée à partir de l’image intermédiaire, et donc à partir des bandes synthétisées des macropixels de chaque super-macropixel.
On voit sur la la première bande spectrale globale Bg1 (transmission optique) de la première résine (bleue), la deuxième bande spectrale globale Bg2 de la deuxième résine (verte), la troisième bande spectrale globale Bg3 de la troisième résine (rouge) et la quatrième bande spectrale Bg4 de la quatrième résine (PIR).
On voit aussi, pour chaque bande spectrale globale, les bandes spectrales élémentaires associées Be1, Be2, Be3, Be4.
Les résines peuvent présenter des imperfections produisant des rebonds dans le domaine du proche infrarouge. Il peut être pertinent d’améliorer la zone spectrale de transition entre le domaine visible (B,V,R) et le domaine du proche infrarouge, pour éviter que les profils de transmission des résines ne soient perturbés.
On utilise donc un filtre Notch (filtre coupe-bande) positionné au niveau de la pupille de la caméra 6.
En référence à la , le filtre Notch permet de couper une bande spectrale frontière Bf située entre la troisième bande spectrale globale Bg3 (rouge) et la quatrième bande spectrale globale Bg4 (proche infrarouge).
La réponse du filtre Notch présente une pente descendante à partir d’une longueur d’onde supérieure à 680nm, et une pente montante à partir d’une longueur d’onde inférieure à 730nm.
Avantageusement, on prévoit que la bande spectrale frontière Bf soit située dans la bande spectrale rouge Br, comme cela est visible sur la . On décale alors la troisième bande spectrale globale Bg3 de sorte que la troisième bande spectrale globale Bg3 et la bande spectrale frontière Bf ne présentent pas de recouvrement.
On voit sur la que la longueur d’onde centrale de la troisième bande spectrale globale Bg3 est légèrement réduite, ce qui décale vers la gauche la troisième bande spectrale globale.
Comme exposé précédemment, la technique proposée par les inventeurs consiste à effectuer une compilation de données de traitement de ressources, cette compilation ayant pour conséquence la délivrance d’une donnée compilée d’autorisation (ou d’absence d’autorisation) de mise en œuvre d’une ressource comprenant/utilisant plusieurs ressources. Dans ce qui suit on nomme ressource composite, une ressource mettant en œuvre plusieurs ressources. Une ressource composite est composée de plusieurs ressources, qui peuvent elle-même être des ressources composites ou des ressources unitaires. Comme indiqué précédemment, il se pose un problème d’obtention, en temps réel, des conditions dans lesquelles une ressource composite peut être mise en œuvre. La technique qui a été développée par les inventeurs permet une telle obtention de manière sûre, certaine et transparente. Pour atteindre ce résultat, une chaîne de blocs (ou base de données répartie) est utilisée pour stocker d’une part des conditions de mise en œuvre des ressources unitaires et d’autre part des conditions de mise en œuvre des ressources composites. La explicite les étapes générales de la méthode proposée.
Dans une première phase (P00), dite d’initialisation, des contrats intelligents (« smart contract », Ctrt1,…., Ctrtn) sont créés, au sein de la chaîne de blocs (BC), pour la ressource composite dont on souhaite gérer les droits. Comme exposé précédemment, cette ressource peut être une ressource matérielle (i.e. un composant physique installé au sein d’un dispositif) ou une ressource logicielle (i.e. un composant logiciel installé au sein d’une application ou d’un programme) ou une ressource mixte combinant ressource matérielle et ressource logicielle.
La création du contrat intelligent est effectuée par l’entité détentrice de la ressource unitaire, c’est-à-dire par l’entité propriétaire de la ressource et/ou l’entité gestionnaire des droits de la ressource unitaire : plusieurs contrats intelligents sont donc créés (Ctrt4,…., Ctrtn), typiquement un par ressource unitaire. Puis des contrats intelligents sont créés pour combiner plusieurs contrats intelligents de ressources unitaires (Ctrt1, Ctrt2, Ctrt3) : il s’agit de contrats dit d’agglomération par commodité. Ces contrats d’agglomération qui combinent plusieurs ressources sont particuliers en ce qu’ils comprennent, dans leur structure, une fonction de compilation qui est utilisée pour compiler les résultats d’autorisation reçus de la part des contrats intelligents qu’ils référencent (i.e. les contrats intelligents des sous ressources qu’ils agglomèrent). Une fois cette initialisation effectuée, le contrat intelligent Ctrt1 de la ressource composite RC (appelé par commodité « contrat composite ») est accessible dans la chaîne de blocs. Il est public lorsque la chaîne de blocs est publique. Le contrat composite Ctrt1 est un contrat d’agglomération particulier (de niveau 0) permettant d’adresser la ressource composite dans son ensemble.
Puis, ultérieurement, un procédé de mise en œuvre (P01) de la ressource composite est exécuté, au sein de la chaîne de blocs, lorsqu’une entité (par exemple un dispositif connecté, une application, etc.) souhaite mettre en œuvre la ressource composite ; ce procédé, du point de vue de l’entité requérante, comprend deux phases : une phase d’interrogation (P011), dans laquelle l’entité requiert (Quer), auprès du contrat composite (Ctrt1), une autorisation de mise en œuvre pour la ressource composite référencée par le contrat et une phase de mise en œuvre (P012) de la ressource composite (RC), qui intervient en fonction de la réponse (Resp) fournie par le contrat composite (Ctrt1). Du point de vue de la chaîne de blocs, ce procédé comprend principalement la phase d’interrogation (P011), qui débute avec la réception de la requête d’interrogation (Quer) et se termine (au moins partiellement) avec la fourniture de la réponse (Resp) à l’entité requérante.
Ainsi, pour un dispositif connecté, par exemple, le procédé consiste à obtenir l’autorisation de mise en œuvre des composants (logiciels ou matériels) qui le composent, par exemple dans une situation donnée. À titre d’exemple purement illustratif, un véhicule connecté souhaite, à la demande de son utilisateur, mettre en œuvre une réserve d’énergie à sa disposition dans une situation donnée. Le véhicule connecté initie la mise en œuvre du procédé d’obtention d’autorisation auprès de la chaîne de blocs afin d’obtenir (ou non) cette autorisation. À titre d’un autre exemple, une application s’exécutant sur un terminal de communication souhaite mettre en œuvre une fonction cryptographique particulière d’un élément de sécurisation (SE, « Secure Element ») embarqué au sein du terminal de communication, l’élément de sécurisation embarquant une pluralité de fonctions unitaires. Le terminal de communication initie la mise en œuvre du procédé d’obtention d’autorisation auprès de la chaîne de blocs afin d’obtenir (ou non) cette autorisation.
Le procédé mis en œuvre au sein de la chaîne de blocs consiste, pour un contrat composite (Ctrt1), associée à la ressource composite (RC), à :
- recevoir (P011) une requête (Quer) en provenance de l’entité requérante ENT (qui souhaite mettre en œuvre la ressource composite) ;
puis, récursivement et/ou itérativement :
- à recevoir (P011b) les résultats (resn) de requêtes d’autorisation (reqn) de mise en œuvre qu’il transmet (P011a), directement ou indirectement, à l’ensemble des contrats intelligents (Ctrt2,… Ctrtn), (qui sont eux même associés à des ressources composites ou à des ressources unitaires)
puis à :
- compiler (P011c) ces résultats (resn) pour fournir un résultat (Resp) à l’entité requérante ENT.
Pour plus de clarté, les étapes sont numérotées de manière identique sur la figue 1, bien que ces étapes soient effectivement différentes d’un contrat vers un autre. Ainsi, il est possible d’obtenir, de manière automatique, transparente, décentralisée et en temps réel, une autorisation de mise en œuvre de la ressource composite qui respecte les dispositions prises par le fabricant, le propriétaire ou l’éditeur de chaque ressource composant la ressource composite.
Une fois en possession de ce résultat, l’entité requérante peut requérir la mise en œuvre (P012) de la ressource composite (quand le résultat reçu permet cette mise en œuvre bien évidemment). Par exemple, cette phase (P012) peut comprendre une étape de transmission, par l’entité requérante, d’une requête de mise en œuvre de l’action à destination de la ressource composite, cette requête de mise en œuvre comprenant, en paramètre, l’action qui a été validée ou autorisée par la chaîne de blocs, ainsi que le résultat reçu (resp) et une donnée d’identification de l’entité requérante. À réception de cette requête de mise en œuvre, la ressource composite met en œuvre l’action demandée (et éventuellement retourne un résultat de mise en œuvre à l’entité requérante). Optionnellement, la ressource composite adresse ensuite son contrat composite au sein de la chaîne de blocs et requiert l’inscription d’une transaction au sein de la chaîne de blocs pour l’entité requérante et pour l’action mise en œuvre par la ressource composite.
5.2. Création et identification des ressources dans une chaîne de blocs
Préalablement à la mise en œuvre d’une ressource composite, on suppose que cette ressource composite à fait l’objet d’une inscription dans une chaîne de blocs. Cette ressource composite, comme indiqué précédemment, comprend au moins deux ressources, ces deux ressources pouvant, au choix, soit être des ressources unitaires et/ou composites. Ainsi une ressource composite peut par exemple comprendre deux ressources composites et une ressource unitaire.
De cette façon, l’élément de butée 13a ne bloque pas la translation axiale de désengagement de l’arbre interne 6, et bloque la translation axiale de réengagement de l’arbre interne 6 en position désengagée et verrouillée. En effet, lorsque l’arbre interne 6 est en translation axiale de désengagement de l’arbre externe 7, la face 13f de l’épaulement 13b entre en contact avec la face 13c oblique de l’élément de butée 13a, et applique un effort qui va éloigner radialement l’élément de butée 13a et permettre le passage complet de l’épaulement 13b.
L’élément de butée 13a est relié à un moyen de sollicitation 15 tel qu’un ressort de compression tendant à rappeler l’élément de butée 13a en position de blocage axial de l’épaulement 13b.
Autrement dit, sous l’effet du contact des faces 13c et 13f dû au mouvement axial de désengagement de l’arbre interne 6 qui est à l’encontre du moyen de sollicitation 15, l’élément de butée 13a se déplace radialement pour libérer le mouvement de translation axiale de l’épaulement 13b jusqu’à la position de verrouillage, et reprend une position de blocage axial de l’épaulement 13b une fois la position de verrouillage atteinte par l’arbre interne 6.
En effet, une fois que l’épaulement 13b a franchi axialement l’élément de butée 13a, l’élément de butée 13a est rappelé en position de blocage axial par le moyen de sollicitation 15. Cette situation est illustrée sur la , qui illustre l’arbre interne 6 en position désengagée et verrouillée de l’arbre externe 7 fixé au rotor d’entrainement 5.
L’épaulement 13b sur la a bien franchi l’élément de butée 13a et l’arbre interne 6 est bien verrouillé en position de désengagement. En cas de mouvement de translation en sens inverse de l’arbre interne 6 de sorte que l’arbre interne 6 se rapproche de l’arbre externe 7 fixé au rotor d’entrainement 5, l’épaulement 13b est bloqué par l’élément de butée 13a en position de blocage axial, et plus particulièrement par la face 13d de l’élément de butée 13a perpendiculaire à l’épaulement 13b.
Le verrouillage de l’arbre interne 6 en position de désengagement de l’arbre externe 7 fixé au rotor d’entrainement 5 n’est donc obtenu qu’après une course minimale axiale de l’arbre interne 6 sous l’effet de l’énergie cinétique résiduelle engendrée par la rotation de l’arbre externe 7 fixé au rotor d’entrainement 5. En effet, lorsque les moyens de désengagement 9 sont activés, l’arbre interne 6 entrainé en rotation par l’arbre externe 7 fixé au rotor d’entrainement 5 se déplace axialement puis se déconnecte de l’arbre externe 7 sous l’effet du blocage en rotation de l’écrou 10. Une fois déconnecté de l’arbre externe 7, l’ensemble comprenant l’arbre interne 6 et le rotor 3 continue d’être entrainé en rotation par le reste de l’énergie cinétique qui lui avait été transmise par l’entrainement du rotor 5.
Ainsi, les moyens de verrouillage 13 sont automatiques en ce qu’ils sont activés mécaniquement indépendamment de la volonté ou d’une action d’un utilisateur tel qu’un pilote, et provoqués uniquement par le déplacement de l’arbre interne 6.
Le rotor d’entrainement 5 est par exemple un arbre de sortie d’un moteur, et peut donc avoir une longueur de plusieurs mètres. De plus, le rotor d’entrainement 5 évolue dans un environnement chaud du fait notamment de son mouvement de rotation. Le rotor d’entrainement 5 est donc soumis à une dilatation axiale importante, qui peut engendrer des dysfonctionnements dans le système de verrouillage de l’arbre interne 6 lors du désengagement de l’arbre externe 7, notamment en modifiant la distance de course minimale de l’arbre interne 6 pour activer les moyens de verrouillage 13.
Le rotor d’entrainement 5 est assemblé avec l’arbre externe 7 par une liaison 16 dans laquelle le rotor d’entrainement 5 est apte à se dilater axialement sans modifier la position axiale de l’arbre externe 7. Par exemple, le rotor d’entrainement 5 est solidarisé à l’arbre externe par un épaulement du rotor d’entrainement 5 inséré dans une fente de l’arbre externe 7, l’épaulement et la fente n’étant pas représentés sur les figures.
De cette manière, une dilatation axiale du rotor d’entrainement 5 provoque un coulissement localisé le long de la liaison à l’arbre externe 7, sans que la position axiale de l’arbre externe 7 ne soit modifiée. L’arbre externe 7 est donc monté immobile axialement par rapport au rotor d’entrainement 5 axialement dilaté. L’arbre externe 7 étant axialement immobile, la distance relative entre l’arbre externe 7 et l’arbre interne 6 est constante malgré la dilatation du rotor d’entrainement 5. De plus, l’arbre externe 7 étant beaucoup plus court que le rotor d’entrainement 5, sa dilatation est négligeable par rapport à la longueur en prise. Aussi, l’arbre externe 7 comprend un roulement à rotule 7a. Le roulement à rotule 7a comprend une cage externe fixée à un bâti 7b fixe par rapport au rotor d’entrainement 5 et au stator 4, de sorte que le roulement à rotule 7a maintienne axialement l’arbre externe 7 et corrige les désalignements radiaux et les déviations angulaire de l’arbre externe 7. De cette façon, la distance de course minimale de l’arbre interne 6 lors du désengagement de l’arbre externe 7 pour activer les moyens de verrouillage 13 est constante et la longueur en prise des moyens d’accouplement 8 est constante. Ainsi, l’énergie cinétique minimale pour le désengagement est constante et permet le verrouillage. Tant que les cannelures sont en prise, la rotation du rotor d’entrainement 5 et le blocage de l’écrou 10 assurent le déplacement axial de l’arbre interne 6 jusqu’à la position d’activation des moyens de verrouillage 13. Le risque de réengagement des dentures est donc supprimé.
Le dispositif de déconnexion 2 comprend des moyens de ralentissement et de blocage en rotation 17 de l’arbre interne 6 activables après le verrouillage de la position de désengagement de l’arbre externe 7. De cette façon, en cas d’énergie cinétique résiduelle trop importante, les moyens de ralentissement et de blocage en rotation 17 de l’arbre interne 6 sont activés et l’arbre interne 6 est immobilisé pour éviter de continuer d’entrainer le rotor 3 et de risquer d’endommager le moteur ou le générateur.
Les moyens de ralentissement et de blocage en rotation 17 de l’arbre interne 6 comprennent un deuxième épaulement 17a de l’arbre interne 6 et une butée 17b. Cet épaulement 17a est disposé au contact du filetage 6b qui est disposé à l’extrémité 6c de l’arbre interne 6. L’épaulement 17a ainsi positionné est destiné à entrer en contact avec la butée 17b lors du déplacement axial de l’arbre interne 6, et plus précisément lorsque l’arbre interne 6 dépasse une certaine distance de course axiale. L’épaulement 17a est ainsi bloqué et l’arbre interne 6 est immobilisé tant que la butée 17b est immobile.
Par exemple, la butée 17b est constituée par l’écrou 10 immobilisé en rotation et en translation, et plus précisément par la face latérale de l’écrou 10. Ainsi, dans le cas où l’énergie cinétique de l’arbre interne 6 en mouvement de désengagement est importante, l’arbre interne 6 active les moyens de verrouillage 13 et continue sa course jusqu’à entrer en contact contre la surface latérale de l’écrou 10. L’écrou 10 étant immobilisé par les moyens de blocage en translation 11 et par le moyen de freinage et de blocage en rotation 12, l’arbre interne 6 ne peut continuer sa course et se retrouve lui aussi immobilisé en rotation et en translation.
La butée 17b est positionnée axialement de sorte que le contact avec l’épaulement 17a s’effectue après que les moyens de verrouillage 13 aient été activés. De cette façon, une énergie cinétique trop importante de l’arbre interne 6 durant la course de désengagement est gérée de sorte que les risques d’endommagement soient supprimés.
Les moyens de déverrouillage 14 comprennent un moyen de levée 14a de l’élément de butée 13a et un moyen de rappel 14b en position d’engagement de l’arbre interne 6 sur l’arbre externe 7 fixé au rotor d’entrainement 5.
Les moyens de déverrouillage 14 sont activables à vitesse nulle du rotor d’entrainement 5.
L’invention a pour objet une solution pour améliorer la correction d’erreurs dans les mémoires résistives protégées par un code correction d’erreurs.
De manière générale, le principe de l'invention repose sur un procédé qui permet d’identifier dans un mot de code programmé dans une mémoire résistive 2T2R protégée par un code correcteur d’erreur, des bits susceptibles d’être erronés, appelés bit(s) faible(s) ou « erasure(s) », puis d’inverser ces bits afin de générer un nouveau mot qui peut être corrigé par le décodeur du code correcteur d’erreur.