Apparatus, systems, and methods for providing a memory efficient cache
AssigneeHGST Netherlands B.V.
InventorKanishk RASTOGI
Life of this patent
Estimating the term…
Abstract
The present disclosure relates to apparatus, systems, and methods that implement a less-recently-used data eviction mechanism for identifying a memory block of a cache for eviction. The less-recently-used mechanism can achieve a similar functionality as the least-recently-used data eviction mechanism, but at a lower memory requirement. A memory controller can implement the less-recently-used data eviction mechanism by selecting a memory block and determining whether the memory block is one of the less-recently-used memory blocks. If so, the memory controller can evict data in the selected memory block; if not, the memory controller can continue to select other memory blocks until the memory controller selects one of the less-recently-used memory blocks.
Claims20
A method comprising:
- receiving, at a memory controller in a storage system coupled to a host device via an interface, a memory access request, wherein the memory access request comprises a memory block identifier that identifies a memory block;
- determining, at the memory controller, that data associated with the memory access request should be stored in one of memory blocks in the cache and that each of the memory blocks in the cache is already occupied with valid data;
- selecting, by the memory controller, one of the memory blocks;
- determining a first transaction count associated with the selected memory block, wherein the first transaction count is indicative of a time instance at which the selected memory block was accessed;
- and
- when the first transaction count satisfies a predetermined criterion, causing, by the memory controller, the selected memory block to store the data, and
- when the first transaction count does not satisfy the predetermined criterion, selecting, by the memory controller, another one of the memory blocks until the memory controller selects a memory block whose transaction count satisfies the predetermined criterion.
A storage system comprising:
- a cache comprising a plurality of memory blocks for maintaining data;
- and
- a memory controller configured to process a memory access request received from a host device, wherein the memory access request comprises a memory block identifier that identifies a memory block, wherein the memory controller is further configured to:
- determine that data associated with the memory access request should be stored in one of memory blocks in the cache and that each of the memory blocks in the cache is already occupied with valid data;
- select one of the memory blocks in the cache;
- determine a first transaction count associated with the selected memory block, wherein the first transaction count is indicative of a time instance at which the selected memory block was accessed;
- and
- when the first transaction count satisfies a predetermined criterion, cause the selected memory block to store the data, and
- when the first transaction count does not satisfy the predetermined criterion, select another one of the memory blocks until the memory controller selects a memory block whose transaction count satisfies the predetermined criterion.
A non-transitory computer readable medium having executable instructions operable to cause a memory controller to:
- receive a memory access request from a host device over an interface, wherein the memory access request comprises a memory block identifier that identifies a memory block;
- determine that data associated with the memory access request should be stored in one of memory blocks in the cache and that each of the memory blocks in the cache is already occupied with valid data;
- select one of the memory blocks in the cache;
- determine a first transaction count associated with the selected memory block, wherein the first transaction count is indicative of a time instance at which the selected memory block was accessed;
- and
- when the first transaction count satisfies a predetermined criterion, cause the selected memory block to store the data, and
- when the first transaction count does not satisfy the predetermined criterion, select another one of the memory blocks until the memory controller selects a memory block whose transaction count satisfies the predetermined criterion.
Dependencies are inferred from the claim text.