IP Library Granted Patent US 9,904,621
Granted Patent B2
US 9,904,621 · App. 14/599,168 · Granted Feb 27, 2018

Methods and systems for flash buffer sizing

Inventors: Robert W. Ellis (Phoenix, AZ); James M. Higgins (Chandler, AZ)
Assignee: SANDISK TECHNOLOGIES LLC
G06F12/0246G06F3/0679G11C11/5628G11C16/10G06F2212/7204G11C2211/5641
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 9,904,621
App. No.
14/599,168
Granted
Feb 27, 2018
Kind
B2
Abstract

The embodiments described herein are used to allocate memory in a storage system. The method includes, at a memory controller in the storage system, determining a current memory allocation for a set of memory devices, wherein the set of memory devices is formatted with a ratio of first storage density designated portions to second storage density designated portions in accordance with the current memory allocation. The method further includes detecting satisfaction of one or more memory reallocation trigger conditions. The method further includes, in response to detecting satisfaction of one or more memory reallocation trigger conditions, modifying the ratio of the first storage density designated portions to the second storage density designated portions in the set of memory devices to generate a second memory allocation for the set of memory devices.

Claims (45)

1. A method of allocating memory in a storage system that comprises a memory controller and a set of memory devices, the set of memory devices comprising a plurality of memory portions, the method comprising:

at the memory controller:

determining a current memory allocation for the set of memory devices, wherein the set of memory devices is formatted with a ratio of first storage density designated portions to second storage density designated portions in accordance with the current memory allocation;

detecting satisfaction of one or more memory reallocation trigger conditions; and

in response to detecting satisfaction of one or more memory reallocation trigger conditions:

modifying the ratio of the first storage density designated portions to the second storage density designated portions in the set of memory devices to generate a second memory allocation for the set of memory devices;

determining a revised storage capacity for the set of memory devices; and

reporting, to a host system, the revised storage capacity of the set of memory devices, wherein the host system is coupled to the storage system for sending read and write host commands to the storage system.

2. The method of claim 1 , wherein modifying the ratio of the first storage density designated portions to the second storage density designated portions in the set of memory devices comprises selecting one or more erase blocks to switch from the first storage density designation to the second storage density designation, or from the second storage density designation to the first storage density designation, in accordance with the second memory allocation.

3. The method of claim 1 , wherein detecting satisfaction of one or more memory reallocation trigger conditions comprises detecting the passage of a predetermined threshold of time.

4. The method of claim 1 , wherein detecting satisfaction of one or more memory reallocation trigger conditions comprises detecting completion of a predetermined number of erase cycles performed on the set of memory devices.

5. The method of claim 1 , wherein detecting satisfaction of one or more memory reallocation trigger conditions comprises detecting observation of a predetermined number of erase failures performed on the set of memory devices.

6. The method of claim 1 , wherein detecting satisfaction of one or more memory reallocation trigger conditions comprises detecting observation of a predetermined threshold of wear on the first storage density designated portions or the second storage density designated portions.

7. The method of claim 1 , wherein detecting satisfaction of one or more memory reallocation trigger conditions comprises receiving a host command to assess the current memory allocation.

8. The method of claim 1 , wherein detecting satisfaction of one or more memory reallocation trigger conditions includes determining that the current memory allocation requires modification.

9. The method of claim 8 , wherein determining that the current memory allocation requires modification comprises:

determining an expected host workload; and

comparing the expected host workload to a predetermined host workload for the set of memory devices.

10. The method of claim 8 , wherein determining that the current memory allocation requires modification comprises:

determining an observed host workload; and

comparing the observed host workload to a predetermined host workload for the set of memory devices.

11. The method of claim 8 , wherein determining that the current memory allocation requires modification comprises:

determining an observed write amplification for the set of memory devices; and

comparing the observed write amplification to a write amplification corresponding to the current memory allocation.

12. A storage system, comprising:

a storage device including one or more memory devices, each with a set of memory portions; and

one or more modules configured to:

determine a current memory allocation for a set of memory devices, wherein the set of memory devices is formatted with a ratio of first storage density designated portions to second storage density designated portions in accordance with the current memory allocation;

detect satisfaction of one or more memory reallocation trigger conditions; and

in response to detecting satisfaction of one or more memory reallocation trigger conditions:

modify the ratio of the first storage density designated portions to the second storage density designated portions in the set of memory devices to generate a second memory allocation for the set of memory devices;

determine a revised storage capacity for the set of memory devices; and

report, to a host system, the revised storage capacity of the set of memory devices, wherein the host system is coupled to the storage system for sending read and write host commands to the storage system.

13. The storage system of claim 12 , the storage system including a memory controller with one or more processors and memory storing one or more programs to be executed by the one or more processors, the one or more programs comprising instructions for performing the determining, detecting, modifying, determining, and reporting.

14. The storage system of claim 12 , wherein modifying the ratio of the first storage density designated portions to the second storage density designated portions in the set of memory devices comprises selecting one or more erase blocks to switch from the first storage density designation to the second storage density designation, or from the second storage density designation to the first storage density designation, in accordance with the second memory allocation.

15. The storage system of claim 12 , wherein detecting satisfaction of one or more memory reallocation trigger conditions includes determining that the current memory allocation requires modification.

16. A non-transitory computer-readable storage medium storing one or more programs configured for execution by a memory controller with one or more processors, the one or more programs comprising instructions for causing the memory controller to perform a sequence of operations, including:

determining a current memory allocation for a set of memory devices, wherein the set of memory devices is formatted with a ratio of first storage density designated portions to second storage density designated portions in accordance with the current memory allocation;

detecting satisfaction of one or more memory reallocation trigger conditions; and

in response to detecting satisfaction of one or more memory reallocation trigger conditions:

modifying the ratio of the first storage density designated portions to the second storage density designated portions in the set of memory devices to generate a second memory allocation for the set of memory devices;

determining a revised storage capacity for the set of memory devices; and

reporting, to a host system, the revised storage capacity of the set of memory devices, wherein the host system is coupled to the storage system for sending read and write host commands to the storage system.

17. The storage medium of claim 16 , wherein modifying the ratio of the first storage density designated portions to the second storage density designated portions in the set of memory devices comprises selecting one or more erase blocks to switch from the first storage density designation to the second storage density designation, or from the second storage density designation to the first storage density designation, in accordance with the second memory allocation.

18. The storage medium of claim 16 , wherein detecting satisfaction of one or more memory reallocation trigger conditions includes determining that the current memory allocation requires modification.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2016
From: SANDISK ENTERPRISE IP LLC
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038295/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2015
From: ELLIS, ROBERT W.; HIGGINS, JAMES M.
To: SANDISK ENTERPRISE IP LLC
Reel/Frame 035082/0640 →
Continuity (2)
Provisional Application 62024932 · Jul 15, 2014
Related Publication 20160019137A1 · Jan 21, 2016