IP Library Granted Patent US 10,068,650
Granted Patent B1
US 10,068,650 · App. 15/484,038 · Granted Sep 4, 2018

Characterizing and operating a non-volatile memory device

Inventors: Ajith Kumar Battaje (Karnataka, IN); Mahesh Mandya Vardhamanaiah (Karnataka, IN); Ashwin Narasimha (Los Altos, CA); Sandeep Sharma (Karnataka, IN)
Assignee: Western Digital Technologies, Inc.
G11C16/16G11C16/107G11C29/34G11C29/42G11C29/44G11C29/52G11C2029/0409G11C2029/4402
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,068,650
App. No.
15/484,038
Granted
Sep 4, 2018
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 (70)

1. A method of characterizing and operating with a non-volatile memory device, the method comprising a set of operations comprising:

erasing a first sequence of pages in a data block;

writing, responsive to the erasing, the data block;

determining, after writing data to the data block, that there is no error in the written data;

identifying, responsive to determining that there is no error in the written data a last page location of the first sequence of pages as a stability point for the data block;

writing, after identifying the stability point, a second sequence of pages to the data block; and

determining, after writing the second sequence, whether a last page of the second sequence reached the identified stability point for the data block.

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

3. The method of claim 2 , wherein the data block comprises N pages where N is a positive integer greater than zero, wherein there are N different sequences and wherein an Mth sequence of the different sequences consists of M pages comprising the pages in the data 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 writing the second sequence:

recording information that identifies the last page in the second sequence of pages that is written.

5. The method of claim 1 , further comprising:

receiving an instruction to erase the data block;

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 data block until the last page written of the additional sequential pages reaches at least the stability point; and

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

6. The method of claim 4 , further comprising:

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 data block until the last page written of the additional sequential pages reaches at least the stability point.

7. The method of claim 5 , wherein the instruction to erase the data block is received after receiving an indication of an unplanned shutdown of the memory device.

8. The method of claim 5 , wherein determining whether a last page of the second sequence reached the identified stability point is performed after receiving the instruction to erase the data block.

9. A method of operating with a non-volatile memory device, the method comprising:

receiving an instruction to erase a data block;

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

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

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

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

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

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

after said programming of all of the pages in the data 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 data block.

11. The method of claim 10 , further comprising repeating the series of operations for different sets of pages in the data block.

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

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

14. The method of claim 9 , 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 pages has reached the stability point; and

when the last page written has not reached the stability point, writing additional data to the data 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 data block;

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

when the last page written has not reached the stability point, writing additional data to the data 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 data block in response to the instruction.

15. 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 data blocks, each of the data blocks comprising a plurality of pages; the computer system configured to execute a method of characterizing and operating the SSD, the method comprising a plurality of operations comprising:

erasing a first sequence of pages in a data block;

writing, responsive to the erasing, data to the data block;

determining, after writing the data to the data block, that there is no error in the data;

recording, responsive to determining that there is no error in the written data, the last page location of the first sequence of pages as a stability point for the data block;

writing, after identifying the stability point, a second sequence of pages to the data block; and

determining, after writing the second sequence, whether a last page of the second sequence reached the identified stability point for the data block.

16. The computer system of claim 15 , wherein the method further comprises repeating the operations for different sequences of pages in the data block.

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

18. The computer system of claim 15 , wherein the method further comprises, after writing the second sequence:

recording information that identifies the last page in the second sequence of pages that is written.

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

receiving an instruction to erase the data block;

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

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

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

20. The computer system of claim 15 , wherein the method further comprises, after said recording:

prior to a planned shutdown of a memory device:

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

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

after an unplanned shutdown of the memory device:

receiving an instruction to erase the data block;

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

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

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

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

Assignments (11)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2019
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049964/0655 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2019
From: BATTAJE, AJITH KUMAR; VARDHAMANAIAH, MAHESH MANDYA; NARASIMHA, ASHWIN; SHARMA, SANDEEP
To: HGST NETHERLANDS B.V.
Reel/Frame 049961/0887 →
Continuity (1)
Continuation 14991484 · Jan 8, 2016