IP Library Granted Patent US 10,866,867
Granted Patent B2
US 10,866,867 · App. 16/323,868 · Granted Dec 15, 2020

Method of error correction in a flash memory

Inventor: José De Oliva (Orsay, FR)
G06F11/1469G06F9/4403G06F11/1417G06F11/1666G06F11/20G06F2201/82G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,866,867
App. No.
16/323,868
Granted
Dec 15, 2020
Kind
B2
Abstract

A method of error correction in a nonvolatile flash memory of NAND type, the memory including a first and a second, identical, copies of software to be loaded, a page of a block occupied by data of the first copy of the software being corrupted, and a page of a block occupied by data of the second copy of the software being corrupted, the method including: the replacement of the block occupied by the second copy of the software and including a corrupted page with the identical block occupied by the first copy of the software, making it possible to correct the second copy of the software; the re-execution of the boot loading program; the loading of the second copy of the software.

Claims (22)

1. A method of error correction in a nonvolatile flash memory of NAND type, said flash memory comprising a set of blocks which are accessed in a read mode or in a write mode or in an erase mode, each block comprising a plurality of pages, said memory comprising a first and a second, identical, copies of software to be loaded, the first and the second copies of the software physically occupying an equal number of distinct blocks, a page of a block occupied by data of the first copy of the software being corrupted, and a page of a block occupied by data of the second copy of the software being corrupted, said method comprising the execution of a boot loading program implementing the following steps:

an attempted loading of the first copy of the software by the boot loading program;

discovering by the boot loading program that at least one page of a block occupied by the first copy of the software is corrupted;

recording of an identification of said at least one corrupted page in a persistent memory of the flash memory;

configuring the boot loading program so that it loads the second copy of the software at the next execution;

re-executing of the boot loading program;

an attempted loading of the second copy of the software by the boot loading program;

discovering by the boot loading program that at least one page of a block occupied by the second copy of the software is corrupted;

recording of an identification of said at least one corrupted page of the second copy of the software in a persistent memory of the flash memory;

the replacement of the block occupied by the second copy of the software comprising a corrupted page with the identical block occupied by the first copy of the software not comprising any corrupted page, making it possible to correct the second copy of the software;

re-executing of the boot loading program; and

loading of the second copy of the software.

2. The method as claimed in claim 1 , moreover comprising the replacement of the corrupted block of the first copy of the software with the identical block occupied by the second copy of the software, making it possible to correct the first copy of the software to be loaded.

3. The method as claimed in claim 1 , comprising, before the replacement of the corrupted block of the second copy of the software, when two distinct pages of two identical blocks are corrupted, that is to say when, in blocks intended to be occupied by identical data, respectively of the first and of the second copies of the software to be loaded, two pages intended to contain distinct data, respectively in each of said blocks, are corrupted:

implementing an algorithm configured to reconstruct an uncorrupted block corresponding to said corrupted blocks, on the basis of the data occupying uncorrupted pages of each of said corrupted blocks, and

replacing the corrupted block of the first copy of the software to be loaded with said reconstructed uncorrupted block.

4. An embedded system comprising a boot loading program configured to implement the method as claimed in claim 1 .

5. A computer comprising a boot loading program configured to implement the method as claimed in claim 1 .

6. An automotive vehicle comprising a computer as claimed in claim 5 .

7. The method as claimed in claim 2 , comprising, before the replacement of the corrupted block of the second copy of the software, when two distinct pages of two identical blocks are corrupted, that is to say when, in blocks intended to be occupied by identical data, respectively of the first and of the second copies of the software to be loaded, two pages intended to contain distinct data, respectively in each of said blocks, are corrupted:

implementing an algorithm configured to reconstruct an uncorrupted block corresponding to said corrupted blocks, on the basis of the data occupying uncorrupted pages of each of said corrupted blocks, and

replacing the corrupted block of the first copy of the software to be loaded with said reconstructed uncorrupted block.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2025
From: CONTINENTAL AUTOMOTIVE GMBH; CONTINENTAL AUTOMOTIVE FRANCE S.A.S.
To: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH
Reel/Frame 071931/0711 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2019
From: DE OLIVA, JOSÉ
To: CONTINENTAL AUTOMOTIVE FRANCE; CONTINENTAL AUTOMOTIVE GMBH
Reel/Frame 048556/0552 →
Priority Claims (1)
FR 16 58324 · Sep 8, 2016 · national
Continuity (1)
Related Publication 20190171534A1 · Jun 6, 2019