IP Library Granted Patent US 9,483,395
Granted Patent B2
US 9,483,395 · App. 13/700,460 · Granted Nov 1, 2016

Asynchronous bad block management in NAND flash memory

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 9,483,395
App. No.
13/700,460
Granted
Nov 1, 2016
Kind
B2
Abstract

Methods for receiving data from a file system and storing it in a flash storage medium, wherein a bad block management process comprises queuing, at a bad block manager, one or more write requests, and receiving data associated with each of the one or more write requests and storing the received data in the bad block manager buffer; and performing cache management of data in the bad block manager buffer and subsequently returning a success status to the file system; and executing the one or more queued write requests in a separate task, wherein the executing comprises programming the received data to the flash storage medium during the bad block management process. Corresponding devices are also provided.

Claims (29)

1. A method for transferring data from a file system to a flash storage medium, wherein the method includes a bad block management process comprising:

queuing, at a bad block manager buffer, one or more write requests, and receiving data associated with each of the one or more write requests and storing the received data in the bad block manager buffer;

performing cache management of data in the bad block manager buffer and subsequently returning a success status to the file system;

executing the one or more queued write requests in a separate task, wherein the executing comprises programming the received data to the flash storage medium during the bad block management process, wherein if a bad block is encountered during the programming of the flash storage medium, then

copying data programmed to the bad block to a good block; and

programming further data from the bad block manager buffer to the flash storage medium; and

wherein if the bad block manager buffer contains a write request, then a read request or erase request following the write request is blocked from being queued in the bad block manager buffer.

2. A method in accordance with claim 1 , wherein the one or more write requests further comprise content for a spare area of a block of the flash storage medium.

3. A method in accordance with claim 2 , wherein in connection with the performing of the cache management, an error correction code corresponding to the one or more write requests and associated data is calculated from the bad block manager buffer and added to corresponding spare area of the bad block manager buffer.

4. A method in accordance with claim 1 , wherein when a queued write request is being actively executed, executing a further read request, write request, or erase request in the bad block manager buffer is blocked until the actively executed write request has finished.

5. A method in accordance with claim 1 , wherein when a size of an empty space in the bad block manager buffer is insufficient for receiving a write request, the bad block manager buffer is blocked for queuing further write requests.

6. A method in accordance with claim 1 , wherein if a number of bad blocks encountered exceeds a critical threshold, then disabling the bad block manager buffer and signaling an error to the file system.

7. A memory device for receiving data from a file system, the memory device comprising:

a programmable flash storage medium;

a bad block manager having a bad block manager buffer for queuing one or more write requests and for receiving data associated with each of the one or more write requests and storing the received data in the bad block manager buffer, the bad block manager being operable to perform a bad block management process comprising:

performing cache management of data in the bad block manager buffer and subsequently returning a success status to the file system; and

executing the one or more queued write requests in a separate task, wherein the executing comprises programming the received data to the flash storage medium, wherein if a bad block is encountered during the programming of the flash storage medium, then the bad block management process comprises

copying data programmed to the bad block to a good block; and

programming further data from the bad block manager buffer to the flash storage medium, and

wherein if the bad block manager buffer contains a write request, then a read request or erase request following the write request is blocked from being queued in the bad block manager buffer.

8. A memory device in accordance with claim 7 , wherein the one or more write requests further comprise content for a spare area of a block of the flash storage medium.

9. A memory device in accordance with claim 8 , wherein in connection with the performing of the cache management, an error correction code corresponding to the one or more write requests and associated data is calculated from the bad block manager buffer and added to corresponding spare area of the bad block manager buffer.

10. A memory device in accordance with claim 7 , wherein when a queued write request is being actively executed, executing a further read request, write request, or erase request in the bad block manager buffer is blocked until the actively executed write request has finished.

11. A memory device in accordance with claim 7 , wherein when a size of an empty space in the bad block manager buffer is insufficient for receiving a write request, the bad block manager buffer is blocked for queuing further write requests.

12. A memory device in accordance with claim 7 , wherein if a number of bad blocks encountered exceeds a critical threshold, then disabling the bad block manager buffer and signaling an error to the file system.

13. A method in accordance with claim 1 , wherein the file system prepares a next write request when the bad block manager is programming received data related to a previously queued write request.

14. A method in accordance with claim 1 , wherein for each of the one or more write requests, an indication of success is returned after the write request is queued and prior to execution of the write request.

15. A memory device in accordance with claim 7 , wherein the file system is configured to prepare a next write request when the bad block manger is programming received data related to a previously queued write request.

16. A memory device in accordance with claim 7 , wherein for each of the one or more write requests, an indication of success is returned after the write request is queued and prior to execution of the write request.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2019
From: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
To: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
Reel/Frame 049149/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: OPTIS CIRCUIT TECHNOLOGY, LLC,
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 048529/0510 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2019
From: ST-ERICSSON SA, EN LIQUIDATION
To: OPTIS CIRCUIT TECHNOLOGY, LLC,
Reel/Frame 048504/0519 →
STATUS CHANGE-ENTITY IN LIQUIDATION Recorded Feb 2, 2016
From: ST-ERICSSON SA
To: ST-ERICSSON SA, EN LIQUIDATION
Reel/Frame 037739/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2013
From: SREEKANDATH, MAHESH; DAS PURKAYASTHA, SAUGATA
To: ST-ERICSSON SA
Reel/Frame 030187/0247 →