IP Library Granted Patent US 9,513,886
Granted Patent B2
US 9,513,886 · App. 14/166,220 · Granted Dec 6, 2016

Heap data management for limited local memory(LLM) multi-core processors

Inventors: Ke Bai (Tempe, AZ); Aviral Shrivastava (Chandler, AZ)
Assignee: Arizona Board of Regents on Behalf of Arizona State University
G06F8/4442G06F12/0862
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,513,886
App. No.
14/166,220
Granted
Dec 6, 2016
Kind
B2
Abstract

A compiler tool-chain may automatically compile an application to execute on a limited local memory (LLM) multi-core processor by including automated heap management transparently to the application. Management of the heap in the LLM for the application may include identifying access attempts to a program variable, transferring the program variable to the LLM, when not already present in the LLM, and returning a local address for the program variable to the application. The application then accesses the program variable using the local address transparently without knowledge about data in the LLM. Thus, the application may execute on a LLM multi-core processor as if the LLM multi-core processor has an unlimited heap space.

Claims (37)

1. A method, comprising:

traversing a plurality of statements in a basic block of an application;

determining whether a statement of the plurality of statements includes a memory reference;

when the statement includes a memory references, inserting a translation statement before the statement;

determining whether the statement includes a reference to variable including a pointer to a pointer; and

when the statement includes a pointer to a pointer, converting the variable to a first new variable and a second new variable, wherein the second new variable is a pointer to the first new variable.

2. The method of claim 1 , in which the translation statement comprises a statement to look up a global address in a heap management data structure.

3. The method of claim 2 , further comprising:

determining whether a heap object pointed to by the global address is present in a limited local memory (LLM); and

when the heap object is not present in the limited local memory (LLM), fetching the heap object from a global memory to the limited local memory (LLM).

4. The method of claim 3 , further comprising returning a local address to the heap object for access to the heap object by the statement.

5. The method of claim 1 , in which the step of converting the variable comprises converting a C statement to a GIMPLE IR statement.

6. A computer program product, comprising:

a non-transitory computer readable medium comprising code to execute the steps comprising:

traversing a plurality of statements in a basic block of an application;

determining whether a statement of the plurality of statements includes a memory reference;

when the statement includes a memory references, inserting a translation statement before the statement;

determining whether the statement includes a reference to variable including a pointer to a pointer; and

when the statement includes a pointer to a pointer, converting the variable to a first new variable and a second new variable, wherein the second new variable is a pointer to the first new variable.

7. The computer program product of claim 6 , in which the translation statement comprises a statement to look up a global address in a heap management data structure.

8. The computer program product of claim 7 , in which the medium further comprises code to execute the steps comprising:

determining whether a heap object pointed to by the global address is present in a limited local memory (LLM); and

when the heap object is not present in the limited local memory (LLM), fetching the heap object from a global memory to the limited local memory (LLM).

9. The computer program product of claim 8 , in which the medium further comprises code to execute the step of returning a local address to the heap object for access to the heap object by the statement.

10. An apparatus, comprising:

a memory; and

a processor coupled to the memory, wherein the processor is configured to execute the steps comprising:

traversing a plurality of statements in a basic block of an application stored in the memory;

determining whether a statement of the plurality of statements includes a memory reference;

when the statement includes a memory references, inserting a translation statement before the statement;

determining whether the statement includes a reference to variable including a pointer to a pointer; and

when the statement includes a pointer to a pointer, converting the variable to a first new variable and a second new variable, wherein the second new variable is a pointer to the first new variable.

11. The apparatus of claim 10 , in which the translation statement comprises a statement look up a global address in a heap management data structure.

12. The apparatus of claim 11 , in which the processor is further configured to execute the steps comprising:

determining whether a heap object pointed to by the global address is present in a limited local memory (LLM); and

when the heap object is not present in the limited local memory (LLM), fetching the heap object from a global memory to the limited local memory (LLM).

13. The apparatus of claim 12 , in which the processor is further configured to execute the step of returning a local address to the heap object for access to the heap object by the statement.

Assignments (2)
CONFIRMATORY LICENSE Recorded Jan 2, 2015
From: ARIZONA BOARD OF REGENTS
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 034719/0251 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2014
From: BAI, KE; SHRIVASTAVA, AVIRAL
To: ARIZONA BOARD OF REGENTS ON BEHALF ARIZONA STATE UNIVERSITY
Reel/Frame 033070/0592 →
Continuity (2)
Provisional Application 61757272 · Jan 28, 2013
Related Publication 20140215192A1 · Jul 31, 2014