IP Library Granted Patent US 9,448,940
Granted Patent B2
US 9,448,940 · App. 14/354,257 · Granted Sep 20, 2016

Multiple core computer processor with globally-accessible local memories

Inventors: John Shalf (Oakland, CA); David Donofrio (San Francisco, CA); Leonid Oliker (San Francisco, CA)
Assignee: The Regents of the University of California
G06F12/0842G06F12/0811G06F12/0813G06F12/0815G06F12/0833G06F2212/621Y02B60/1225
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,448,940
App. No.
14/354,257
Granted
Sep 20, 2016
Kind
B2
Abstract

A multi-core computer processor including a plurality of processor cores interconnected in a Network-on-Chip (NoC) architecture, a plurality of caches, each of the plurality of caches being associated with one and only one of the plurality of processor cores, and a plurality of memories, each of the plurality of memories being associated with a different set of at least one of the plurality of processor cores and each of the plurality of memories being configured to be visible in a global memory address space such that the plurality of memories are visible to two or more of the plurality of processor cores.

Claims (34)

1. A multi-core computer processor comprising:

a plurality of processor cores interconnected in a Network-on-Chip (NoC) architecture;

a plurality of caches, each of the plurality of caches being associated with one and only one of the plurality of processor cores; and

a plurality of memories, each of the plurality of memories being associated with a different set of at least one of the plurality of processor cores and each of the plurality of memories being configured to be visible in a global memory address space such that the plurality of memories are visible to two or more of the plurality of processor cores, and wherein each of the plurality of processor cores being configured to be able to address a main memory visible in the global memory address space via its respective cache memory.

2. The multi-core computer processor of claim 1 , wherein an independent control plane is configured to designate an order of transmission for specially identified messages, wherein the specially identified messages are received in the order and indicate synchronization information.

3. The multi-core computer processor of claim 1 , wherein the plurality of memories comprises a plurality of local scratch pad memories.

4. The multi-core computer processor of claim 1 , wherein the plurality of memories comprises a plurality of L1 memories.

5. The multi-core computer processor of claim 1 , wherein the plurality of memories comprises a plurality of L2 memories.

6. The multi-core computer processor of claim 1 , wherein the plurality of memories is software-managed and the plurality of caches is automatically managed.

7. The multi-core computer processor of claim 1 , wherein each of the plurality of memories is associated with one and only one of the plurality of processor cores.

8. The multi-core computer processor of claim 1 , wherein each of the plurality of memories are physically separate and located in a different location.

9. The multi-core computer processor of claim 1 , wherein each of the plurality of processor cores is configured to be able to address two or more of the plurality of memories via an asynchronous direct memory access (DMA) mechanism that allows a data copy to be transmitted directly from the memory of the processor core to a memory of another processor core.

10. The multi-core computer processor of claim 1 , wherein each of the plurality of processor cores is configured to be able to address a main memory via an asynchronous direct memory access (DMA) mechanism that allows a data copy to be transmitted directly from the memory of the processor core to the main memory.

11. The multi-core computer processor of claim 1 , wherein each of the plurality of processor cores comprises at least one register and a message queue, wherein data in a register of any of the plurality of processor cores can be transmitted to a message queue of any other of the plurality of processor cores, wherein the any other of the plurality of processor cores is a receiving core.

12. The multi-core computer processor of claim 11 , wherein the receiving core is configured to be able to read the message queue of the receiving core.

13. The multi-core computer processor of claim 11 , wherein the receiving core is configured to indicate that the receiving core has received the data and is configured to indicate a number of data items in the message queue of the receiving core.

14. The multi-core computer processor of claim 13 , wherein indicating by the receiving core is interrupt-driven, wherein the receiving core is configured to be interrupted when the receiving core receives the data.

15. The multi-core computer processor of claim 13 , wherein indicating by the receiving core is polled, wherein the receiving core is configured to be able to determine when to check for availability of the data in the message queue of the receiving core.

16. The multi-core computer processor of claim 1 , wherein the caches are at least one of coherent, not coherent, or part of a coherence domain.

17. A multi-core computer processor comprising:

a plurality of processor cores interconnected in a Network-on-Chip (NoC) architecture;

a plurality of caches, each of the plurality of caches being associated with one and only one of the plurality of processor cores;

a plurality of memories, each of the plurality of memories being associated with a different set of at least one of the plurality of processor cores and each of the plurality of memories being configured to be visible in a global memory address space such that the plurality of memories are visible to two or more of the plurality of processor cores; and

an independent control plane comprising direct message queues between the processor cores, wherein the independent control plane is configured to perform synchronization and enforce memory consistency between the plurality of memories.

18. A method of using a multi-core computer processor, the method comprising:

storing cache data in at least one of a plurality of caches, each of the plurality of caches being associated with one and only one of a plurality of processor cores interconnected in a Network-on-Chip (NoC) architecture;

storing memory data in at least one of a plurality of memories, the plurality of memories supporting Partitioned Global Address Space (PGAS), each of the plurality of memories being associated with a different set of at least one of the plurality of processor cores and each of the plurality of memories being configured to be visible in a global memory address space such that the plurality of memories are visible to two or more of the plurality of processor cores; and

retrieving, by a first processor core of the plurality of processor cores associated with a first memory of the plurality of memories, at least a portion of the memory data, wherein the at least a portion of the memory data is stored in a second memory of the plurality of memories associated with a second processor core of the plurality of processor cores, the second processor core being different from the first processor core and the first memory being different from the second memory, wherein both the first memory and the second memory are physically separate and located at different locations and addressable by both the first processor core and the second processor core via the global memory address space.

19. A processor core comprising:

a common carrier substrate;

a plurality of processor cores on the common carrier substrate; and

a plurality of memories on the common carrier substrate, the plurality of memories supporting Partitioned Global Address Space (PGAS), each of the plurality of memories being associated with a different set of at least one of the plurality of processor cores and each of the plurality of memories assigned an address space of a global memory address, wherein the assigned address space is indicative of a physical locality on the common carrier substrate, wherein the global memory address space is a partitioned 64-bit global address space where a difference in address spaces corresponds to relative physical distances between the respective memories.

20. The processor core of claim 19 , wherein the memories that are spatially close to one another have correspondingly numerically close address spaces.

21. The processor core of claim 19 , wherein each of the plurality of processor cores is configured to be able to address two or more of the plurality of memories.

Assignments (3)
CONFIRMATORY LICENSE Recorded Oct 15, 2019
From: UNIVERSITY OF CALIF-LAWRENC BERKELEY LAB
To: UNITED STATES DEPARTMENT OF ENERGY
Reel/Frame 050721/0117 →
CONFIRMATORY LICENSE Recorded Nov 18, 2014
From: REGENTS OF THE UNIVERSITY OF CALIFORNIA, THE
To: ENERGY, UNITED STATES DEPARTMENT OF
Reel/Frame 034385/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2014
From: SHALF, JOHN; DONOFRIO, DAVID; OLIKER, LEONID
To: THE REGENTS OF THE UNIVERSITY OF CALIFORNIA
Reel/Frame 033177/0913 →
Continuity (2)
Provisional Application 61552901 · Oct 28, 2011
Related Publication 20140281243A1 · Sep 18, 2014