IP Library Granted Patent US 10,769,062
Granted Patent B2
US 10,769,062 · App. 16/246,401 · Granted Sep 8, 2020

Fine granularity translation layer for data storage devices

Inventor: Sanjay Subbarao (Irvine, CA)
Assignee: Western Digital Technologies, Inc.
G06F12/0246G06F9/5016G06F9/5077G06F12/1027G06F2212/7201
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,769,062
App. No.
16/246,401
Granted
Sep 8, 2020
Kind
B2
Abstract

A Data Storage Device (DSD) includes a non-volatile memory configured to store data, and control circuitry configured to receive a memory access command from a host to access data in the non-volatile memory. A location is identified in the non-volatile memory for performing the memory access command using an Address Translation Layer (ATL) that has a finer logical-to-physical granularity than a logical-to-physical granularity of a logical block-based file system executed by the host or a granularity based on a memory Input/Output (IO) transaction size of a processor of the host. The non-volatile memory is accessed at the identified location to perform the memory access command.

Claims (54)

1. A Data Storage Device (DSD), comprising:

a non-volatile memory configured to store data; and

control circuitry configured to:

receive a memory access command from a host to access data in the non-volatile memory;

identify a location in the non-volatile memory for performing the memory access command using an Address Translation Layer (ATL) that has a finer logical-to-physical granularity than a logical-to-physical granularity of a logical block-based file system executed by the host; and

access the non-volatile memory at the identified location to perform the memory access command.

2. The DSD of claim 1 , wherein the memory access command is a write command indicating at least one logical address for data to be stored in the DSD, and wherein the control circuitry is further configured to:

read a previous version of the data from the non-volatile memory corresponding to the at least one logical address;

compare the previous version of the data to the data to be written for the write command;

identify one or more portions of the data to be written that have changed since the previous version of the data; and

write the one or more portions of the data that have changed to the non-volatile memory without writing any portions of the data for the write command that have not changed.

3. The DSD of claim 2 , wherein the DSD further comprises a Random Access Memory (RAM), and wherein the control circuitry is further configured to:

buffer data in the RAM identified as portions of data to be written that have changed since previous versions of data to be written for performing write commands; and

write the buffered data to the non-volatile memory in response to the buffered data reaching a page size of the non-volatile memory.

4. The DSD of claim 1 , wherein the ATL allocates physical storage units equal to or a single digit multiple of a cache line size of a processor of the host.

5. The DSD of claim 1 , wherein the host executes a driver that formats write commands for storing data in the DSD at sizes matching the ATL granularity.

6. The DSD of claim 1 , wherein the memory access command is a read command to read data stored in the DSD that is smaller than a page size of the non-volatile memory, and wherein the control circuitry is further configured to read less than a full page of data from the non-volatile memory using the ATL to perform the read command.

7. The DSD of claim 1 , wherein the control circuitry is further configured to:

divide the physical storage locations in the non-volatile memory into a plurality of equally sized zones; and

create logical-to-physical mappings for each zone of the plurality of zones, wherein the physical addresses of at least two logical-to-physical mappings overlap so as to reduce a bit size used for each physical address in the at least two logical-to-physical mappings.

8. The DSD of claim 7 , wherein the control circuitry is further configured to perform independent wear-leveling within each zone of the plurality of zones.

9. The DSD of claim 7 , wherein the control circuitry is further configured to randomly distribute write commands among the plurality of zones.

10. A method for operating a Data Storage Device (DSD), the method comprising:

receiving a memory access command from a host to access data in a NAND memory of the DSD;

identifying a location in the NAND memory for performing the memory access command using a Flash Translation Layer (FTL) that has a granularity based on a main memory Input/Output (TO) transaction size of a processor of the host; and

accessing the NAND memory at the identified location to perform the memory access command.

11. The method of claim 10 , wherein the memory access command is a write command indicating at least one logical address for data to be stored in the DSD, and wherein the method further comprises:

reading a previous version of the data from the NAND memory corresponding to the at least one logical address;

comparing the previous version of the data to the data to be written for the write command;

identifying one or more portions of the data to be written that have changed since the previous version of the data; and

writing the one or more portions of the data that have changed to the NAND memory without writing any portions of the data for the write command that have not changed.

12. The method of claim 11 , wherein the DSD further comprises a Random Access Memory (RAM), and wherein the method further comprises:

buffering data in the RAM identified as portions of data to be written that have changed since previous versions of data to be written for performing write commands; and

writing the buffered data to the NAND memory in response to the buffered data reaching a page size of the NAND memory.

13. The method of claim 10 , wherein the granularity of the FTL is equal to or a single digit multiple of a cache line size of a processor of the host.

14. The method of claim 10 , wherein the host executes a driver that formats write commands for storing data in the DSD at sizes matching the cache line size of a processor of the host.

15. The method of claim 10 , wherein the memory access command is a read command to read data stored in the DSD that is smaller than a page size of the NAND memory, and wherein the method further comprises reading less than a full page of data from the NAND memory using the FTL to perform the read command.

16. The method of claim 10 , further comprising:

dividing the physical storage locations in the NAND memory into a plurality of equally sized zones; and

creating logical-to-physical mappings for each zone of the plurality of zones, wherein the physical addresses of at least two logical-to-physical mappings overlap so as to reduce a bit size used for each physical address in the at least two logical-to-physical mappings.

17. The method of claim 16 , further comprising performing independent wear-leveling within each zone of the plurality of zones.

18. The method of claim 16 , further comprising randomly distributing write commands among the plurality of zones.

19. A non-transitory computer readable medium storing computer-executable instructions, wherein when the computer-executable instructions are executed by control circuitry of a Data Storage Device (DSD) including a NAND memory, the computer- executable instructions cause the control circuitry to:

receive a memory access command from a host to access data in the NAND memory;

identify a location in the NAND memory for performing the memory access command using a Flash Translation Layer (FTL) that has a finer logical-to-physical granularity than a logical-to-physical granularity of a logical block-based file system executed by the host; and

access the NAND memory at the identified location to perform the memory access command.

20. The non-transitory computer readable medium of claim 19 , wherein the memory access command is a write command indicating at least one logical address for data to be stored in the DSD, and wherein when the computer-executable instructions are executed by the control circuitry, the computer-executable instructions further cause the control circuitry to:

read a previous version of the data from the NAND memory corresponding to the at least one logical address;

compare the previous version of the data to the data to be written for the write command;

identify one or more portions of the data to be written that have changed since the previous version of the data; and

write the one or more portions of the data that have changed to the NAND memory without writing any portions of the data for the write command that have not changed.

21. The non-transitory computer readable medium of claim 19 , wherein when the computer-executable instructions are executed by the control circuitry, the computer-executable instructions further cause the control circuitry to:

divide the physical storage locations in the NAND memory into a plurality of equally sized zones; and

create logical-to-physical mappings for each zone of the plurality of zones, wherein the physical addresses of at least two logical-to-physical mappings overlap so as to reduce a bit size used for each physical address in the at least two logical-to-physical mappings.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2019
From: SUBBARAO, SANJAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047977/0862 →