DATA-AWARE CACHE STATE MACHINE
First Claim
1. A method for controlling a cache, comprising:
- managing data in the cache by assigning at least one state to each portion of the cache data, wherein managing each portion of the cache data is enabled by a state machine comprising a plurality of states and a set of state transitions;
associating each of the plurality of states with a control structure;
associating each portion of the cache data with a set of attributes; and
enabling each of the plurality of states to be aware of the cache data, wherein each state includes at least one of;
a Free state where the cache data contains unvalidated data;
a Clean state where the cache data is valid and clean and no flush is required;
a Dirty state where the cache data is valid and dirty and a flush is required;
a Sticky state where the cache data is valid and clean and was accessed at least twice by at least one of a read operation or a write operation;
a StickyDirty state where the cache data contains valid dirty data that was accessed at least twice by at least one of a read operation or a write operation;
a Flush state where the cache data contains valid dirty data that is to be written to a storage device; and
a Hash state where the cache is in the process of getting valid data from at least one of the physical storage device or a host.
4 Assignments
0 Petitions
Accused Products
Abstract
Management of a Cache is provided by differentiating data base on attributes associated with the data and reducing storage bottlenecks. The Cache differentiates and manages data using a state machine with a plurality of states. the Cache may use data patterns and statistics to retain frequently used data in the cache longer. The Cache uses content or attributes to differentiate and retain data longer. Further, the Cache may provide status and statistics to a data flow manager that determines which data to cache and which data to pipe directly through, or to switch cache policies dynamically, thus avoiding some of the cache overhead. The Cache may also place clean and dirty data in separate states to enable more efficient Cache mirroring and flush.
-
Citations
24 Claims
-
1. A method for controlling a cache, comprising:
-
managing data in the cache by assigning at least one state to each portion of the cache data, wherein managing each portion of the cache data is enabled by a state machine comprising a plurality of states and a set of state transitions; associating each of the plurality of states with a control structure; associating each portion of the cache data with a set of attributes; and enabling each of the plurality of states to be aware of the cache data, wherein each state includes at least one of; a Free state where the cache data contains unvalidated data; a Clean state where the cache data is valid and clean and no flush is required; a Dirty state where the cache data is valid and dirty and a flush is required; a Sticky state where the cache data is valid and clean and was accessed at least twice by at least one of a read operation or a write operation; a StickyDirty state where the cache data contains valid dirty data that was accessed at least twice by at least one of a read operation or a write operation; a Flush state where the cache data contains valid dirty data that is to be written to a storage device; and a Hash state where the cache is in the process of getting valid data from at least one of the physical storage device or a host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable medium with data that enables management of a cache, wherein the execution of at least a portion of the data enables actions, comprising:
-
assigning at least one state to each portion of the cache data, wherein managing each portion of the cache data is enabled by a state machine comprising a plurality of states and a set of state transitions; associating each of the plurality of states with a control structure; associating each portion of the cache data with a set of attributes; and enabling each of the plurality of states to be aware of the cache data, wherein each state includes at least one of; a Free state where the cache data contains unvalidated data; a Clean state where the cache data is valid and clean and no flush is required; a Dirty state where the cache data is valid and dirty and a flush is required; a Sticky state where the cache data is valid and clean and was accessed at least twice by at least one of a read operation or a write operation; a StickyDirty state where the cache data contains valid dirty data that was accessed at least twice by at least one of a read operation or a write operation; a Flush state where the cache data contains valid dirty data that is to be written to a storage device; and a Hash state where the cache is in the process of getting valid data from at least one of the physical storage device or a host. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for managing a cache, comprising:
-
a server for receiving a request for data; a data flow manager that processes the request, including; enabling data in the cache to be assigned at least one state to each portion of the cache data, wherein each portion of the cache data is further enabled for use with a state machine comprising a plurality of states and a set of state transitions; enabling association of each of the plurality of states with a control structure; enabling association of each portion of the cache data with a set of attributes; and enabling each of the plurality of states to be aware of the cache data, wherein each state includes at least one of; a Free state where the cache data contains unvalidated data; a Clean state where the cache data is valid and clean and no flush is required; a Dirty state where the cache data is valid and dirty and a flush is required; a Sticky state where the cache data is valid and clean and was accessed at least twice by at least one of a read operation or a write operation; a StickyDirty state where the cache data contains valid dirty data that was accessed at least twice by at least one of a read operation or a write operation; a Flush state where the cache data contains valid dirty data that is to be written to a storage device; and a Hash state where the cache is in the process of getting valid data from at least one of the physical storage device or a host. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. An apparatus for managing a cache, comprising:
a data flow manager that processes a request for data, including; enabling data in the cache to be assigned at least one state to each portion of the cache data, wherein each portion of the cache data is further enabled for use with a state machine comprising a plurality of states and a set of state transitions; enabling association of each of the plurality of states with a control structure; enabling association of each portion of the cache data with a set of attributes; and enabling each of the plurality of states to be aware of the cache data, wherein each state includes at least one of; a Free state where the cache data contains unvalidated data; a Clean state where the cache data is valid and clean and no flush is required; a Dirty state where the cache data is valid and dirty and a flush is required; a Sticky state where the cache data is valid and clean and was accessed at least twice by at least one of a read operation or a write operation; a StickyDirty state where the cache data contains valid dirty data that was accessed at least twice by at least one of a read operation or a write operation; a Flush state where the cache data contains valid dirty data that is to be written to a storage device; and a Hash state where the cache is in the process of getting valid data from at least one of the physical storage device or a host.
Specification