Automatic generation of cache-optimized code
First Claim
Patent Images
1. A method comprising:
- receiving information associated with an application,the receiving being performed by a computing device;
receiving information associated with related sections of code of the application,the receiving the information associated with the related sections of the code of the application being performed by the computing device;
aligning the related sections of the code of the application to one or more cache line boundaries,the aligning the related sections of the code of the application to the one or more cache line boundaries reducing thrashing with respect to a quantity of thrashing occurring absent aligning the related sections of the code of the application to the one or more cache line boundaries, andthe aligning the related sections of the code of the application to the one or more cache line boundaries being performed by the computing device;
grouping, based on align the related sections of the code of the application to the one or more cache line boundaries, the related sections of the code of the application to create grouped sections of code,the grouping being performed by the computing device;
distributing the grouped sections of code to a section of memory,the distributing being performed by the computing device;
determining one or more particular sections of the grouped sections of code,the determining being performed by the computing device; and
performing, based on a size of the section of the memory, an operation on the determined one or more particular sections of the grouped sections of code,the performing being performed by the computing device.
1 Assignment
0 Petitions
Accused Products
Abstract
A system receives cache conditions and software information related to a software application, and automatically generates an optimal cache management scheme for the software application based on the received cache conditions and software information.
9 Citations
20 Claims
-
1. A method comprising:
-
receiving information associated with an application, the receiving being performed by a computing device; receiving information associated with related sections of code of the application, the receiving the information associated with the related sections of the code of the application being performed by the computing device; aligning the related sections of the code of the application to one or more cache line boundaries, the aligning the related sections of the code of the application to the one or more cache line boundaries reducing thrashing with respect to a quantity of thrashing occurring absent aligning the related sections of the code of the application to the one or more cache line boundaries, and the aligning the related sections of the code of the application to the one or more cache line boundaries being performed by the computing device; grouping, based on align the related sections of the code of the application to the one or more cache line boundaries, the related sections of the code of the application to create grouped sections of code, the grouping being performed by the computing device; distributing the grouped sections of code to a section of memory, the distributing being performed by the computing device; determining one or more particular sections of the grouped sections of code, the determining being performed by the computing device; and performing, based on a size of the section of the memory, an operation on the determined one or more particular sections of the grouped sections of code, the performing being performed by the computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions which, when executed by a processor, cause the processor to; receive information associated with an application; receive information associated with related sections of code of the application; align the related sections of code of the application to one or more cache line boundaries, the aligning the related sections of the code of the application to the one or more cache line boundaries reducing thrashing with respect to a quantity of thrashing occurring absent aligning the related sections of the code of the application to the one or more cache line boundaries; group, based on aligning the related sections of the code of the application to the one or more cache line boundaries, the related sections of the code of the application to create grouped sections of code; distribute the grouped sections of code to a section of memory; determine one or more particular sections of the grouped sections of code; and perform, based on a size of the section of the memory, an operation on the determined one or more particular sections of the grouped sections of code. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A device comprising:
-
a memory to store instructions; and a processor to execute the instructions to; receive information associated with an application; receive information associated with related sections of code of the application; align the related sections of code of the application to one or more cache line boundaries, the aligning the related sections of the code of the application to the one or more cache line boundaries reducing thrashing with respect to a quantity of thrashing occurring absent aligning the related sections of the code of the application to the one or more cache line boundaries; group, based on aligning the related sections of the code of the application to the one or more cache line boundaries, the related sections of the code of the application to create grouped sections of code; distribute the grouped sections of code to a section of memory; determine one or more particular sections of the grouped sections of code; and perform, based on a size of the section of the memory, an operation on the determined one or more particular sections of the grouped sections of code. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification