Cache-conscious coallocation of hot data streams
First Claim
1. A computer-implemented method of enhancing cache performance, the method comprising:
- receiving a temporal data reference profile;
detecting one or more hot data streams in the temporal data reference profile; and
analyzing the one or more hot data streams and the temporal data reference profile to determine a coallocation solution for allocations in heap memory.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques and tools for coallocating objects and/or object fields for the sake of cache performance are described. For example, a tool improves cache performance by coallocating contemporaneously accessed heap objects. The tool analyzes object accesses to identify hot data streams in a profile run of a program. The tool directs allocations for objects in a given hot data steam to the same sequentially allocated arena, separating intervening allocations coming from other allocation sites. The tool enforces the solution by redirecting heap allocations to a run-time coallocation library. The tool and analysis extend to coallocation at object field granularity. The resulting field coallocation solution generalizes common data restructuring techniques and provides insight into object restructuring by breaking down the coallocation benefit on a per-technique basis.
91 Citations
52 Claims
-
1. A computer-implemented method of enhancing cache performance, the method comprising:
-
receiving a temporal data reference profile;
detecting one or more hot data streams in the temporal data reference profile; and
analyzing the one or more hot data streams and the temporal data reference profile to determine a coallocation solution for allocations in heap memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of enhancing cache performance, the method comprising:
-
receiving a profile of object field accesses; and
determining a coallocation solution based at least in part upon the profile, wherein the coallocation solution increases locality of object fields in a layout in memory to improve cache performance. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of enhancing cache performance, the method comprising:
-
receiving a comprehensive temporal data access profile for a computer program;
detecting one or more data access patterns in the temporal data access profile, each of the one or more data access patterns including plural data accesses and occurring one or more times in the temporal data access profile; and
analyzing the one or more data access patterns and the temporal data access profile to determine a coallocation solution for allocations in memory. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A system for coallocating data in memory to improve cache performance, the system comprising:
-
an analysis module for determining a coallocation solution based at least in part upon a temporal data access profile of a computer program;
an instrumentation module for automating alteration of the computer program based at least in part upon the coallocation solution; and
an enforcement module for automatically enforcing the coallocation solution during execution of the altered computer program. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52)
-
Specification