IP Library Granted Patent US 8,145,870
Granted Patent B2
US 8,145,870 · App. 11/006,127 · Granted Mar 27, 2012

System, method and computer program product for application-level cache-mapping awareness and reallocation

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 8,145,870
App. No.
11/006,127
Granted
Mar 27, 2012
Kind
B2
Abstract

The present invention provides an improved method, system, and computer program product that can optimize cache utilization. In one embodiment, a kernel service creates a storage map, and sending said storage map to an application. In one embodiment of the present invention, the step of the kernel service creating the storage map may further comprise the kernel service creating a cache map. In one embodiment of the present invention, the step of the kernel service creating the storage map may further comprise the kernel service creating an indication of one or more storage locations that have been allocated to store information for the application. In one embodiment of the present invention, the step of the kernel service creating the storage map may further comprise the kernel service creating the storage map in response to receiving a request for the storage map from the application.

Claims (34)

1. A method in a data processing system, said method comprising:

an application determining if an appropriate cache distribution has been allocated, wherein said determining includes said application evaluating a range of memory addresses within a cache memory utilizing cache token values according to application-specific requirements, wherein each congruence class within said cache memory is assigned a unique cache token value;

said application requesting a storage map, wherein said storage map is a cache map, in response to determining that said appropriate cache distribution has not been allocated;

a kernel service creating said storage map, wherein said kernel service is a cache mapping service that generates said storage map through interaction with firmware via a plurality of messages; and

sending said storage map to said application via said cache mapping service.

2. The method of claim 1 , wherein said step of said kernel service creating said storage map further comprises said kernel service creating an indication of one or more storage locations that have been allocated to store information for said application.

3. The method of claim 2 , wherein said step of said kernel service creating said storage map further comprises said kernel service creating an indication of one or more storage locations in a cache that have been allocated to store information for said application.

4. The method of claim 1 , wherein said step of said kernel service creating said storage map further comprises said kernel service creating said storage map in response to receiving a request for said storage map from said application.

5. The method of claim 1 , wherein said step of sending said storage map to said application further comprises sending said storage map to said application in response to receiving a request for said storage map from said application.

6. The method of claim 1 , further comprising:

receiving a request from said application to reallocate one or more locations in a storage unit that have been allocated to store information for said application; and

reallocating said one or more locations.

7. A system, comprising:

a plurality of processors;

a cache memory coupled to said plurality of processors;

a system interconnect coupled to said plurality of processors; and

a computer usable storage medium recording computer program code, said computer usable medium being coupled to said system interconnect, said computer program code comprising instructions executable by said plurality of processors and configured for:

an application determining if an appropriate cache distribution has been allocated, wherein said determining includes said application evaluating a range of memory addresses within a cache memory utilizing cache token values according to application-specific requirements, wherein each congruence class within said cache memory is assigned a unique cache token value;

said application requesting a storage map, wherein said storage map is a cache map, in response to determining that said appropriate cache distribution has not been allocated;

a kernel service creating said storage map, wherein said kernel service is a cache mapping service that generates said storage map through interaction with firmware via a plurality of messages; and

sending said storage map to said application via said cache mapping service.

8. The system of claim 7 , wherein said computer program code comprising instructions executable by said plurality of processors and configured for said kernel service creating said storage map further comprises said kernel service creating an indication of one or more storage locations that have been allocated to store information for said application.

9. The system of claim 8 , wherein said computer program code comprising instructions executable by said plurality of processors and configured for said kernel service creating said storage map further comprises said kernel service creating an indication of one or more storage locations in a cache that have been allocated to store information for said application.

10. The system of claim 7 , wherein said computer program code comprising instructions executable by said plurality of processors and configured for said kernel service creating said storage map further comprises said kernel service creating said storage map in response to receiving a request for said storage map from said application.

11. The system of claim 7 , wherein said computer program code comprising instructions executable by said plurality of processors and configured for sending said storage map to said application further comprises sending said storage map to said application in response to receiving a request for said storage map from said application.

12. A computer usable storage medium recording computer program code, said computer program code comprising computer executable instructions configured for:

an application determining if an appropriate cache distribution has been allocated, wherein said determining includes said application evaluating a range of memory addresses within a cache memory utilizing cache token values according to application-specific requirements, wherein each congruence class within said cache memory is assigned a unique cache token value;

said application requesting a storage map, wherein said storage map is a cache map, in response to determining that said appropriate cache distribution has not been allocated;

a kernel service creating said storage map, wherein said kernel service is a cache mapping service that generates said storage map through interaction with firmware via a plurality of messages; and

sending said storage map to said application via said cache mapping service.

13. The computer usable storage medium of claim 12 , wherein said instructions for said kernel service creating said storage map further comprises computer executable instructions for said kernel service creating an indication of one or more storage locations that have been allocated to store information for said application.

14. The computer usable storage medium of claim 13 , wherein said instructions for said kernel service creating said storage map further comprises computer executable instructions for said kernel service creating an indication of one or more storage locations in a cache that have been allocated to store information for said application.

15. The computer usable storage medium of claim 12 , wherein said instructions for said kernel service creating said storage map further comprises computer executable instructions for said kernel service creating said storage map in response to receiving a request for said storage map from said application.

16. The computer usable storage medium of claim 12 , wherein said instructions for sending said storage map to said application further comprises computer executable instructions for said sending said storage map to said application in response to receiving a request for said storage map from said application.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2011
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GOOGLE INC.
Reel/Frame 027463/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2005
From: DUNSHEA, ANDREW; FLEMMING, DIANE GARZA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 015531/0117 →