IP Library Granted Patent US 11,157,404
Granted Patent B2
US 11,157,404 · App. 16/552,246 · Granted Oct 26, 2021

Remapping techniques for a range of logical block addresses in a logical to physical table of NAND storage

Inventors: David Aaron Palmer (Boise, ID); Nadav Grosz (Broomfield, CO)
Assignee: Micron Technology, Inc.
G06F12/08G06F3/0604G06F3/0655G06F3/0679
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 11,157,404
App. No.
16/552,246
Granted
Oct 26, 2021
Kind
B2
Abstract

Devices and techniques are disclosed herein for remapping data of flash memory indexed by logical block addresses (LBAs) of a host device in response to re-map requests received at a flash memory system from the host device or in response to re-map requests generated at the flash memory system.

Claims (65)

1. A method comprising:

receiving a logical block address (LBA) move request from a host device at a controller of a flash memory device, the LBA move request including an LBA range, the LBA range including a source LBA range and a destination LBA range;

locating each record associated with one or more LBAs of the source LBA range in a logical-to-physical address map (L2P) table in response to the LBA move request;

setting an L2P record associated with each destination LBA of the destination LBA range to point to a physical location associated with a corresponding source LBA record of the source LBA range;

resetting each record associated with one or more LBAs of the source LBA range to an unmapped state; and

wherein execution of the LBA move request does not exchange data stored on the flash memory device with the host device.

2. The method of claim 1 , further comprising:

receiving an LBA copy command at the controller of the flash memory device from the host device, the LBA copy command including an LBA range, wherein the LBA range of the LBA copy command includes a source LBA range and a destination LBA range;

locating records associated with one or more LBAs of the source LBA range of the LBA copy command in the logical-to-physical address map (L2P) table in response to the LBA copy command;

modifying each of the records associated with one or more LBAs of the source LBA range of the LBA copy command to execute a portion of the LBA copy command; and

wherein execution of the LBA copy command does not exchange data stored on the flash memory device with the host device.

3. The method of claim 2 , wherein, when the LBA copy command is a shallow LBA copy command, and wherein modifying each of the records associated with the one or more LBAs of the source LBA range of the LBA copy command to execute a portion of the LBA copy command includes setting an L2P record associated with each destination LBA of the destination LBA range of the LBA copy command to point to a physical address associated with the corresponding source LBA of the source LBA range of the LBA copy command.

4. The method of claim 2 , wherein, when the LBA copy command is a deep LBA copy command, and wherein modifying each of the records associated with the one or more LBAs of the source LBA range of the LBA copy command to execute a portion of the LBA copy command includes, for each particular LBA of the source LBA range of the LBA copy command:

reading data at a physical location of a flash memory device indicated by the particular LBA to an internal buffer of the flash memory device;

writing the data from the internal buffer to a new physical address of the flash memory device; and

recording the new physical address in a record of the L2P table associated with a corresponding destination LBA of the destination LBA range of the LBA copy command.

5. The method of claim 1 , wherein the method further comprises:

receiving a defragmentation command at the controller of the flash memory device from the host device, the defragmentation command including an LBA range;

analyzing data at physical addresses of a flash memory of the flash memory device that are associated with each LBA of the LBA range of the defragmentation command to determine an amount of valid data; and

modifying the L2P table to reallocate the valid data toward one end of the LBA range of the defragmentation command.

6. A flash memory system comprising:

flash memory configured to store data of a host device;

a flash memory control circuit configured to interface to the host device and to the flash memory; and

a logical-to-physical (L2P) table configured to map physical addresses of the flash memory with logical block addresses (LBAs) of the host device;

wherein the flash memory control circuit is configured to:

receive a logical block address (LBA) move request from a host device at a controller of a flash memory device, the LBA move request including an LBA range, the LBA range including a source LBA range and a destination LBA range;

locate each record associated with one or more LBAs of the source LBA range in a logical-to-physical address map (L2P) table in response to the LBA move request;

set an L2P record associated with each destination LBA of the destination LBA range to point to a physical location associated with a corresponding source LBA record of the source LBA range;

reset each record associated with one or more LBAs of the source LBA range to an unmapped state; and

wherein execution of the LBA move request does not exchange data stored on the flash memory device with the host device.

7. The flash memory system of claim 6 , wherein the flash memory control circuit is further configured to:

receive an LBA copy command at the controller of the flash memory device from the host device, the LBA copy command including an LBA range, wherein the LBA range of the LBA copy command includes a source LBA range and a destination LBA range;

locating records associated with one or more LBAs of the source LBA range of the LBA copy command in the logical-to-physical address map (L2P) table in response to the LBA copy command;

modifying each of the records associated with one or more LBAs of the source LBA range of the LBA copy command to execute a portion of the LBA copy command; and

wherein execution of the LBA copy command does not exchange data stored on the flash memory device with the host device.

8. The flash memory system of claim 7 , wherein the LBA copy command is an LBA deep copy command; and

wherein the flash memory control circuit is further configured to:

for each particular LBA of the source LBA range of the LBA copy command:

read data at a physical location of a flash memory device indicated by the particular LBA to an internal buffer of the flash memory;

write the data from the internal buffer to a new physical address of the flash memory device; and

record the new physical address in a record of the L2P table associated with a corresponding destination LBA of the destination LBA range of the LBA copy command.

9. The flash memory system of claim 6 , wherein the flash memory control circuit is further configured to:

receive an LBA defragmentation command;

analyze data at physical addresses of the flash memory associated with each LBA of the LBA range of the LBA defragmentation command to determine an amount of valid data; and

modify the L2P table to reallocate the valid data toward one end of the LBA range of the LBA defragmentation command.

10. A non-transitory machine-readable medium, comprising instructions, which when executed by a processor of a flash memory device, cause the processor to perform operations comprising:

receiving a logical block address (LBA) move request from a host device at a controller of a flash memory device, the LBA move request including an LBA range, the LBA range including a source LBA range and a destination LBA range;

locating each record associated with one or more LBAs of the source LBA range in a logical-to-physical address map (L2P) table in response to the LBA move request;

setting an L2P record associated with each destination LBA of the destination LBA range to point to a physical location associated with a corresponding source LBA record of the source LBA range;

resetting each record associated with one or more LBAs of the source LBA range to an unmapped state; and

wherein execution of the LBA move request does not exchange data stored on the flash memory device with the host device.

11. The non-transitory machine-readable medium of claim 10 , wherein the operations further comprise:

receiving an LBA copy command at the controller of the flash memory device from the host device, the LBA copy command including an LBA range, wherein the LBA range of the LBA copy command includes a source LBA range and a destination LBA range;

locating records associated with one or more LBAs of the source LBA range of the LBA copy command in the logical-to-physical address map (L2P) table in response to the LBA copy command;

modifying each of the records associated with one or more LBAs of the source LBA range of the LBA copy command to execute a portion of the LBA copy command; and

wherein execution of the LBA copy command does not exchange data stored on the flash memory device with the host device.

12. The non-transitory machine-readable medium of claim 11 , wherein, the LBA copy command is a deep LBA copy command, and wherein the operations of modifying each of the records associated with the one or more LBAs of the source LBA range of the LBA copy command to execute a portion of the LBA copy command includes, for each particular LBA of the source LBA range of the LBA copy command:

reading data at a physical location of a flash memory device indicated by the particular LBA to an internal buffer of the flash memory device;

writing the data from the internal buffer to a new physical address of the flash memory device; and

recording the new physical address in a record of the L2P table associated with a corresponding destination LBA of the destination LBA range of the LBA copy command.

13. The non-transitory machine-readable medium of claim 10 ,

wherein the operations further comprise:

receiving a defragmentation command at the controller of the flash memory device from the host device, the defragmentation command including an LBA range;

analyzing data at a physical addresses of flash memory of the flash memory device that is associated with each LBA of the LBA range of the defragmentation command to determine an amount of valid data; and

modifying the L2P table to reallocate the valid data toward one end of the LBA range of the defragmentation command.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2023
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP, LLC
Reel/Frame 064988/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2019
From: PALMER, DAVID AARON; GROSZ, NADAV
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050181/0491 →
Continuity (1)
Related Publication 20210064526A1 · Mar 4, 2021