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

Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems

Assignee: Intel Corp
•
Filing: 1993-10-25
•
Granted: 1996-05-28
•
Expires: 2013-10-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache controller of a hybrid write back/write through cache of a uniprocessor system is provided with state transition and complimentary logic that implements a streamlined (modified, exclusive, shared and invalid) MESI cache coherency protocol, (modified, exclusive, pseudo shared and invalid) MEΣI, having a pseudo shared state "Σ". Under the streamlined MEΣI, a cache line will enter the Σ state only through allocation. From the Σ state, the cache line will remain in the Σ state when it is read, written into, or snoop-inquired, and it will transition into the I state when it is snoop-invalidated. Additionally, if a cache line in the Σ state is written into, the cache controller will always cause the data to be written to memory, effectively treating the cache line as a dedicated write through cache line.

Inventors

  • 👤 Joe Lichy

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 16:39
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0817; G06F12/0822; G06F12/0831; G06F12/0835

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 164 words
In an uniprocessor computer system comprising a processor, a cache memory, a main memory, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, an improved cache controller for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising means for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action after a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 2
Dependent Claim 164 words
In an uniprocessor computer system comprising a processor, a cache memory, a main memory, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, an improved cache controller for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising means for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action after a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 3
Dependent Claim 38 words
The improved cache controller of claim 1, wherein, said means further causes any data written into said first cache line while said first cache line is in said Σ state to be written into said main memory immediately.
Claim 4
Dependent Claim 143 words
The improved cache controller of claim 2, wherein, said means further assigns an exclusive state (E) to a second cache line of said cache memory when said second cache line is allocated with a write back characteristic, maintaining said second cache line in said E state if a subsequent action performed against said second cache line is a selected one of a read action and a snoop action following a read action while said second cache line is in said E state, and reassigning said second cache line into a modified state (M) if said second cache line is written into while said second cache line is in said E state, and reassigning said second cache line into said invalid state (I) if said second cache line is snooped following a write cycle while said second cache line is in said E state.
Claim 5
Dependent Claim 113 words
The improved cache controller of claim 3, wherein, said means further maintains said second cache line in said M state if a subsequent action performed against said second cache line is a selected one of a read action and a write action while said second cache line is in said M state, reassigning said second cache line into said E state if said second cache line is snooped following a read cycle while said second cache line is in said M state, and reassigning said second cache line into said I state if said second cache line is snooped following a write cycle while said second cache line is in said M state.
Claim 6
Dependent Claim 82 words
The improved cache controller of claim 4, wherein, if said means had caused a write through to said main memory in response to a write to said first cache line while said first cache line is in said Σ state, said means further causes a write to said second cache line while said second cache line is in a selected one of said E and said M states to be held off until the write through to said memory is actually completed.
Claim 7
Dependent Claim 230 words
The improved cache controller of claim 5, wherein, said means further maintains said first cache line in said I state if a subsequent action performed against said first cache line is a read with an uncacheable source address action, a write action and a snoop action while said first cache line is in said I state, reassigning said first cache line into said E state if said first cache line is read with a write back characteristic while said first cache line is in said I state, and reassigning said first cache line into said Σ state if said first cache line is read with a write through characteristic while said first cache line is in said I state; said means also maintains said second cache line in said I state if a subsequent action performed against said second cache line is a read with an uncacheable source address action, a write action and a snoop action while said second cache line is in said I state, reassigning said second cache line into said E state if said second cache line is read with a write back characteristic while said second cache line is in said I state, and reassigning said second cache line into said Σ state if said second cache line is read with a write through characteristic while said second cache line is in said I state.
Claim 8
Dependent Claim 70 words
The improved cache controller of claim 6, wherein, said means further causes any data written into said first cache line while said first cache line is in said I state to be written immediately into said main memory respectively; said means further causes any data written into said second cache line while said second cache line is in said I state to be written immediately into said main memory respectively.
Claim 9
Dependent Claim 81 words
The improved cache controller of claim 7, wherein, if said means had caused a write through to said main memory in response to a write to said first cache line while said first cache line is in said I state, said means further causes a write to said second cache line while said second cache line in a selected one of said E and said M states to be held off until the write through to said memory is actually completed.
Claim 10
Dependent Claim 26 words
The improved cache controller of claim 8, wherein, said processor, said improved cache controller, and said cache memory are integrated in a single silicon based chip.
Claim 11
Dependent Claim 164 words
In an uniprocessor computer system comprising a processor, a cache memory, a main memory, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, an improved cache controller for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising circuitry for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 12
Dependent Claim 164 words
In an uniprocessor computer system comprising a processor, a cache memory, a main memory, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, an improved cache controller for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising circuitry for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 13
Dependent Claim 138 words
The improved cache controller of claim 10, wherein, said circuitry further assigns an exclusive state (E) to a second cache line of said cache memory when said second cache line is allocated with a write back characteristic, maintaining said second cache line in said E state if a subsequent action performed against said second cache line is a selected one of a read action and a snoop action while said second cache line is in said E state, reassigning said second cache line into a modified state (M) if said second cache line is written into while said second cache line is in said E state, and reassigning said second cache line into said invalid state (I) if said second cache line is snooped following a write cycle while said second cache line is in said E state.
Claim 14
Dependent Claim 113 words
The improved cache controller of claim 11, wherein, said circuitry further maintains said second cache line in said M state if a subsequent action performed against said second cache line is a selected one of a read and a write action while said second cache line is in said M state, and reassigning said second cache line into said E state if said second cache line is snooped following a read cycle while said second cache line is in said M state, and reassigning said second cache line into said I state if said second cache line is snooped following a write cycle while said second cache line is in said M state.
Claim 15
Dependent Claim 238 words
The improved cache controller of claim 12, wherein, said circuitry further maintains said first cache line in said I state if a subsequent action performed against said first cache line is a selected one of a read with an uncacheable source address action, a write action and a snoop action while said first cache line is in said I state, reassigning said first cache line into said E state if said first cache line is read with a write back characteristic while said first cache line is in said I state, and reassigning said first cache line into said Σ state if said first cache line is read with a write through characteristic while said first cache line is in said I state; said circuitry also maintains said second cache line in said I state if a subsequent action performed against said second cache line is a selected one of a read with an uncacheable source address action, a write action and a snoop action while said second cache line is in said I state, reassigning said second cache line into said E state if said second cache line is read with a write back characteristic while said second cache line is in said I state, and reassigning said second cache line. into said Σ state if said second cache line is read with a write through characteristic while said second cache line is in said I state.
Claim 16
Dependent Claim 165 words
In an uniprocessor computer system comprising a processor, a cache memory, a main memory, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, an improved method for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement method comprising the steps of: assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 17
Dependent Claim 165 words
In an uniprocessor computer system comprising a processor, a cache memory, a main memory, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, an improved method for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement method comprising the steps of: assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 18
Dependent Claim 146 words
The improved method of claim 14, wherein, the improvement further comprises the steps of: assigning an exclusive state (E) to a second cache line of said cache memory when said second cache line is allocated with a write back characteristic, maintaining said second cache line in said E state if a subsequent action performed against said second cache line is a selected one of a read action and a snoop action followed by a read action while said second cache line is in said E state, reassigning said second cache line into a modified state (M) if said second cache line is written into while said second cache line is in said E state, and reassigning said second cache line into said invalid state (I) if said second cache line is snooped following a write cycle while said second cache line is in said E state.
Claim 19
Dependent Claim 117 words
The improved method of claim 15, wherein, the improvement further comprises the steps of: maintaining said second cache line in said M state if a subsequent action performed against said second cache line is a selected one of a a read action and a write action while said second cache line is in said M state, reassigning said second cache line into said E state if said second cache line is snooped following a read cycle while said second cache line is in said M state, and reassigning said second cache line into said I state if said second cache line is snooped following a write cycle while said second cache line is in said M state.
Claim 20
Dependent Claim 237 words
The improved cache controller of claim 16, wherein, the improvement further comprises the steps of: maintaining said first cache line in said I state if a subsequent action performed against said first cache line is a selected one of a read with an uncacheable source address action, a write action and a snoop action while said first cache line is in said I state, reassigning said first cache line into said E state if said first cache line is read with a write back characteristic while said first cache line is in said I state, reassigning said first ache line into said Σ state if said first cache line is read with a write through characteristic while said first cache line is in said I state, maintaining said second cache line in said I state if a subsequent action performed against said second cache line is a selected one a read with an uncacheable source address action, a write action and a snoop action while said second cache line is in said I state, reassigning said second cache line into said E state if said second cache line is read with a write back characteristic while said second cache line is in said I state, and reassigning said second cache line into said Σ state if said second cache line is read with a write through characteristic while said second cache line is in said I state.
Claim 21
Dependent Claim 196 words
In an uniprocessor computer system comprising a processor, a main memory for storing data, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, a cache subsystem comprising: a cache memory coupled to said processor and said memory for caching a subset of the stored data of said main memory; and an improved cache controller coupled to said cache memory for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising circuitry for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read cycle while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 22
Dependent Claim 196 words
In an uniprocessor computer system comprising a processor, a main memory for storing data, and an input/output (I/O) device, wherein said processor and said I/O device both making independent accesses to said main memory, a cache subsystem comprising: a cache memory coupled to said processor and said memory for caching a subset of the stored data of said main memory; and an improved cache controller coupled to said cache memory for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising circuitry for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read cycle while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 23
Dependent Claim 204 words
An uniprocessor computer system comprising: a processor for executing instructions; a main memory for storing instructions and data; a cache memory coupled to said processor and said memory for caching a subset of the stored instructions and data of said main memory, said processor making accesses to said main memory; an input/output (I/O) device for performing input and output, said I/O device making independent accesses to said main memory; an improved cache controller coupled to said cache memory for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising circuitry for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.
Claim 24
Dependent Claim 204 words
An uniprocessor computer system comprising: a processor for executing instructions; a main memory for storing instructions and data; a cache memory coupled to said processor and said memory for caching a subset of the stored instructions and data of said main memory, said processor making accesses to said main memory; an input/output (I/O) device for performing input and output, said I/O device making independent accesses to said main memory; an improved cache controller coupled to said cache memory for controlling said cache memory and maintaining coherency between said cache and main memory, the improvement comprising circuitry for assigning a pseudo shared state (Σ) to a first cache line of said cache memory when said first cache line is allocated with a write through characteristic, maintaining said first cache line in said Σ state if a subsequent action performed against said first cache line is a selected one of a read action, a write action and a snoop action following a read action while said first cache line is in said Σ state, and reassigning said first cache line into an invalid state (I) if said first cache line is snooped following a write cycle while said first cache line is in said Σ state.

References Cited (Backward Citations)

US4755930A Cited
US4959777A Cited
US5146603A Cited
US5119485A Cited
US5241664A Cited
US5297269A Cited
US5369753A Cited
US5303362A Cited
US5355467A Cited
US5426765A Cited
US5325503A Cited
US5353415A Cited
US5394555A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag