IP Library Granted Patent US 10,013,346
Granted Patent B2
US 10,013,346 · App. 14/943,841 · Granted Jul 3, 2018

Method of decreasing write amplification of NAND flash using a journal approach

Inventors: Viacheslav Anatolyevich Dubeyko (San Jose, CA); Cyril Guyot (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F12/0246G06F12/122G06F2212/69G06F2212/7208
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,013,346
App. No.
14/943,841
Granted
Jul 3, 2018
Kind
B2
Abstract

A journaling approach is used to distribute data of different sizes between areas of a segment's log on a physical NAND flash erase block. The Main area contains large, contiguous extents of data, and the Journal area contains logical blocks of small data. An Updates area also contains updates that are pending. One disclosed embodiment includes storing a first file fragment associated with a file in a journal area of a log, where a size of the file fragment is less than a physical NAND flash page size limit, receiving a second file fragment associated with the file, combining the first file fragment and the second file fragment when a combined size of the fragments is equal to the physical NAND flash page size limit, storing the combined fragments in a main area of a second log, receiving an update associated with the combined fragments, and storing the update in an updates area of a third log.

Claims (42)

1. A method of storing file fragments of growing files in a flash-based storage system, comprising:

storing a first file fragment associated with a file in a journal area of a first log in flash memory, wherein a size of the file fragment is less than a physical NAND flash page size limit;

receiving a second file fragment associated with the file;

combining the first file fragment and the second file fragment when a combined sized of the fragments is equal to the physical NAND flash page size limit;

storing the combined fragments in a main area of a second log in flash memory, wherein the second log is different from the first log;

receiving an update associated with the combined fragments; and

storing the update in an updates area of a third log in flash memory, wherein the third log is different from the first and second logs,

wherein each of the first, second and third logs comprises a respective journal area, a respective main area and a respective updates area.

2. The method of claim 1 , wherein a size of the update is less than the physical NAND flash page size limit.

3. The method of claim 1 , wherein the main area comprises content that is rarely updated, and the updates area and the journal area comprise content that is frequently updated.

4. The method of claim 1 , wherein the flash-based storage system comprises NAND flash.

5. The method of claim 1 , wherein the combined fragments are stored in a pre-allocated NAND flash page of the main area.

6. The method of claim 1 , further comprising updating metadata information associated with the first, second, and third logs.

7. An apparatus for storing file fragments of growing files in a flash-based storage system, comprising:

a flash memory device;

a main memory; and

a processor communicatively coupled to the flash memory device and the main memory, the processor configured to:

store a first file fragment associated with a file in a journal area of a first log in the flash memory device, wherein a size of the file fragment is less than a physical NAND flash page size limit;

receive a second file fragment associated with the file;

combine the first file fragment and the second file fragment when a combined size of the fragments is equal to the physical NAND flash page size limit;

store the combined fragments in a main area of a second log in the flash memory device, wherein the second log is different from the first log;

receive an update associated with the combined fragments; and

store the update in an updates area of a third log in the flash memory device, wherein the third log is different from the first and second logs,

wherein each of the first, second and third logs comprises a respective journal area, a respective main area and a respective updates area.

8. The apparatus of claim 7 , wherein the first, second, and third logs are constructed in the main memory and stored on the flash memory device.

9. The apparatus of claim 7 , wherein a size of the update is less than the physical NAND flash page size limit.

10. The apparatus of claim 7 , wherein the main area comprises content that is rarely updated, and the updates area and the journal area comprise content that is frequently updated.

11. The apparatus of claim 7 , wherein the flash-based storage system comprises NAND flash.

12. The apparatus of claim 7 , wherein the combined fragments are stored in a pre-allocated NAND flash page of the main area.

13. A computer program product tangibly embodied in a computer-readable storage device and comprising instructions that when executed by a processor perform a method for storing file fragments of growing files in a flash-based storage system, the method comprising:

storing a first file fragment associated with a file in a journal area of a first log in flash memory, wherein a size of the file fragment is less than a physical NAND flash page size limit;

receiving a second file fragment associated with the file;

combining the first file fragment and the second file fragment when a combined size of the fragments is equal to the physical NAND flash page size limit;

storing the combined fragments in a main area of a second log in flash memory, wherein the second log is different from the first log;

receiving an update associated with the combined fragments; and

storing the update in an updates area of a third log in flash memory, wherein the third log is different from the first and second logs,

wherein each of the first, second and third logs comprises a respective journal area, a respective main area and a respective updates area.

14. The computer program product of claim 13 , wherein a size of the update is less than the physical NAND flash page size limit.

15. The computer program product of claim 13 , wherein the main area comprises content that is rarely updated, and the updates area and the journal area comprise content that is frequently updated.

16. The computer program product of claim 13 , wherein the flash-based storage system comprises NAND flash.

17. The computer program product of claim 13 , wherein the combined fragments are stored in pre-allocated NAND flash page of the main area.

18. The computer program product of claim 13 , further comprising updating metadata information associated with the first, second, and third logs.

Assignments (12)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2015
From: DUBEYKO, VIACHESLAV ANATOLYEVICH; GUYOT, CYRIL
To: HGST NETHERLANDS B.V.
Reel/Frame 037264/0764 →
Continuity (1)
Related Publication 20170139822A1 · May 18, 2017