# US 10,769,062 B2 · Fine granularity translation layer for data storage devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,769,062 B2
- Document ID: US10769062B2
- Status: Granted
- Kind: B2
- Application number: 16/246,401
- Filed: 2019-01-11
- Published: 2020-04-02
- Granted: 2020-09-08
- Earliest claimed: 2018-10-01
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Sanjay Subbarao
- Web page: https://patentgrep.com/patent/US10769062B2

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 9/5016: {the resource being the memory}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 12/08: in hierarchically structured memory systems, e.g. virtual memory systems
- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 2212/1016: Performance improvement
- G06F 2212/1036: Life time enhancement
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7203: Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 8 (depends on 7)

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.

### Claim 9 (depends on 7)

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

### Claim 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.

### Claim 11 (depends on 10)

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.

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 10)

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.

### Claim 14 (depends on 10)

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.

### Claim 15 (depends on 10)

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.

### Claim 16 (depends on 10)

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.

### Claim 17 (depends on 16)

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

### Claim 18 (depends on 16)

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

### Claim 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.

### Claim 20 (depends on 19)

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.

### Claim 21 (depends on 19)

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.
