IP Library Granted Patent US 9,804,922
Granted Patent B2
US 9,804,922 · App. 14/336,883 · Granted Oct 31, 2017

Partial bad block detection and re-use using EPWR for block based architectures

Inventors: Mrinal Kochar (San Jose, CA); Abhijeet Bhalerao (San Jose, CA); Derek McAuley (San Jose, CA); Piyush Sagdeo (San Jose, CA)
Assignee: SanDisk Technologies LLC
G06F11/1068G06F11/073G06F11/0751G06F11/2094G06F12/08G11C29/52G11C29/765G06F11/141G06F11/1666G06F11/20
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,804,922
App. No.
14/336,883
Granted
Oct 31, 2017
Kind
B2
Abstract

Systems and methods for partial bad block reuse may be provided. Data may be copied from a block of a first memory to a block of a second memory. A post write read error may be detected in a first portion the data copied to the block of the second memory without detection of a post write read error in a second portion of the data copied to the block of the second memory. The block of the second memory may be determined to be a partial bad block usable for storage in response to detection of the post write read error in the first portion of the data but not in the second portion of the data.

Claims (34)

1. A storage system comprising:

a solid state memory comprising a first memory and a second memory; and

a storage controller configured to:

copy data from a logical block of the first memory to a logical block of the second memory;

detect any post write read error in the data copied to the logical block of the second memory;

determine that the logical block of the second memory is a partial bad block unusable for storage of a first portion of the data copied to the logical block of the second memory but usable for storage of a second portion of the data copied to the logical block of the second memory in response to detection of a post write read error in the first portion of the data copied to the logical block of the second memory and no post write read error in the second portion of the data copied to the logical block of the second memory; and

update a logical-to-physical map, in response to a determination that the logical block of the second memory is the partial bad block due to detection of the post write read error in the first portion of the data, to indicate that the second portion of the data copied to the logical block of the second memory is stored in the logical block of the second memory and to indicate that the first portion of the data copied to the logical block of the second memory is stored in a location of the solid state memory other than the logical block of the second memory, the logical-to-physical map including a mapping between subsets of the logical block of the second memory and physical locations of the subsets of the logical block of the second memory.

2. The storage system of claim 1 , wherein the storage controller is further configured to copy the first portion of the data from the logical block of the first memory to a cache in response to the determination that the logical block of the second memory is a partial bad block usable for storage.

3. The storage system of claim 2 , wherein a logical address of the first portion of the data is mapped to a corresponding physical location in the cache.

4. The storage system of claim 2 , wherein a logical address of the second portion of the data is mapped to a corresponding physical location in the logical block of the second memory.

5. The storage system of claim 2 , wherein the cache is a binary cache.

6. The storage system of claim 1 , wherein the storage controller is configured to determine that the logical block of the second memory is the partial bad block usable for storage based on a determination that a number of pages in the first portion of the data is less than a threshold value.

7. A storage device comprising:

a solid state memory comprising a first memory and a second memory;

a means for copying data from a logical block of the first memory to a logical block of the second memory;

a means for detecting any post write read error in the data copied to the logical block of the second memory;

a means for determining that the logical block of the second memory is a partial bad block in response to detection of a post write read error in a first portion of the data and no post write read error in a second portion of the data, wherein the partial bad block is used to store the second portion of the data despite the detection of the post write read error but is not used to store the first portion of the data; and

a means for updating, based on a determination that the logical block of the second memory is the partial bad block due to detection of the post write read error in the first portion of the data, a logical-to-physical map to indicate that the second portion of the data copied to the logical block of the second memory is stored in the logical block of the second memory and to indicate that the first portion of the data copied to the logical block of the second memory is stored in a portion of the solid state memory other than the logical block of the second memory, the logical-to-physical map including a mapping between subsets of the logical block of the second memory and corresponding physical locations of the subsets of the logical block of the second memory.

8. The storage device of claim 7 , wherein the first memory has a first memory type and the second memory has a second memory type, and the means for copying comprises a means for folding.

9. The storage device of claim 8 , wherein the first memory type is a single level cell (SLC) flash memory and the second memory type is a multi-level cell (MLC) flash memory.

10. The storage device of claim 7 , wherein the means for detecting is configured to determine that the logical block of the second memory is the partial bad block usable for storage when a post write read of the second portion of the data succeeds even though a write error occurs when the second portion of the data is copied to the logical block of the second memory.

11. The storage device of claim 10 , wherein the write error is a program error.

12. The storage device of claim 10 , wherein the write error is a result of a slow to program bit.

13. The storage device of claim 7 , wherein the logical block of the first memory is a different size than the logical block of the second memory.

14. The storage device of claim 7 , wherein the first memory is a different size than the second memory.

15. The storage device of claim 7 , wherein the post write read error is an enhanced post write read error.

16. A method for partial bad block reuse, the method comprising:

copying data from a logical block of a first memory to a logical block of a second memory;

detecting a post write read error in a first portion the data copied to the logical block of the second memory without detection of a post write read error in a second portion of the data copied to the logical block of the second memory;

determining that the logical block of the second memory is a partial bad block usable for storage of the second portion of the data in response to detection of the post write read error in the first portion of the data but not in the second portion of the data; and

updating a logical-to-physical map to indicate that the second portion of the data copied to the logical block of the second memory is stored in the logical block of the second memory, which is the partial bad block, and to indicate that the first portion of the data copied to the logical block of the second memory is stored outside of the logical block of the second memory, the logical-to-physical map including a mapping between subsets of the logical block of the second memory and corresponding physical locations of the subsets of the logical block of the second memory.

17. The method of claim 16 further comprising adding factory marked bad blocks to a free block list, wherein the logical block of the second memory is selected from the free block list.

18. The method of claim 16 further comprising copying the first portion of the data from the logical block of the first memory to a cache in response to determining that the logical block of the second memory is a partial bad block usable for storage.

19. The method of claim 16 , wherein at least one of the first memory and the second memory is a three dimensional memory.

Assignments (2)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2014
From: KOCHAR, MRINAL; BHALERAO, ABHIJEET; MCAULEY, DEREK; SAGDEO, PIYUSH
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 033384/0495 →
Continuity (1)
Related Publication 20160019111A1 · Jan 21, 2016