Aliasing buffers
First Claim
1. At a computer system including a plurality of processors and system memory, the plurality of processors including a first processor type and a second different processor type, the runtime environment for the second different processor type disallowing aliasing of physical data buffers, a method for aliasing a buffer, the method comprising:
- accessing a program, the program including source code configured for mixed execution on the first processor type and the second different processor type, the source code defining a physical buffer, the source code also including aliasing instructions for logically accessing the physical buffer through a plurality of logical views, each logical view corresponding to a subset of data in the physical buffer, at least one portion of the source code containing the aliasing instructions targeted for execution in the runtime environment for the second different processor type disallowing aliasing of physical data buffers;
converting the at least one portion of source code into second code for the second different processor type, the second code defining a level of indirection between the logical buffer access and the physical buffer;
configuring execution of the second code within the runtime environment of the second different processor type to bind logical buffer access to the physical buffer using the defined level of indirection; and
using the defined level of indirection to bind the logical buffer access to the physical buffer during execution of the second code.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for aliasing buffers. Embodiment of the inventions supporting buffer aliasing through introduction of a level of indirection between a source program'"'"'s buffer accesses and the target executable physical buffers, and binding the logical buffer accesses to actual physical buffer accesses at runtime. A variety of techniques for can be used supporting runtime aliasing of buffers, in a system which otherwise disallows such runtime aliasing between separately defined buffers in the target executable code. Binding of logical buffer accesses in the source program to the actual physical buffers defined in the target executable code is delayed until runtime.
-
Citations
20 Claims
-
1. At a computer system including a plurality of processors and system memory, the plurality of processors including a first processor type and a second different processor type, the runtime environment for the second different processor type disallowing aliasing of physical data buffers, a method for aliasing a buffer, the method comprising:
-
accessing a program, the program including source code configured for mixed execution on the first processor type and the second different processor type, the source code defining a physical buffer, the source code also including aliasing instructions for logically accessing the physical buffer through a plurality of logical views, each logical view corresponding to a subset of data in the physical buffer, at least one portion of the source code containing the aliasing instructions targeted for execution in the runtime environment for the second different processor type disallowing aliasing of physical data buffers; converting the at least one portion of source code into second code for the second different processor type, the second code defining a level of indirection between the logical buffer access and the physical buffer; configuring execution of the second code within the runtime environment of the second different processor type to bind logical buffer access to the physical buffer using the defined level of indirection; and using the defined level of indirection to bind the logical buffer access to the physical buffer during execution of the second code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. At a computer system including a plurality of processors and system memory, the plurality of processors including a first processor type and a second different processor type, the runtime environment for the second different processor type disallowing aliasing of physical data buffers, a method for aliasing a buffer, the method comprising:
-
accessing a program, the program including source code configured for mixed execution on the first processor type and the second different processor type, the source code defining a physical buffer, the source code also including aliasing instructions for logically accessing the physical buffer through a plurality of logical views, each logical view corresponding to a subset of data in the physical buffer, at least one portion of the source code containing the aliasing instructions targeted for execution in the runtime environment for the second different processor type disallowing aliasing of physical data buffers; converting the at least one portion of source code into second code for the second different processor type, the second code defining dynamic tags that provide a level of indirection between the logical buffer access and the physical buffer access; analyzing the second code to create a mapping between the logical buffer access and the physical buffer access; configuring execution of the second code within the runtime environment of the second different processor type to bind logical buffer access to the physical buffer using dynamic tags; and using the dynamic tags to multiplex the logical buffer access to the physical buffer during execution of the second code. - View Dependent Claims (12, 13, 14, 15)
-
-
16. At a computer system including a plurality of processors and system memory, the plurality of processors including a first processor type and a second different processor type, the runtime environment for the second different processor type disallowing aliasing of physical data buffers, a method for aliasing a buffer, the method comprising:
-
accessing a program, the program including source code configured for mixed execution on the first processor type and the second different processor type, the source code defining a physical buffer, the source code also including aliasing instructions for logically accessing the physical buffer through a plurality of logical views, each logical view corresponding to a subset of data in the physical buffer, at least one portion of the source code containing the aliasing instructions targeted for execution in the runtime environment for the second different processor type disallowing aliasing of physical data buffers; converting the at least one portion of source code into second code for the second different processor type, the second code defining an abstract interface that provides a level of indirection between the logical buffer access and the physical buffer access; configuring execution of the second code within the runtime environment of the second different processor type to bind logical buffer access to the physical buffer using a concrete implementation of the defined abstract interface; and dynamically linking the abstract interface to the concrete implementation during execution of the second code to facilitate physical buffer access. - View Dependent Claims (17, 18, 19, 20)
-
Specification