IP Library Granted Patent US 7,613,882
Granted Patent B1
US 7,613,882 · App. 11/668,275 · Granted Nov 3, 2009

Fast invalidation for cache coherency in distributed shared memory system

Assignee: 3 Leaf Systems
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 7,613,882
App. No.
11/668,275
Granted
Nov 3, 2009
Kind
B1
Abstract

An example embodiment of the present invention provides processes relating to a cache coherence protocol for distributed shared memory. In one process, a DSM-management chip receives a request to modify a block of memory stored on a node that includes the chip and one or more CPUs, which request is marked for fast invalidation and comes from one of the CPUs. The DSM-management chip sends probes, also marked for fast invalidation, to DSM-management chips on other nodes where the block of memory is cached and responds to the original probe, allowing the requested modification to proceed without waiting for responses from the probes. Then the DSM-management chip delays for a pre-determined time period before incrementing the value of a serial counter which operates in connection with another serial counter to prevent data from leaving the node's CPUs over the network until responses to the probes have been received.

Claims (48)

1. A method, comprising:

receiving, at a distributed memory logic circuit, a request to modify a memory block stored on a computer node that includes the distributed memory logic circuit and one or more CPUs, wherein the request is marked for fast invalidation and comes from one of the CPUs;

sending probes to a distributed memory logic circuit on one or more other nodes in a computer network, if the memory block is cached on the other nodes, wherein the probes are also marked for fast invalidation,

responding to the request and allowing the modification to proceed without waiting for responses from the probes;

delaying for a pre-determined time period after responding to the request and then incrementing the value of a first counter;

waiting until responses have been received for all of the probes and then incrementing the value of a second counter;

associating data received from the CPUs with a tag including a current value of the first counter; and

preventing data from leaving the node based on the value of the associated tag relative to the value of the second counter.

2. The method of claim 1 , wherein the pre-determined time period is based on the time it would take for a probe response to reach a CPU in the node and for that CPU to execute a store.

3. The method of claim 1 , wherein the nodes are connected into a network by a scalable interconnect that uses a reliable delivery protocol.

4. The method of claim 1 , wherein the distributed memory logic circuit is a DSM-management chip.

5. The method of claim 1 , wherein the first and second counters are serial counters that are monotonic except in the case of rollover.

6. A method, comprising:

receiving, at a distributed memory logic circuit, a first probe seeking to invalidate a cached memory block stored on a computer node that includes the distributed memory logic circuit, wherein the first probe is marked for fast invalidation and comes from a distributed memory logic circuit on another node in a computer network;

sending out additional invalidation probes to one or more CPUs on the node;

responding to the first probe without waiting for responses from the CPUs;

delaying for a pre-determined time period and then incrementing the value of a first counter;

waiting until responses have been received for all of the additional invalidation probes and then incrementing the value of a second counter;

associating data received from the network with a tag including a current value of the first counter; and

preventing data from going to the CPUs based on the value of the associated tag relative to the value of the second counter.

7. The method of claim 6 , wherein the pre-determined time period is based on the time it would take for a probe response to reach another node in the network and for that node to return data.

8. The method of claim 6 , wherein the nodes are connected into a network by a scalable interconnect that uses a reliable delivery protocol.

9. The method of claim 6 , wherein the distributed memory logic circuit is a DSM-management chip.

10. The method of claim 6 , wherein the first and second counters are serial counters that are monotonic except in the case of rollover.

11. An apparatus, comprising logic encoded in one or more persistent media for execution and when executed operable to:

receive, at a distributed memory logic circuit, a request to modify a memory block stored on a computer node that includes the distributed memory logic circuit and one or more CPUs, wherein the request is marked for fast invalidation and comes from one of the CPUs;

send probes to a distributed memory logic circuit on one or more other nodes in a computer network, if the memory block is cached on the other nodes, wherein the probes are also marked for fast invalidation;

respond to the request and allow the modification to proceed without waiting for responses from the probes;

delay for a pre-determined time period and then increment the value of a first counter;

wait until responses have been received for all of the probes and then increment the value of a second counter;

associate data received from the CPUs with a tag including a current value of the first counter; and

prevent data from leaving the node based on the value of the associated tag relative to the value of the second counter.

12. The apparatus of claim 11 , wherein the pre-determined time period is based on the time it would take for a probe response to reach a CPU in the node and for that CPU to execute a store.

13. The apparatus of claim 11 , wherein the nodes are connected into a network by a scalable interconnect that uses a reliable delivery protocol.

14. The apparatus of claim 11 , wherein the distributed memory logic circuit is a DSM-management chip.

15. The apparatus of claim 11 , wherein the first and second counters are serial counters that are monotonic except in the case of rollover.

16. An apparatus, comprising logic encoded in one or more persistent media for execution and when executed operable to:

receive, at a distributed memory logic circuit, a first probe seeking to invalidate a cached memory block stored on a computer node that includes the distributed memory logic circuit, wherein the first probe is marked for fast invalidation and comes from a distributed memory logic circuit on another node in a computer network;

send out additional invalidation probes to one or more CPUs on the node;

respond to the first probe without waiting for responses from the CPUs;

delay for a pre-determined time period and then increment the value of a first counter;

wait until responses have been received for all of the additional invalidation probes and then increment the value of a second counter;

associate data received from the network with a tag including a current value of the first counter; and

prevent data from going to the CPUs based on the value of the associated tag relative to the value of the second counter.

17. The apparatus of claim 16 , wherein the pre-determined time period is based on the time it would take for a probe response to reach another node in the network and for that node to return data.

18. The apparatus of claim 16 , wherein the nodes are connected into a network by a scalable interconnect that uses a reliable delivery protocol.

19. The apparatus of claim 16 , wherein the distributed memory logic circuit is a DSM-management chip.

20. The apparatus of claim 16 , wherein the first and second counters are serial counters that are monotonic except in the case of rollover.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 037575 FRAME: 0812. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Apr 25, 2016
From: INTELLECTUAL VENTURES HOLDING 80 LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 038516/0869 →
MERGER Recorded Jan 25, 2016
From: INTELLECTUAL VENTURES HOLDING 80 LLC
To: INTELLECTUAL VENTURES FUND 81 LLC
Reel/Frame 037575/0812 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2011
From: FLORIDA STATE UNIVERSITY FOUNDATION, INCORPORATED
To: INTELLECTUAL VENTURES HOLDING 80 LLC
Reel/Frame 027261/0664 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2011
From: FUTUREWEI TECHNOLOGIES, INC.
To: THE FLORIDA STATE UNIVERSITY FOUNDATION, INC.
Reel/Frame 026586/0232 →
CHANGE OF NAME Recorded Jun 1, 2010
From: 3LEAF NETWORKS, INC.
To: 3LEAF SYSTEMS, INC.
Reel/Frame 024463/0894 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2010
From: 3LEAF SYSTEMS, INC.
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 024463/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2007
From: AKKAWI, ISAM; WOODACRE, MICHAEL; CHIN, BRYAN; SUBRAMANI, KRISHNAN; ANSARI, NAJEEB IMRAN; KELTCHER, CHETANA NAGENDRA; VAIDYANATHAN, JANAKIRAMANAN
To: 3 LEAF NETWORKS
Reel/Frame 018818/0922 →