Patent US5893160A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5893160A Expired / Lapsed US ⏱️ 0.0 years remaining

Deterministic distributed multi-cache coherence method and system

Assignee: Oracle America Inc
•
Filing: 1996-04-08
•
Granted: 1999-04-06
•
Expires: 2016-04-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An efficient streamlined coherent protocol for a multi-processor multi-cache computing system. Each subsystem includes at least one processor and an associated cache and directory. The subsystems are coupled to a global interconnect via global interfaces. In one embodiment, each global interface includes a request agent (RA), a directory agent (DA) and a slave agent (SA). The RA provides a subsystem with a mechanism for sending read and write request to the DA of another subsystem. The DA is responsible for accessing and updating its home directory. The SA is responsible for responding to requests from the DA of another subsystem. Each subsystem also includes a blocker coupled to a DA and associated with a home directory. All requests for a cache line are screened by the blocker associated with each home directory. Blockers are responsible for blocking new request(s) for a cache line until an outstanding request for that cache line has been serviced. A "locked" state managed by the blocker greatly reduces corner cases and simplifies solutions in the few remaining corner cases.

Inventors

  • 👤 Paul N. Loewenstein
  • 👤 Erik Hagersten

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 03:07
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0817; G06F12/0828

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 184 words
A cache accessing method for a multiprocessing computer system having a plurality of subsystems coupled to each other via a global interconnect, each of said subsystems including a main memory, a cache and a global interface and wherein each said caches includes a plurality of cache lines, the method comprising: sending a first request from a first subsystem for a cache line of a second subsystem via said global interconnect; receiving said first request at said second subsystem; blocking all new requests for said cache line of said second subsystem sent via said global interface and received after said receiving said first request; receiving a completion acknowledgment from said first subsystem indicating that said first request has been serviced, said first subsystem sending said completion acknowledgment responsive to receiving data corresponding to said first request and an invalidate acknowledgment from a third subsystem; terminating said blocking responsive to said receiving said completion acknowledgment; queuing said all requests received after said receiving said first request until said first request has been serviced; and processing a second request for said cache line of said second subsystem.
Claim 2
Dependent Claim 184 words
A cache accessing method for a multiprocessing computer system having a plurality of subsystems coupled to each other via a global interconnect, each of said subsystems including a main memory, a cache and a global interface and wherein each said caches includes a plurality of cache lines, the method comprising: sending a first request from a first subsystem for a cache line of a second subsystem via said global interconnect; receiving said first request at said second subsystem; blocking all new requests for said cache line of said second subsystem sent via said global interface and received after said receiving said first request; receiving a completion acknowledgment from said first subsystem indicating that said first request has been serviced, said first subsystem sending said completion acknowledgment responsive to receiving data corresponding to said first request and an invalidate acknowledgment from a third subsystem; terminating said blocking responsive to said receiving said completion acknowledgment; queuing said all requests received after said receiving said first request until said first request has been serviced; and processing a second request for said cache line of said second subsystem.
Claim 3
Dependent Claim 12 words
The method of claim 1 wherein said request is a read request.
Claim 4
Dependent Claim 13 words
The method of claim 2 wherein said read request is a read-to-share request.
Claim 5
Dependent Claim 13 words
The method of claim 2 wherein said read request is a read-to-own request.
Claim 6
Dependent Claim 26 words
The method of claim 2 further comprising the step of: sending data from said second subsystem to said first subsystem in response to said read request.
Claim 7
Dependent Claim 48 words
The method of claim 5 further comprising the steps of: sending an invalidate request from said second subsystem to a third said subsystem in response to said read request; and sending an invalidate acknowledgment from said third subsystem to said first subsystem in response to said invalidate request.
Claim 8
Dependent Claim 34 words
The method of claim 2 further comprising the steps of: forwarding said read request from said second subsystem to a third said subsystem; and sending data from said third subsystem to said first subsystem.
Claim 9
Dependent Claim 48 words
The method of claim 7 further comprising the steps of: sending an invalidate request from said second subsystem to a fourth said subsystem in response to said read request; and sending an invalidate acknowledgment from said fourth subsystem to said first subsystem in response to said invalidate request.
Claim 10
Dependent Claim 37 words
The method of claim 8 wherein said blocking step is terminated when said second subsystem receives a completion acknowledgment from said first subsystem indicating that said data and said invalidate acknowledgment have arrived at said first subsystem.
Claim 11
Dependent Claim 27 words
The method of claim 2 wherein said second subsystem includes a directory and said step of receiving said read request includes the step of updating said directory.
Claim 12
Dependent Claim 12 words
The method of claim 1 wherein said request is a write-back request.
Claim 13
Dependent Claim 27 words
The method of claim 11 further comprising the steps of: sending a write-back-permission from said second subsystem to said first subsystem in response to said write-back request.
Claim 14
Dependent Claim 35 words
The method of claim 12 wherein said blocking step is terminated when said second subsystem receiving a completion acknowledgment with data from said first subsystem indicating that said write-back-permission has arrived at said first subsystem.
Claim 15
Dependent Claim 27 words
The method of claim 11 wherein said second subsystem includes a directory and said step of receiving said write-back request includes the step of updating said directory.
Claim 16
Dependent Claim 48 words
The method of claim 1 wherein said second request for said cache line of said second said subsystem includes a read request and a write-back request and said queuing includes a queuing of said read request in a read queue and said write-back request in a write queue.
Claim 17
Dependent Claim 29 words
The method as recited in claim 1 wherein said all new requests include said second request for said cache line of said second subsystem sent via said global interface.
Claim 18
Dependent Claim 29 words
The method as recited in claim 16 wherein said second request for said cache line of said second subsystem sent via said global interface originates from said first subsystem.
Claim 19
Dependent Claim 29 words
The method as recited in claim 1 wherein said second request for said cache line of said second subsystem sent via said global interface originates from a third subsystem.
Claim 20
Dependent Claim 35 words
The method as recited in claim 1 wherein said all new requests include a third request for said cache line of said second subsystem sent via said global interface and originated from said first subsystem.
Claim 21
Dependent Claim 35 words
The method as recited in claim 19 wherein said all new requests include said third request for said cache line of said second subsystem sent via said global interface and originated from a third subsystem.
Claim 22
Dependent Claim 30 words
The method of claim 19 wherein said third request for said cache line of said second subsystem sent via said global interface includes a read request and a write-back request.
Claim 23
Dependent Claim 264 words
A multiprocessing computer system comprising: a first subsystem including a first main memory coupled to a first local interconnect, a first cache coupled to said first local interconnect, a first processor coupled to said first cache, and a first global interface coupled to said first local interconnect; a second subsystem including a second main memory coupled to a second local interconnect, a second cache coupled to said second local interconnect, a second processor coupled to said second cache, and a second global interface coupled to said second local interconnect; a global interconnect coupled to said first global interface of said first subsystem and said second global interface of said second subsystem; wherein said global interconnect provides a communication path between said first subsystem and said second subsystem and wherein said first global interface is configured to pass a first request from said second subsystem for a cache line of said first cache of said first subsystem sent via said global interconnect and to block all new requests for a cache line of said first cache sent via said global interconnect and received after said first request until said first request for said cache line has been serviced, and wherein said second global interface is configured to transmit a completion acknowledgment to said first global interface upon said global interconnect, and wherein said completion acknowledgment indicates that said first request has been serviced, and wherein said first global interface is configured to terminate blocking said all new requests upon receiving said completion acknowledgment, and wherein said all new requests are received from said global interconnect.
Claim 24
Dependent Claim 264 words
A multiprocessing computer system comprising: a first subsystem including a first main memory coupled to a first local interconnect, a first cache coupled to said first local interconnect, a first processor coupled to said first cache, and a first global interface coupled to said first local interconnect; a second subsystem including a second main memory coupled to a second local interconnect, a second cache coupled to said second local interconnect, a second processor coupled to said second cache, and a second global interface coupled to said second local interconnect; a global interconnect coupled to said first global interface of said first subsystem and said second global interface of said second subsystem; wherein said global interconnect provides a communication path between said first subsystem and said second subsystem and wherein said first global interface is configured to pass a first request from said second subsystem for a cache line of said first cache of said first subsystem sent via said global interconnect and to block all new requests for a cache line of said first cache sent via said global interconnect and received after said first request until said first request for said cache line has been serviced, and wherein said second global interface is configured to transmit a completion acknowledgment to said first global interface upon said global interconnect, and wherein said completion acknowledgment indicates that said first request has been serviced, and wherein said first global interface is configured to terminate blocking said all new requests upon receiving said completion acknowledgment, and wherein said all new requests are received from said global interconnect.
Claim 25
Dependent Claim 25 words
The multiprocessing computer system of claim 22 wherein said first global interface further includes a directory configured to store a status of said cache line.
Claim 26
Dependent Claim 45 words
The multiprocessing computer system of claim 22 wherein said first global interface further includes a blocker configured to block a second request for a cache line of said first cache of said first subsystem sent via said global interconnect and received after said first request.
Claim 27
Dependent Claim 28 words
The multiprocessing computer system of claim 24 wherein said blocker is further configured to block access to said directory configured to store the status of said cache line.
Claim 28
Dependent Claim 38 words
The multiprocessing computer system of claim 25 wherein said blocker includes a queue configured to store said second request for said cache line of said first subsystem sent via said global interconnect and received after said first request.
Claim 29
Dependent Claim 18 words
The multiprocessing computer system of claim 26 wherein said queue includes a read queue and a write queue.
Claim 30
Dependent Claim 39 words
The multiprocessing computer system as recited in claim 26 wherein said queue is further configured to store said third request for said cache line of said first subsystem sent via said global interconnect and received after said first request.
Claim 31
Dependent Claim 37 words
The multiprocessing computer system as recited in claim 28 wherein said store of said third request for said cache line of said first subsystem sent via said global interconnect continues until said first request has been serviced.
Claim 32
Dependent Claim 33 words
The multiprocessing computer system of claim 22 wherein said blocker is further configured to block a third request for said cache line sent via said global interconnect and received after said first request.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-04-05 2002-10-05 2003-04-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-04-05 2006-10-05 2007-04-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-04-05 2010-10-05 2011-04-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag