Hybrid-cache having static and dynamic portions
First Claim
Patent Images
1. A caching method, comprising:
- caching data received from a data source within a static cache as stable data, the static cache having a fixed size;
evicting a portion of the stable data within the static cache to a dynamic cache when the static cache reaches a threshold fill level; and
enrolling the evicted portion of the stable data into the dynamic cache as soft data, the dynamic cache having a dynamically changing size according to availability of memory, where soft data is evicted from the dynamic cache prior to evicting stable data from the static cache if availability of memory is scarce.
2 Assignments
0 Petitions
Accused Products
Abstract
System and method for a hybrid-cache. Data received from a data source is cached within a static cache as stable data. The static cache is a cache having a fixed size. Portions of the stable data within the static cache are evicted to a dynamic cache when the static cache becomes full. The dynamic cache is a cache having a dynamic size. The evicted portions of the stable cache are enrolled into the dynamic cache as soft data.
43 Citations
27 Claims
-
1. A caching method, comprising:
-
caching data received from a data source within a static cache as stable data, the static cache having a fixed size; evicting a portion of the stable data within the static cache to a dynamic cache when the static cache reaches a threshold fill level; and enrolling the evicted portion of the stable data into the dynamic cache as soft data, the dynamic cache having a dynamically changing size according to availability of memory, where soft data is evicted from the dynamic cache prior to evicting stable data from the static cache if availability of memory is scarce. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An article of manufacture comprising a machine-accessible medium having instructions stored thereon that, if executed by a machine, will cause the machine to perform operations comprising:
-
caching first data received from a data source into a hybrid-cache, the hybrid-cache including a static cache having a fixed size and a dynamic cache having a dynamically changing size; enrolling the first data received from a data source into the static cache as stable data; evicting selective portions of the stable data within the static cache to the dynamic cache when the static cache is full; and enrolling the selective portions of the stable data evicted from the static cache into the dynamic cache as soft data, the dynamic cache having a dynamically changing size according to availability of memory, where soft data is evicted from the dynamic cache prior to evicting stable data from the static cache if availability of memory is scarce. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A system, comprising:
-
a processor to process requests for data from a data source; and a memory device communicatively coupled to the processor, the memory device to hold a hybrid-cache, the hybrid-cache comprising; a static cache for caching the data as stable data, the static cache having a fixed size; and a dynamic cache having a dynamically changing size according to availability of memory within the memory device, wherein portions of the stable data within the static cache are to be evicted to the dynamic cache as soft data when the static cache is full, wherein the dynamic cache is to expand to accommodate the portions of the stable data evicted to the dynamic cache when the static cache is full, if adequate memory is available within the memory device, and wherein the dynamic cache is further to evict at least some of the soft data from the dynamic cache to accommodate the portions of the stable data evicted to the dynamic cache, if adequate memory is not available within the memory device, where soft data is evicted from the dynamic cache prior to evicting stable data from the static cache if availability of memory is scarce. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A system, comprising:
-
static means for caching stable data received from a data source within a fixed amount of memory; first means for selectively evicting portions of the stable data from the static means when the static means is full; dynamic means for caching soft data within a dynamically changing amount of memory; second means for evicting the soft data from the dynamic means when the available amount of memory is scarce; and means for enrolling the portions of the stable data evicted by the means for evicting into the dynamic means as the soft data, for caching the soft data within the dynamically changing amount of the memory based on an available amount of the memory, and for contracting the dynamically changing amount of memory when the available amount of memory is scarce, the dynamic means having a dynamically changing size according to availability of memory, where soft data is evicted from the dynamic means prior to evicting stable data from the static means if availability of memory is scarce.
-
Specification