IP Library Granted Patent US 10,642,488
Granted Patent B2
US 10,642,488 · App. 15/790,969 · Granted May 5, 2020

Namespace size adjustment in non-volatile memory devices

Inventor: Alex Frolikov (San Jose, CA)
Assignee: Micron Technology, Inc.
G06F3/0604G06F3/064G06F3/0631G06F3/0652G06F3/0664G06F3/0683G06F12/10G06F2212/1048G06F2212/65
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,642,488
App. No.
15/790,969
Granted
May 5, 2020
Kind
B2
Abstract

A computer storage device having a host interface, a controller, non-volatile storage media, and firmware. The firmware instructs the controller to: store a namespace map mapping blocks of logical block addresses in a namespace to blocks from a logical address capacity of the non-volatile storage media; adjust the namespace map to change the size of the namespace; and translate logical addresses in the namespace to physical addresses for the non-volatile storage media using the namespace map.

Claims (51)

1. A computer storage device, comprising:

a host interface;

a controller;

non-volatile storage media; and

firmware containing instructions which, when executed by the controller, instruct the controller to at least:

store a namespace map mapping blocks of logical block addresses defined in a namespace to blocks from a logical address capacity of the non-volatile storage media, wherein the logical address capacity of the non-volatile storage media is divided into predetermined blocks having a same, predetermined block size;

adjust the namespace map to change a size of the namespace; and

translate logical addresses defined in the namespace to physical addresses for the non-volatile storage media using the namespace map;

wherein the namespace map is adjusted in response to a request for a host to increase the size of the namespace;

wherein the namespace map is adjusted in response to a request for a host to reduce the size of the namespace;

wherein before the size of the namespace is changed, the namespace has a first block having a size smaller than the predetermined block size, and the first block is mapped by the namespace map to a portion of a first particular block of the predetermined blocks; and wherein after the size of the namespace is changed, the size of the first block is increased, and the first block is mapped by the namespace map to at least a portion of a second particular block of the predetermined blocks.

2. The computer storage device of claim 1 , wherein the namespace map is adjusted by adding an identifier of a block from the logical address capacity for association with the namespace.

3. The computer storage device of claim 1 , wherein the namespace map is adjusted by removing an identifier of a block from the logical address capacity from association with the namespace.

4. The computer storage device of claim 1 , wherein the namespace map is adjusted in response to an increase in demand of allocated capacity of the namespace.

5. The computer storage device of claim 1 , wherein the predetermined block size is a power of two.

6. The computer storage device of claim 1 , wherein the second particular block is different from the first particular block.

7. The computer storage device of claim 6 , wherein the namespace map is adjusted via:

copying data from the portion of the first particular block to a corresponding portion of the second particular block; and

replacing in the namespace map an identifier of the portion of the first particular block with an identifier of the corresponding portion of the second particular block.

8. The computer storage device of claim 6 , wherein the namespace map is adjusted via:

adding to the namespace map an identifier of a first portion of the second particular block, wherein the at least a portion of the second particular block includes the first portion of the second particular block and a second portion of the second particular block; and

after the size of the namespace has changed:

copying, in a background process, data from the portion of the first particular block to a second portion of the second particular block; and

replacing in the namespace map an identifier of the portion of the first particular block and the identifier of the first portion of the second particular block with an identifier of the corresponding portion of the second particular block.

9. The computer storage device of claim 1 , wherein after the size of the namespace is changed, the size of the first block is increased to the predetermined block size.

10. The computer storage device of claim 9 , wherein the namespace map is adjusted via:

replacing in the namespace map an identifier of the portion of the first particular block with an identifier of the second particular block.

11. A method implemented in a computer storage device, the method comprising:

storing a namespace map mapping blocks of logical block addresses defined in a namespace to blocks from a logical address capacity of the non-volatile storage media, wherein the logical address capacity of the non-volatile storage media is divided into predetermined blocks having a same, predetermined block size;

adjusting the namespace map to change a size of the namespace; and

translating logical addresses defined in the namespace to physical addresses for the non-volatile storage media using the namespace map;

wherein the adjusting of the namespace map is in response to one of:

a request for a host to increase the size of the namespace;

a request for a host to decrease the size of the namespace; and

a determination to increase an allocated portion of the namespace, wherein the size of the namespace is a size of the allocated portion;

wherein before the size of the namespace is changed, the namespace has a first block having a size smaller than the predetermined block size, and the first block is mapped by the namespace map to a portion of a first particular block of the predetermined blocks; and wherein after the size of the namespace is changed, the size of the first block is increased, and the first block is mapped by the namespace map to at least a portion of a second particular block of the predetermined blocks.

12. The method of claim 11 , wherein the adjusting the namespace map includes at least one of:

adding an identifier of a block from the logical address capacity of the non-volatile storage media to the namespace map; and

removing an identifier of a block in the logical address capacity of the non-volatile storage media to the namespace map.

13. The method of claim 12 , wherein the logical address capacity of the non-volatile storage media is divided into predetermined blocks having a same, predetermined block size that is a power of two; and each of the blocks from the logical address capacity of the non-volatile storage media mapped for the namespace is either one of the predetermined blocks or a portion of one of the predetermined block.

14. The method of claim 13 , further comprising:

adjusting the namespace map to remap logical block addresses in a namespace to contiguous ones of the predetermined blocks.

15. A non-transitory computer storage medium storing instructions which, when executed by a controller of a computer storage device, cause the controller to perform a method, the method comprising:

storing a namespace map mapping blocks of logical block addresses defined in a namespace to blocks from a logical address capacity of the non-volatile storage media, wherein the logical address capacity of the non-volatile storage media is divided into predetermined blocks having a same, predetermined block size;

adjusting the namespace map to change a size of the namespace; and

translating logical addresses defined in the namespace to physical addresses for the non-volatile storage media using the namespace map;

wherein the adjusting of the namespace map is in response to one of:

a request for a host to increase the size of the namespace;

a request for a host to decrease the size of the namespace; and

a determination to increase an allocated portion of the namespace, wherein the size of the namespace is a size of the allocated portion;

wherein before the size of the namespace is changed, the namespace has a first block having a size smaller than the predetermined block size, and the first block is mapped by the namespace map to a portion of a first particular block of the predetermined blocks; and wherein after the size of the namespace is changed, the size of the first block is increased, and the first block is mapped by the namespace map to at least a portion of a second particular block of the predetermined blocks.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050716/0678 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2018
From: FROLIKOV, ALEX
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046979/0854 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 7 TO PATENT SECURITY AGREEMENT Recorded Feb 6, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 045267/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2017
From: FROLIKOV, ALEX
To: MICRON TECHNOLOGY, INC.
Reel/Frame 044245/0554 →
Cited By (1)
US 12,299,280