System and method for analyzing data accesses of a trace from a computer-executable program to determine data access patterns
First Claim
1. A computer-implemented method for processing a trace file of data accesses to obtain information that is used to improve memory usage for a computer program, comprising:
- identifying repetitively occurring data access sequences and non-repetitively occurring data access sequences in the trace file; and
using the identified sequences to create a modified trace file, wherein the modified trace file includes data associated with the frequency that repetitively occurring data access sequences follow other repetitively occurring data access sequences when non-repetitively data access sequences are ignored.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for analyzing data accesses to determine data access patterns. Data address accesses are traced and transformed into Whole Program Streams (WPS). WPS may then be used to discover higher-level data abstractions, such as hot data streams and data flow graphs. Hot data streams provide information related to sequences of data addresses that are repeatedly accessed together. Data flow graphs indicate how hot data streams are related and include frequencies of each hot data stream following another. Hot data streams and data flow graphs may be used with pre-fetching and/or cache managers to improve program performance.
-
Citations
22 Claims
-
1. A computer-implemented method for processing a trace file of data accesses to obtain information that is used to improve memory usage for a computer program, comprising:
-
identifying repetitively occurring data access sequences and non-repetitively occurring data access sequences in the trace file; and using the identified sequences to create a modified trace file, wherein the modified trace file includes data associated with the frequency that repetitively occurring data access sequences follow other repetitively occurring data access sequences when non-repetitively data access sequences are ignored. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A storage medium having computer-executable instructions encoded thereon for improving data accesses, the instructions comprising:
-
receiving data access information from an executing program; identifying repetitively occurring data access patterns and non-repetitively occurring data access patterns; and updating a data structure to reflect the frequency that repetitively occurring data access patterns follow other repetitively occurring data access patterns when non-repetitively data access patterns are ignored. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A storage medium having a data structure stored thereon, comprising:
-
a database structured to store data access information that includes data access sequences of a computer program; a stream flow graph structured to store data that indicates a frequency that a data access sequence follows another data sequence; and a pre-fetcher configured to use the data access information and the stream flow graph to fetch data elements into memory for use by the executing computer program. - View Dependent Claims (18, 19, 20)
-
-
21. A storage medium having computer-executable components, comprising:
-
a database configured to store a stream flow graph; a database configured to store data access sequence information; and a cache memory manager coupled to the stream flow graph database and the data access sequence database, wherein the cache memory manager is configured to arrange data elements of a repetitively accessed data stream in a cache using information from the two databases. - View Dependent Claims (22)
-
Specification