IP Library Granted Patent US 10,908,832
Granted Patent B2
US 10,908,832 · App. 15/799,508 · Granted Feb 2, 2021

Common pool management

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,908,832
App. No.
15/799,508
Granted
Feb 2, 2021
Kind
B2
Abstract

Disclosed in some examples are methods, systems, machine-readable mediums, and NAND devices which create logical partitions when requested to create a physical partition. The controller on the NAND mimics the creation of the physical partition to the host device that requested the physical partition. Thus, the host device sees the logical partition as a physical partition. Despite this, the NAND does not incur the memory storage expense of creating a separate partition, and additionally the NAND can borrow cells for overprovisioning from another partition. In these examples, a host device operating system believes that a physical partition has been created, but the NAND manages the memory as a contiguous pool of resources. Thus, a logical partition is created at the NAND memory controller level—as opposed to at the operating system level.

Claims (54)

1. A NAND memory device comprising:

a NAND memory array including a common pool of memory;

a controller, the controller executing instructions to cause the controller to perform operations comprising:

receiving a command from a host to create a physical partition in the common pool of memory, the command comprising a physical partition size;

determining if the physical partition size exceeds an unallocated storage capacity of the common pool of memory;

creating, based on the determining a NAND-level logical partition in the common pool of memory instead of creating the physical partition in the NAND memory array, wherein creating the NAND-level logical partition comprises reserving space in the common pool of memory for the NAND-level logical partition and allocating a range of Logical Block Addresses (LBAs) in the common pool of memory according to the physical partition size of the physical partition of the command from the host without allocating specific memory cells of the common pool of memory to the NAND-level logical partition; and

sending a response to the host indicative that the physical partition in the common pool of memory has been created, the response comprising a partition identifier and the range of LBAs.

2. The NAND memory device of claim 1 , wherein the operations further comprise:

translating a request from the host identifying the physical partition and an LBA to a physical address of the NAND-level logical partition in the common pool of memory, wherein translating the request from the host comprises mapping a received partition identifier and an LBA in the range of LBAs to a physical location in the common pool of memory; and

performing a request from the host on the physical location.

3. The NAND memory device of claim 1 , wherein memory cells from the common pool of memory that are used to service the physical partition are configured to meet a requirement specified by the host in the command to create the physical partition.

4. The NAND memory device of claim 3 , wherein the requirement is that memory cells be configured as a Single Layer Cell (SLC).

5. The NAND memory device of claim 1 , wherein the NAND-level logical partition appears to the host to be a physical partition, and wherein sending a response to the host indicative that the physical partition has been created comprises without creating the physical partition.

6. The NAND memory device of claim 2 , wherein the request from the host includes a write request and data associated with the write request.

7. The NAND memory device of claim 1 , wherein the NAND-level logical partition comprises a first NAND-level logical partition,

wherein the NAND memory array comprises a second NAND-level logical partition in the common pool of memory having space reserved in the common pool of memory and a second range of LBAs allocated in the common pool of memory according to a requested physical partition size of the second NAND-level logical partition without allocating specific memory cells of the common pool of memory to the second NAND-level logical partition, and

wherein the operations further comprise:

dynamically allocating specific memory cells from the common pool of memory to LBA of the first and second NAND-level logical partitions upon receiving a request with respect to the respective NAND-level logical partition;

managing the common pool of memory as a shared pool, comprising providing garbage collection and overprovisioning across the common pool of memory comprising across the first and second NAND-level logical partitions.

8. A method comprising:

receiving a command from a host to create a physical partition of a pool of memory on a NAND memory device, the command comprising a physical partition size;

determining if the physical partition size exceeds an unallocated storage capacity of the common pool of memory;

creating, based on the determining, a NAND-level logical partition utilizing the common pool of memory instead of creating the physical partition, wherein creating the NAND-level logical partition comprises reserving space in the common pool of memory for the NAND-level logical partition and allocating a range of Logical Block Addresses (LBAs) in the common pool of memory according to the physical partition size without allocating specific memory cells of the common pool of memory to the NAND-level logical partition;

sending a response to the host indicative that the physical partition in the NAND memory device has been created, the response comprising a partition identifier and the range of LBAs.

9. The method of claim 8 , comprising:

translating a request from the host identifying the physical partition and an LBA to a physical address of the NAND-level logical partition in the common pool of memory, wherein translating the request from the host comprises mapping a received partition identifier and an LBA in the range of LBAs to a physical location in the common pool of memory; and

performing a request from the host on the physical location.

10. The method of claim 8 , wherein memory cells from the common pool of memory that are used to service the physical partition are configured to meet a requirement specified by the host in the command to create the physical partition.

11. The method of claim 10 , wherein the requirement is that memory cells be configured as a Single Layer Cell (SLC).

12. The method of claim 8 , wherein the NAND-level logical partition appears to the host to be a physical partition, and wherein sending a response to the host indicative that the physical partition has been created comprises without creating the physical partition.

13. The method of claim 8 , wherein the NAND-level logical partition comprises a first NAND-level logical partition,

wherein the NAND memory array comprises a second NAND-level logical partition in the common pool of memory having space reserved in the common pool of memory and a second range of LBAs allocated in the common pool of memory according to a requested physical partition size of the second NAND-level logical partition without allocating specific memory cells of the common pool of memory to the second NAND-level logical partition, and

wherein the method further comprises:

dynamically allocating specific memory cells from the common pool of memory to LBA of the first and second NAND-level logical partitions upon receiving a request with respect to the respective NAND-level logical partition:

managing the common pool of memory as a shared pool, comprising providing garbage collection and overprovisioning across the common pool of memory comprising across the first and second NAND-level logical partitions.

14. The method of claim 9 , wherein the request from the host includes a write request and data associated with the write request.

15. A non-transitory machine-readable medium comprising instructions, which when executed, causes a machine to perform operations comprising:

receiving a command from a host to create a physical partition of a common pool of memory on a NAND device, the command comprising a physical partition size;

determining if the physical partition size exceeds an unallocated storage capacity of the common pool of memory;

creating, based on the determining, a NAND-level logical partition utilizing the common pool of memory instead of creating the physical partition, wherein creating the NAND-level logical partition comprises reserving space in the common pool of memory for the NAND-level logical partition and allocating a range of Logical Block Addresses (LBAs) in the common pool of memory according to the physical partition size without allocating specific memory cells of the common pool of memory to the NAND-level logical partition;

sending a response to the host indicative that the physical partition in the NAND memory device has been created, the response comprising a partition identifier and the range of LBAs.

16. The machine-readable medium of claim 15 , wherein the operations further comprise:

translating a request from the host identifying the physical partition and an LBA to a physical address of the NAND-level logical partition in the common pool of memory, wherein translating the request from the host comprises mapping a received partition identifier and an LBA in the range of LBAs to a physical location in the common pool of memory; and

performing a request from the host on the physical location.

17. The machine-readable medium of claim 15 , wherein memory cells from the common pool of memory that are used to service the physical partition are configured to meet a requirement specified by the host in the command to create the physical partition.

18. The machine-readable medium of claim 17 , wherein the requirement is that memory cells be configured as a Single Layer Cell (SLC).

19. The machine-readable medium of claim 15 , wherein creating the NAND-level logical partition appears to the host to be a physical partition, and

wherein sending the response to the host indicative that the physical partition has been created comprises without creating the physical partition.

20. The machine-readable medium of claim 15 , wherein the NAND-level logical partition comprises a first NAND-level logical partition,

wherein the NAND memory array comprises a second NAND-level logical partition in the common pool of memory having space reserved in the common pool of memory and a second range of LBAs allocated in the common pool of memory according to a requested physical partition size of the second NAND-level logical partition without allocating specific memory cells of the common pool of memory to the second NAND-level logical partition, and

wherein the operations further comprise:

dynamically allocating specific memory cells from the common pool of memory to LBA of the first and second NAND-level logical partitions upon receiving a request with respect to the respective NAND-level logical partition;

managing the common pool of memory as a shared pool, comprising providing garbage collection and overprovisioning across the common pool of memory comprising across the first and second NAND-level logical partitions.

21. The machine-readable medium of claim 16 , wherein the r from the host includes a write request and data associated with the write request.

Assignments (5)
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 Dec 7, 2018
From: TANPAIROJ, KULACHET; JEAN, SEBASTIEN ANDRE; HUANG, JIANMIN
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047710/0693 →
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 →