Ordering commitment of data from a data cache to nonvolatile memory using ordering commands
First Claim
1. A data storage device comprising:
- a non-volatile memory;
a memory comprising a data cache; and
a controller configured to;
receive, from a computing device, a plurality of data items to be written to the non-volatile memory, wherein the plurality of data items include at least a first data item associated with a first identifier and a second data item associated with a second identifier;
cache the plurality of data items within the data cache for subsequent commitment to the non-volatile memory;
receive from the computing device an ordering command that includes a specification of the first identifier and the second identifier, wherein the ordering command requests commitment to the non-volatile memory of cached data items associated with the first identifier, as specified within the ordering command, prior to commitment to the non-volatile memory of cached data items associated with the second identifier, as specified within the ordering command;
based at least in part on the ordering command, delay commitment of the second data item to the non-volatile memory until commitment of the first data item to the non-volatile memory; and
subsequent to commitment of the first data item to the non-volatile memory, commit the second data item to the non-volatile memory.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for utilization of notification or ordering commands are disclosed that can enable more efficient processing of flush requests from software programs and increase data consistency in storage devices. A data storage device or system may include a non-volatile memory, a memory comprising a data cache and a controller. The controller may be configured to receive an ordering command requesting commitment to the non-volatile memory of cached data items associated with a first identifier prior to commitment of cached data items associated with a second identifier, and to delay commitment of the second data item to the non-volatile memory until commitment of the first data item to the non-volatile memory, based at least in part on the ordering command. The controller may be further configured to select data items from the data cache for commitment to the non-volatile memory in accordance with native command queuing (NCQ).
487 Citations
18 Claims
-
1. A data storage device comprising:
-
a non-volatile memory; a memory comprising a data cache; and a controller configured to; receive, from a computing device, a plurality of data items to be written to the non-volatile memory, wherein the plurality of data items include at least a first data item associated with a first identifier and a second data item associated with a second identifier; cache the plurality of data items within the data cache for subsequent commitment to the non-volatile memory; receive from the computing device an ordering command that includes a specification of the first identifier and the second identifier, wherein the ordering command requests commitment to the non-volatile memory of cached data items associated with the first identifier, as specified within the ordering command, prior to commitment to the non-volatile memory of cached data items associated with the second identifier, as specified within the ordering command; based at least in part on the ordering command, delay commitment of the second data item to the non-volatile memory until commitment of the first data item to the non-volatile memory; and subsequent to commitment of the first data item to the non-volatile memory, commit the second data item to the non-volatile memory. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method comprising:
-
receiving, at a storage system, a plurality of data items to be written to a non-volatile memory of the storage system, wherein the plurality of data items include at least a first data item associated with a first identifier and a second data item associated with a second identifier; caching the plurality of data items within a data cache of the storage system for subsequent commitment to the non-volatile memory; receiving, at the storage system, an ordering command that includes a specification of the first identifier and the second identifier, wherein the ordering command requests commitment to the non-volatile memory of cached data items associated with the first identifier prior to commitment to the non-volatile memory of cached data items associated with the second identifier; based at least in part on the ordering command, delaying commitment to the non-volatile memory of the second data item from the data cache until commitment to the non-volatile memory of the first data item from the data cache; and subsequent to commitment to the non-volatile memory of the first data item from the data cache, committing the second data item from the data cache to the non-volatile memory. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable medium comprising computer-executable instructions that, when executed by a processor of a storage system, cause the processor to:
-
receive a plurality of data items to be written to a non-volatile memory of the storage system, wherein the plurality of data items include at least a first data item associated with a first identifier and a second data item associated with a second identifier; cache the plurality of data items within a data cache of the storage system for subsequent commitment to the non-volatile memory; receive an ordering command that includes a specification of the first identifier and the second identifier and that requests commitment to the non-volatile memory of cached data items associated with the first identifier prior to commitment to the non-volatile memory of cached data items associated with the second identifier; based at least in part on the ordering command, delay commitment to the non-volatile memory of the second data item from the data cache until commitment to the non-volatile memory of the first data item from the data cache; and subsequent to commitment to the non-volatile memory of the first data item from the data cache, commit the second data item from the data cache to the non-volatile memory. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification