← Back to Patent Explorer
US5504874A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions

Assignee: Morgan Stanley and Co LLC
•
Filing: 1993-09-29
•
Granted: 1996-04-02
•
Expires: 2013-09-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multiprocessing system that uses read resources to track cache coherent split transactions on its main system bus. Pending reads are tracked by being associated with read resources. When a read request is issued, it occupies the first available read resource. A pending read request will occupy a read resource until a corresponding read response appears on the bus. If all read resources are filled, future read requestors must wail until a read resource becomes available.

Inventors

  • 👤 Michael B. Galles
  • 👤 Martin M. Deneroff

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 08:23
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0813; G06F12/0815; G06F12/0831; G06F13/00; G06F13/14; G06F13/36; G06F13/368; G06F12/0835

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 263 words
A read resource system for maintaining cache coherency in a multiprocessor environment pertaining split transactions, having a plurality of nodes coupled by a main system bus, comprising: a plurality of read resources; and a plurality of read resource controllers coupled to the main system bus, each of said plurality of read resource controllers being uniquely associated with a respective one of the plurality of nodes, each read resource controller comprising: means for storing said plurality of read resources in a plurality of storage elements wherein said read resources are numbered and stored in said storage elements according to numerical order, means for receiving a read request for data from one of the plurality of nodes uniquely associated with said read resource controller, means for comparing said read request with contents of said plurality of storage elements to determine whether a previous read request is concurrently seeking said data, means for broadcasting onto the main system bus said read request if said data is not concurrently sought by said previous read request, means for allocating one of said plurality of read resources to prevent the broadcast of a successive read request that seeks said data concurrently with a broadcasted read request, wherein said allocated read resource is a multi bit tag address corresponding to said data, and means for storing an allocated read resource in one of said plurality of read resources, wherein said plurality of read resource controllers determines the number of allocated read resources independently according to a predetermined protocol, such that said plurality of read resource controllers calculates an equivalent number.
Claim 2
Dependent Claim 263 words
A read resource system for maintaining cache coherency in a multiprocessor environment pertaining split transactions, having a plurality of nodes coupled by a main system bus, comprising: a plurality of read resources; and a plurality of read resource controllers coupled to the main system bus, each of said plurality of read resource controllers being uniquely associated with a respective one of the plurality of nodes, each read resource controller comprising: means for storing said plurality of read resources in a plurality of storage elements wherein said read resources are numbered and stored in said storage elements according to numerical order, means for receiving a read request for data from one of the plurality of nodes uniquely associated with said read resource controller, means for comparing said read request with contents of said plurality of storage elements to determine whether a previous read request is concurrently seeking said data, means for broadcasting onto the main system bus said read request if said data is not concurrently sought by said previous read request, means for allocating one of said plurality of read resources to prevent the broadcast of a successive read request that seeks said data concurrently with a broadcasted read request, wherein said allocated read resource is a multi bit tag address corresponding to said data, and means for storing an allocated read resource in one of said plurality of read resources, wherein said plurality of read resource controllers determines the number of allocated read resources independently according to a predetermined protocol, such that said plurality of read resource controllers calculates an equivalent number.
Claim 3
Dependent Claim 33 words
The system according to claim 1, wherein each storage element is a register in a contents addressable memory (CAM) having a plurality of registers equal in number to said plurality of read resources.
Claim 4
Dependent Claim 17 words
The system according to claim 2, wherein said CAM includes eight registers, thereby providing eight read resources.
Claim 5
Dependent Claim 51 words
The system according to claim 2, wherein said one of said plurality of storage elements is adapted to store said address, and is adapted to store a valid/invalid flag which when set valid, indicates that said one of said read resources is currently being used to protect said broadcasted read request.
Claim 6
Dependent Claim 37 words
The system according to claim 4, wherein said means for comparing said read request with the contents of said storage elements comprises a plurality of comparators equal in number to said plurality of registers in said CAM.
Claim 7
Dependent Claim 22 words
The system according to claim 5, wherein said plurality of read resource controllers further includes means for deallocating said allocated read resource.
Claim 8
Dependent Claim 45 words
The system according to claim 6, wherein said means for deallocating deallocates said allocated read resource by marking flag of said allocated read resource invalid when said read resource controller receives a read response targeted to said read resource number corresponding to said read request.
Claim 9
Dependent Claim 18 words
The system according to claim 1, wherein non-coherent reads requests can not occupy all of said read resources.
Claim 10
Dependent Claim 16 words
The system according to claim 1, wherein coherent reads can occupy all of said read resources.
Claim 11
Independent Claim 207 words
A method for maintaining cache coherency in a multiprocessor environment permitting split transactions, having a plurality of nodes coupled by a main system bus, comprising the steps of: providing a plurality of read resource controllers, each of said plurality of read resource controllers being uniquely associated with a respective one of the plurality of nodes; providing a plurality of storage elements in said plurality of read resource controllers; receiving a read request for data in one of the plurality of nodes; comparing said read request with the contents of said plurality of storage elements to determine whether a previous read request is currently seeking said data; broadcasting onto the main system bus said read request if said data is not concurrently being sought by said previous read request; allocating one of said plurality of read resources to protect said read request if said read request was broadcast onto the main system bus; and storing an allocated read resource comprising a multi-tag address corresponding to said data according to a read resource number in one of said plurality of storage elements in each read resource controller, wherein said read resource number is determined independently according to a predetermined protocol, such that each node arrives at an equivalent number.
Claim 12
Independent Claim 207 words
A method for maintaining cache coherency in a multiprocessor environment permitting split transactions, having a plurality of nodes coupled by a main system bus, comprising the steps of: providing a plurality of read resource controllers, each of said plurality of read resource controllers being uniquely associated with a respective one of the plurality of nodes; providing a plurality of storage elements in said plurality of read resource controllers; receiving a read request for data in one of the plurality of nodes; comparing said read request with the contents of said plurality of storage elements to determine whether a previous read request is currently seeking said data; broadcasting onto the main system bus said read request if said data is not concurrently being sought by said previous read request; allocating one of said plurality of read resources to protect said read request if said read request was broadcast onto the main system bus; and storing an allocated read resource comprising a multi-tag address corresponding to said data according to a read resource number in one of said plurality of storage elements in each read resource controller, wherein said read resource number is determined independently according to a predetermined protocol, such that each node arrives at an equivalent number.
Claim 13
Dependent Claim 15 words
The method according to claim 10, wherein a total of eight read resources are supported.
Claim 14
Dependent Claim 16 words
The method according to claim 10, further including the step of deallocating said allocated read resource.
Claim 15
Dependent Claim 43 words
The method according to claim 12, wherein said step of deallocating deallocates said allocated read resource by marking said allocated read resource invalid when said read resource controller receives a read response targeted to said read resource number corresponding to said read request.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-04-02 1999-10-02 2000-04-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-04-02 2003-10-02 2004-04-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-04-02 2007-10-02 2008-04-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag