IP Library Granted Patent US 8,904,114
Granted Patent B2
US 8,904,114 · App. 12/624,833 · Granted Dec 2, 2014

Shared upper level cache architecture

Inventor: Ezekiel Kruglick (Poway, CA)
Assignee: Empire Technology Development LLC
G06F12/084
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,904,114
App. No.
12/624,833
Granted
Dec 2, 2014
Kind
B2
Abstract

Various implementations of shared upper level cache architectures for multi-core processors including a first subset of processor cores and a second subset of processor cores and a module configured to copy data from a first shared upper level cache memory to a second shared upper level cache memory are generally disclosed.

Claims (64)

1. An apparatus to implement a shared cache architecture, the apparatus comprising:

a multi-core processor comprising a first subset of processor cores and a second subset of processor cores;

a first shared cache memory coupled to the first subset of processor cores and configured to be accessible to the first subset of processor cores;

a second shared cache memory coupled to the second set of processor cores and configured to be accessible to the second subset of processor cores; and

a module coupled to the first shared cache memory and the second shared cache memory and configured to;

access data stored in a first subset of one or more memory locations in the first shared cache memory wherein the data is to be accessed by one or more of the first subset of processor cores and one or more of the second subset of processor cores;

mirror the data;

store the mirrored data in a second subset of one or more memory locations in the second shared cache memory; and

update the mirrored data responsive to modification of the mirrored data by any of the first subset of processor cores and/or the second subset of processor cores,

wherein the first subset of processor cores includes different processor cores than the second subset of processor cores.

2. The apparatus of claim 1 , wherein the multi-core processor includes a third subset of processor cores, the apparatus further comprising:

a third shared cache memory coupled to the third subset of processor cores and configured to be accessible to the third subset of processor cores,

wherein the third subset of processor cores includes different processor cores than the first subset of processor cores and the second subset of processor cores.

3. The apparatus of claim 1 , wherein the first shared cache memory comprises cache memory adjacent to the first subset of processor cores, and

wherein the second shared cache memory comprises cache memory adjacent to the second subset of processor cores.

4. The apparatus of claim 1 , wherein the first shared cache memory comprises cache memory having closer physical proximity to the first subset of processor cores than to the second subset of processor cores.

5. The apparatus of claim 1 , further comprising:

main memory coupled to the first and second subsets of processor cores and configured to be accessible to both the first subset of processor cores and the second subset of processor cores.

6. The apparatus of claim 1 , further comprising:

a first plurality of low level cache memories, each low level cache memory of the first plurality of low level cache memories coupled to and associated with a different processor core of the first subset of processor cores.

7. The apparatus of claim 6 , further comprising:

a second plurality of low level cache memories, each low level cache memory of the second plurality of low level cache memories coupled to and associated with a different processor core of the second subset of the processor cores.

8. The apparatus of claim 1 , wherein the multi-core processor, the first shared cache memory and the second shared cache memory are formed on a semiconductor die.

9. The apparatus of claim 1 , wherein the first shared cache memory is further configured to not be accessible to the second subset of processor cores and the second shared cache memory is further configured to not be accessible to the first subset of processor cores.

10. A method to share cache memory by processor cores of a multi-core processor, the method comprising:

accessing a first shared cache memory by one or more processor cores of a first plurality of processor cores;

accessing a second shared cache memory by one or more processor cores of a second plurality of processor cores;

accessing data from the first shared cache memory by a module;

mirroring the data by the module;

storing the mirrored data in the second shared cache memory by the module based at least in part in response to the data being written to the first shared cache memory by one or more processor cores of the first plurality of processor cores; and

accessing the mirrored data by one or more processor cores of the second plurality of processor cores,

wherein the first plurality of processor cores includes different processor cores than the second plurality of processor cores.

11. The method of claim 10 , further comprising:

accessing a third shared cache memory by one or more processor cores of a third plurality of processor cores,

wherein the third plurality of processor cores includes different processor cores than the first plurality of processor cores and the second plurality of processor cores.

12. The method of claim 10 , further comprising:

accessing a first local cache memory by a first processor core of the first plurality of processor cores; and

accessing a second local cache memory by a second processor core of the first plurality of processor cores.

13. A shared cache system, the system comprising:

a multi-core processor comprising a first subset of processor cores and a second subset of processor cores;

a first shared cache memory coupled to the first subset of processor cores and configured to be accessible to the first subset of processor cores;

a second shared cache memory coupled to the second set of processor cores and configured to be accessible to the second subset of processor cores; and

a module coupled to the first shared cache memory and the second shared cache memory and configured to:

access data from the first shared cache memory;

provide duplicate copies of the data to both the first shared cache memory and the second shared cache memory; and

update the copied data in the first shared cache memory and the second shared cache memory responsive to modification of the data by any of the first subset of processor cores or the second subset of processor cores.

14. The system of claim 13 , wherein the multi-core processor includes a third subset of processor cores, the system further comprising:

a third shared cache memory coupled to the third subset of processor cores and configured to be accessible to the third subset of processor cores.

15. The system of claim 13 , wherein the first shared cache memory comprises cache memory adjacent to the first subset of processor cores, and

wherein the second shared cache memory comprises cache memory adjacent to the second subset of processor cores.

16. The system of claim 13 , wherein the first shared cache memory comprises cache memory having closer physical proximity to the first subset of processor cores than to the second subset of processor cores.

17. The system of claim 13 , wherein the multi-core processor, the plurality of local cache memories, the first shared cache memory and the second shared cache memory are formed on a semiconductor die.

18. The system of claim 13 , wherein the first shared cache memory is further configured to not be accessible to the second subset of processor cores and the second shared cache memory is further configured to not be accessible to the first subset of processor cores.

19. An article, comprising:

a non-transitory computer program product including instructions stored therein that, if executed, result in:

accessing a first shared cache memory by one or more processor cores of a first plurality of processor cores;

accessing a second shared cache memory by one or more processor cores of a second plurality of processor cores;

accessing data from the first shared cache memory by a module;

mirroring the data by the module; and

storing the mirrored data in the second shared cache memory by the module based at least in part in response to the data being written to the first shared cache memory by the first plurality of processor cores,

wherein the first plurality of processor cores includes different processor cores than the second plurality of processor cores.

20. The article of claim 19 , wherein the non-transitory computer program product further includes instructions stored therein that, if executed, result in:

accessing a third shared cache memory by one or more processor cores of a third plurality of processor cores, wherein the third plurality of processor cores includes different processor cores than the first plurality of processor cores and the second plurality of processor cores.

21. The article of claim 20 , wherein the non-transitory computer program product further includes instructions stored therein that, if executed, result in storing the mirrored data in the third shared cache memory.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019 AT REEL 048373 FRAME 0217 Recorded Sep 22, 2025
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 072936/0464 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ATTESTATION REGARDING ASSIGNMENT Recorded Apr 27, 2012
From: GLITTER TECHNOLOGY LLP
To: INTELLECTUAL VENTURES ASIA PTE. LTD.
Reel/Frame 028117/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2012
From: INTELLECTUAL VENTURES ASIA PTE. LTD.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 028119/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2009
From: KRUGLICK, EZEKIEL
To: ARDENT RESEARCH CORPORATION
Reel/Frame 023567/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2009
From: ARDENT RESEARCH CORPORATION
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC; GLITTER TECHNOLOGY LLP
Reel/Frame 023567/0475 →
Continuity (1)
Related Publication 20110125971A1 · May 26, 2011