IP Library Granted Patent US 9,586,142
Granted Patent B2
US 9,586,142 · App. 14/208,401 · Granted Mar 7, 2017

Vertically integrated storage

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 9,586,142
App. No.
14/208,401
Granted
Mar 7, 2017
Kind
B2
Abstract

Various systems, methods, apparatuses, and computer-readable media for accessing a storage device are described. Techniques are described for vertically integrating the various software functions and hardware functions for accessing storage hardware. In some embodiments, the system is implemented using non-volatile memory.

Claims (41)

1. A storage device comprising:

a storage medium comprising non-volatile memory;

one or more processing entities configured to:

execute a deduplication module vertically integrated into the storage medium to detect duplicity of data; and

execute a Redundant Array of Independent Disks (RAID) module vertically integrated into the storage medium to provide fault tolerance by spreading data and parity information across the non-volatile memory;

the storage device is further configured to

generate, by a compression module, a signature for data associated with a storage request, wherein the signature is generated at the same time that the data is compressed, and the generated signature is used to dedupe data by comparing the generated signature with signatures already stored on the storage device;

perform a journaling function only once for each access request to the storage medium on the storage device using a single journaling module shared by the deduplication module and the RAID module, wherein journaling comprises logging data in order to recover the data in the event of a system crash or a power failure; and

perform a mapping function, comprising a single mapping structure, only once for each access request to the storage medium on the storage device using a single mapping module shared by the deduplication module and the RAID module,

wherein the mapping function by the mapping module performs a translation from a linear address to a physical address for the access request to the storage device using a multidimensional mapping, wherein a first dimension of the multidimensional mapping is a file identifier and the second dimension of the multidimensional mapping is a snapshot version.

2. The storage device of claim 1 , wherein a flash translation layer (FTL) module comprises the journaling module and the mapping module.

3. The storage device of claim 2 , wherein storage device is configured to execute a single instance of the FTL module for the storage device.

4. The storage device of claim 1 , wherein the one or more processing units are further configured to execute a snapshot and thin provisioning module, wherein the snapshot and thin provisioning module does not have a separate journaling functionality or separate mapping functionality.

5. The storage device of claim 1 , wherein the one or more processing units are further configured to execute a File System (FS) module for providing abstraction to an application for storing, retrieving and updating files comprising data on the storage medium, wherein the FS module does not have a separate journaling functionality or separate mapping functionality.

6. The storage device of claim 1 , wherein the one or more processing units are further configured to execute an Operating System (OS) module configured to execute on one or more processors, wherein OS module does not have a separate journaling functionality or separate mapping functionality.

7. The storage device of claim 1 , wherein the one or more processing units are further configured to perform a caching function using a caching module only once for the deduplication module and the RAID module for the access request to the storage medium on the storage device.

8. The storage device of claim 1 , wherein the one or more processing units are further configured to perform a garbage collection function using a garbage collection module only once for the deduplication module and the RAID module for the access request to the storage medium on the storage device.

9. A non-transitory computer readable storage medium, wherein the non-transitory computer readable storage medium comprises instructions executable by a processor, the instructions comprising instructions to:

manage access to a non-volatile memory for a storage using a Flash Translation Layer (FTL) module vertically integrated into the non-volatile memory;

detect duplicity of data using a deduplication module vertically integrated into the non-volatile memory;

provide fault tolerance by spreading data and parity information across the non-volatile memory using a Redundant Array of Independent Disks (RAID) module vertically integrated into the non-volatile memory;

generate, by a compression module, a signature for data associated with a storage request, wherein the signature is generated at the same time that the data is compressed, and the generated signature is used to dedupe data by comparing the generated signature with signatures already stored on the storage device;

perform a journaling function only once for each access request to the storage medium on the storage device using a single journaling module shared by the FTL module, the deduplication module and the RAID module, wherein journaling comprises logging data in order to recover the data in the event of a system crash or a power failure;

perform a mapping function, comprising a single mapping structure, only once for each access request to the storage medium on the storage device using a single mapping module shared by the the FTL module, the deduplication module and the RAID module,

wherein the mapping function by the mapping module performs a translation from a linear address to a physical address for the access request to the storage device using a multidimensional mapping, wherein a first dimension of the multidimensional mapping is a file identifier and the second dimension of the multidimensional mapping is a snapshot version.

10. The non-transitory computer readable storage medium of claim 9 , wherein the instructions are part of a single executable binary.

11. The non-transitory computer readable storage medium of claim 9 , further comprising instructions to compress data only once for a store access request and decompress data only once for a read access request.

12. The non-transitory computer readable storage medium of claim 9 , further comprising instructions to perform caching function only once for the access request to the storage medium on the storage device.

13. The non-transitory computer readable storage medium of claim 9 , further comprising instructions to perform garbage collection functionality only once for the access request to the storage medium on the storage device.

14. A method for accessing a storage medium on a storage device, the method comprising:

managing access to a non-volatile memory for the storage medium using a Flash Translation Layer (FTL) module vertically integrated into the non-volatile memory;

detecting duplicity of data using a deduplication module vertically integrated into the non-volatile memory;

providing fault tolerance by spreading data and parity information across the non-volatile memory using a Redundant Array of Independent Disks (RAID) module vertically integrated into the non-volatile memory;

generate, by a compression module, a signature for data associated with a storage request, wherein the signature is generated at the same time that the data is compressed, and the generated signature is used to dedupe data by comparing the generated signature with signatures already stored on the storage device;

performing a journaling function only once for each access request to the storage medium on the storage device using a single journaling module shared by the FTL module, the deduplication module and the RAID module, wherein journaling comprises logging data in order to recover the data in the event of a system crash or a power failure; and

performing a mapping function, comprising a single mapping structure, only once for each access request to the storage medium on the storage device using a single mapping module shared by the FTL module, the deduplication module and the RAID module,

wherein the mapping function by the mapping module performs a translation from a linear address to a physical address for the access request to the storage device using a multidimensional mapping, wherein a first dimension of the multidimensional mapping is a file identifier and the second dimension of the multidimensional mapping is a snapshot version.

15. The method of claim 14 , further comprising compressing data only once for a store access request and decompressing data only for a read access request.

16. The method of claim 14 , further comprising performing caching only once for the access request to the storage medium on the storage device.

17. The method of claim 14 , further comprising performing garbage collection functionality only once for the access request to the storage medium on the storage device.

18. The method of claim 14 , further comprising performing garbage write combining only once for the access request to the storage medium on the storage device.

Assignments (12)
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2018
From: SKYERA, LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046726/0328 →
CHANGE OF NAME Recorded May 4, 2015
From: SKYERA, INC.
To: SKYERA, LLC
Reel/Frame 035571/0412 →
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2015
From: DELL PRODUCTS L.P.
To: SKYERA, LLC
Reel/Frame 034742/0069 →
SECURITY INTEREST Recorded Nov 11, 2014
From: SKYERA, INC.
To: WESTERN DIGITAL CAPITAL, INC.
Reel/Frame 034204/0849 →
SECURITY INTEREST Recorded Aug 14, 2014
From: SKYERA, INC.
To: DELL PRODUCTS L.P.
Reel/Frame 033546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2014
From: DANILAK, RADOSLAV
To: SKYERA, INC.
Reel/Frame 032430/0972 →