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

US9513886B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9513886-B2
Application numberUS-201414166220-A
CountryUS
Kind codeB2
Filing dateJan 28, 2014
Priority dateJan 28, 2013
Publication dateDec 6, 2016
Grant dateDec 6, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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.

Assignees

Inventors

Classifications

  • G06F8/4442Primary

    Reducing the number of cache misses; Data prefetching (cache prefetching G06F12/0862) · CPC title

  • with prefetch · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9513886B2 cover?
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 LL…
Who is the assignee on this patent?
Bai Ke, Shrivastava Aviral, Univ Arizona State
What technology area does this patent fall under?
Primary CPC classification G06F8/4442. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 06 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).