Data placement for execution of an executable
First Claim
1. A method for a compiler to produce an executable module to be executed by a computer system including a main processor and active memory devices, the method comprising:
- dividing source code into code sections;
identifying a first code section to be executed by the active memory devices, wherein the first code section is one of the code sections;
identifying data structures that are used by the first code section;
classifying the data structures based on pre-defined attributes;
formulating, by the compiler, a storage mapping plan for the data structures based on the classifying, the storage mapping plan for the data structures being related to a first active memory device and a second active memory device; and
generating, by the compiler, mapping code that implements the storage mapping plan, wherein the mapping code is part of the executable module and wherein the mapping code maps storing of the data structures to storage locations in the active memory devices;
wherein generating, by the compiler, mapping code that implements the storage mapping plan comprises generating mapping code that maps a first data structure to a first active memory device at a first time during runtime, the data structures including the first data structure and the active memory devices including the first active memory device;
wherein the first active memory device is hardware comprising a first memory vault and a first processing element;
wherein the second active memory device is hardware comprising a second memory vault and a second processing element.
1 Assignment
0 Petitions
Accused Products
Abstract
According to one embodiment, a method for a compiler to produce an executable module to be executed by a computer system including a main processor and active memory devices includes dividing source code into code sections, identifying a first code section to be executed by the active memory devices, wherein the first code section is one of the code sections and identifying data structures that are used by the first code section. The method also includes classifying the data structures based on pre-defined attributes, formulating, by the compiler, a storage mapping plan for the data structures based on the classifying and generating, by the compiler, mapping code that implements the storage mapping plan, wherein the mapping code is part of the executable module and wherein the mapping code maps storing of the data structures to storage locations in the active memory devices.
-
Citations
18 Claims
-
1. A method for a compiler to produce an executable module to be executed by a computer system including a main processor and active memory devices, the method comprising:
-
dividing source code into code sections; identifying a first code section to be executed by the active memory devices, wherein the first code section is one of the code sections; identifying data structures that are used by the first code section; classifying the data structures based on pre-defined attributes; formulating, by the compiler, a storage mapping plan for the data structures based on the classifying, the storage mapping plan for the data structures being related to a first active memory device and a second active memory device; and generating, by the compiler, mapping code that implements the storage mapping plan, wherein the mapping code is part of the executable module and wherein the mapping code maps storing of the data structures to storage locations in the active memory devices; wherein generating, by the compiler, mapping code that implements the storage mapping plan comprises generating mapping code that maps a first data structure to a first active memory device at a first time during runtime, the data structures including the first data structure and the active memory devices including the first active memory device; wherein the first active memory device is hardware comprising a first memory vault and a first processing element; wherein the second active memory device is hardware comprising a second memory vault and a second processing element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for distributing data in memory for execution of an executable module by a computer system including a main processor and active memory devices, the method comprising:
-
receiving an executable generated by a compiler, wherein the executable comprises mapping code that implements mapping of data structures used by the executable to physical memory; determining storage locations in the active memory devices for the data structures based on the mapping code, the mapping code for the data structures being related to a first active memory device and a second active memory device; and executing the mapping code, by the main processor, to call a function in an operating system that maps the data structures to the storage locations in the active memory, wherein the mapping code organizes mapping of the data structures based on pre-defined attributes; wherein executing the mapping code comprises executing the mapping code that maps a first data structure to a corresponding first active memory device at a first time during runtime, the data structures including the first data structure and the active memory devices including the first active memory device; wherein the first active memory device is hardware comprising a first memory vault and a first processing element; wherein the second active memory device is hardware comprising a second memory vault and a second processing element. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification