IP Library Granted Patent US 8,819,345
Granted Patent B2
US 8,819,345 · App. 13/399,048 · Granted Aug 26, 2014

Method, apparatus, and computer program product for inter-core communication in multi-core processors

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 8,819,345
App. No.
13/399,048
Granted
Aug 26, 2014
Kind
B2
Abstract

Method, apparatus, and computer program product embodiments of the invention are disclosed for efficient communication between processor units in a multi-core processor integrated circuit architecture. In example embodiments of the invention, a method comprises: storing with a shared inter-core communication unit in a multi-core processor, first data produced by a producer processor core, in a first token memory located at a first memory address of a memory address space; and connecting with the shared inter-core communication unit, the first token memory to a consumer processor core of the multi-core processor, to load the first data from the first token memory into the consumer processor core, in response to a first-type command from the producer processor core.

Claims (49)

1. An apparatus, comprising:

at least two processors;

at least one memory including computer program code;

the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to:

store with a shared inter-core communication unit in a multi-core processor, first data produced by a producer processor core, in a first token memory located at a first memory address of a memory address space;

connect with the shared inter-core communication unit, the first token memory to a consumer processor core of the multi-core processor, to load the first data from the first token memory into the consumer processor core, in response to a first-type command from the producer processor core;

connect with the shared inter-core communication unit, an input token memory located at an input token memory address of the memory address space, to the producer processor core of the multi-core processor, to load input data from the first token memory into the producer processor core, in response to a second-type command from the producer processor core;

store with the shared inter-core communication unit, result data produced by the producer processor core from the input data, the result data being the first data stored in the first token memory; and

connect with the shared inter-core communication unit, the first token memory to the consumer processor core of the multi-core processor, to load the result data from the first token memory into the consumer processor core, in response to the first-type command from the producer processor core.

2. The apparatus of claim 1 , further comprising:

the at least one memory and the computer program code configured to, with the at least two processors, cause the apparatus at least to:

store with the shared inter-core communication unit, second result data produced by the consumer processor core from the first said result data, in a second token memory located at a second memory address of the memory address space.

3. The apparatus of claim 2 , further comprising:

the at least one memory and the computer program code configured to, with the at least two processors, cause the apparatus at least to:

connect with the shared inter-core communication unit, the second token memory to the producer processor core of the multi-core processor, to load the second result data from the second token memory as feedback data into the producer processor core, in response to a command from the consumer processor core.

4. The apparatus of claim 2 , further comprising:

the at least one memory and the computer program code configured to, with the at least two processors, cause the apparatus at least to:

connect with a second shared inter-core communication unit of the multi-core processor, the second token memory to a third processor core of the multi-core processor, to load the second result data from the second token memory as pipelined data into the third processor core, in response to a command from the consumer processor core.

5. The apparatus of claim 4 , further comprising:

the at least one memory and the computer program code configured to, with the at least two processors, cause the apparatus at least to:

store with the second shared inter-core communication unit, third result data produced by the third processor core from the second result data, in a third token memory located at a third memory address of the memory address space.

6. A method, comprising:

storing with a shared inter-core communication unit in a multi-core processor, first data produced by a producer processor core, in a first token memory located at a first memory address of a memory address space;

connecting with the shared inter-core communication unit, the first token memory to a consumer processor core of the multi-core processor, to load the first data from the first token memory into the consumer processor core, in response to a first-type command from the producer processor core;

connecting with the shared inter-core communication unit, an input token memory located at an input token memory address of the memory address space, to the producer processor core of the multi-core processor, to load input data from the first token memory into the producer processor core, in response to a second-type command from the producer processor core;

storing with the shared inter-core communication unit, result data produced by the producer processor core from the input data, the result data being the first data stored in the first token memory; and

connecting with the shared inter-core communication unit, the first token memory to the consumer processor core of the multi-core processor, to load the result data from the first token memory into the consumer processor core, in response to the first-type command from the producer processor core.

7. The method of claim 6 , further comprising:

storing with the shared inter-core communication unit, second result data produced by the consumer processor core from the first said result data, in a second token memory located at a second memory address of the memory address space.

8. The method of claim 7 , further comprising:

connecting with the shared inter-core communication unit, the second token memory to the producer processor core of the multi-core processor, to load the second result data from the second token memory as feedback data into the producer processor core, in response to a command from the consumer processor core.

9. The method of claim 7 , further comprising:

connecting with a second shared inter-core communication unit of the multi-core processor, the second token memory to a third processor core of the multi-core processor, to load the second result data from the second token memory as pipelined data into the third processor core, in response to a command from the consumer processor core.

10. The method of claim 9 , further comprising:

storing with the second shared inter-core communication unit, third result data produced by the third processor core from the second result data, in a third token memory located at a third memory address of the memory address space.

11. A computer program product comprising computer executable program code recorded on a computer readable non-transitory storage medium, the computer executable program code, when executed by a computer processor, cause an apparatus to at least perform the following:

storing with a shared inter-core communication unit in a multi-core processor, first data produced by a producer processor core, in a first token memory located at a first memory address of a memory address space;

connecting with the shared inter-core communication unit, the first token memory to a consumer processor core of the multi-core processor, to load the first data from the first token memory into the consumer processor core, in response to a first-type command from the producer processor core;

connecting with the shared inter-core communication unit, an input token memory located at an input token memory address of the memory address space, to the producer processor core of the multi-core processor, to load input data from the first token memory into the producer processor core, in response to a second-type command from the producer processor core;

storing with the shared inter-core communication unit, result data produced by the producer processor core from the input data, the result data being the first data stored in the first token memory; and

connecting with the shared inter-core communication unit, the first token memory to the consumer processor core of the multi-core processor, to load the result data from the first token memory into the consumer processor core, in response to the first-type command from the producer processor core.

12. The computer program product of claim 11 , further comprising computer executable program code recorded on a computer readable non-transitory storage medium, the computer executable program code, when executed by a computer processor, cause an apparatus to at least perform the following:

storing with the shared inter-core communication unit, second result data produced by the consumer processor core from the first said result data, in a second token memory located at a second memory address of the memory address space.

13. The computer program product of claim 12 , further comprising computer executable program code recorded on a computer readable non-transitory storage medium, the computer executable program code, when executed by a computer processor, cause an apparatus to at least perform the following:

connecting with the shared inter-core communication unit, the second token memory to the producer processor core of the multi-core processor, to load the second result data from the second token memory as feedback data into the producer processor core, in response to a command from the consumer processor core.

14. The computer program product of claim 12 , further comprising computer executable program code recorded on a computer readable non-transitory storage medium, the computer executable program code, when executed by a computer processor, cause an apparatus to at least perform the following:

connecting with a second shared inter-core communication unit of the multi-core processor, the second token memory to a third processor core of the multi-core processor, to load the second result data from the second token memory as pipelined data into the third processor core, in response to a command from the consumer processor core.

15. The computer program product of claim 14 , further comprising computer executable program code recorded on a computer readable non-transitory storage medium, the computer executable program code, when executed by a computer processor, cause an apparatus to at least perform the following:

storing with the second shared inter-core communication unit, third result data produced by the third processor core from the second result data, in a third token memory located at a third memory address of the memory address space.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035258/0075 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2012
From: ZETTERMAN, TOMMI JUHANI; RAISKILA, KALLE AUGUST; HIRVOLA, HARRI
To: NOKIA CORPORATION
Reel/Frame 027820/0390 →