IP Library Granted Patent US 10,423,508
Granted Patent B2
US 10,423,508 · App. 15/675,447 · Granted Sep 24, 2019

Method and system for a high-priority read based on an in-place suspend/resume write

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F11/28G06F3/0679G06F11/08G06F11/1004G06F11/1044G06F12/0246G06F12/0253G11C16/105G06F2212/7202
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,423,508
App. No.
15/675,447
Granted
Sep 24, 2019
Kind
B2
Abstract

One embodiment facilitates a high-priority read. During operation, the system receives, by a controller module of a storage device, a first request to write first data to a non-volatile memory of the storage device. The system commences a write operation to write the first data to the non-volatile memory. In response to detecting a second request to read second data from the non-volatile memory, the system: suspends the write operation; reads the second data from the non-volatile memory; and resumes the suspended write operation.

Claims (115)

1. A computer-implemented method for facilitating a high-priority read, the method comprising:

receiving, by a controller module of a storage device, a first request to write first data to a non-volatile memory of the storage device;

commencing a write operation to write the first data to a first page of the non-volatile memory;

detecting a condition which triggers a remapping of the write operation;

writing the first data to a second page of the non-volatile memory; and

in response to receiving a second request to read second data from the second page of the non-volatile memory:

suspending the write operation;

receiving, by the controller module, sensed data which includes data of the first data still to be written to the second page of the non-volatile memory;

storing, by the controller module, the sensed data in a data buffer of the controller;

reading the second data from the second page of the non-volatile memory; and

in response to successfully reading the second data from the second page of the non-volatile memory, resuming the suspended write operation by transmitting the sensed data to the non-volatile memory.

2. The method of claim 1 , further comprising:

mapping a logical block address of the first data to a first physical block address of the non-volatile memory,

wherein the first physical block address is associated with the first page of the non-volatile memory.

3. The method of claim 2 , wherein in response to detecting the condition which triggers a remapping of the write operation, the method further comprises:

detecting a first timeout based on a timestamp for the first data;

mapping the logical block address of the first data to a second physical block address of the non-volatile memory,

wherein the second physical block address is associated with the second page of the non-volatile memory;

marking the first page as available to be recycled;

updating the timestamp for the first data; and

writing the first data to the second page, wherein a second timeout is detected based on the updated timestamp for the first data.

4. The method of claim 1 , further comprising processing the first data by:

encoding the first data based on a cyclic redundancy check;

further processing the first data by compressing and encrypting the encoded data;

encoding the further processed data based on an error correction code (ECC);

adjusting a format of the ECC-encoded data; and

inserting a timestamp for the adjusted data.

5. The method of claim 1 , further comprising:

in response to completing, by an incremental step pulse program, an ongoing verify procedure, suspending the write operation;

performing, by the incremental step pulse program, a first sense procedure in response to suspending the write operation and reading the second data; and

performing, by the incremental step pulse program, a second sense procedure in response to successfully reading the second data and resuming the suspended write operation.

6. The method of claim 1 , wherein detecting the condition which triggers the remapping of the write operation is based on one or more of:

a condition which makes the first page unavailable;

a timeout of the first data to be written;

a failure of the first page; and

a failure of a die or other physical component associated with the first page.

7. The method of claim 1 , wherein the non-volatile memory is a NAND flash memory which includes a plurality of dies, wherein a die includes a plurality of planes, wherein a plane includes a plurality of blocks, wherein a block includes a plurality of pages, and

wherein the non-volatile memory may only be accessed by a single read or write operation at a time.

8. A computer-implemented method for facilitating a high-priority read, the method comprising:

receiving, by a controller module of a storage device, a request to write first data to a non-volatile memory;

commencing a write operation to write the first data to a first page of the non-volatile memory;

detecting a condition which triggers a remapping of the write operation;

writing the first data to a second page of the non-volatile memory;

receiving, by the controller module, a request to read second data stored in the second page of the non-volatile memory of the storage device; and

in response to determining that the non-volatile memory is performing an ongoing write operation of the first data to the second page of the non-volatile memory:

suspending the ongoing write operation;

receiving, by the controller module, sensed data which includes data of the first data still to be written to the second page of the non-volatile memory;

storing, by the controller module, the sensed data in a data buffer of the controller;

reading the requested second data from the second page of the non-volatile memory; and

in response to successfully reading the second data from the second page of the non-volatile memory, resuming the suspended write operation by transmitting the sensed data to the non-volatile memory.

9. The method of claim 8 , further comprising:

obtaining a physical block address of the non-volatile memory, wherein the physical block address maps to a logical block address of the requested second data,

wherein reading the requested second data from the non-volatile memory is based on the physical block address.

10. The method of claim 8 , further comprising:

in response to completing, by an incremental step pulse program, an ongoing verify procedure, suspending the ongoing write operation;

performing, by the incremental step pulse program, a first sense procedure in response to suspending the ongoing write operation and reading the second data; and

performing, by the incremental step pulse program, a second sense procedure in response to successfully reading the second data and resuming the suspended write operation.

11. The method of claim 8 , further comprising:

verifying the requested second data read from the non-volatile memory; and

transmitting the verified data to a requesting host.

12. The method of claim 8 , wherein the non-volatile memory may only be accessed by a single read or write operation at a time.

13. A computer system for facilitating a high-priority read, the system comprising:

a processor; and

a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method, the method comprising:

receiving, by a controller module of a storage device, a first request to write first data to a non-volatile memory of the storage device;

commencing a write operation to write the first data to a first page of the non-volatile memory;

detecting a condition which triggers a remapping of the write operation;

writing the first data to a second page of the non-volatile memory; and

in response to receiving a second request to read second data from the second page of the non-volatile memory:

suspending the write operation;

receiving, by the controller module, sensed data which includes data of the first data still to be written to the second page of the non-volatile memory;

storing, by the controller module, the sensed data in a data buffer of the controller;

reading the second data from the second page of the non-volatile memory; and

in response to successfully reading the second data from the second page of the non-volatile memory, resuming the suspended write operation by transmitting the sensed data to the non-volatile memory.

14. The computer system of claim 13 , wherein the method further comprises:

mapping a logical block address of the first data to a first physical block address of the non-volatile memory,

wherein the first physical block address is associated with the first page of the non-volatile memory.

15. The computer system of claim 14 , wherein in response to detecting the condition which triggers a remapping of the write operation, the method further comprises:

detecting a first timeout based on a timestamp for the first data;

mapping the logical block address of the first data to a second physical block address of the non-volatile memory,

wherein the second physical block address is associated with the second page of the non-volatile memory;

marking the first page as available to be recycled;

updating the timestamp for the first data; and

writing the first data to the second page, wherein a second timeout is detected based on the updated timestamp for the first data.

16. The computer system of claim 13 , wherein the method further comprises processing the first data by:

encoding the first data based on a cyclic redundancy check;

further processing the first data by compressing and encrypting the encoded data;

encoding the further processed data based on an error correction code (ECC);

adjusting a format of the ECC-encoded data; and

inserting a timestamp for the adjusted data.

17. The computer system of claim 13 , wherein the method further comprises:

in response to completing, by an incremental step pulse program, an ongoing verify procedure, suspending the write operation;

performing, by the incremental step pulse program, a first sense procedure in response to suspending the write operation and reading the second data; and

performing, by the incremental step pulse program, a second sense procedure in response to successfully reading the second data and resuming the suspended write operation.

18. The computer system of claim 13 , wherein detecting the condition which triggers the remapping of the write operation is based on one or more of:

a condition which makes the first page unavailable;

a timeout of the first data to be written;

a failure of the first page; and

a failure of a die or other physical component associated with the first page.

19. The computer system of claim 13 , wherein the non-volatile memory is a NAND flash memory which includes a plurality of dies, wherein a die includes a plurality of planes, wherein a plane includes a plurality of blocks, wherein a block includes a plurality of pages, and

wherein the non-volatile memory may only be accessed by a single read or write operation at a time.

20. A computer system for facilitating a high-priority read, the system comprising:

a processor; and

a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method, the method comprising:

receiving, by a controller module, a request to write first data to a non-volatile memory;

commencing a write operation to write the first data to a first page of the non-volatile memory;

detecting a condition which triggers a remapping of the write operation;

writing the first data to a second page of the non-volatile memory;

detecting a new request to read second data from the second page of the non-volatile memory;

in response to determining an ongoing write operation of the first data to the second page of the non-volatile memory:

suspending the ongoing write operation;

receiving, by the controller module, sensed data which includes data of the first data still to be written to the second page of the non-volatile memory;

storing, by the controller module, the sensed data in a data buffer of the controller;

reading the requested second data from the second page of the non-volatile memory; and

in response to successfully reading the second data from the second page of the non-volatile memory, resuming the suspended write operation by transmitting the sensed data to the non-volatile memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2017
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 043287/0479 →
Continuity (1)
Related Publication 20190050312A1 · Feb 14, 2019