P
US6857045B2ExpiredUtilityPatentIndex 91

Method and system for updating data in a compressed read cache

Assignee: IBMPriority: Jan 25, 2002Filed: Jan 25, 2002Granted: Feb 15, 2005
Est. expiryJan 25, 2022(expired)· nominal 20-yr term from priority
Inventors:GALBRAITH ROBERT EDWARDGERHARD ADRIAN CUENINKING BRIAN JAMESMAITLAND JR WILLIAM JOSEPHSCHIMKE TIMOTHY JERRY
G06F 2212/401G06F 12/0866Y10S707/99942
91
PatentIndex Score
34
Cited by
9
References
34
Claims

Abstract

In a first aspect, a method is provided for updating a compressed cache. The method includes the steps of (1) initiating an update routine for replacing first data stored within the cache with second data, wherein a first section of a compressed data band stored in the cache includes the first data and a second section of the compressed data band includes third data; and (2) in response to initiating the update routine, replacing the first data within the compressed data band with the second data without decompressing the third data. Numerous other aspects are provided.

Claims

exact text as granted — not AI-modified
1. A method of updating a compressed cache comprising the steps of:
 initiating an update routine for replacing first data stored within the cache with second data, wherein a first section of a compressed data band stored in the cache includes the first data and a second section of the compressed data band includes third data; and  
 in response to initiating the update routine, replacing the first data within the compressed data band with the second data without decompressing the third data.  
 
   
   
     2. The method of  claim 1 , wherein the update routine includes one of a destage operation and a write operation. 
   
   
     3. The method of  claim 1 , wherein the step of replacing comprises:
 determining whether the second data is compressed; and  
 compressing the second data if the second data is uncompressed.  
 
   
   
     4. The method of  claim 1 , wherein the step of replacing comprises:
 determining whether the second data is compressed;  
 comparing a first compression factor of the first data with a second compression factor of the second data if the second data is compressed; and  
 determining, based on the comparison step, whether one or more resources in the compressed cache utilized by the first data are sufficient to accommodate the second data.  
 
   
   
     5. The method of  claim 4  further comprising the step of:
 supplementing the one or more resources utilized by the first data with a number of additional resources so as to accommodate the second data if the one or more resources utilized by the first data are insufficient to accommodate the second data.  
 
   
   
     6. The method of  claim 5  wherein the step of supplementing comprises the steps of:
 receiving a request for a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data;  
 determining whether a reserve of available resources has the number of additional resources; and  
 allocating the number of additional resources from the reserve of available resources if the reserve of available resources has the number of additional resources.  
 
   
   
     7. The method of  claim 5  wherein the step of supplementing comprises the steps of:
 receiving a request for a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data;  
 determining whether the number of additional resources is greater than a predetermined number of resources, and if so: 
 determining whether a number of available resources in a reserve of available resources exceeds a predetermined threshold; and  
 granting the request for the number of additional resources if the number of available resources in the reserve of available resources exceeds the predetermined threshold.  
 
 
   
   
     8. The method of  claim 5  wherein the step of supplementing comprises the steps of:
 determining whether a reserve of available resources has a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data; and  
 performing a pillage process if the reserve of available resources has an insufficient number of additional resources to accommodate the second data when combined with the one or more resources utilized by the first data.  
 
   
   
     9. The method of  claim 8  wherein the step of performing the pillage process comprises the steps of:
 identifying a cache line record of the compressed cache that is in an idle state;  
 calculating a figure of merit for the identified cache line record;  
 adding any cache resources associated with the cache line record to the reserve of available resources if the figure of merit is less than a predetermined value; and  
 if the reserve of available resources has a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data, supplementing the one or more resources utilized by the first data with the available resources in the reserve to accommodate the second data.  
 
   
   
     10. The method of  claim 9  wherein the cache line record includes a plurality of page table entry set pointers, each page table entry set pointer pointing to a predetermined number of page table entries, wherein each of the cache resources is separately addressable by a respective page table entry. 
   
   
     11. The method of  claim 4  further comprising the step of:
 replacing the first data in the compressed cache with the second data if the one or more resources are sufficient to accommodate the second data.  
 
   
   
     12. The method of  claim 11  further comprising the steps of:
 determining, after the replacing step, whether at least one of the one or more resources utilized by the first data has become available; and  
 allocating the at least one of the one or more resources into a reserve of available resources if the at least one of the one or more resources has become available.  
 
   
   
     13. The method of  claim 4  wherein each of the one or more resources utilized by the first data is individually addressable by a corresponding page table entry. 
   
   
     14. A method of updating a compressed cache, comprising the steps of:
 initiating an update routine for replacing first data stored within the cache with second data, wherein a first section of a compressed data band stored in the cache includes the first data and a second section of the compressed data band includes third data; and  
 in response to initiating the update routine: 
 supplementing one or more resources utilized by the first data with a number of additional resources so as to accommodate the second data if the one or more resources utilized by the first data are insufficient to accommodate the second data; and  
 replacing the first data within the compressed data band with the second data without decompressing the third data.  
 
 
   
   
     15. The method of  claim 14  wherein the step of supplementing comprises the steps of:
 receiving a request for a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data;  
 determining whether a reserve of available resources has the number of additional resources; and  
 allocating the number of additional resources from the reserve of available resources if the reserve of available resources has the number of additional resources.  
 
   
   
     16. The method of  claim 14  wherein the step of supplementing comprises the steps of:
 receiving a request for a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data; and  
 determining whether the number of additional resources is greater than a predetermined number of resources, and if so: 
 determining whether a number of available resources in a reserve of available resources exceeds a predetermined threshold; and  
 granting the request for the number of additional resources if the number of available resources in the reserve of available resources exceeds the predetermined threshold.  
 
 
   
   
     17. The method of  claim 14  wherein the step of supplementing comprises the steps of:
 determining whether a reserve of available resources has a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data; and  
 performing a pillage process if the reserve of available resources has an insufficient number of additional resources to accommodate the second data when combined with the one or more resources utilized by the first data.  
 
   
   
     18. The method of  claim 17  wherein the step of performing the pillage process comprises the steps of:
 identifying a cache line record of the compressed cache that is in an idle state;  
 calculating a figure of merit for the identified cache line record;  
 adding any cache resources associated with the cache line record to the reserve of available resources if the figure of merit is less than a predetermined value; and  
 if the reserve of available resources has a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data, supplementing the one or more resources utilized by the first data with the available resources in the reserve to accommodate the second data.  
 
   
   
     19. The method of  claim 18  wherein the cache line record includes a plurality of page table entry set pointers, each page table entry set pointer pointing to a predetermined number of page table entries, wherein each of the cache resources is separately addressable by a respective page table entry. 
   
   
     20. A compressed read cache system, comprising:
 a compressed read cache configured to store data; and  
 a controller operatively coupled to the cache and configured to: 
 initiate an update routine for replacing first data stored within the cache with second data, wherein a first section of a compressed data band stored in the cache includes the first data and a second section of the compressed data band includes third data; and  
 in response to initiating the update routine, replace the first data within the compressed data band with the second data without decompressing the third data.  
 
 
   
   
     21. The system of  claim 20 , wherein the controller is further configured to:
 determine whether the second data is compressed;  
 compare a first compression factor of the first data with a second compression factor of the second data if the second data is compressed; and  
 determine, based on the comparison of the first and second compression factors, whether one or more resources in the cache utilized by the first data are sufficient to accommodate the second data.  
 
   
   
     22. The system of  claim 21  further including a compression unit operatively coupled to said controller, said compression unit configured to compress the second data if the controller determines that the second data is uncompressed. 
   
   
     23. The system of  claim 21 , wherein the controller is further configured to supplement the one or more resources utilized by the first data with a number of additional resources so as to accommodate the second data if the one or more resources utilized by the first data are insufficient to accommodate the second data. 
   
   
     24. The system of  claim 23  wherein the controller is further configured to:
 receive a request for a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data;  
 determine whether a reserve of available resources has the number of additional resources; and  
 allocate the number of additional resources from the reserve of available resources if the reserve of available resources has the number of additional resources.  
 
   
   
     25. The system of  claim 23  wherein the controller is further configured to:
 receive a request for a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data;  
 determine whether the number of additional resources is greater than a predetermined number of resources, and if so: 
 determine whether a number of available resources in a reserve of available resources exceeds a predetermined threshold; and  
 grant the request for the number of additional resources if the number of available resources in the reserve of available resources exceeds the predetermined threshold.  
 
 
   
   
     26. The system of  claim 23  wherein the controller is further configured to:
 determine whether a reserve of available resources has a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data; and  
 perform a pillage process if the reserve of available resources has an insufficient number of additional resources to accommodate the second data when combined with the one or more resources utilized by the first data.  
 
   
   
     27. The system of  claim 26  wherein when the controller performs the pillage process, the controller is further configured to:
 identify a cache line record of the compressed cache that is in an idle state;  
 calculate a figure of merit for the identified cache line record;  
 add any cache resources associated with the cache line record to the reserve of available resources if the figure of merit is less than a predetermined value; and  
 if the reserve of available resources has a number of additional resources sufficient to accommodate the second data when combined with the one or more resources utilized by the first data, supplement the one or more resources utilized by the first data with the available resources in the reserve to accommodate the second data.  
 
   
   
     28. The system of  claim 27  wherein the cache line record includes a plurality of page table entry set pointers, each page table entry set pointer pointing to a predetermined number of page table entries, wherein each of the cache resources is separately addressable by a respective page table entry. 
   
   
     29. The system of  claim 21 , wherein the controller is further configured to replace the first data in the cache with the second data if the one or more resources are sufficient to accommodate the second data. 
   
   
     30. The system of  claim 29 , wherein the controller is further configured to:
 determine, after replacing the first data, whether at least one of the one or more resources utilized by the first data has become available; and  
 allocate the at least one of the one or more resources into a reserve of available resources if the at least one of the one or more resources has become available.  
 
   
   
     31. The method of  claim 21  wherein each of the one or more resources is individually addressable by a corresponding page table entry. 
   
   
     32. A compressed read cache system, comprising:
 a compressed read cache configured to store data; and  
 a controller operatively coupled to the cache, and configured to: 
 initiate an update routine for replacing first data stored within the cache with second data, wherein a first section of a compressed data band stored in the cache includes the first data and a second section of the compressed data band includes third data; and  
 in response to initiating the update routine: 
 supplement one or more resources utilized by the first data with a number of additional resources so as to accommodate the second data if the one or more resources utilized by the first data are insufficient to accommodate the second data; and  
 replace the first data within the compressed data band with the second data without decompressing the third data.  
 
 
 
   
   
     33. A computer program product for use with a compressed read cache, comprising:
 a medium readable by a computer, the computer readable medium having computer program code adapted to: 
 initiate an update routine for replacing first data stored within the cache with second data, wherein a first section of a compressed data band stored in the cache includes the first data and a second section of the compressed data band includes third data; and  
 in response to initiating the update routine, replace the first data within the compressed data band with the second data without decompressing the third data.  
 
 
   
   
     34. A computer program product for use with a compressed read cache, comprising:
 a medium readable by a computer, the computer readable medium having computer program code adapted to: 
 initiate an update routine for replacing first data stored within the cache with second data, wherein a first section of a compressed data band stored in the cache includes the first data and a second section of the compressed data band includes third data; and  
 in response to initiating the update routine: 
 supplement one or more resources utilized by the first data with a number of additional resources so as to accommodate the second data if the one or more resources utilized by the first data are insufficient to accommodate the second data; and  
 replace the first data within the compressed data band with the second data without decompressing the third data.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.