IP Library Granted Patent US 10,078,593
Granted Patent B2
US 10,078,593 · App. 14/354,502 · Granted Sep 18, 2018

Multiple-core computer processor for reverse time migration

Inventors: John Shalf (Oakland, CA); David Donofrio (San Francisco, CA); Leonid Oliker (San Francisco, CA); Jens Kruger (Ravensburg, DE); Samuel Williams (San Ramon, CA)
Assignee: THE REGENTS OF THE UNIVERSITY OF CALIFORNIA
G06F12/0842G06F15/7825Y02D10/12Y02D10/13
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 10,078,593
App. No.
14/354,502
Granted
Sep 18, 2018
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, wherein at least one of a number of the processor cores, a size of each of the plurality of caches, or a size of each of the plurality of memories is configured for performing a reverse-time-migration (RTM) computation.

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 automatically-managed L1 caches, each of the plurality of caches being associated with one and only one of the plurality of processor cores; and

a plurality of software-managed L1 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 logically partitioned global memory address space such that the plurality of memories are visible to two or more of the plurality of processor cores, wherein each logical partition comprises an address space corresponding to one of the plurality of memories, and wherein each of the plurality of processor cores has a one-to-one relationship with a different locality-encoded, non-virtualized address range to a corresponding logical partition, and

wherein at least one of a number of the plurality of processor cores, a size of each of the plurality of caches, or a size of each of the plurality of memories is selected to optimize a reverse-time-migration (RTM) computation.

2. The multi-core computer processor of claim 1 , further comprising 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.

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 the number of the plurality of processor cores is approximately 128.

9. The multi-core computer processor of claim 1 , wherein the size of each of the plurality of caches is 16 kilobytes.

10. The multi-core computer processor of claim 1 , wherein the size of each of the plurality of memories is 256 kilobytes.

11. The multi-core computer processor of claim 1 , wherein each of the plurality of processor cores comprises a private 8-kilobyte instruction cache memory.

12. The multi-core computer processor of claim 1 , wherein each of the plurality of processor cores comprises a L2 instruction cache memory that is shared among at least one other of the plurality of processor cores.

13. The multi-core computer processor of claim 1 , wherein each of the plurality of processor cores is configured to be able to compute two single-precision floating-point operations per clock cycle of the multi-core computer processor.

14. The multi-core computer processor of claim 13 , wherein each of the plurality of processor cores is configured to execute very long instruction word (VLIW) instructions on a plurality of execution units.

15. The multi-core computer processor of claim 14 , wherein each of the plurality of processor cores is configured to execute 64-bit wide instructions.

16. The multi-core computer processor of claim 1 , wherein at least one of a number of the processor cores, a size of each of the plurality of caches, or a size of each of the plurality of memories is configured for modeling a wave equation of the reverse-time-migration (RTM) computation.

17. The multi-core computer processor of claim 1 , wherein at least one of a number of the processor cores, a size of each of the plurality of caches, or a size of each of the plurality of memories is configured for modeling a wave equation of the reverse-time-migration (RTM) computation via an 8th or 12th order Laplacian stencil.

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

determining at least one of a number of a plurality of processor cores, a size of each of a plurality of caches, or a size of each of a plurality of memories that optimize a reverse-time-migration (RTM) computation;

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

storing memory data in at least one of the 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 logically partitioned global memory address space such that the plurality of memories are visible to two or more of the plurality of processor cores, wherein each logical partition comprises an address space corresponding to one of the plurality of memories, and wherein each of the plurality of processor cores has a one-to-one relationship with a different locality-encoded, non-virtualized address range to a corresponding logical partition; 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.

19. The method of claim 18 , wherein the number of the plurality of processor cores is approximately 128.

20. The method of claim 18 , wherein the size of each of the plurality of caches is 16 kilobytes.

21. The method of claim 18 , wherein the size of each of the plurality of memories is 256 kilobytes.

22. 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 has a one-to-one relationship with a different locality-encoded, non-virtualized address range to a corresponding logical partition,

wherein at least one of a number of the plurality of processor cores, a size of each of the plurality of caches, or a size of each of the plurality of memories is selected to optimize a reverse-time-migration (RTM) computation, and wherein the number of cores is selected to saturate the off-chip memory bandwidth.

Assignments (5)
CONFIRMATORY LICENSE Recorded Nov 18, 2014
From: REGENTS OF THE UNIVERSITY OF CALIFORNIA, THE
To: ENERGY, UNITED STATES DEPARTMENT OF
Reel/Frame 034369/0667 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2014
From: KRÜGER, JENS
To: FRAUNHOFER-GESELLSCHAFT ZUR FÖRDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
Reel/Frame 033947/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2014
From: SHALF, JOHN; DONOFRIO, DAVID; OLIKER, LEONID; WILLIAMS, SAMUEL
To: THE REGENTS OF THE UNIVERSITY OF CALIFORNIA
Reel/Frame 033947/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2014
From: KRUGER, JENS
To: FRAUNHOFER-GESELLSCHAFT (ANGEWANDTEN FORSCHUNG)
Reel/Frame 033862/0688 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2014
From: SHALF, JOHN; DONOFRIO, DAVID; OLIKER, LEONID; WILLIAMS, SAMUEL
To: THE REGENTS OF THE UNIVERSITY OF CALIFORNIA
Reel/Frame 033862/0742 →
Continuity (2)
Provisional Application 61553007 · Oct 28, 2011
Related Publication 20140310467A1 · Oct 16, 2014