IP Library Granted Patent US 6,857,045
Granted Patent B2
US 6,857,045 · App. 10/057,647 · Granted Feb 15, 2005

Method and system for updating data in a compressed read cache

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,857,045
App. No.
10/057,647
Granted
Feb 15, 2005
Kind
B2
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 (111)

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2002
From: GALBRAITH, ROBERT EDWARD; GERHARD, ADRIAN CUENIN; KING, BRIAN JAMES; MAITLAND JR., WILLIAM JOSEPH; SCHIMKE, TIMOTHY JERRY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 012553/0513 →
Continuity (1)
Related Publication 20030145172A1 · Jul 31, 2003