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

Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system

Assignee: Intel Corp
•
Filing: 1996-04-29
•
Granted: 1998-02-03
•
Expires: 2016-04-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system comprising a plurality of caching agents with a cache hierarchy, the caching agents sharing memory across a system bus and issuing memory access requests in accordance with a protocol wherein a line of a cache has a present state comprising one of a plurality of line states. The plurality of line states includes a modified (M) state, wherein a line of a first caching agent in M state has data which is more recent than any other copy in the system; an exclusive (E) state, wherein a line in E state in a first caching agent is the only one of the agents in the system which has a copy of the data in a line of the cache, the first caching agent modifying the data in the cache line independent of other said agents coupled to the system bus; a shared (S) state, wherein a line in S state indicates that more than one of the agents has a copy of the data in the line; and an invalid (I) state indicating that the line does not exist in the cache. A read or a write to a line in I state results in a cache miss. The present invention associates states with lines and defines rules governing state transitions. State transitions depend on both processor generated activities and activities by other bus agents, including other processors. Data consistency is guaranteed in systems having multiple levels of cache and shared memory and/or multiple active agents, such that no agent ever reads stale data and actions are serialized as needed.

Inventors

  • 👤 Wen-Hann Wang
  • 👤 Konrad K. Lai
  • 👤 Gurbir Singh
  • 👤 Michael W. Rhodehamel
  • 👤 Nitin V. Sarangdhar
  • 👤 John M. Bauer
  • 👤 Mandar S. Joshi
  • 👤 Ashwani K. Gupta

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 21:50
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0831; G06F12/0811

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 283 words
A computer system comprising a plurality of caching agents with a cache hierarchy, said caching agents sharing memory across a system pipeline bus capable of simultaneously transmitting multiple memory access request, and said caching agents issuing memory access requests in accordance with a protocol wherein a line of a cache has a present state comprising one of a plurality of line states, said line states stored in said caching agents, said plurality of line states including: a modified (M) state, wherein a line of a first caching agent in said M state has data which is more recent than any other copy in said system; an exclusive (E) state, wherein a line in said E state in said first caching agent is the only one of said agents in said system which has a copy of the data in said line of said cache, said first caching agent modifying the data in said cache line independent of other said agents coupled to said system pipeline bus; a shared (S) state, wherein a line in said S state indicates that more than one of said agents has a copy of the data in the line; and an invalid (I) state indicating that said line does not exist in said cache, a read or a write to a line in said I state resulting in a cache miss; said present state transitioning to a new state comprising a different one of said plurality of states wherein a line in said M state transitions to said I state in response to a first set of external bus requests which includes a bus write line (BWL) transaction wherein a requesting agent intends to writeback a modified line.
Claim 2
Dependent Claim 283 words
A computer system comprising a plurality of caching agents with a cache hierarchy, said caching agents sharing memory across a system pipeline bus capable of simultaneously transmitting multiple memory access request, and said caching agents issuing memory access requests in accordance with a protocol wherein a line of a cache has a present state comprising one of a plurality of line states, said line states stored in said caching agents, said plurality of line states including: a modified (M) state, wherein a line of a first caching agent in said M state has data which is more recent than any other copy in said system; an exclusive (E) state, wherein a line in said E state in said first caching agent is the only one of said agents in said system which has a copy of the data in said line of said cache, said first caching agent modifying the data in said cache line independent of other said agents coupled to said system pipeline bus; a shared (S) state, wherein a line in said S state indicates that more than one of said agents has a copy of the data in the line; and an invalid (I) state indicating that said line does not exist in said cache, a read or a write to a line in said I state resulting in a cache miss; said present state transitioning to a new state comprising a different one of said plurality of states wherein a line in said M state transitions to said I state in response to a first set of external bus requests which includes a bus write line (BWL) transaction wherein a requesting agent intends to writeback a modified line.
Claim 3
Dependent Claim 19 words
The computer system of claim 1 wherein said first caching agent comprises a processor having a data cache unit.
Claim 4
Dependent Claim 21 words
The computer system of claim 1 wherein each of said caching agents comprise a microprocessor, each having a data cache unit.
Claim 5
Dependent Claim 27 words
The computer system of claim 2 wherein each of said caching agents includes a separate secondary cache memory coupled to said processor, therein forming a processor complex.
Claim 6
Dependent Claim 44 words
The computer system of claims 1, 2, 3, or 4 wherein said first set of external bus transactions further includes a bus write invalidate line (BWIL) transaction wherein a requesting agent contains a line in said S state and intends to modify the line.
Claim 7
Dependent Claim 110 words
The computer system of claim 5 wherein said first set of external bus transactions further includes: a bus locked read (BLR) transaction wherein said requesting agent issues a Locked Partial Read or Locked Read 8 Bytes transaction; a bus read invalidate line (BRIL) transaction wherein said requesting agent has had a read miss to a line and intends to modify the line; a bus write part-line (BWP) transaction wherein said requesting agent issued a Read Data Partial, Read Data 8 Bytes, or Read Data 16 Bytes transaction; and a bus locked write (BLW) transaction wherein a requesting agent issues a Locked Write Partial or a Locked Write 8 Bytes transaction.
Claim 8
Dependent Claim 30 words
The computer system of claim 6 wherein a line in said S state transitions to said I state in response to any of said first set of external bus transactions.
Claim 9
Dependent Claim 28 words
The computer system of claim 7 wherein a line in said E state transitions to said S state in response to a second set of external bus transactions.
Claim 10
Dependent Claim 30 words
The computer system of claim 8 wherein said second set of external bus transactions includes a bus read line (BRL) transaction wherein a requesting agent has had a read miss.
Claim 11
Dependent Claim 41 words
The computer system of claim 9 wherein said second set of external bus transactions further includes a bus read part-line (BRP) transaction wherein a requesting agent issues a Read Data Partial, Read Data 8 Bytes, or Read Data 16 Bytes transaction.
Claim 12
Dependent Claim 28 words
The computer system of claim 6 wherein a line in said E state transitions to said I state in response to said first set of external bus transactions.
Claim 13
Dependent Claim 28 words
The computer system of claim 6 wherein a line in said M state transitions to said S state in response to said second set of external bus transactions.
Claim 14
Dependent Claim 46 words
The computer system of claim 12 wherein a line in said S state transitions to said M state in response to said first set of internal read transactions, said first set of internal read transactions including an internal write (IW) request to perform a write access.
Claim 15
Dependent Claim 41 words
The computer system of claim 13 wherein said first set of internal read transactions further includes an internal ownership read (IOR) request to perform a write prefetch, and an internal cache locked read (ICLR) request to perform a cache lock read.
Claim 16
Dependent Claim 28 words
The computer system of claim 14 wherein a line in said E state transitions to said M state in response to said first set of internal read transactions.
Claim 17
Dependent Claim 28 words
The computer system of claim 14 wherein a line in said I state transitions to said M state in response to said first set of internal read transactions.
Claim 18
Dependent Claim 29 words
The computer system of claims 1, 2, 3 or 4 wherein said caching agents each snoop said system pipeline bus and provide a signal to indicate a snoop result.
Claim 19
Dependent Claim 39 words
The computer system of claim 17 wherein a line in said I state transitions to said S state in response to an internal read request to perform a read access when said signal is in a first logical state.
Claim 20
Dependent Claim 51 words
The computer system of claim 18 wherein a line in said I state transitions to said E state in response to an internal read request to perform a read access when said signal is in a second logical state, said second logical state being the complement of said first logical state.
Claim 21
Dependent Claim 265 words
A computer system comprising: a plurality of caching agents, each caching agent including a processor, a first level cache coupled by a backside bus to a separate second level cache, said second level cache storing data independent from any data stored in said first level cache, said caching agents Sharing memory across a system bus, each said caching agent further providing a direct access between the first level cache and the system bus, and providing a direct access between the second level cache and the system bus, said caching agents issuing memory access requests access a system bus in accordance with a protocol wherein each line of a cache has a present state comprising one of a plurality of line states stored in a respective cache, said plurality of line states including: a modified (M) state, wherein a line of a first caching agent in said M state has data which is more recent than any other copy in said system; an exclusive (E) state, wherein a line in said E state in said first caching agent is the only one of said agents in said system which has a copy of the data; a shared (S) state, wherein a line in said S state indicates that more than one of said agents has a copy of the data in the line; and an invalid (I) state indicating that said line does not exist in said cache; wherein, said present state of a line of said first caching agent transitions to a new state in response to said first caching agent receiving a bus transaction.
Claim 22
Dependent Claim 265 words
A computer system comprising: a plurality of caching agents, each caching agent including a processor, a first level cache coupled by a backside bus to a separate second level cache, said second level cache storing data independent from any data stored in said first level cache, said caching agents Sharing memory across a system bus, each said caching agent further providing a direct access between the first level cache and the system bus, and providing a direct access between the second level cache and the system bus, said caching agents issuing memory access requests access a system bus in accordance with a protocol wherein each line of a cache has a present state comprising one of a plurality of line states stored in a respective cache, said plurality of line states including: a modified (M) state, wherein a line of a first caching agent in said M state has data which is more recent than any other copy in said system; an exclusive (E) state, wherein a line in said E state in said first caching agent is the only one of said agents in said system which has a copy of the data; a shared (S) state, wherein a line in said S state indicates that more than one of said agents has a copy of the data in the line; and an invalid (I) state indicating that said line does not exist in said cache; wherein, said present state of a line of said first caching agent transitions to a new state in response to said first caching agent receiving a bus transaction.
Claim 23
Dependent Claim 117 words
The computer system of claim 20, wherein the first level cache of each caching agent includes a data cache unit, and said plurality of line states for a data cache unit further includes: a restrictive caching exclusive (RCE) state, wherein a line in said RCE state includes data loaded in response to a missed memory access request to a respective data cache unit and is the only copy of said data in said system; and, a restrictive caching modified (RCM) state, wherein a line in said RCM state includes data loaded in response to a missed memory access request to the respective data cache unit and is a most recent copy of said data in said system.
Claim 24
Dependent Claim 26 words
The computer system of claim 20, wherein each processor included in each caching agent is capable of executing instructions out-of-order and performing speculative execution of instructions.
Claim 25
Dependent Claim 47 words
The computer system of claim 22, wherein each first level cache of each said caching agent includes an instruction fetch unit, wherein in response to an external snoop hit in one of said instruction fetch units, a current speculative execution cycle of a requesting agent is aborted.
Claim 26
Dependent Claim 55 words
The computer system of claim 23, wherein each instruction fetch unit includes a snoop queue capable of buffering incoming external snoops, wherein in response to an internal snoop colliding with an external snoop in one of said instruction fetch units, the internal snoop is serviced and the external snoop is buffered in said snoop queue.
Claim 27
Dependent Claim 28 words
The computer system of claim 20, wherein said protocol allows for transferring ownership of a line in a caching agent prior to transferring data stored in said line.
Claim 28
Dependent Claim 56 words
The computer system of claim 25, wherein said protocol includes transitioning a line in said M state, said S state, or said E state to said I state in response to a first set of external bus requests which includes a bus write line (BWL) transaction wherein a requesting agent intends to writeback a modified line.
Claim 29
Dependent Claim 40 words
The computer system of claims 26, wherein said first set of external bus transactions further includes a bus write invalidate line (BWIL) transaction wherein a requesting agent contains a line in said S state and intends to modify the line.
Claim 30
Dependent Claim 110 words
The computer system of claim 27 wherein said first set of external bus transactions further includes: a bus locked read (BLR) transaction wherein said requesting agent issues a Locked Partial Read or Locked Read 8 Bytes transaction; a bus read invalidate line (BRIL) transaction wherein said requesting agent has had a read miss to a line and intends to modify the line; a bus write part-line (BWP) transaction wherein said requesting agent issued a Read Data Partial, Read Data 8 Bytes, or Read Data 16 Bytes transaction; and a bus locked write (BLW) transaction wherein a requesting agent issues a Locked Write Partial or a Locked Write 8 Bytes transaction.
Claim 31
Dependent Claim 62 words
The computer system of claim 28, wherein said protocol further includes transitioning a line in said E state or a line in said M state to said S state in response to a second set of external bus transactions, said second set of external bus transactions including a bus read line (BRL) transaction wherein a requesting agent has had a read miss.
Claim 32
Dependent Claim 41 words
The computer system of claim 29 wherein said second set of external bus transactions further includes a bus read part-line (BRP) transaction wherein a requesting agent issues a Read Data Partial, Read Data 8 Bytes, or Read Data 16 Bytes transaction.
Claim 33
Dependent Claim 56 words
The computer system of claim 30 wherein said protocol further includes transitioning a line in said S state, said E state, or I state, to said M state in response to said first set of internal bus transactions, said first set of internal bus transactions including an internal write (IW) request to perform a write access.
Claim 34
Dependent Claim 41 words
The computer system of claim 31 wherein said first set of internal bus transactions further includes an internal ownership read (IOR) request to perform a write prefetch, and an internal cache locked read (ICLR) request to perform a cache lock read.
Claim 35
Dependent Claim 51 words
The computer system of claim 32 wherein said protocol further includes transitioning a line in said I state to said S state in response to an internal bus request to perform a read access, wherein more than one of said caching agents has a copy of a data to be read.
Claim 36
Dependent Claim 50 words
The computer system of claim 33 wherein said protocol further includes transitioning a line in said I state to said E state in response to an internal bus request to perform a read access, wherein only one of said caching agents has a copy of a data to be read.
Claim 37
Dependent Claim 19 words
The computer system of claim 20, wherein said system bus is capable of simultaneously transmitting multiple memory access request.

References Cited (Backward Citations)

US4755930A Cited
US5297269A Cited
US5404483A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-02-02 2001-08-04 2002-02-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-02-02 2005-08-04 2006-02-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-02-02 2009-08-04 2010-02-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag