IP Library Granted Patent US 9,620,227
Granted Patent B1
US 9,620,227 · App. 14/991,484 · Granted Apr 11, 2017

Characterizing and operating a non-volatile memory device

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,620,227
App. No.
14/991,484
Granted
Apr 11, 2017
Kind
B1
Abstract

A sequence of contiguous pages in an erase block in a non-volatile memory device is programmed and erased. Next, all of the pages in the erase block are programmed with data. Then, the data is read back and verified to determine whether there is an error in the data. When there is an error in the data, then the last page in the sequence is identified as being unstable. If there is no error in the data, then the last page in that sequence is identified as being stable. Thus, the recorded information identifies a point of instability in the erase block. Instabilities can be stabilized by performing additional writes to fill the partially filled word line.

Claims (77)

1. A method of characterizing and operating with a non-volatile memory device that is organized as a plurality of erase blocks, the method comprising a set of operations comprising:

programming and erasing a first sequence of contiguous pages comprising one or more contiguous pages in an erase block of the plurality of erase blocks;

after said programming and said erasing, programming all of the pages in the erase block with data;

after said programming of all of the pages in the erase block, determining whether there is an error in the data;

when there is no error in the data, recording information useful for identifying a stability point for the erase block, the stability point corresponding to the last page of the first sequence of contiguous pages; and

after said recording of the information:

writing data to a second sequence of pages in the erase block of the memory device; and

after said writing of the data, recording information that identifies the last page in the second sequence of pages that is written.

2. The method of claim 1 , further comprising repeating the set of operations for different sequences of contiguous pages in the erase block.

3. The method of claim 2 , wherein the erase block comprises N contiguous pages where N is a positive integer greater than zero, wherein there are N different sequences and wherein the Mth sequence of the different sequences consists of M contiguous pages comprising the pages in the erase block corresponding to all values of K from K=1 to K=M, where M is an integer value from 1 to N inclusive.

4. The method of claim 1 , further comprising:

after said writing of the data, receiving an instruction to erase the erase block;

prior to erasing the erase block in response to the instruction, determining whether the last page in the second sequence of pages that is written has reached the stability point;

when the last page in the second sequence of pages that is written has not reached the stability point, programming additional sequential pages of the erase block until the last page written of the additional sequential pages at least reaches the stability point; and

when the stability point is reached, erasing the erase block in response to the instruction.

5. The method of claim 1 , further comprising:

after said writing of the data and prior to a planned shutdown of the memory device, determining whether the last page in the second sequence of pages that is written has reached the stability point; and

when the last page written in the second sequence of pages that is written has not reached the stability point, programming additional sequential pages of the erase block until the last page written of the additional sequential pages at least reaches the stability point.

6. The method of claim 1 , further comprising:

after said writing of the data and after an unplanned shutdown of the memory device, receiving an instruction to erase the erase block;

prior to erasing the erase block in response to the instruction, scanning the erase block and determining whether the last page in the second sequence of pages that is written has reached the stability point;

when the last page in the second sequence of pages that is written has not reached the stability point, programming additional sequential pages of the erase block until the last page written of the additional sequential pages at least reaches the stability point; and

when the stability point is reached, erasing the erase block in response to the instruction.

7. The method of claim 1 , further comprising, after said writing of the data and after an unplanned shutdown of the memory device, scanning the erase blocks to identify the last page written in each of the erase blocks.

8. A method of operating with a non-volatile memory device that is organized as a plurality of erase blocks, each of the erase blocks comprising a plurality of pages, the method comprising:

writing data to pages of the memory device including a sequence of contiguous pages in an erase block of the plurality of erase blocks;

after said writing of the data, receiving an instruction to erase the erase block;

prior to erasing the erase block in response to the instruction, determining whether the last page in the sequence of contiguous pages written has reached a stability point for the erase block, the stability point corresponding to a second page in the erase block that is after a first page in the erase block that was identified as introducing an error to the data when a word line including the first page is only partially written;

when the last page in the sequence of contiguous pages written has not reached the stability point, writing additional data to the erase block until the word line that includes the stability point is filled; and

when the word line that includes the stability point is filled, erasing the erase block in response to the instruction.

9. The method of claim 8 , wherein the stability point is determined by performing a series of operations comprising:

programming and erasing a set of contiguous pages comprising one or more contiguous pages in the erase block;

after said programming and said erasing, programming all of the pages in the erase block with data;

after said programming of all of the pages in the erase block, determining whether there is an error in the data; and

when there is no error in the data, recording information identifying the last page of the set, wherein the last page of the set is characterized as the stability point for the erase block.

10. The method of claim 9 , further comprising repeating the series of operations for different sets of contiguous pages in the erase block.

11. The method of claim 10 , wherein the erase block comprises N contiguous pages where N is a positive integer greater than zero, wherein there are N different sets and wherein the Mth set of the different sets consists of M contiguous pages comprising the pages in the erase block corresponding to all values of K from K=1 to K=M, where M is an integer value from 1 to N inclusive.

12. The method of claim 8 , further comprising, after said writing of the data, recording information that identifies the last page written in the erase block.

13. The method of claim 8 , further comprising, after said writing of the data:

prior to a planned shutdown of the memory device:

determining whether the last page written in the sequence of contiguous pages has reached the stability point; and

when the last page written has not reached the stability point, writing additional data to the erase block until the word line that includes the stability point is filled; and

after an unplanned shutdown of the memory device:

receiving an instruction to erase the erase block;

prior to erasing the erase block in response to the instruction, scanning the erase block and determining whether the last page written in the sequence of contiguous pages has reached the stability point;

when the last page written has not reached the stability point, writing additional data to the erase block until a word line that includes the stability point is filled; and

when the word line that includes the stability point is filled, erasing the erase block in response to the instruction.

14. A computer system comprising:

a memory;

a processor coupled to the memory; and

a solid state drive (SSD) coupled to the processor and organized as a plurality of erase blocks, each of the erase blocks comprising a plurality of contiguous pages; the computer system configured to execute a method of characterizing and operating the SSD, the method comprising a series of operations comprising:

programming and erasing a first sequence of contiguous pages comprising one or more of the contiguous pages in an erase block of the plurality of erase blocks;

after said programming and said erasing, programming all of the pages in the erase block with data;

after said programming of all of the pages in the erase block, determining whether there is an error in the data; and

in response to detecting no error in the data, recording first information that identifies the last page of the first sequence of contiguous pages, wherein the erase block is characterized as being stable when a word line that includes the last page of the set is filled.

15. The computer system of claim 14 , wherein the method further comprises repeating the sequence of operations for different sequences of contiguous pages in the erase block.

16. The computer system of claim 15 , wherein the erase block comprises N contiguous pages where N is a positive integer greater than zero, wherein there are N different sequences and wherein the Mth sequence of the different sequence consists of M contiguous pages comprising the pages in the erase block corresponding to all values of K from K=1 to K=M, where M is an integer value from 1 to N inclusive.

17. The computer system of claim 14 , wherein the method further comprises, after said recording of the first information:

writing data to a second sequence of pages in the erase block; and

after said writing of the data, recording information that identifies the last page in the second sequence of pages that is written.

18. The computer system of claim 14 , wherein the method further comprises, after said recording of the first information:

writing data to a second sequence of pages in the erase block;

after said writing of the data, receiving an instruction to erase the erase block;

prior to erasing the erase block in response to the instruction, determining whether the erase block is stable by comparing the first information with second information identifying the last page written in the second sequence of pages;

when the erase block is not stable, writing additional data to the erase block until the word line is filled; and

when the word line is filled, erasing the erase block in response to the instruction.

19. The computer system of claim 14 , wherein the method further comprises, after said recording of the first information:

writing data to a second sequence of pages in the erase block;

prior to a planned shutdown of the memory device:

determining whether the erase block is stable by comparing the first information with second information identifying the last page written in the second sequence of pages; and

when the erase block is not stable, writing additional data to the erase block until the word line is filled; and

after an unplanned shutdown of the memory device:

receiving an instruction to erase the erase block;

prior to erasing the erase block in response to the instruction, scanning the erase block to determine the last page written in the second sequence of pages;

determining whether the erase block is stable by comparing the first information with second information identifying the last page written in the second sequence of pages;

when the erase block is not stable, writing additional data to the erase block until the word line is filled; and

when the word line is filled, erasing the erase block in response to the instruction.

Assignments (10)
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2016
From: BATTAJE, AJITH KUMAR; VARDHAMANAIAH, MAHESH MANGYA; NARASIMHA, ASHWIN; SHARMA, SANDEEP
To: HGST NETHERLANDS B.V.
Reel/Frame 037442/0254 →