IP Library › Granted Patent US 10,871,924
Granted Patent B1
US 10,871,924 · App. 16/662,930 · Granted Dec 22, 2020

Method and computer program product and apparatus for handling sudden power off recovery

Inventor: Wen-Sheng Lin (Kaohsiung, TW)
Assignee: SILICON MOTION, INC.
G06F3/0659G06F3/064G06F3/0619G06F3/0679
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,871,924
App. No.
16/662,930
Granted
Dec 22, 2020
Kind
B1
Abstract

The invention introduces a non-transitory computer program product for handling a sudden power off recovery (SPOR) to include program code to: drive a flash access interface to read pages of a current block in sequence after a power restart subsequent to a sudden power off (SPO); mark the last correct page of the current block according to page read statuses for the current block; drive the flash access interface to read protection information of pages of a temporary block in sequence, so as to mark the first incorrect page of the temporary block; and drop data of the first incorrect page and pages thereafter of the temporary block.

Claims (43)

1. A non-transitory computer program product for handling a sudden power off recovery (SPOR) when executed by a processing unit of a device, the non-transitory computer program product comprising program code to:

drive a flash access interface to read pages of a current block in sequence after a power restart subsequent to a sudden power off (SPO), wherein the current block is a multi-level cell (MLC) block or a triple level cell (TLC) block;

mark a last correct page of the current block according to page read statuses for the current block;

drive the flash access interface to read protection information of pages of a temporary block in sequence, so as to mark a first incorrect page of the temporary block, wherein the temporary block is a single-level cell (SLC) block and the protection information of the first incorrect page of the temporary block comprises address information pointing to a page after the last correct page of the current block; and

drop data of the first incorrect page and pages thereafter of the temporary block.

2. The non-transitory computer program product of claim 1 , comprising program code to:

generate protection information of a page of the temporary block comprising address information at the time pointing to the first empty page of the current block before a SPO; and

drive the flash access interface to program data with a length shorter than a page length, and the protection information into the first empty page of the temporary block.

3. The non-transitory computer program product of claim 1 , wherein the next page of the last correct page of the current block is an uncorrectable error check and correction (UECC) page.

4. The non-transitory computer program product of claim 1 , comprising program code to:

replace data of a page of the current block with data of a page of a backup block when detecting that the page of the current block is an uncorrectable error check and correction (UECC) page and has been backed up in the page of the backup block, wherein the backup block is a SLC block.

5. The non-transitory computer program product of claim 4 , wherein the next page of the last correct page of the current block is an UECC page and data of the next page of the last correct page of the current block hasn't been stored in the backup block.

6. The non-transitory computer program product of claim 4 , wherein the page of the current block is a most significant bit (MSB) page or a center significant bit (CSB) page.

7. The non-transitory computer program product of claim 1 , comprising program code to:

configure a specific number t of pages after the next page of the last correct page of the current block as dummy pages; and

drive the flash access interface to store data of the last correct page of the current block and its previous t−1 pages of the current block in empty pages of a new current block or empty pages after the last dummy page of the current block.

8. The non-transitory computer program product of claim 7 , wherein the specific number is an integer ranging from 2 to 5.

9. A method for handling a sudden power off recovery (SPOR), performed by a processing unit of a device, comprising:

reading pages of a current block in sequence after a power restart subsequent to a sudden power off (SPO), wherein the current block is a multi-level cell (MLC) block or a triple level cell (TLC) block;

marking a last correct page of the current block according to page read statuses for the current block;

reading protection information of pages of a temporary block in sequence, so as to mark a first incorrect page of the temporary block, wherein the temporary block is a single-level cell (SLC) block and the protection information of the first incorrect page of the temporary block comprises address information pointing to a page after the last correct page of the current block; and

dropping data of the first incorrect page and pages thereafter of the temporary block.

10. The method of claim 9 , comprising:

generating protection information of a page of the temporary block comprising address information at the time pointing to the first empty page of the current block before a SPO; and

programming data with a length shorter than a page length, and the protection information into the first empty page of the temporary block.

11. The method of claim 9 , comprising:

replacing data of a page of the current block with data of a page of a backup block when detecting that the page of the current block is an uncorrectable error check and correction (UECC) page and has been backed up in the page of the backup block, wherein the backup block is a SLC block.

12. The method of claim 9 , comprising:

configuring a specific number t of pages after the next page of the last correct page of the current block as dummy pages; and

storing data of the last correct page of the current block and its previous t−1 pages of the current block in empty pages of a new current block or empty pages after the last dummy page of the current block.

13. An apparatus for handling a sudden power off recovery (SPOR), comprising:

a flash access interface; and

a processing unit, coupled to the flash access interface, arranged to operably drive the flash access interface to read pages of a current block in sequence after a power restart subsequent to a sudden power off (SPO), wherein the current block is a multi-level cell (MLC) block or a triple level cell (TLC) block;

mark a last correct page of the current block according to page read statuses for the current block;

drive the flash access interface to read protection information of pages of a temporary block in sequence, so as to mark a first incorrect page of the temporary block, wherein the temporary block is a single-level cell (SLC) block and the protection information of the first incorrect page of the temporary block comprises address information pointing to a page after the last correct page of the current block; and

drop data of the first incorrect page and pages thereafter of the temporary block.

14. The apparatus of claim 13 , wherein the processing unit is arranged to operably generate protection information of a page of the temporary block comprising address information at the time pointing to the first empty page of the current block before a SPO; and drive the flash access interface to program data with a length shorter than a page length, and the protection information into the first empty page of the temporary block.

15. The apparatus of claim 13 , wherein the next page of the last correct page of the current block is an uncorrectable error check and correction (UECC) page.

16. The apparatus of claim 13 , wherein the processing unit is arranged to operably replace data of a page of the current block with data of a page of a backup block when detecting that the page of the current block is an uncorrectable error check and correction (UECC) page and has been backed up in the page of the backup block, wherein the backup block is a SLC block.

17. The apparatus of claim 16 , wherein the next page of the last correct page of the current block is an UECC page and data of the next page of the last correct page of the current block hasn't been stored in the backup block.

18. The apparatus of claim 16 , wherein the page of the current block is a most significant bit (MSB) page or a center significant bit (CSB) page.

19. The apparatus of claim 13 , wherein the processing unit is arranged to operably configure a specific number t of pages after the next page of the last correct page of the current block as dummy pages; and drive the flash access interface to store data of the last correct page of the current block and its previous t−1 pages of the current block in empty pages of a new current block or empty pages after the last dummy page of the current block.

20. The apparatus of claim 19 , wherein the specific number is an integer ranging from 2 to 5.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2019
From: LIN, WEN-SHENG
To: SILICON MOTION, INC.
Reel/Frame 050824/0470 →
Priority Claims (1)
CN 2019 1 0664125 · Jul 23, 2019 · national
Cited By (1)
US 12,282,423