INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Avantageusement, le procédé de la présente invention ne nécessite pas de modification de la matrice mémoire. La méthode proposée n’a pas d’impact sur les opérations d’écriture dans les mémoires résistives concernées.
Ainsi l’objet de l’invention est de pallier les inconvénients des solutions connues par une solution qui ne nécessite pas d’opérations impliquant l’utilisation de valeurs de référence supplémentaires.
Pour parvenir au but recherché, il est proposé un procédé de correction d’erreurs d’un mot de code stocké dans une mémoire résistive de type 2T2R, un mot de code étant composé de bits de données et de bits de vérification, la mémoire résistive 2T2R comprenant une matrice de cellules mémoires résistives 2T2R élémentaires où chaque cellule élémentaire comprend deux transistors et deux éléments résistifs pour stocker la valeur non-inversée et la valeur inversée d’un bit, et pour lire les bits stockés en mode différentiel, la lecture en mode différentiel ou lecture 2T2R consistant à comparer l’une par rapport à l’autre, les valeurs du premier et deuxième élément résistif de la cellule élémentaire utilisée pour stocker chaque bit d’un mot à une adresse indiquée, afin de déterminer la valeur lue. Le procédé comprend au moins les étapes consistant à : - déterminer, après une opération de correction d’erreurs par un code correcteur d’erreur couplé à la mémoire résistive, qu’un mot de code lu en lecture 2T2R contient des erreurs non corrigées qui affectent un nombre de bits supérieur à un seuil prédéfini ; - effectuer au moins une lecture en mode simple ou lecture 1T1R du mot de code stocké, consistant à comparer à une valeur de référence R ERASURE , la valeur d’un des deux éléments résistifs des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer la valeur lue ; - comparer pour chaque bit du mot de code, la valeur lue par la dite au moins une lecture 1T1R à la valeur lue en lecture 2T2R pour identifier des bits susceptibles d’être erronés, lesdits bits susceptibles d’être erronés étant : - des bits pour lesquels la valeur lue en lecture 1T1R est identique à la valeur lue en lecture 2T2R, si ladite au moins une lecture 1T1R se fait sur les éléments résistifs de la cellule élémentaire encodant les valeurs inversées des bits ; ou - des bits pour lesquels la valeur lue en lecture 1T1R est différente de la valeur lue en lecture 2T2R, si ladite au moins une lecture 1T1R se fait sur les éléments résistifs de la cellule élémentaire encodant les valeurs non-inversées des bits ; - inverser, dans ledit mot de code lu en lecture 2T2R, lesdits bits identifiés comme susceptibles d’être erronés ; et - corriger avec le code correcteur d’erreur ledit mot de code obtenu après l’étape d’inversion.
Selon des modes de réalisation alternatifs ou combinés : - L’étape de déterminer qu’un mot de code contient des erreurs non corrigées qui affecte un nombre de bits supérieur à un seuil prédéfini, consiste à déterminer que ledit nombre de bits affectés est égal au nombre maximum de bits erronés que le décodeur du code correcteur d’erreur peut détecter dans un mot de code. - L’étape d’effectuer au moins une lecture 1T1R consiste par comparaison à la valeur de référence R ERASURE à : effectuer une première lecture 1T1R de chaque premier élément résistif des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer une première valeur lue ; et effectuer une deuxième lecture 1T1R de chaque deuxième élément résistif des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer une deuxième valeur lue ; et l’étape de comparaison pour identifier des bits susceptibles d’être erronés consiste à comparer la première valeur lue en mode 1T1R à la deuxième valeur lue en mode 1T1R, et à identifier lesdits bits susceptibles d’être erronés comme étant les bits pour lesquels la première valeur lue et la deuxième valeur lue sont identiques. - Le procédé comprend avant l’étape de décodage, une étape consistant à stocker la valeur de chaque bit du mot de code lu en mode 2T2R dans un registre couplé à la mémoire résistive. - L’étape de corriger le mot de code obtenu après inversion, comprend des étapes consistant à : - stocker la valeur de chaque bit dudit mot de code obtenu après inversion dans un registre couplé à la mémoire résistive ; - corriger par le code correcteur d’erreur ledit mot de code stocké ; et - stocker le mot de code corrigé dans le registre de sortie du décodeur du code correcteur d’erreur. - L’étape de comparaison comprend des étapes consistant à : - stocker la valeur de chaque bit lu en mode 1T1R dans un registre couplé à la mémoire résistive ; et - comparer la valeur de chaque bit stocké à la valeur de chaque bit du mot de code lu en mode 2T2R. - L’étape d’effectuer au moins une lecture en mode 1T1R consiste à comparer la valeur lue à une valeur de référence R ERASURE qui peut être identique à la valeur de référence utilisée pour programmer les cellules élémentaires de la mémoire résistive.
L’invention a aussi pour objet un programme d'ordinateur comportant des instructions de code pour l'exécution des étapes du procédé de correction d’erreurs, lorsque ledit programme est exécuté par un processeur.
L’invention couvre aussi un dispositif de correction d’erreurs comprenant des moyens permettant de mettre en œuvre les étapes du procédé de correction d’erreurs d’un mot de code stocké dans une mémoire résistive de type 2T2R de l’invention.
Dans un mode de réalisation, le code correcteur d’erreur est un circuit de type SEC-DED.
Dans une variante de réalisation, le code correcteur d’erreur est un circuit de type DEC-TED.
Un autre objet de l’invention couvre tout système électronique de type FPGA ou ASIC comprenant un dispositif de correction d’erreurs selon l’invention.
Description des figures D’autres caractéristiques, détails et avantages de l’invention ressortiront à la lecture de la description faite en référence aux dessins annexés donnés à titre d’exemple et qui représentent, respectivement :
La et la illustrent respectivement des exemples d’implémentation d’une cellule mémoire 1T1R et d’une cellule mémoire 2T2R ;
La illustre les étapes d’un procédé conventionnel de lecture dans une mémoire 2T2R protégée par un ECC ;
La illustre un système général permettant de mettre en œuvre les étapes d’un procédé de lecture conventionnelle dans une mémoire 2T2R protégée par un ECC ;
Cependant, ladite application peut contenir des fonctions malveillantes ou des fonctions dormantes pouvant altérer les données stockées dans la mémoire non-volatile 230. Les fonctions malveillantes peuvent être introduites lors du développement et/ou lors des mises à jour de données et applications stockées par la mémoire non volatile 230. Ces fonctions malveillantes activées par des fonctions ou des services non maitrisés peuvent compromettre le contenu de la mémoire non volatile 230 par modification du contenu du signal lié à la protection en écriture et/ou en lecture 241 envoyé à la mémoire non volatile 230.
Ainsi, une protection renforcée est requise lors des échanges entre le système électronique 210 et la mémoire non volatile 230. Il existe donc un besoin de garantir l’intégrité des applications et données au moment de leur lecture et de leur exécution par le système électronique 210.
L’invention offre une solution aux problèmes évoqués précédemment, en permettant de contrôler chaque échange entre un système électronique, de type système sur puce et une mémoire non volatile, embarqués dans un même système embarqué, de type équipement aéronautique, le contrôle étant réalisé selon une politique de sécurité.
Un premier aspect de l’invention concerne un dispositif de contrôle d'accès à au moins une section d'une mémoire non volatile, l'accès à la section de la mémoire non volatile étant requis par un système électronique, le dispositif, le système électronique et la mémoire volatile étant compris dans un système embarqué, le dispositif étant configuré pour : Recevoir un premier signal, émis par le système électronique et destiné à la mémoire non volatile, ledit premier signal comportant au moins une requête de lecture de la section de la mémoire non volatile et/ou au moins une requête comportant une donnée à écrire dans la section de la mémoire non volatile ; Recevoir un deuxième signal, émis par le système électronique, comportant au moins une donnée concernant un contexte d'utilisation du système embarqué ; Autoriser l'accès à la section de la mémoire volatile, l'autorisation d'accès étant conditionnée au respect d'au moins une règle d'un ensemble de règles prédéterminées, la règle étant basée sur le premier signal et le deuxième signal ; l'autorisation d'accès comportant l'émission, par le dispositif de contrôle d’accès, du premier signal à la section de la mémoire non volatile.
Grâce à l’invention, les échanges entre un système électronique (par exemple un système sur puce, ou un processeur universel) et une mémoire non volatile, compris dans un équipement aéronautique embarqué, sont contrôlés et analysés par un dispositif de contrôle d'accès, selon une politique de sécurité comportant un ensemble de règles prédéterminées. Le dispositif de contrôle de sécurité intercepte tous les signaux émis par le système électronique comportant des commandes ou des données destinées à la mémoire non volatile et s'assure de la cohérence entre des commandes comprises dans les signaux émis par le système électronique et le contexte dans lequel ces commandes sont émises. L'invention permet d'éviter de transmettre des données corrompues ou malveillantes à la mémoire non volatile, les données corrompues pouvant provenir du système électronique ou d'un autre système ayant intercepté des signaux émis par le système électronique.
Outre les caractéristiques qui viennent d’être évoquées dans le paragraphe précédent, le dispositif selon le premier aspect de l’invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : le contexte d'utilisation du système électronique comprend des informations liées au système électronique et/ou aux instructions exécutées par le système électronique. Cette caractéristique permet de distinguer les modes d'utilisation du système électronique, ce qui permet au dispositif de contrôle d'accès d'autoriser ou non les commandes émises par ledit système électronique en fonction du mode d'utilisation du système électronique et d'éviter la transmission d'éventuelles commandes et données malveillantes ou corrompues à la mémoire non volatile. Le dispositif est configuré pour recevoir un troisième signal comportant au moins une donnée représentative d’une phase de vie du système embarqué et au moins une donnée représentative du mode de fonctionnement du système embarqué et la règle de l'ensemble de règles prédéterminées est basée sur le troisième signal. Cette caractéristique renforce la sécurité des échanges entre le système électronique et la mémoire en ajoutant une donnée supplémentaire à prendre en compte lors de l'analyse, par le dispositif de contrôle d'accès, des signaux émis par le système électronique. si la règle de l'ensemble de règles prédéterminé est respectée, le dispositif est configuré en outre pour positionner un quatrième signal lié à la protection en écriture de la section de la mémoire non volatile à destination de la section de la mémoire non volatile. Le dispositif d'accès autorise la transmission des signaux de commandes en écriture vers la section de la mémoire non volatile, cependant, l'autorisation d'écriture dans la mémoire non volatile est permise par un signal lié à la protection en écriture généré par le dispositif de contrôle d'accès pour donner suite à l'autorisation de la transmission des signaux de commandes. Le dispositif est configuré pour émettre au moins un message d'erreur vers le système électronique si aucune règle de l'ensemble de règles prédéterminées n'est respectée. Cette caractéristique permet avantageusement d'avertir le système électronique lorsque des signaux qu'il a émis sont rejetés et la raison de leur rejet, ce qui permet par exemple au système électronique de détecter la présence de fonctions malveillantes dans le système électronique. Le dispositif est configuré pour recevoir un cinquième signal émis par le système électronique et comprenant au moins une donnée d'indication de la section de la mémoire non volatile. Cette donnée permet de connaitre plus précisément la section à laquelle est destiné un message émis par le système électronique.
Un deuxième aspect de l’invention concerne un système embarqué comprenant : le dispositif de contrôle d'accès à la section de la mémoire non volatile selon l’invention ; le système électronique comprenant au moins un processeur ; la mémoire non volatile comprenant au moins la section de la mémoire non volatile.
Un troisième aspect de l’invention concerne un procédé de contrôle d'accès à la section de la mémoire volatile mis en œuvre par le dispositif de contrôle d’accès selon l’invention, l'accès à la section de la mémoire non volatile étant requis par le système électronique, le procédé comportant les étapes suivantes : Réception d'un premier signal, émis par le système électronique et destiné à la mémoire non volatile, ledit premier signal comportant au moins une requête de lecture de la section de la mémoire non volatile et/ou au moins une requête compotant une donnée à écrire dans la section de la mémoire non volatile ; Réception d'un deuxième signal, émis par le système électronique, comportant au moins une donnée concernant un contexte dans lequel est utilisé le processeur ; Autorisation d'accès à la section de la mémoire volatile, l'autorisation d'accès étant conditionnée au respect d'au moins une règle d'un ensemble de règles prédéterminé, la règle étant basée sur le premier signal et le deuxième signal, l'autorisation d'accès comportant une sous-étape d'émission du premier signal à la section de la mémoire non volatile.
Outre les caractéristiques qui viennent d’être évoquées dans le paragraphe précédent, le procédé selon le troisième aspect de l’invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : Emission d'au moins un message d'erreur vers le système électronique si aucune règle de l'ensemble de règles prédéterminées n'est respectée. Réception d'un troisième signal comportant au moins une donnée représentative de l'état du cycle de vie d'un véhicule dans lequel sont compris le système électronique, le dispositif et la mémoire non volatile et la règle de l'ensemble de règles prédéterminées est basée sur le troisième signal. Réception un cinquième signal émis par le système électronique et comprenant au moins une donnée d'indication de la section de la mémoire non volatile.
Un autre aspect de l'invention concerne un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'invention lorsque ledit programme est exécuté sur un ordinateur
Un autre aspect de l'invention concerne un support lisible par ordinateur, sur lequel est enregistré le programme d'ordinateur cité précédemment.
Un autre aspect de l'invention concerne un aéronef comprenant le système embarqué selon l'invention.
BREVE DESCRIPTION DES FIGURES Les figures sont présentées à titre indicatif et nullement limitatif de l’invention. La est une représentation schématique d'un système embarqué connu, le système embarqué comprenant un système électronique et une mémoire non volatile ; La est une représentation schématique d'un système embarqué, comprenant un système électronique et une mémoire non volatile qui communiquent via un dispositif de contrôle d'accès à la mémoire non volatile selon l’invention ; La est un schéma synoptique illustrant l’enchaînement des étapes d’un procédé mis en œuvre par le dispositif de contrôle d'accès à la mémoire non volatile selon l’invention.
Un premier aspect de l'invention concerne un dispositif de contrôle d'accès à une mémoire non volatile, appelé dispositif de contrôle d'accès dans la suite, compris dans un système embarqué 200 représenté à la .
La illustre la dérive des valeurs des résistances d’une cellule mémoire résistive 2T2R ;
La illustre les étapes du procédé de correction d’erreurs de l’invention dans un mode de réalisation ;
La montre un exemple d’un mot de code corrigé par le procédé de l’invention ;
La illustre un mode de réalisation d’un circuit permettant de réaliser une inversion de bits identifiés comme erasures ;
La est un chronogramme de différents signaux opérant sur le circuit de la ; et
La illustre un autre mode de réalisation d’un circuit permettant de réaliser une inversion de bits identifiés comme erasures.
Description détaillée de l’invention La illustre les étapes d’un procédé conventionnel de lecture dans une mémoire 2T2R protégée par un code correcteur d’erreur (ECC). Le procédé 200 débute par une étape 202 de réception d’une commande de lecture pour accéder à un mot de code stocké à une adresse donnée, le mot de code étant composé de bits de données et de bits de vérification
Après que le mot de code soit lu 204 en mode 2T2R à l’adresse indiquée par la commande de lecture, dans une étape suivante 206, le décodeur de l’ECC est utilisé de manière conventionnelle (i.e. le décodeur cherche la localisation d’erreurs mais n’utilise pas d’informations sur d’éventuelles erasures) pour détecter et corriger des bits erronés dans le mot de code lu.
Selon le type d’ECC et le nombre d’erreurs, tous les bits erronés peuvent ou non être corrigés, et suite à l’étape 206 de décodage ECC, un mot de code corrigé est disponible, et dont les bits des données peuvent être mis à la disposition du système électronique qui a lancé la commande de lecture.
Sans limitation, un ECC connu est le circuit SEC-DED (acronyme de l’anglicisme « Single Error Correction-Double Error Detection ») qui permet la correction des erreurs sur un seul bit (SEC) et la détection des erreurs sur deux bits (DED). L’homme du métier pourra se reporter aux nombreux documents disponibles de la littérature qui décrivent différents types de circuits code correcteur d’erreurs et mécanismes de correction et détection d’erreurs par un ECC.
La illustre un système général permettant de mettre en œuvre les étapes d’un procédé de lecture conventionnelle dans une mémoire 2T2R protégée par un ECC, tel que le procédé décrit en référence à la .
Les commandes de lecture mémoire sont initialisées depuis un système électronique hôte 310. Le système électronique 310 peut être un circuit à base de processeurs, de multiprocesseurs, de FPGA (acronyme de « Field-Programmable Gate Array » en anglais) ou d’ASIC (acronyme de « Application Specific Integrated Circuit » en anglais).
Dans un mode de réalisation, le système électronique 310 peut être un contrôleur mémoire implémenté dans un système de stockage.
Les bits du mode de code lu dans la mémoire 2T2R 350 sont stockés dans un registre de sortie 340 de la mémoire. La mémoire résistive 2T2R 350 peut être organisée comme une matrice de cellules mémoires résistives 2T2R élémentaires où chaque cellule élémentaire comprend deux transistors et deux éléments résistifs pour encoder la valeur non-inversée et la valeur inversée d’un bit, en programmant une des deux résistances en LRS et l’autre en HRS, et pour faire une lecture 2T2R des bits encodés.
Les bits lus sont transférés de la mémoire vers un décodeur ECC 330 afin de corriger les éventuelles erreurs survenues lors de leur stockage et/ou de leur lecture. Suite à l’opération de décodage ECC, les bits de données du mot de code corrigé peuvent être stockés dans un registre de sortie 320 du décodeur ECC, et mis à disposition du système électronique 310.
Comme expliqué précédemment, les valeurs de résistance de chaque élément résistif d’une cellule élémentaire 2T2R peuvent dériver dans le temps. La illustre des dérives possibles des valeurs des deux résistances R1 et R2 d’une cellule mémoire 2T2R.
Il s’agit d’ un bocal en verre de 378 ml (soit 500g de miel) portant un pas de vis quart de tour et d’une couvercle d’un diamètre 63 mm.Ce bocal a été préalablement sérigraphié avec toute les mentions permanentes du produit, la mention « Miel » , les mentions réglementaires du type « récolté en France » le poids, la raison social de la coopérative qui commercialise son logo ainsi qu’une explication sur le fonctionnement de la consigne, le Logo AB car le produit est issu de l’agriculture biologique. La représente la bague et l’opercule de ce pot La capsule tel que nous l’avons décrite ci-dessus a été réalisée dans un plastique, de type PLA dans un premier temps par impression additive 3D puis au terme de sa mise au point, par injection plastique.Cette capsule est ajourée ( une bague) et permet la lecture des mentions imprimées sur la partie la plus externe de la pièce d’étanchéité.La pièce d’étanchéité, un opercule est réalisé dans un carton de 1 mm imprimé avec des encres alimentaires. Cet opercule porte toute les mentions variables du produit, tel que la nature du miel « Miel de châtaignier » le code barre, un QR code conduisant à un site d’information complémentaire, le nom du producteur et la date de péremption du produit.La forme de cet opercule a été simplifiée et les protubérances faisant office de partie mâle de la baïonnette sont tous simplement les « coins » arrondi du carton qui s’encastre exactement dans la capsule.Dans ce cas le carton a été enduit de cire d’abeille après l’impression, de façon à présenter une enduction sur les deux faces,à l’intérieur la cire a une fonction de scellage, à l’extérieur une fonction purement esthétique. (On aurait pu utiliser plus simplement un carton enduit sur une seule face, celle destinée au scellage).Le scellage est réalisé de manière indirecte. La portée du bocal est préchauffée à la température de fusion de la cire d’abeille. (68°C) La capsule , contenant l’opercule prépositionné est vissée immédiatement sur la portée du bocal. En refroidissant l’opercule est scellé sur le bocal. Au moment de l’ouverture par le consommateur le système de verrouillage de l’opercule dans la capsule se met en action grâce au mécanisme à baïonnette et le couvercle ainsi constituée peut être réutilisée jusqu’à ce que le pot soit vide. Le consommateur peut alors démonter l’opercule pour le mettre dans son composteur familial et il ramène le bocal et la capsule au magasin pour un réemploi de ces éléments.
E xemple 2: Fermeture d’une bouteille de lait pasteurisée consignée équipée d’un témoin d’ouverture.