Fullness control for media-based cache operating in a steady state
First Claim
1. A method of caching write commands received by a data storage system from a host, the data storage system comprising a physical media and a write-caching subsystem, the method comprising:
- receiving a write command from a host;
determining an aggregate fullness status of the write-caching subsystem, the write-caching subsystem comprising a volatile memory and a media-based cache, the aggregate fullness based on a fullness status of at least a portion of the media-based cache;
selecting, based on a state of the write-caching subsystem, an action to be performed, the action selected from;
reducing the aggregate fullness status of the write-caching subsystem; and
servicing a command from the host that is not managed by the write-caching subsystem; and
performing the selected action.
8 Assignments
0 Petitions
Accused Products
Abstract
A data storage system incorporating a write-caching subsystem that implements a steady-state media-based cache is described. The steady-state of the media-based cache can be obtained by directing non-sequential write commands and data received from the host device to multiple independent cache locations and, thereafter, selectively copying or moving such data between the caches so that none of the caches are either too full or too empty. In this manner, a non-sequential write command can be cached in a power-safe manner until it is efficient and/or convenient to write such data to the mainstore portion of the physical media.
453 Citations
20 Claims
-
1. A method of caching write commands received by a data storage system from a host, the data storage system comprising a physical media and a write-caching subsystem, the method comprising:
-
receiving a write command from a host; determining an aggregate fullness status of the write-caching subsystem, the write-caching subsystem comprising a volatile memory and a media-based cache, the aggregate fullness based on a fullness status of at least a portion of the media-based cache; selecting, based on a state of the write-caching subsystem, an action to be performed, the action selected from; reducing the aggregate fullness status of the write-caching subsystem; and servicing a command from the host that is not managed by the write-caching subsystem; and performing the selected action. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A data storage system comprising:
-
a host interface; a host command cache in communication with the host interface; a physical media comprising; a media-based cache; and a mainstore; a write cache subsystem in communication with the host command cache, the write cache subsystem comprising; a volatile memory comprising; a first portion for buffering write data to be written to the media-based cache; and a second portion for storing data copied from the media-based cache to be written to the mainstore; and a processor coupled to the host interface, the write-caching subsystem, and the physical media, the processor configured to perform the operations of; receiving a write command from a host; determining an aggregate fullness status of the write-caching subsystem the aggregate fullness based on a fullness status of at least a portion of the media-based cache; selecting, based on a state of the write-caching subsystem, an action to be performed, the action selected from; reducing the aggregate fullness status of the write-caching subsystem; and servicing a command from the host that is not managed by the write-caching subsystem; and performing the selected action. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method of writing data to a physical media of a data storage system, the method comprising:
-
determining that data to be written is eligible for storage within a media-based cache within the physical media; storing the data in a power-safe data cache; writing the data sequentially from the power-safe data cache to the media-based cache; copying the data from the media-based cache to a data holding cache on a volatile memory; and flushing the data holding cache to the physical media. - View Dependent Claims (19, 20)
-
Specification