IP Library Granted Patent US 10,789,011
Granted Patent B2
US 10,789,011 · App. 15/717,100 · Granted Sep 29, 2020

Performance enhancement of a storage device using an integrated controller-buffer

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F3/0659G06F3/061G06F3/0604G06F3/0656G06F3/0679G06F11/1004G06F11/1012G06F11/1068G11C29/52
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,789,011
App. No.
15/717,100
Granted
Sep 29, 2020
Kind
B2
Abstract

Embodiments described herein provide a system for facilitating performance enhancement of a storage device. During operation, the system obtains a write request for storing a data page in the storage device. The system then stores the page in a non-volatile accumulation buffer integrated with the storage device and determines whether the accumulation buffer has accumulated at least one block of data. The block of data can indicate a unit of an erasure operation on the storage device. If the accumulation buffer has accumulated the one block of data, the system transfers the block of data to a first block in the storage device from the accumulation buffer.

Claims (72)

1. A computer-implemented method for facilitating performance enhancement of a storage device, the method comprising:

obtaining a write request for storing a data page in the storage device;

determining a zone for the data page in an accumulation buffer integrated within the storage device, wherein the accumulation buffer is based on non-volatile memory and includes a plurality of zones, and wherein a respective zone is associated with a channel coupling a flash die of the storage device;

storing the data page in the determined zone and determining whether the determined zone of the accumulation buffer has accumulated at least one block of data, wherein the block of data indicates a unit of an erasure operation on the storage device; and

in response to the determined zone of the accumulation buffer accumulating the one block of data, transferring the block of data to a first block of a first flash die in the storage device from the determined zone of the accumulation buffer.

2. The method of claim 1 , wherein transferring the block of data comprises:

identifying the first block of the first flash die in a free block pool in the storage device;

transferring a respective data page in the block of data to a page buffer of the first flash die; and

programming the first flash die to store the data page in the first block.

3. The method of claim 2 , wherein the accumulation buffer is based on a resistive random-access memory (ReRAM), and wherein the one or more flash dies are based on a Not AND (NAND) dies.

4. The method of claim 1 , wherein a respective zone of the plurality of zones is configured to accumulate a block of data.

5. The method of claim 1 , further comprising:

obtaining a read request for retrieving the data page;

determining whether the data page is in the accumulation buffer; and

in response to determining that the data page is in the accumulation buffer, transferring the data page from the determined zone of the accumulation buffer to a read buffer integrated within the storage device.

6. The method of claim 5 , further comprising, in response to determining that the data page is not in the accumulation buffer, transferring the data page from the first block of the first flash die to the read buffer integrated within the storage device.

7. The method of claim 1 , further comprising:

representing the first block as a logical file;

maintaining a first mapping that maps a filename of the logical file and a corresponding logical index to a first physical index identifying the block of data in the storage device; and

maintaining a second mapping that maps an offset from the logical index to a second physical index identifying a subpage in the block of data in the storage device.

8. The method of claim 1 , further comprising:

determining whether data in a second block in the storage device can be safely retained; and

in response to determining that data in the second block cannot be safely retained, refreshing the second block by transferring the data in the second block to a third block via the accumulation buffer.

9. The method of claim 1 , further comprising:

determining whether data in a second block in a second flash die of the storage device has been updated; and

in response to determining that data in the second block has been updated, storing the updated data by:

transferring the data in the second block to a second zone of the accumulation buffer;

updating the transferred data in the second zone of the accumulation buffer; and

transferring the updated data from the second zone of the accumulation buffer to a third block of the second flash die in a free block pool of the storage device.

10. The method of claim 1 , further comprising:

enabling a lock on the first flash die for blocking read/write operation on the first flash die, wherein the first flash die includes a second block comprising expired data;

performing an erasure operation that removes the expired data from the second block;

releasing the lock on the first flash die; and

adding the second block to a free block pool of the storage device.

11. A storage device, comprising:

a controller configured to manage storage in the storage device;

one or more flash dies configured to store data;

an accumulation buffer based on non-volatile memory, wherein the accumulation buffer includes a plurality of zones, and wherein a respective zone is associated with a channel coupling a flash die of the one or more flash dies;

a buffer management module configured to:

obtain a write request for storing a data page in the storage device;

determining a zone for the data page in the accumulation buffer; and

storing the data page in the determined zone and determine whether the determined zone of the accumulation buffer has accumulated at least one block of data, wherein the block of data indicates a unit of an erasure operation on the storage device; and

a writing module configured to, in response to the determined zone of the accumulation buffer accumulating the one block of data, transfer the block of data to a first block of a first flash die in the storage device from the determined zone of the accumulation buffer.

12. The storage device of claim 11 , wherein the writing module is configured to transfer the block of data by:

identifying the first block of the first flash die in a free block pool in the storage device;

transferring a respective data page in the block of data to a page buffer of the first flash die; and

programming the first flash die to store the data page in the first block.

13. The storage device of claim 11 , wherein the accumulation buffer is based on a resistive random-access memory (ReRAM), and wherein the one or more flash dies are based on Not AND (NAND) dies.

14. The storage device of claim 11 , wherein a respective zone of the plurality of zones is configured to accumulate a block of data.

15. The storage device of claim 11 , wherein the buffer management module is further configured to obtain a read request for retrieving the data page;

wherein the storage device further comprises a reading module configured to:

determine whether the data page is in the accumulation buffer; and

in response to determining that the data page is in the accumulation buffer, transfer the data page from the determined zone of the accumulation buffer to a read buffer integrated within the storage device.

16. The storage device of claim 15 , wherein the reading module is further configured to, in response to determining that the data page is not in the accumulation buffer, transfer the data page from the first block of the first flash die to the read buffer integrated within the storage device.

17. The storage device of claim 11 , further comprising a mapping module configured to:

represent the first block as a logical file;

maintain a first mapping that maps a filename of the logical file and a corresponding logical index to a first physical index identifying the block of data in the storage device; and

maintain a second mapping that maps an offset from the logical index to a second physical index identifying a subpage in the block of data in the storage device.

18. The storage device of claim 11 , further comprising a refreshing module configured to:

determine whether data in a second block in the storage device can be safely retained; and

in response to determining that data in the second block cannot be safely retained, refresh the second block by transferring the data in the second block to a third block via the accumulation buffer.

19. The storage device of claim 11 , further comprising an updating module configured to:

determine whether data in a second block in a second flash die of the storage device has been updated; and

in response to determining that data in the second block has been updated, store the updated data by:

transferring the data in the second block to a second zone of the accumulation buffer;

updating the transferred data in the second zone of the accumulation buffer; and

transferring the updated data from the second zone of the accumulation buffer to a third block of the second flash die in a free block pool of the storage device.

20. The storage device of claim 11 , further comprising an erasure module configured to:

enable a lock on the first flash die for blocking read/write operation on the first flash die, wherein the first flash die includes a second block comprising expired data;

perform an erasure operation that removes the expired data from the second block;

release the lock on the first flash die; and

add the second block to a free block pool of the storage device.

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 Sep 28, 2017
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 043727/0219 →
Continuity (1)
Related Publication 20190095134A1 · Mar 28, 2019