IP Library Granted Patent US 11,288,180
Granted Patent B2
US 11,288,180 · App. 15/876,066 · Granted Mar 29, 2022

Management of storage resources allocated from non-volatile memory devices to users

Inventor: Alex Frolikov (San Jose, CA)
Assignee: Micron Technology, Inc.
G06F12/0246G06F3/061G06F3/0659G06F3/0664G06F9/45558G06F9/5016G06F2009/45583
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,288,180
App. No.
15/876,066
Granted
Mar 29, 2022
Kind
B2
Abstract

A computer having a plurality of accounts and a storage device having a host interface, a controller, non-volatile storage media, and firmware. Each account has a namespace identifier that identifies the allocation of a portion of the non-volatile storage media to the account. The storage device stores a namespace map that defines the mapping between the logical addresses in a namespace identified by the namespace identifier and the logical addresses, in a capacity of the storage device, that correspond to the portion of the non-volatile storage media allocated to and accessible to the account. The account accesses the portion of the non-volatile storage media via the logical addresses in the namespace. The firmware of the storage device configures the controller to convert, using the namespace map, the logical addresses in the namespace to the physical addresses of the portion of the non-volatile storage media.

Claims (52)

1. A computer system, comprising:

a storage device having:

a host interface;

a controller;

non-volatile storage media; and

firmware; and

a plurality of accounts; and

wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account;

wherein the storage device stores a namespace map that defines a mapping between:

logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; and

logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account;

wherein the firmware includes instructions which when executed by the controller, cause the controller to convert, using the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account;

wherein the namespace map includes a contiguous indicator having a value indicating a list of blocks, identified via block identifiers starting at a starting address in an array of the namespace map, is allocated from non-contiguous regions in the mapped logical address space.

2. The computer system of claim 1 , wherein entire storage resources allocated for user data in the respective account are identified by the namespace identifier.

3. The computer system of claim 2 , wherein a size of the namespace corresponds to a quota of the entire storage resources allocated for user data in the respective account.

4. The computer system of claim 3 , wherein a size of the portion of the non-volatile storage media allocated to the respective account is smaller than the quota.

5. The computer system of claim 4 , wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account based on usage of the portion of the non-volatile storage media allocated to the respective account.

6. The computer system of claim 4 , wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account in response to a determination that an unused portion, allocated from the non-volatile storage media to the respective account, is smaller than a threshold.

7. The computer system of claim 4 , wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account by adjusting the namespace map.

8. The computer system of claim 2 , wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace in response to a change in the quota for the respective account.

9. The computer system of claim 1 , wherein the predetermined size is a power of two.

10. The computer system of claim 1 , wherein the storage device has a register storing a crypto key of the namespace during data access performed in the namespace.

11. The computer system of claim 1 , wherein the host interface implements single root I/O virtualization.

12. The computer system of claim 11 , wherein the namespace is attached to a virtual function of the storage device implemented via the single root I/O virtualization.

13. The computer system of claim 1 , wherein the each respective account in the plurality of accounts is configured with a single namespace identifier for identifying storage resources available to store user data in the each respective account.

14. A method implemented in a computer system, the method comprising:

connecting a storage device to a host, the storage device having:

a host interface;

a controller;

non-volatile storage media; and

firmware; and

configuring, in the host, a plurality of accounts, wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account;

storing, in the storage device, a namespace map that defines a mapping between:

logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; and

logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account;

converting, by the controller executing the firmware and using at least the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account;

wherein the namespace map includes a contiguous indicator having a value indicating a list of blocks, identified via block identifiers starting at a starting address in an array of the namespace map, is allocated from non-contiguous regions in the mapped logical address space.

15. The method of claim 14 , further comprising:

monitoring, by the controller of the storage device, usage of the namespace; and

adjusting, by the controller of the storage device, a size of the namespace based on the usage of the namespace in accordance with a quota of storage resources allocated to the account.

16. A non-transitory computer storage medium storing instructions which, when executed by a computer system, cause the computer system to perform a method, the method comprising:

configuring, in a host coupled to a storage device, a plurality of accounts, the storage device having:

a host interface;

a controller;

non-volatile storage media; and

firmware;

wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account;

storing, in the storage device, a namespace map that defines a mapping between:

logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace;

logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and

converting, by the controller executing the firmware and using at least the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account;

wherein the namespace map includes a contiguous indicator having a value indicating a list of blocks, identified via block identifiers starting at a starting address in an array of the namespace map, is allocated from non-contiguous regions in the mapped logical address space.

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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2018
From: FROLIKOV, ALEX
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046190/0199 →
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 Jan 23, 2018
From: FROLIKOV, ALEX
To: MICRON TECHNOLOGY, INC.
Reel/Frame 044703/0650 →
Continuity (1)
Related Publication 20190227921A1 · Jul 25, 2019
Cited By (3)
US 12,353,332 US 12,393,510 US 12,639,201