Compiler-based critical section amendment for a multiprocessor environment
First Claim
Patent Images
1. A method comprising:
- identifying data structures in source code that reference multiple instances of related data for an application in a multiprocessor, cache coherent system comprising multiple processors;
searching the source code to identify a synchronization command referencing the related data; and
compiling the source code to generate an executable program wherein the identified synchronization command for the related data is excluded when generating the executable program if the executable program dedicates all processing of the related data to a single one of the multiple processors in the system.
2 Assignments
0 Petitions
Accused Products
Abstract
Source code includes a directive to indicate data structures of related data to a compiler. The compiler associates the related data to the same one of multiple processors in a multiprocessor environment. The compiler searches the source code for locks associated with the related data, and generates executable code that is modified with respect to locks written in the source code. The compiler may replace or remove locks written in the source code to protect access to the related data, resulting in an executable program that does not include the locks.
26 Citations
20 Claims
-
1. A method comprising:
-
identifying data structures in source code that reference multiple instances of related data for an application in a multiprocessor, cache coherent system comprising multiple processors; searching the source code to identify a synchronization command referencing the related data; and compiling the source code to generate an executable program wherein the identified synchronization command for the related data is excluded when generating the executable program if the executable program dedicates all processing of the related data to a single one of the multiple processors in the system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An article of manufacture comprising a machine-accessible medium having content to provide instructions to result in an electronic device performing operations including:
-
identifying a data structure in source code indicated by a pragma directive, the data structure to represent separate a data flow for a multiprocessor, cache coherent system comprising multiple processors; locating a critical section in the source code related to the identified data flow; and compiling the source code to remove the located critical section and generate binary code from the source code, the binary code excluding the removed critical section if the binary code dedicates all processing of the related data to a single one of the multiple processors in the system. - View Dependent Claims (11, 12, 13)
-
-
14. A system comprising:
-
an article of manufacture comprising a machine-accessible medium having content to provide instructions to result in an electronic device performing operations including pre-processing source code to mark a data structure in source code indicated by a pre-processing directive to identify related data for a multiprocessor, cache coherent system comprising multiple processors, and to locate a lock in the source code that references the related data, and compiling the source code to generate an executable program that lacks the lock, wherein the lock is excluded when generating the executable program if the executable program dedicates all processing of the related data to a single one of the multiple processors in the system; an interface to receive the article of manufacture and access the content on the machine-accessible medium; and a dynamic random access memory (DRAM) coupled to the interface to receive the accessed content from the interface and store the instructions for performing the operations. - View Dependent Claims (15, 16)
-
-
17. An apparatus comprising:
-
a memory having data to define operations including identifying a data flow in source code marked by a programming language extension, the source code for an application for a multiprocessor, comprising multiple processors, searching the source code to identify a cache line lock for the data flow, and compiling the source code to generate an executable program that excludes the identified cache line lock, wherein the identified cache line lock is excluded when generating the executable program if the executable program dedicates all processing of the related data to a single one of the multiple processors in the system; and a processor coupled to the memory to execute the defined operations. - View Dependent Claims (18, 19, 20)
-
Specification