Optimized allocation of data elements among cache lines
AssigneeMicrosoft Corporation
InventorsMichael Andrew Brian Parkes, Barry Michael Nolte, Douglas Stewart Boa
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsMichael Andrew Brian Parkes, Barry Michael Nolte, Douglas Stewart Boa
Estimating the term…
An invention for reassigning data elements of an application to cache lines to decrease the occurrence of cache line faults is described. First, an application is executed and used in a typically manner. While the application is running, data is collected concerning the loading and storing of data elements. This collection process creates a massive volume of data that is then processed to determine correlations between the loading and storing pairs of elements within each of the application's data structures. These correlations provide a mechanism for weighing the probability of pairs of intra-structure data elements being accessed in sequence, which is best accomplished when the data elements are within a single cache line. A set of simultaneous equations describe the probabilities using the data recording the correlations. These equations are then solved using commonly known linear programming techniques to derive a suggested ordering of data structures. An interactive editor is then used to reorder these data elements in the derived preferred order as authorized by the programmer.
In a computer system, a method for decreasing the occurrence of cache line faults during a running of a computer program by reorganizing groupings of data elements for placement within cache lines of the computer system, the method comprising the steps of:
In a computer system, a method for automatically determining groupings of data elements within a computer program for placement within cache lines of the computer system to minimize cache line faults, the method comprising:
A computer program having data elements arranged to reduce the occurrence of cache line faults during the running of a computer program by reorganizing groupings of data elements for placement within cache lines of a computer system, the computer program created by the steps of:
Dependencies are inferred from the claim text.