Techniques for dynamically determining allocations and providing variable over-provisioning for non-volatile storage
First Claim
1. A device comprising:
- nonvolatile solid state data storage memory;
a controller coupled to the nonvolatile solid state data storage memory, the controller configured to;
dynamically implement a first state of the nonvolatile solid state data storage memory by;
allocating a first portion of the nonvolatile solid state data storage memory for system data including data for management of the nonvolatile solid state data storage memory by the controller;
allocating a second portion of the nonvolatile solid state data storage memory for host data;
allocating a third portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the first portion;
allocating a fourth portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the second portion;
dynamically implement a second state of the nonvolatile solid state data storage memory in response to a first event, implementing the second state includes;
keeping a same amount of data storage space allocated for the first portion;
decreasing a first amount of data storage space allocated for the second portion;
increasing a second amount of data storage space allocated for a total data storage space of the third portion plus the fourth portion;
dynamically allocate the total data storage space of the third portion plus the fourth portion based on one or more data-rate-allocation functions of one or more data rates; and
delay implementation of the second state until a garbage collection operation is complete.
4 Assignments
0 Petitions
Accused Products
Abstract
Dynamically varying Over-Provisioning (OP) enables improvements in lifetime, reliability, and/or performance of a Solid-State Disk (SSD) and/or a flash memory therein. A host coupled to the SSD writes newer data to the SSD. If the newer host data is less random than older host data, then entropy of host data on the SSD decreases. In response, an SSD controller dynamically alters allocations of the flash memory, decreasing host allocation and increasing OP allocation. If the newer host data is more random, then the SSD controller dynamically increases the host allocation and decreases the OP allocation. The SSD controller dynamically allocates the OP allocation between host OP and system OP proportionally in accordance with a ratio of bandwidths of host and system data writes to the flash memory. Changes in allocations are selectively made in response to improved compression or deduplication of the host data, or in response to a host command.
46 Citations
18 Claims
-
1. A device comprising:
-
nonvolatile solid state data storage memory; a controller coupled to the nonvolatile solid state data storage memory, the controller configured to; dynamically implement a first state of the nonvolatile solid state data storage memory by; allocating a first portion of the nonvolatile solid state data storage memory for system data including data for management of the nonvolatile solid state data storage memory by the controller; allocating a second portion of the nonvolatile solid state data storage memory for host data; allocating a third portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the first portion; allocating a fourth portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the second portion; dynamically implement a second state of the nonvolatile solid state data storage memory in response to a first event, implementing the second state includes; keeping a same amount of data storage space allocated for the first portion; decreasing a first amount of data storage space allocated for the second portion; increasing a second amount of data storage space allocated for a total data storage space of the third portion plus the fourth portion; dynamically allocate the total data storage space of the third portion plus the fourth portion based on one or more data-rate-allocation functions of one or more data rates; and delay implementation of the second state until a garbage collection operation is complete. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A memory device including instructions, that when executed by a processing element, cause the processing element to:
-
implement a first state of a nonvolatile solid state data storage memory by; allocating a first portion of the nonvolatile solid state data storage memory for system data including data for management of a controller of the nonvolatile solid state data storage memory; allocating a second portion of the nonvolatile solid state data storage memory for host data; allocating a third portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the first portion; allocating a fourth portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the second portion; implement a second state of the nonvolatile solid state data storage memory in response to a first event, implementing the second state includes; keeping a same amount of data storage space allocated for the first portion; decreasing a first amount of data storage space allocated for the second portion; increasing a second amount of data storage space allocated for a total data storage space of the third portion plus the fourth portion; dynamically allocate the total data storage space of the third portion plus the fourth portion based on a ratio of bandwidth of system data writes to the nonvolatile solid state data storage memory and bandwidth of host data writes to the nonvolatile solid state data storage memory; and delay implementation of the second state until a garbage collection operation is complete. - View Dependent Claims (15)
-
-
16. A device comprising:
a controller configured to manage a nonvolatile solid state data storage memory, the controller further configured to; implement a first state of the nonvolatile solid state data storage memory by; allocating a first portion of the nonvolatile solid state data storage memory for system data including data for management of the nonvolatile solid state data storage memory by the controller; allocating a second portion of the nonvolatile solid state data storage memory for host data; allocating a third portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the first portion; and allocating a fourth portion of the nonvolatile solid state data storage memory for overprovisioning reserved for the second portion; implement a second state of the nonvolatile solid state data storage memory in response to a first event, implementing the second state includes; keeping a same amount of data storage space allocated for the first portion; decreasing a first amount of data storage space allocated for the second portion; increasing a second amount of data storage space allocated for a total data storage space of the third portion plus the fourth portion; and dynamically allocate the total data storage space of the third portion plus the fourth portion based on a ratio of bandwidth of system data writes to the nonvolatile solid state data storage memory and bandwidth of host data writes to the nonvolatile solid state data storage memory. - View Dependent Claims (17, 18)
Specification