IP Library Granted Patent US 10,877,898
Granted Patent B2
US 10,877,898 · App. 15/815,510 · Granted Dec 29, 2020

Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F12/10G06F2212/1036G06F2212/2022G06F2212/7201G06F2212/7205
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,877,898
App. No.
15/815,510
Granted
Dec 29, 2020
Kind
B2
Abstract

One embodiment facilitates a reduced write amplification. During operation, the system receives, by a computing device, a request to write data to a non-volatile memory. The system writes a first page of the data to a block of the non-volatile memory based on a first physical block address of a destination page of the block, wherein the destination page is a first available page of the block. The system maps, in a data structure by a flash translation layer module of the computing device, a first logical block address of the first page of the data to the first physical block address.

Claims (72)

1. A computer-implemented method for facilitating a reduced write amplification, the method comprising:

receiving, by a computing device, a first request to write data to a non-volatile memory;

writing a first page of the data to a first block of the non-volatile memory based on a first physical block address of a destination page of the first block, wherein the destination page is a first available page of the first block;

mapping, in a data structure by a flash translation layer module of the computing device, a first logical block address of the first page of the data to the first physical block address;

receiving a second request to read data from a second page of a second block which is marked as eligible for recycling;

assigning a priority to the second page, wherein the assigned priority indicates that the second page is to be copied in a next host-triggered garbage collection prior to other valid pages of the second block being copied; and

responsive to completion of the first request to write the data to the non-volatile memory, directly triggering the next host-triggered garbage collection, which comprises:

identifying, by the computing device, the second block for recycling, wherein the second block includes valid pages which comprise the second page with the assigned priority and the other valid pages;

copying the second page with the assigned priority from the second block prior to copying the other valid pages from the second block to one or more blocks of the non-volatile memory, wherein a respective valid page is written to a first available page of a respective block;

marking as invalid an original physical block address for the respective valid page; and

mapping, by the flash translation layer module, a logical block address for the respective valid page to a physical block address for the first available page of the respective block.

2. The method of claim 1 , wherein in response to determining that a search in the data structure for the first logical block address of the first page of the data returns the first physical block address, the method further comprises:

replacing the first physical block address with a new physical block address;

marking as invalid the first physical block address; and

writing the first page of the data to the non-volatile memory based on the new physical block address.

3. The method of claim 1 , wherein completing the first request to write the data to the non-volatile memory comprises writing the data to the one or more blocks of the non-volatile memory in a sequential manner by:

distributing the data via a plurality of channels of the non-volatile memory; and

writing the data to a respective block of the non-volatile memory, via a respective channel, based on a multiple of a fixed number of pages at a time, wherein the multiple of the fixed number of the pages is used for internal data recovery.

4. The method of claim 1 , wherein data is stored in the non-volatile memory based on a journaling file system.

5. The method of claim 1 , wherein responsive to completing the first request, the method further comprises:

in response to determining that a first valid page of the identified second block is to be read by the computing device, copying the first valid page to the one or more blocks prior to copying the valid pages to the one or more blocks.

6. The method of claim 1 , wherein identifying the second block which is marked as eligible for recycling is based on whether the second block includes a number of valid pages less than a predetermined threshold.

7. The method of claim 1 , wherein directly triggering the next host-triggered garbage collection is performed prior to notifying a host that the data has been committed.

8. The method of claim 1 , further comprising:

receiving a plurality of requests to write data to the non-volatile memory; and

responsive to completion of each respective request to write the data to the non-volatile memory, directly triggering the next host-triggered garbage collection.

9. The method of claim 1 , wherein the next host-triggered garbage collection is a proactive garbage collection which is triggered in response to each of a plurality of received requests to write data to the non-volatile memory.

10. A computer system for facilitating a reduced write amplification, 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 the computer system, a first request to write data to a non-volatile memory;

writing a first page of the data to a first block of the non-volatile memory based on a first physical block address of a destination page of the first block, wherein the destination page is a first available page of the first block;

mapping, in a data structure by a flash translation layer module of the computer system, a first logical block address of the first page of the data to the first physical block address;

receiving a second request to read data from a second page of a second block which is marked as eligible for recycling;

assigning a priority to the second page, wherein the assigned priority indicates that the second page is to be copied in a next host-triggered garbage collection prior to other valid pages of the second block being copied; and

responsive to completion of the first request to write the data to the non-volatile memory, directly triggering the next host-triggered garbage collection, which comprises:

identifying, by the computing device, the second block for recycling, wherein the second block includes valid pages which comprise the second page with the assigned priority and the other valid pages;

copying the second page with the assigned priority from the second block prior to copying the other valid pages from the second block to one or more blocks of the non-volatile memory, wherein a respective valid page is written to a first available page of a respective block;

marking as invalid an original physical block address for the respective valid page; and

mapping, by the flash translation layer module, a logical block address for the respective valid page to a physical block address for the first available page of the respective block.

11. The computer system of claim 10 , wherein in response to determining that a search in the data structure for the first logical block address of the first page of the data returns the first physical block address, the method further comprises:

replacing the first physical block address with a new physical block address;

marking as invalid the first physical block address; and

writing the first page of the data to the non-volatile memory based on the new physical block address.

12. The computer system of claim 10 , wherein completing the first request to write the data to the non-volatile memory comprises writing the data to the one or more blocks of the non-volatile memory in a sequential manner by:

distributing the data via a plurality of channels of the non-volatile memory; and

writing the data to a respective block of the non-volatile memory, via a respective channel, based on a multiple of a fixed number of pages at a time, wherein the multiple of the fixed number of the pages is used for internal data recovery.

13. The computer system of claim 10 , wherein data is stored in the non-volatile memory based on a journaling file system.

14. The computer system of claim 10 , wherein responsive to completing the first request, the method further comprises:

in response to determining that a first valid page of the identified second block is to be read by the computer system, copying the first valid page to the one or more blocks prior to copying the valid pages to the one or more blocks.

15. The computer system of claim 10 , wherein identifying the second block which is marked as eligible for recycling is based on whether the second block includes a number of valid pages less than a predetermined threshold.

16. A computer-implemented method for facilitating proactive garbage collection in a computing device, the method comprising:

receiving a first request to write first data to a non-volatile memory;

writing a first page of the data to a first block of the non-volatile memory based on a first physical block address of a destination page of the first block, wherein the destination page is a first available page of the first block;

mapping, in a data structure by a flash translation layer module of the computing device, a first logical block address of the first page of the data to the first physical block address;

receiving a second request to read data from a second page of a second block which is marked as eligible for recycling;

assigning a priority to the second page, wherein the assigned priority indicates that the second page is to be copied in a next host-triggered garbage collection prior to other valid pages of the second block being copied; and

responsive to completion of the first request to write the data to the non-volatile memory, directly triggering the next host-triggered garbage collection, by:

identifying, by the computing device, the second block for recycling, wherein the second block includes valid pages which comprise the second page with the assigned priority and the other valid pages;

copying the second page with the assigned priority from the second block prior to copying the other valid pages from the second block to one or more blocks of the non-volatile memory, wherein a respective valid page is written to a first available page of a respective block;

marking as invalid an original physical block address for the respective valid page; and

mapping, by a flash translation layer module of the computing device, a logical block address for the respective valid page to a physical block address for the first available page of the respective block, thereby facilitating proactive garbage collection.

17. The method of claim 16 , wherein responsive to completing the first request, the method further comprises:

in response to determining that a first valid page of the identified second block is to be read by the computing device, copying the first valid page to the one or more blocks prior to copying the valid pages to the one or more blocks.

18. The method of claim 16 , wherein data is stored in the non-volatile memory based on a journaling file system.

19. The method of claim 16 , wherein completing the first request to write the data to the non-volatile memory involves writing the data to the one or more blocks of the non-volatile memory in a sequential manner by:

distributing the data via a plurality of channels of the non-volatile memory; and

writing the data to a respective block of the non-volatile memory, via a respective channel, based on a multiple of a fixed number of pages at a time, wherein the multiple of the fixed number of the pages is used for internal data recovery.

20. The method of claim 19 , wherein in response to determining that a search in the data structure for the first logical block address of the first page of the data returns the first physical block address, the method further comprises:

replacing the first physical block address with a new physical block address;

marking as invalid the first physical block address; and

writing the first page of the data to the non-volatile memory based on the new physical block address.

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 Dec 5, 2017
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 044304/0477 →
Continuity (1)
Related Publication 20190146925A1 · May 16, 2019
Cited By (2)
US 12,265,707 US 12,293,077