IP Library › Patent Application 11335421
Patent Application
App. No. 11/335,421

System and method of multi-core cache coherency

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 None
App. No.
11/335,421
Abstract

Systems and methods for cache coherency in multi-processor systems. A cache coherency system is used in a multi-processor computer system having a physical memory system in communication with the processors via a communication medium. A processor-side cache memory subsystem is associated with each processor of the multi-processor computer system. The cache coherency system includes a cache tag memory structure having a number of entries substantially equal to the defined number of entries for each processor-side cache memory. Each entry of the cache tag memory structure has at least one field corresponding to each processor-side cache memory subsystem.

Claims (32)

1 . A cache coherency system for use in a multi-processor computer system having a physical memory system in communication with the processors via a communication medium and having a processor-side cache memory subsystem associated with each processor of the multi-processor computer system, each processor-side cache memory subsystem having a defined number of cache entries for holding a subset of the contents of the physical memory system, said cache coherency system comprising:

a cache tag memory structure having a number of entries substantially equal to the defined number of entries for each processor-side cache memory, wherein each entry of the cache tag memory structure has at least one field corresponding to each processor-side cache memory subsystem, each field holding cache tag information to identify which physical memory reference each processor has stored in its corresponding processor-side cache memory subsystem at a corresponding entry in the processor-side cache memory subsystem;

comparison logic, responsive to a physical memory system request with an associated physical memory address, to select an entry from the cache tag memory structure and to compare a hash function F-tag of memory address bits of the physical memory address with the contents of the selected entry of the cache tag memory structure, said comparison logic providing a cache hit signature to identify which, if any, processor-side cache memories hold data for the memory reference of interest and to cause said identified processor-side cache memory to service said physical memory system request; and

update logic to modify the selected entry of the cache tag memory structure in response to servicing the physical memory system request.

2 . The cache coherency system of claim 1 wherein the physical memory is centralized.

3 . The cache coherency system of claim 1 wherein the physical memory is distributed.

4 . The cache coherency system of claim 1 wherein the cache tag memory structure is centralized.

5 . The cache coherency system of claim 1 wherein the cache tag memory structure is distributed.

6 . The cache coherency system of claim 1 wherein the centralized cache tag memory structure resides in the physical memory system.

7 . The cache coherency system of claim 6 wherein the physical memory system includes a number of memory modules to subdivide the physical memory address space.

8 . The cache coherency system of claim 1 wherein the processor-side cache subsystem is an n-Way set associative cache and wherein each entry in the cache tag memory structure has n fields for each processor, each field of the n fields corresponding to a different Way in the n-Way associative cache.

9 . The cache coherency system of claim 1 wherein an F-index hash function is used to select an entry from the processor-side cache and to select an entry from the cache tag memory structure.

10 . The cache coherency system of claim 1 wherein each entry in the processor-side cache is in one state chosen from a set of cache states, and wherein each corresponding field in the controller-side entry is in one state chosen from a subset of the cache states.

11 . The cache coherency system of claim 1 further including logic to handle in-flight transactions.

12 . The cache coherency system of claim 8 wherein the physical memory system request specifies the Way on the processor-side cache that should receive data.

13 . The cache coherency system of claim 8 wherein the cache coherency system includes logic to select a Way on the processor side cache to receive data and to instruct the processor-side cache accordingly.

14 . A method of maintaining cache coherency in a multi-processor computer system having a physical memory system in communication with the processors via a communication medium and having a processor-side cache memory subsystem associated with each processor of the multi-processor computer system, each processor-side cache memory subsystem having a defined number of cache entries for holding a subset of the contents of the physical memory system, said method comprising:

maintaining a cache tag memory structure having a number of entries substantially equal to the defined number of entries for each processor-side cache memory, such that each entry of the cache tag memory structure has at least one field corresponding to each processor-side cache memory subsystem, and such that each field holds cache tag information to identify which physical memory reference each processor has stored in its corresponding processor-side cache memory subsystem at a corresponding entry in the processor-side cache memory subsystem;

in response to a physical memory system request with an associated physical memory address, selecting an entry from the cache tag memory structure and comparing a hash function F-tag of memory address bits of the physical memory address with the contents of the selected entry of the cache tag memory structure,

providing a cache hit signature to identify which, if any, processor-side cache memories hold data for the memory reference of interest and to cause said identified processor-side cache memory to service said physical memory system request; and

modifying the selected entry of the cache tag memory structure in response to servicing the physical memory system request.

15 . The method of claim 14 wherein the physical memory is centralized.

16 . The method of claim 14 wherein the physical memory is distributed.

17 . The method of claim 14 wherein the cache tag memory structure is maintained in a centralized location.

18 . The method of claim 14 wherein the cache tag memory structure is maintained in distributed locations.

19 . The method of claim 14 wherein the centralized cache tag memory structure resides in the physical memory system.

20 . The method of claim 14 wherein an F-index hash function is used to select an entry from the processor-side cache and to select an entry from the cache tag memory structure.

21 . The method of claim 14 wherein each processor holds victimized cache entries to service requests to provide such data to another processor cache.

22 . The method of claim 14 wherein a processor re-issues memory system requests if needed to handle in-flight transactions.

23 . The method of claim 14 wherein a memory controller detects that a transaction to memory includes a victim from a processor-side cache that is needed to service the request from another processor.

24 . The method of claim 14 wherein the processor-side cache is n-Way associative and wherein the physical memory system request specifies the Way on the processor-side cache that should receive data.

25 . The method of claim 14 wherein the processor-side cache is n-Way associative and wherein a memory controller selects a Way on the processor side cache to receive data and to instruct the processor-side cache accordingly.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2009
From: HERCULES TECHNOLOGY I, LLC
To: HERCULES TECHNOLOGY II, LLC
Reel/Frame 023719/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2009
From: HERCULES TECHNOLOGY, II L.P.
To: HERCULES TECHNOLOGY I, LLC
Reel/Frame 023334/0418 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2006
From: LEONARD, JUDSON S; REILLY, MATTHEW H
To: SICORTEX, INC.
Reel/Frame 017806/0351 →