Dynamic address negotiation for shared memory regions in heterogenous multiprocessor systems

US9311011B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9311011-B2
Application numberUS-201313961085-A
CountryUS
Kind codeB2
Filing dateAug 7, 2013
Priority dateAug 7, 2013
Publication dateApr 12, 2016
Grant dateApr 12, 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.

Mobile computing devices may be configured to compile and execute portions of a general purpose software application in an auxiliary processor (e.g., a DSP) of a multiprocessor system by reading and writing information to a shared memory. A first process (P1) on the applications processor may request address negotiation with a second process (P2) on the auxiliary processor, obtain a first address map from a first operating system, and send the first address map to the auxiliary processor. The second process (P2) may receive the first address map, obtain a second address map from a second operating system, identify matching addresses in the first and second address maps, store the matching addresses as common virtual addresses, and send the common virtual addresses back to the applications processor. The first and second processes (i.e., P1 and P2) may each use the common virtual addresses to map physical pages to the memory.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of providing access to a shared memory region of a multiprocessor computing device having a first processing core and a second processing core, the method comprising: requesting, by a first process in the first processing core, address negotiation with a second process in the second processing core; obtaining a first address map of the first process in the first processing core in response to requesting address negotiation with the second process in the second processing core; sending the first address map to the second processing core so as to cause the second processing core to obtain a second address map of the second process in the second processing core; receiving a common virtual address in the first processing core in response to sending the first address map to the second processing core, the received common virtual address including an address included in both the first address map of the first process and the second address map of the second process; storing the received common virtual address as a first attribute of the shared memory region inside a first operating system kernel of the first processing core; and mapping the shared memory region at the received common virtual address of the first process. 2. The method of claim 1 , further comprising: performing address matching operations in the second processing core to determine whether the first and second address maps include a matching virtual address; storing the matching virtual address as the common virtual address and as a second attribute of the shared memory region of a second operating system kernel of the second processing core; sending the common virtual address to the first processing core; and mapping physical pages of the shared memory region at the common virtual address for the second process in the second processing core. 3. The method of claim 2 , wherein each of the first and second processing cores includes a hardware memory management unit (MMU). 4. The method of claim 2 , wherein receiving the first address map in the second processing core comprises receiving the first address map in an address negotiation handler thread of the second processing core. 5. A multiprocessor computing device, comprising: means for requesting by a first process in a first processing core address negotiation with a second process in a second processing core; means for obtaining a first address map of the first process in the first processing core in response to requesting address negotiation with the second process in the second processing core; means for sending the first address map to the second processing core so as to cause the second processing core to obtain a second address map of the second process in the second processing core; means for receiving a common virtual address in the first processing core in response to sending the first address map to the second processing core, the received common virtual address including an address included in both the first address map of the first process and the second address map of the second process; means for storing the received common virtual address as a first attribute of a shared memory region inside a first operating system kernel of the first processing core; and means for mapping the shared memory region at the received common virtual address of the first process. 6. The multiprocessor computing device of claim 5 , further comprising means for performing address matching operations in the second processing core to determine whether the first and second address maps include a matching virtual address; means for storing the matching virtual address as the common virtual address and as a second attribute of the shared memory region of a second operating system kernel of the second processing core; means for sending the common virtual address to the first processing core; and means for mapping physical pages of the shared memory region at the common virtual address for the second process in the second processing core. 7. The multiprocessor computing device of claim 6 , wherein means for receiving the first address map in the second processing core comprises means for receiving the first address map in an address negotiation handler thread of the second processing core. 8. A multiprocessor computing device, comprising: a first processing core; a second processing core; and a shared memory region coupled to the first and second processing cores, wherein the first processing core is configured with processor-executable instructions to perform operations comprising: requesting by a first process address negotiation with a second process in the second processing core; obtaining a first address map of the first process in response to requesting address negotiation with the second process in the second processing core; sending the first address map to the second processing core so as to cause the second processing core to obtain a second address map of the second process in the second processing core; receiving a common virtual address in response to sending the first address map to the second processing core, the received common virtual address including an address included in both the first address map of the first process and the second address map of the second process; storing the received common virtual address as a first attribute of the shared memory region inside a first operating system kernel; and mapping the shared memory region at the received common virtual address of the first process. 9. The multiprocessor computing device of claim 8 , wherein the second processing core is configured with processor-executable instructions to perform operations comprising: performing address matching operations to determine whether the first and second address maps include a matching virtual address; storing the matching virtual address as the common virtual address and as a second attribute of the shared memory region of a second operating system kernel; sending the common virtual address to the first processing core; and mapping physical pages of the shared memory region at the common virtual address for the second process. 10. The multiprocessor computing device of claim 9 , wherein each of the first and second processing cores includes a hardware memory management unit (MMU). 11. The multiprocessor computing device of claim 9 , wherein the second processing core is configured with processor-executable instructions to perform operations such that receiving the first address map comprises receiving the first address map in an address negotiation handler thread. 12. A non-transitory computer readable storage medium having stored thereon processor-executable software instructions configured to cause a first processing core of a multiprocessor computing device to perform operations comprising: requesting by a first process address negotiation with a second process in a second processing core of the multiprocessor computing device; obtaining a first address map of the first process in response to requesting address negotiation with the second process in the second processing core; sending the first address map to the second processing core so as to cause the second processing core to obtain a second address map of the second process in the second processing core; receiving a common virtual address in response to sending the first address map to the second processing core, the received common virtual address including an address included in both the first address map of the first process and the second address map of the second process; storing the received common virtual address as a first att

Assignees

Inventors

Classifications

  • G06F3/0638Primary

    Organizing or formatting or addressing of data · CPC title

  • Free address space management · CPC title

  • G06F9/544Primary

    Buffers; Shared memory; Pipes · CPC title

  • In-line storage system · CPC title

  • in relation to throughput · 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 US9311011B2 cover?
Mobile computing devices may be configured to compile and execute portions of a general purpose software application in an auxiliary processor (e.g., a DSP) of a multiprocessor system by reading and writing information to a shared memory. A first process (P1) on the applications processor may request address negotiation with a second process (P2) on the auxiliary processor, obtain a first addre…
Who is the assignee on this patent?
Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0638. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 12 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).