IP Library Granted Patent US 10,055,171
Granted Patent B2
US 10,055,171 · App. 15/250,264 · Granted Aug 21, 2018

Compression and formatting of data for data storage systems

Inventor: Robert L. Horn (Yorba Linda, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/0661G06F3/064G06F3/0608G06F3/0656G06F3/0679G06F3/0688G06F12/0871G06F21/6218G11B20/0021G11B20/10527G11B20/1217G06F12/0246G06F2212/1021G06F2212/1044G06F2212/217G06F2212/222G06F2212/281G06F2212/313G06F2212/401
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,055,171
App. No.
15/250,264
Granted
Aug 21, 2018
Kind
B2
Abstract

Embodiments of compression and formatting of data for data storage systems are disclosed. In some embodiments, a data storage system can compress fixed sized data before storing it on a media and format obtained variable sized compressed data for storing on the media that typically has fixed size storage granularity. One or more modules compress the incoming host data and create an output stream of fixed sized storage units that contain compressed data. The storage units are stored on the media. Capacity, reliability, and performance are thereby increased.

Claims (40)

1. A data storage system comprising:

non-volatile memory (NVM) configured to store a plurality of memory data units, a memory data unit being a unit of storage in the NVM; and

a controller configured to, in response to processing a read data command associated with a range of logical addresses corresponding to a plurality of host data units:

identify and retrieve from the NVM at least one storage unit that includes the plurality of host data units associated with the read data command and a storage unit metadata portion indicating a position in the at least one storage unit of one or more compressed mapping units;

identify, using the position, a plurality of compressed mapping units in the retrieved at least one storage unit, wherein combined compressed payloads of the plurality of compressed mapping units comprise at least the plurality of host data units associated with the read data command;

decompress the compressed payloads of the identified plurality of compressed mapping units; and

provide the plurality of host data units obtained from the decompressed payloads to a host system.

2. The data storage system of claim 1 , wherein:

at least one compressed mapping unit of the plurality of compressed mapping units comprises a compressed mapping unit metadata portion indicating a plurality of logical addresses associated with host data units of the compressed payload; and

the controller is further configured to identify the at least one compressed mapping unit using its compressed mapping unit metadata portion.

3. The data storage system of claim 2 , wherein the controller is further configured to compare the range of logical addresses associated with the read data command with the plurality of logical addresses of the compressed mapping unit metadata portion of the at least one compressed mapping unit.

4. The data storage system of claim 2 , wherein the compressed mapping unit metadata portion associated with the at least one compressed mapping unit is not compressed.

5. The data storage system of claim 2 , wherein the at least one compressed mapping unit comprises compressed payload that is encrypted, and the controller is further configured to decrypt the compressed payload.

6. The data storage system of claim 5 , wherein the compressed mapping unit metadata portion of the at least one compressed mapping unit is not uncompressed and not encrypted.

7. The data storage system of claim 1 , wherein the controller is further configured to skip, within the retrieved at least one storage unit, an unrelated compressed mapping unit including a compressed mapping unit metadata portion that does not indicate that the unrelated compressed mapping unit includes host data units that correspond to any of logical addresses in the range of logical addresses associated with the read data command.

8. The data storage system of claim 1 , wherein the NVM comprises at least one of a solid-state memory array or magnetic recording media.

9. The data storage system of claim 8 , wherein:

the solid-state memory array is configured to store a plurality of memory data units of a first size and the magnetic recording media is configured to store a plurality of a memory data units of a second size; and

a size of the at least one storage unit is aligned with the first or second size based at least in part on whether the at least one storage unit is stored in the solid-state memory array or the magnetic recording media.

10. The data storage system of claim 1 , wherein the at least one storage unit is padded with filler data of a size selected to permit a size of the at least one storage unit to be aligned with the memory data unit of the NVM.

11. A method of storing data in a non-volatile storage system comprising a non-volatile memory (NVM) configured to store a plurality of memory data units, a memory data unit being a unit of storage in the NVM, the method comprising:

in response to processing a read data command associated with a range of logical addresses corresponding to a plurality of host data units:

identifying and retrieving from the NVM at least one storage unit that includes the plurality of host data units associated with the read data command and a storage unit metadata portion indicating a position in the at least one storage unit of one or more compressed mapping units;

identifying, using the position, a plurality of compressed mapping units in the retrieved at least one storage unit, wherein combined compressed payloads of the plurality of compressed mapping units comprise at least the plurality of host data units associated with the read data command;

decompressing the compressed payloads of the identified plurality of compressed mapping units; and

providing the plurality of host data units obtained from the decompressed payloads to a host system,

wherein the method is performed under control of a controller.

12. The method of claim 11 , wherein:

at least one compressed mapping unit of the plurality of compressed mapping units comprises a compressed mapping unit metadata portion indicating a plurality of logical addresses associated with host data units of the compressed payload; and

the method further comprises identifying the at least one compressed mapping unit using its compressed mapping unit metadata portion.

13. The method of claim 12 , further comprising comparing the range of logical addresses associated with the read data command with the plurality of logical addresses of the compressed mapping unit metadata portion of the at least one compressed mapping unit.

14. The method of claim 12 , wherein the compressed mapping unit metadata portion associated with the at least one compressed mapping unit is not compressed.

15. The method of claim 12 , wherein the at least one compressed mapping unit comprises compressed payload that is encrypted, and the method further comprises decrypting the compressed payload.

16. The method of claim 15 , wherein the compressed mapping unit metadata portion of the at least one compressed mapping unit is not uncompressed and not encrypted.

17. The method of claim 11 , further comprising skipping, within the retrieved at least one storage unit, an unrelated compressed mapping unit including a compressed mapping unit metadata portion that does not indicate that the unrelated compressed mapping unit includes host data units that correspond to any of logical addresses in the range of logical addresses associated with the read data command.

18. The method of claim 11 , wherein the NVM comprises at least one of a solid-state memory array or magnetic recording media.

19. The method of claim 18 , wherein:

the solid-state memory array is configured to store a plurality of memory data units of a first size and the magnetic recording media is configured to store a plurality of a memory data units of a second size; and

a size of the at least one storage unit is aligned with the first or second size based at least in part on whether the at least one storage unit is stored in the solid-state memory array or the magnetic recording media.

20. The method of claim 11 , wherein the at least one storage unit is padded with filler data of a size selected to permit a size of the at least one storage unit to be aligned with the memory data unit of the NVM.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2016
From: HORN, ROBERT L.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 039585/0731 →
Continuity (3)
Continuation 13902504 · May 24, 2013
Provisional Application 61798909 · Mar 15, 2013
Related Publication 20160371037A1 · Dec 22, 2016
Cited By (2)
US 12,327,023 US 12,474,870