FR2854262A1 - Volatile data protecting method for vehicle power steering system controlling computer module, involves correcting stored data errors using erroneous bits position provided by multiplying coded data with transposed correction matrix - Google Patents
Volatile data protecting method for vehicle power steering system controlling computer module, involves correcting stored data errors using erroneous bits position provided by multiplying coded data with transposed correction matrix Download PDFInfo
- Publication number
- FR2854262A1 FR2854262A1 FR0305121A FR0305121A FR2854262A1 FR 2854262 A1 FR2854262 A1 FR 2854262A1 FR 0305121 A FR0305121 A FR 0305121A FR 0305121 A FR0305121 A FR 0305121A FR 2854262 A1 FR2854262 A1 FR 2854262A1
- Authority
- FR
- France
- Prior art keywords
- data
- bits
- memory
- multiplying
- transposed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
- Power Steering Mechanism (AREA)
Abstract
Description
La présente invention se rapporte aux calculateurs électroniquesThe present invention relates to electronic computers
embarqués dans les véhicules automobiles, tels que notamment les calculateurs qui assurent le pilotage d'un système de direction assistée électrique équipant un véhicule automobile moderne. embedded in motor vehicles, such as in particular computers which control an electric power steering system fitted to a modern motor vehicle.
Cette invention concerne plus particulièrement un procédé de protection et correction des données effaçables d'un calculateur embarqué de véhicule automobile, ces données étant stockées en mémoire. This invention relates more particularly to a method for protecting and correcting the erasable data of an on-board computer of a motor vehicle, this data being stored in memory.
Les calculateurs de ce genre, embarqués dans les véhicules, doivent sauvegarder des informations dans des mémoires de type effaçables et 10 programmables électriquement. Computers of this kind, embedded in vehicles, must save information in erasable type memories 10 electrically programmable.
Or la durée de rétention des informations dans ces mémoires n'est pas infinie, en particulier lorsque le nombre d'effacements et de réécritures augmente, et que la température de fonctionnement du calculateur s'élève. De telles situations sont de plus en plus fréquentes, pour les calculateurs placés 15 dans le compartiment moteur d'un véhicule, tels que les calculateurs de pilotage d'une direction assistée électrique. However, the duration of information retention in these memories is not infinite, in particular when the number of erasures and rewritings increases, and the operating temperature of the computer rises. Such situations are more and more frequent, for computers placed in the engine compartment of a vehicle, such as computers for piloting an electric power steering.
On se trouve donc dans l'obligation de trouver des palliatifs, de type logiciel, pour garantir de façon aussi sûre que possible une rétention des données mémorisées dans ces calculateurs, sur des durées importantes 20 dépassant dix ans, et dans des ambiances dont la température peut dépasser 1000C. L'exposition prolongée à des températures, etiou à des champs électro-magnétiques perturbateurs, peut occasionner une altération des données mémorisées. We are therefore obliged to find workarounds, of the software type, to guarantee as securely as possible a retention of the data stored in these computers, over long periods of time exceeding ten years, and in environments whose temperature can exceed 1000C. Prolonged exposure to temperatures and / or disturbing electromagnetic fields can cause the stored data to be corrupted.
L'utilisation de plus en plus courante de composants 25 programmables dans les calculateurs en question augmente en outre les risques d'effacement de leurs mémoires. The increasingly common use of programmable components in the computers in question also increases the risks of erasing their memories.
Les données stockées dans les calculateurs en question peuvent notamment comprendre des données de configuration, des lois de pilotage d'assistance, des enregistrements de défauts, etc..., voire même, de plus en 30 plus couramment, le code exécutable du programme lui-même. Afin de sécuriser de telles données, deux types de solutions sont actuellement utilisées. The data stored in the computers in question may in particular include configuration data, assistance control laws, fault records, etc., or even, more and more commonly, the executable code of the program itself. -even. In order to secure such data, two types of solutions are currently used.
La première solution consiste en l'utilisation d'un code de redondance des informations écrites dans la mémoire, code qui est recalculé 35 lors de chaque modification de la mémoire, et vérifié lors de chaque écriture. The first solution consists in the use of a redundancy code for the information written in the memory, code which is recalculated during each modification of the memory, and checked during each writing.
Ce code, basé sur des opérations logiques sur les codes hexadécimaux des informations inscrites en mémoire, permet de vérifier facilement que les données sont exactes avant toute utilisation. Par contre, il est ici impossible, en cas d'anomalie, de localiser l'erreur, et il est encore moins possible de la corriger. This code, based on logical operations on the hexadecimal codes of the information stored in memory, makes it easy to verify that the data is correct before any use. On the other hand, it is impossible here, in the event of an anomaly, to locate the error, and it is even less possible to correct it.
La seconde solution connue consiste à réécrire plusieurs fois les données, en réalisant ainsi une redondance complète de l'information. Une comparaison entre ces données enregistrées séparément peut alors être effectuée facilement avant toute utilisation. Il est aussi possible, si la même information est stockée plusieurs fois, et avec certaines limitations, de localiser 10 et de corriger les erreurs. Toutefois, cette solution est très coûteuse en termes de taille de mémoire, de taille de code applicatif et de charge du processeur. The second known solution consists in rewriting the data several times, thus achieving complete redundancy of the information. A comparison between these data recorded separately can then be carried out easily before any use. It is also possible, if the same information is stored several times, and with certain limitations, to locate 10 and correct the errors. However, this solution is very expensive in terms of memory size, application code size and processor load.
De plus, la mise en oeuvre de cette solution est souvent difficile. In addition, the implementation of this solution is often difficult.
La présente invention vise à éliminer les inconvénients des solutions actuelles, et elle a donc pour but de fournir un procédé de protection 15 des données, pour les calculateurs du genre ici concerné, qui soit capable de déterminer l'emplacement des erreurs et de les corriger automatiquement, dans la plupart des cas, sans augmentation excessive de la taille de mémoire nécessaire. The present invention aims to eliminate the drawbacks of current solutions, and it therefore aims to provide a data protection method, for computers of the type concerned here, which is capable of determining the location of errors and of correcting them. automatically, in most cases, without excessively increasing the memory size required.
A cet effet, l'invention a essentiellement pour objet un procédé de 20 protection des données effaçables stockées en mémoire d'un calculateur embarqué de véhicule automobile, caractérisé en ce qu'il met en oeuvre: * une redondance au moins partielle de la taille mémoire à sécuriser, * un code de correction d'erreur de Hamming et en ce qu'il comporte: * d'une part une étape de stockage des données sous forme codée comportant des bits de données utiles et des bits de correction, ladite forme codée étant obtenue par une multiplication des données utiles par une matrice correctrice issue d'une matrice génératrice, * d'autre part une tâche de fond périodique vérifiant l'exactitude des 30 données par une multiplication des données codées par la transposée de la matrice correctrice et, le cas échéant si le produit de la multiplication n'est pas nul donc en cas d'erreur sur au moins un bit, corrigeant tout ou partie des erreurs sur le contenu des données effaçables stockées en mémoire en utilisant les informations fournies 35 par le résultat de la multiplication donnant la position des bits erronés. To this end, the subject of the invention is essentially a method of protecting the erasable data stored in the memory of an on-board computer of a motor vehicle, characterized in that it implements: * an at least partial redundancy of the size memory to be secured, * a Hamming error correction code and in that it comprises: * on the one hand a step of storing the data in coded form comprising useful data bits and correction bits, said form coded being obtained by a multiplication of the useful data by a corrective matrix resulting from a generator matrix, * on the other hand a periodic background task verifying the accuracy of the data by a multiplication of the coded data by the transpose of the corrective matrix and, if necessary if the product of the multiplication is not zero therefore in the event of an error on at least one bit, correcting all or part of the errors on the content of the data erased ble stored in memory using the information provided by the result of the multiplication giving the position of the erroneous bits.
Dans un mode de mise en oeuvre préféré du procédé de l'invention, le code correcteur de Hamming met en oeuvre une fonction involutive Avantageusement, les bits de données utiles d'une part et les bits de correction d'autre part sont stockés dans des zones de mémoires différentes. In a preferred embodiment of the method of the invention, the Hamming correcting code implements an involutive function Advantageously, the useful data bits on the one hand and the correction bits on the other hand are stored in different memory areas.
Le procédé de l'invention est utilisable également pour la protection du code exécutable stocké en mémoire d'un calculateur. The method of the invention can also be used for the protection of the executable code stored in the memory of a computer.
L'invention sera mieux comprise à la lecture de la description qui suit d'un exemple de mise en oeuvre du procédé. The invention will be better understood on reading the following description of an example of implementation of the method.
Selon un mode de mise en oeuvre du procédé, le code de correction d'erreur se base sur un doublement de la taille mémoire à sécuriser. According to one embodiment of the method, the error correction code is based on a doubling of the memory size to be secured.
Pour chaque octet de donnée utile, 8 bits de corrections sont attribués. For each byte of useful data, 8 correction bits are allocated.
La table de correction, c'est-à-dire l'ensemble des bits de correction, est configurée de manière à permettre: a d'une part la correction de 1 bit faux par octet de données utiles * d'autre par la détection de 4 bits faux par octet de données utiles Ce mode de mise en oeuvre permet un bon compromis entre la performance et la fiabilité. The correction table, that is to say all the correction bits, is configured so as to allow: a on the one hand the correction of 1 false bit per byte of useful data * on the other hand by the detection of 4 false bits per byte of payload This mode of implementation allows a good compromise between performance and reliability.
La fonction de correction d'erreur est basée sur une opération 20 mathématique involutive. Une matrice de correction simple de dimension 8 est utilisée, telle que celle-ci et sa transposée soient identiques. Il existe 64 matrices ayant les propriétés requises, calculées à partir de la matrice génératrice M suivante: M ='((0 1 0 0 1 I O 1) (1 0 1 0 0 1 1 0) (O 1 0 1 0 0 I 1) (1 0 1 0 1 0 0 1) (1 1 0 1 0 1 0 O) (O 1 1 0 1 0 1 O) (0 0 1 1 0 1 0 1) (1 0 0 1 1 0 1 O)) Cette disposition particulière de la matrice permet de réaliser les calculs en parallèles et non bit à bit. The error correction function is based on an involutive mathematical operation. A simple correction matrix of dimension 8 is used, such that this and its transpose are identical. There are 64 matrices with the required properties, calculated from the following generator matrix M: M = '((0 1 0 0 1 IO 1) (1 0 1 0 0 1 1 0) (O 1 0 1 0 0 I 1) (1 0 1 0 1 0 0 1) (1 1 0 1 0 1 0 O) (O 1 1 0 1 0 1 O) (0 0 1 1 0 1 0 1) (1 0 0 1 1 0 1 O)) This particular arrangement of the matrix makes it possible to carry out the calculations in parallel and not bit by bit.
Deux fonctions sont embarquées dans le calculateur correspondant 35 aux deux étapes du procédé: * une première fonction d'encodage des données avant stockage dans la mémoire prenant en entrée un octet de donnée utile et fournissant en sortie un mot de 16 bits contenant les bits de données utiles et les bits de correction. Two functions are embedded in the computer corresponding to the two stages of the method: * a first function for encoding the data before storage in the memory taking as input a byte of useful data and providing as output a 16-bit word containing the bits of payload and correction bits.
* une seconde fonction de lecture des données dans la mémoire permettant leur décodage et la vérification de leur exactitude. Cette fonction prend en entrée un mot de 16 bits contenant les bits de données utiles et les bits de correction ainsi qu'un pointeur sur une zone de mémoire d'un octet pour stocker les données utiles éventuellement 10 corrigées et fournit en sortie un code de retour booléen indiquant si les données ont pu ou non être corrigées. * a second function for reading the data in the memory allowing their decoding and the verification of their accuracy. This function takes as input a 16-bit word containing the useful data bits and the correction bits as well as a pointer to a memory area of one byte to store any useful data corrected and provides an output code. boolean return indicating whether or not the data could be corrected.
Dans le cas o le nombre d'erreurs détecté est supérieur au nombre d'erreurs pouvant être corrigé, plusieurs solutions sont utilisées. A titre d'exemple, il est possible de relancer une fonction de calibration ou de choisir 15 une valeur moyenne pour un paramètre afin de ne pas bloquer le système. In the case where the number of errors detected is greater than the number of errors that can be corrected, several solutions are used. As an example, it is possible to restart a calibration function or to choose an average value for a parameter so as not to block the system.
Un mode de mise en oeuvre alternatif du procédé consiste à placer les bits de correction d'erreur dans une zone de la mémoire disjointe de la zone o sont stockées les données utiles. Cette approche permet de disposer d'une zone de mémoire classique comportant les données utiles et d'une zone 20 mémoire regroupant les bits de correction et ainsi d'utiliser le procédé de protection des informations sur du code exécutable, de façon transparente pour le processeur. An alternative implementation of the method consists in placing the error correction bits in an area of the memory separated from the area where the useful data are stored. This approach makes it possible to have a conventional memory zone comprising the useful data and a memory zone grouping together the correction bits and thus to use the method of protecting information on executable code, in a manner transparent to the processor. .
Selon un autre mode de mise en oeuvre du procédé utilisant un doublement de la taille mémoire à sécuriser, les tables de correction sont 25 configurées pour permettre la correction de 2 ou 3 bits faux par octet en utilisant la même taille mémoire. Dans ce cas la fiabilité est réduite par rapport au premier mode de mise en oeuvre si la même consommation des ressources, taille mémoire et charge du processeur, est conservée. According to another embodiment of the method using a doubling of the memory size to be secured, the correction tables are configured to allow the correction of 2 or 3 false bits per byte using the same memory size. In this case the reliability is reduced compared to the first mode of implementation if the same consumption of resources, memory size and processor load, is preserved.
D'autres modes de mise en oeuvre du procédé utilisent une taille de 30 redondance différente des deux modes de mise en oeuvre décrits précédemment utilisant un doublement de la taille mémoire, c'est-à-dire un taux d'expansion égal à 2. A titre d'exemple, en utilisant un taux d'expansion de la taille mémoire supérieur à 2, il est possible de détecter et de corriger plus de bits en erreur dans les données utiles. A l'opposé, en utilisant un taux 35 d'expansion de 1,5, il sera possible de détecter certaines erreurs, mais pas de les corriger. Le choix d'un mode de mise en oeuvre du procédé dépend de la taille de redondance cherchée. Other embodiments of the method use a redundancy size different from the two embodiments described above using a doubling of the memory size, that is to say an expansion rate equal to 2. By way of example, by using a memory size expansion rate greater than 2, it is possible to detect and correct more bits in error in the useful data. In contrast, using an expansion rate of 1.5, it will be possible to detect some errors, but not to correct them. The choice of a mode of implementation of the method depends on the size of redundancy sought.
Claims (5)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0305121A FR2854262A1 (en) | 2003-04-25 | 2003-04-25 | Volatile data protecting method for vehicle power steering system controlling computer module, involves correcting stored data errors using erroneous bits position provided by multiplying coded data with transposed correction matrix |
PCT/FR2004/000855 WO2004097640A2 (en) | 2003-04-25 | 2004-04-06 | Method for protecting erasable data of on-board in a motor vehicle |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0305121A FR2854262A1 (en) | 2003-04-25 | 2003-04-25 | Volatile data protecting method for vehicle power steering system controlling computer module, involves correcting stored data errors using erroneous bits position provided by multiplying coded data with transposed correction matrix |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2854262A1 true FR2854262A1 (en) | 2004-10-29 |
Family
ID=33104411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0305121A Withdrawn FR2854262A1 (en) | 2003-04-25 | 2003-04-25 | Volatile data protecting method for vehicle power steering system controlling computer module, involves correcting stored data errors using erroneous bits position provided by multiplying coded data with transposed correction matrix |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2854262A1 (en) |
WO (1) | WO2004097640A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203436A (en) * | 2017-05-25 | 2017-09-26 | 郑州云海信息技术有限公司 | A kind of method and apparatus of Nand Flash datas verification |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19708441A1 (en) * | 1997-03-01 | 1998-09-03 | Hella Kg Hueck & Co | Read/write method for operating parameters for automobile air-conditioning control |
US6151246A (en) * | 1997-09-08 | 2000-11-21 | Sandisk Corporation | Multi-bit-per-cell flash EEPROM memory with refresh |
-
2003
- 2003-04-25 FR FR0305121A patent/FR2854262A1/en not_active Withdrawn
-
2004
- 2004-04-06 WO PCT/FR2004/000855 patent/WO2004097640A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19708441A1 (en) * | 1997-03-01 | 1998-09-03 | Hella Kg Hueck & Co | Read/write method for operating parameters for automobile air-conditioning control |
US6151246A (en) * | 1997-09-08 | 2000-11-21 | Sandisk Corporation | Multi-bit-per-cell flash EEPROM memory with refresh |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203436A (en) * | 2017-05-25 | 2017-09-26 | 郑州云海信息技术有限公司 | A kind of method and apparatus of Nand Flash datas verification |
CN107203436B (en) * | 2017-05-25 | 2021-04-06 | 郑州云海信息技术有限公司 | Method and device for data verification of Nand Flash |
Also Published As
Publication number | Publication date |
---|---|
WO2004097640A3 (en) | 2007-10-18 |
WO2004097640A2 (en) | 2004-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20020183905A1 (en) | Drive recorder for motor vehicle and data reading apparatus for the same | |
EP1983436B1 (en) | Integrity check for a memory external to a processor | |
EP1960652B1 (en) | Method for storing data concerning an operating fault of a device | |
FR2854262A1 (en) | Volatile data protecting method for vehicle power steering system controlling computer module, involves correcting stored data errors using erroneous bits position provided by multiplying coded data with transposed correction matrix | |
EP1932121B1 (en) | Event counter | |
EP3391228B1 (en) | Method for writing in a non-volatile memory of an electronic entity, and related electronic entity | |
EP0977120B1 (en) | Error correction in a ROM by means of redundancy | |
EP1508901B1 (en) | Memory circuit having nonvolatile identification memory and associated process | |
FR3011656A1 (en) | METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT | |
EP3893117B1 (en) | Circuit for checking the contents of records | |
EP1460542B1 (en) | Integrated memory system comprising at least a non-volatile memory and an automatic error corrector | |
US20220159858A1 (en) | Electrical center cover with machine-readable indicator confirmation of lock engagement | |
EP3839741B1 (en) | Electronic system comprising a device for estimating defects of an electronic memory subjected to high-altitude flight conditions | |
EP2229648A1 (en) | Method for secure data transfer | |
EP1503288B1 (en) | Error detection cell for integrated processors | |
EP0889406B1 (en) | Circuit for detection of erroneous stack access in a microcontroller | |
EP1352325A1 (en) | Method for error injection by interruptions | |
EP0733977A1 (en) | Computer system having hierarchical memories | |
EP3792771A1 (en) | Programme test | |
WO2022234199A1 (en) | Method and device for protecting against an intrusion on a data bus of a vehicle | |
FR2766593A1 (en) | Method and device for protecting data in an electronic system from ionising degradation, such as nuclear irradiation. | |
FR3109000A1 (en) | Data structure and method for updating computer software | |
CN116954985A (en) | ECC (error correction code) check management method and device of vehicle-mounted chip and storage medium | |
EP3416087A1 (en) | Atomicity management in an eeprom memory | |
FR2871260A1 (en) | Equipment e.g. test equipment, maintaining device for e.g. aircraft field, has memory component integrated mechanically to equipment and connected to PC and having RAM zones storing information related to events during lifetime of equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20051230 |