# US 2018/0024919 A1 · Mapping tables for storage devices

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

- Number: US 2018/0024919 A1
- Document ID: US20180024919A1
- Status: Published application
- Kind: A1
- Application number: 15/214,345
- Filed: 2016-07-19
- Published: 2018-01-25
- Earliest claimed: 2016-07-19
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Adam Christopher Geml; Colin Christopher McCambridge; Philip James Sanders; Lee Anton Sendelbach
- Web page: https://patentgrep.com/patent/US20180024919A1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/10: Address translation
- G06F 2212/1024: Latency reduction
- G06F 2212/152: Virtualized environment, e.g. logically partitioned system
- G06F 2212/214: Solid state disk
- G06F 2212/657: Virtual address space management
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In some examples, a storage device includes a first non-volatile memory array configured to store data from a host device and the storage device and a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array. The storage device also includes a controller configured to store a virtual-to-physical mapping table to the first non-volatile memory array and store a portion of the virtual-to-physical mapping table to the second non-volatile memory array.

## Claims

### Claim 1

A storage device comprising:
a first non-volatile memory array configured to store data from a host device and the storage device;
a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array; and
a controller configured to:
store a virtual-to-physical mapping table to the first non-volatile memory array; and
store a portion of the virtual-to-physical mapping table to the second non-volatile memory array.

### Claim 2 (depends on 1)

The storage device of claim 1, wherein the controller is further configured to, while copying the virtual-to-physical mapping table stored to the first non-volatile memory array to a volatile memory array and in response to a read request or write request, access the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

### Claim 3 (depends on 1)

The storage device of claim 1, wherein the controller is further configured to select, using an algorithm, entries from the virtual-to-physical mapping table to store to the second non-volatile memory array.

### Claim 4 (depends on 3)

The storage device of claim 3, wherein the algorithm comprises one of a discrete drive namespace algorithm, a machine learning algorithm, or a profile-based algorithm.

### Claim 5 (depends on 1)

The storage device of claim 1, wherein the controller is configured to store a complete version of the virtual-to-physical mapping table to the first non-volatile memory array, and
wherein the controller is further configured to store, during a boot process, the complete version of the virtual-to-physical mapping table to a volatile memory array.

### Claim 6 (depends on 1)

The storage device of claim 1, wherein the controller is further configured to:
determine that the virtual-to-physical mapping table is not accessible in a volatile memory array;
determine that an entry is located in the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array; and
read the entry from the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

### Claim 7 (depends on 1)

The storage device of claim 1, wherein the controller is further configured to:
determine that the virtual-to-physical mapping table stored to the first non-volatile memory array is not accessible in a volatile memory array during a boot process;
determine that an entry is not stored in the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array during the boot process; and
read the entry from the virtual-to-physical mapping table when the virtual-to-physical mapping table is accessible in the volatile memory array.

### Claim 8 (depends on 1)

The storage device of claim 1,
wherein the first non-volatile memory array comprises a flash memory array, and
wherein the second non-volatile memory array comprises one of a magnetoresistive random-access memory array or a phase-change memory array.

### Claim 9 (depends on 1)

The storage device of claim 1, wherein the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array comprises a hash table, an associative table, or a tree-based indirection system.

### Claim 10 (depends on 1)

The storage device of claim 1, wherein the controller is configured to update the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array before the storage device powers off.

### Claim 11 (depends on 1)

The storage device of claim 1, wherein the virtual-to-physical mapping table indicates one or more pairs of a logical address and a physical address.

### Claim 12 (depends on 1)

The storage device of claim 1, wherein the second non-volatile memory array is configured to only store data from the storage device and not data from the host device.

### Claim 13 (depends on 1)

The storage device of claim 1, wherein the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array comprises a copy of a portion of the virtual-to-physical mapping table stored to the first non-volatile memory array.

### Claim 14 (depends on 1)

The storage device of claim 1,
wherein the first non-volatile memory array is located in a mass storage area of the storage device, and
wherein the second non-volatile memory array is located in the controller.

### Claim 15

A method comprising:
storing, by a controller of a storage device, a virtual-to-physical mapping table to a first non-volatile memory array configured to store data from a host device and the storage device; and
storing, by the controller, a portion of the virtual-to-physical mapping table to a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array.

### Claim 16 (depends on 15)

The method of claim 15, further comprising, while copying the virtual-to-physical mapping table stored to the first non-volatile memory array to a volatile memory array and in response to a read request or write request, access the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
selecting, by the controller and using an algorithm, entries from the virtual-to-physical mapping table to store to the second non-volatile memory array.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
determining, by the controller, that the virtual-to-physical mapping table is not accessible in a volatile memory array;
determining, by the controller, that an entry is located in the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array; and
reading, by the controller, the entry from the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

### Claim 19 (depends on 15)

The method of claim 15,
wherein the first non-volatile memory array comprises a flash memory array, and
wherein the second non-volatile memory array comprises one of a magnetoresistive random-access memory array or a phase-change memory array.

### Claim 20

A computer-readable storage device comprising instructions that, when executed, configure one or more processors of the storage device to:
store a virtual-to-physical mapping table to a first non-volatile memory array configured to store data from a host device and the storage device; and
store a portion of the virtual-to-physical mapping table to a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array.
