Method, apparatus, and computer program product for inter-core communication in multi-core processors
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
exact text as granted — not AI-modifiedWhat is claimed is:
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.Join the waitlist — get patent alerts
Track US8819345B2 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.