IP Library Granted Patent US 10,564,856
Granted Patent B2
US 10,564,856 · App. 15/643,210 · Granted Feb 18, 2020

Method and system for mitigating write amplification in a phase change memory-based storage device

Inventors: Shu Li (Bothell, WA); Ping Zhou (Folsom, CA)
Assignee: Alibaba Group Holding Limited
G06F3/0613G06F3/061G06F3/0619G06F3/0638G06F3/0655G06F3/0679G06F3/0685G06F12/0246
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,564,856
App. No.
15/643,210
Granted
Feb 18, 2020
Kind
B2
Abstract

One embodiment facilitates mitigating write amplification in a phase change memory-based storage device. During operation, the system receives, by a controller of the storage device, data to be stored in a phase change memory (PCM) of the storage device. The system writes, by the controller, the data to a sector of a volatile memory of the same storage device to obtain an updated portion of the sector. In response to detecting a predetermined condition, the system writes the updated portion to the PCM.

Claims (86)

1. A computer-implemented method for mitigating write amplification in a phase change memory-based storage device, the method comprising:

receiving, by a controller of the storage device, first data to be stored in a phase change memory (PCM) of the storage device;

writing, by the controller, the first data to a portion of a first sector of a volatile memory of the same storage device to obtain an updated portion of the first sector;

monitoring a frequency of access of second data previously written to a plurality of sectors of the volatile memory;

identifying a set of the second data including the updated portion of the first sector based on the monitored access frequency being greater than a predetermined threshold;

aggregating the identified set of the second data into a second sector of the volatile memory; and

in response to detecting a first predetermined condition, writing the aggregated data in the second sector of the volatile memory to the PCM.

2. The method of claim 1 , wherein the first sector includes original data and original parity bits, wherein the original data includes data which has directly overwritten data previously stored in the first sector, and wherein the method further comprises, in response to detecting a second predetermined condition, writing the updated portion to the second sector of the PCM by:

comparing the data in the updated portion of the first sector with the corresponding original data to obtain a first difference;

aligning the first difference based on a length of the first difference and a length of the original data;

encoding the aligned first difference to obtain a second difference;

comparing the original parity bits with the second difference to obtain new parity bits; and

writing the updated portion and the new parity bits to the second sector of the PCM.

3. The method of claim 2 , wherein the first or second predetermined condition is based on one or more of:

reaching a predetermined timeout or expiration period for the updated portion;

reaching a predetermined capacity threshold of the volatile memory;

executing an instruction to write data from the volatile memory to the PCM;

a loss in power; and

detecting a predetermined time interval or frequency for writing data from the volatile memory to the PCM.

4. The method of claim 2 , wherein writing the updated portion to the second sector of the PCM is in response to determining that a length of the updated portion is less than a predetermined length.

5. The method of claim 1 , wherein writing the first data to the first sector of the volatile memory is in response to determining that a length of the received first data is less than a predetermined length corresponding to a block size for the PCM, and wherein the method further comprises:

in response to determining that the length of the received first data is not less than the predetermined length corresponding to the block size for the PCM, writing the received first data to the PCM.

6. The method of claim 1 , wherein identifying the second set of data is based on one or more of:

an observable condition; and

the first or second predetermined condition.

7. The method of claim 1 , wherein prior to writing the aggregated data in the second sector of the volatile memory to the PCM, the method further comprises:

generating parity bits for the aggregated data; and

including the generated parity bits with the aggregated data.

8. A computer-implemented method for mitigating write amplification in a phase change memory-based storage device, the method comprising:

receiving, by a controller of the storage device, a request to read first data;

retrieving, by the controller, the requested first data from a phase change memory (PCM) of the storage device, wherein the requested first data has been previously written to the PCM from a volatile memory of the same storage device;

in response to detecting a first predetermined condition, writing, by the controller, the retrieved first data to the volatile memory;

updating a portion of a first section of the volatile memory containing the first data;

monitoring a frequency of access of second data previously written to a plurality of sectors of the volatile memory;

identifying a set of the second data including the portion of the first sector based on the monitored access frequency being greater than a predetermined threshold;

aggregating the identified set of the second data into a new sector of the volatile memory; and

in response to detecting a second predetermined condition, writing the aggregated data in the new sector of the volatile memory to the PCM.

9. The method of claim 8 , wherein the retrieved first data is stored in a first portion of a first sector of the PCM, and wherein writing the retrieved first data to the volatile memory further comprises:

determining a second sector of the volatile memory, wherein the second sector of the volatile memory corresponds to the first sector of the volatile memory;

writing the retrieved data from the first portion of the first sector to the second sector;

aligning the written data from the first portion in the second sector based on a length of the first portion and a length of the second sector to obtain a new codeword; and

returning, by the controller, the written data from the new codeword.

10. The method of claim 8 , wherein retrieving the requested first data from the PCM is in response to determining that the requested first data is not stored in the volatile memory, and wherein the method further comprises:

in response to determining that the requested first data is stored in the volatile memory, returning the requested first data from the volatile memory.

11. The method of claim 8 , wherein the first or second predetermined condition is based on one or more of:

reaching a predetermined timeout or expiration period;

reaching a predetermined capacity threshold of the volatile memory;

executing an instruction to write data from the volatile memory to the PCM;

a loss in power;

detecting a predetermined time interval or frequency for writing data from the volatile memory to the PCM;

performing a caching algorithm;

detecting a user-generated or host-configured condition;

determining that the requested first data is to be written to the volatile memory;

analyzing statistics associated with access of the requested first data;

determining that a likelihood of the requested first data to be requested or accessed is greater than a predetermined threshold; and

an observable condition associated with the requested data.

12. A computer system for mitigating write amplification in a phase change memory-based storage device, 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 of the storage device, first data to be stored in a phase change memory (PCM) of the storage device;

writing, by the controller, the first data to a portion of a first sector of a volatile memory of the same storage device to obtain an updated portion of the first sector;

monitoring a frequency of access of second data previously written to a plurality of sectors of the volatile memory;

identifying a set of the second data including the updated portion of the first sector based on the monitored access frequency being greater than a predetermined threshold;

aggregating the identified set of the second data into a second sector of the volatile memory; and

in response to detecting a first predetermined condition, writing the aggregated data in the second sector of the volatile memory to the PCM.

13. The computer system of claim 12 , wherein the first sector includes original data and original parity bits, wherein the original data includes data which has directly overwritten data previously stored in the first sector, and wherein the method further comprises, in response to detecting a second predetermined condition, writing the updated portion to the second sector of the PCM by:

comparing the data in the updated portion of the first sector with the corresponding original data to obtain a first difference;

aligning the first difference based on a length of the first difference and a length of the original data;

encoding the aligned first difference to obtain a second difference;

comparing the original parity bits with the second difference to obtain new parity bits; and

writing the updated portion and the new parity bits to the second sector of the PCM.

14. The computer system of claim 13 , wherein the first or second predetermined condition is based on one or more of:

reaching a predetermined timeout or expiration period for the updated portion;

reaching a predetermined capacity threshold of the volatile memory;

executing an instruction to write data from the volatile memory to the PCM;

a loss in power; and

detecting a predetermined time interval or frequency for writing data from the volatile memory to the PCM.

15. The computer system of claim 13 , wherein writing the updated portion to the second sector of the PCM is in response to determining that a length of the updated portion is less than a predetermined length.

16. The computer system of claim 12 , wherein writing the first data to the first sector of the volatile memory is in response to determining that a length of the received first data is less than a predetermined length corresponding to a block size for the PCM, and wherein the method further comprises:

in response to determining that the length of the received first data is not less than the predetermined length corresponding to the block size for the PCM, writing the received first data to the PCM.

17. The computer system of claim 12 , wherein identifying the second set of data is based on one or more of:

an observable condition; and

the first or second predetermined condition.

18. The computer system of claim 12 , wherein prior to writing the aggregated data in the second sector of the volatile memory to the PCM, the method further comprises:

generating parity bits for the aggregated data; and

including the generated parity bits with the aggregated data.

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 Jul 13, 2017
From: LI, SHU; ZHOU, PING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 042993/0577 →
Continuity (1)
Related Publication 20190012111A1 · Jan 10, 2019