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

System and method for changing the states of directory-based caches and memories from read/write to read-only

Assignee: Apple Inc
•
Filing: 1997-10-21
•
Granted: 2000-03-07
•
Expires: 2017-10-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for converting between the states of fresh and owned in a multi-processor computer system comprises a memory line with a structure including a first field for storing a memory state, a second field for storing an address, and a third field for storing data. Each of the cache lines for processors in the system includes a plurality of data fields including one for storing the cache line state, one for storing a forward pointer, one for storing a backward pointer, and one for storing data. A method is also provided for automatically washing memory lines. The system is advantageous because it allows the data to be transferred immediately when it is available, rather than requiring the next cache-line owner to poll until the data is available. Still more particularly, the present invention provides a method of reliably converting an owned data line from stale to fresh when read fresh accesses are being performed, while correctly leaving the line in an owned state if additional read owned access occur. The present invention maximizes the efficiency of memory by maintaining a fresh copy of the data line when the data is only being read, and maintaining an owned copy of the data line when the data is being read and written.

Inventors

  • 👤 David V. James

Bibliographic Details

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

Claims Analysis

Total Claims: 14
Claim 1
Independent Claim 96 words
A method of reliably changing states of caches and a memory from read/write to read-only, the method comprising the steps of: initiating a memory access operation for a line of a memory; determining a state of the line of memory; determining whether the state of the memory line can be converted to read-only without conflict; converting the state of the memory line to read-only if the memory line can be converted to read-only without conflict; and converting the state of the memory line to STALE if the memory line cannot be converting to read-only without conflict.
Claim 2
Independent Claim 96 words
A method of reliably changing states of caches and a memory from read/write to read-only, the method comprising the steps of: initiating a memory access operation for a line of a memory; determining a state of the line of memory; determining whether the state of the memory line can be converted to read-only without conflict; converting the state of the memory line to read-only if the memory line can be converted to read-only without conflict; and converting the state of the memory line to STALE if the memory line cannot be converting to read-only without conflict.
Claim 3
Dependent Claim 73 words
The method of claim 1, further comprising the steps of: determining whether the memory access operation initiated is a request to create a read-only copy; aborting the steps of determining whether the state of the memory line can be converted, converting the state of the memory line to read-only, converting the state of the memory line to STALE, if the memory access operation initiated is not a request to create a read-only copy.
Claim 4
Dependent Claim 61 words
The method of claim 1, further comprising the steps of: determining whether the state of the memory line is FRESH; if the state of the memory line is FRESH copying data from the memory line to a cache line of a requesting processor; updating a state of the cache line; and updating pointers for the memory line and the cache line.
Claim 5
Dependent Claim 63 words
The method of claim 1, further comprising the steps of: determining whether the state of the memory line is STALE aborting the steps of determining whether the state of the memory line can be converted, converting the state of the memory line to read-only, converting the state of the memory line to STALE, if the state of the memory line in not STALE.
Claim 6
Dependent Claim 75 words
The method of claim 1, further comprising the step of: determining whether the memory access operation included a commitment to convert the memory line; if the memory access operation did not include a commitment to convert the memory line, further performing the steps of: retrieving data for the memory line from a cache line that holds fresh data; and copying the data to a cache line of a processor that initiated the memory access operation.
Claim 7
Dependent Claim 131 words
The method of claim 1, further comprising the steps of: determining whether the memory access operation included a commitment to convert the memory line; if the memory access operation did not include a commitment to convert the memory line, further performing the steps of: determining a first processor that initiated the memory access operation; determining a second processor that hold valid data in a cache of the second processor; updating a state of a cache line for the first processor; changing a pointer of the memory line to point to the cache line of the first processor; copying data from a second processor cache line to the first processor cache line; and modifying the pointers for the first processor to point to the memory line and the second processor cache line.
Claim 8
Dependent Claim 80 words
The method of claim 1, further comprising the steps of: determining whether the memory access operation included a commitment to convert the memory line; if the memory access operation did include a commitment to convert the memory line, further performing the steps of: retrieving data for the memory line from a cache line that holds fresh data; copying the data to a cache line of a processor that initiated the memory access operation; and setting the memory state to wash.
Claim 9
Dependent Claim 40 words
The method of claim 1, wherein the step of determining whether the state of the memory line can be converted to read-only without conflict includes testing whether a conflicting memory access operation is a request to create another read-only copy.
Claim 10
Dependent Claim 184 words
A memory system for reliably changing states of caches and a memory from read/write to read-only in a computer system having a plurality of processors, the memory system comprising: a memory device having inputs and outputs for receiving and outputting data, the memory device having a plurality of memory lines, each memory line having a first portion for storing a state of the memory line, a second portion for storing an address to a cache line, and a third portion for storing data, the state of the memory line being changeable between a read-only state and a read/write state responsive to the presence or absence of conflicts; and a first cache associated with one of the plurality of processors, the first cache having inputs and outputs for receiving and outputting data, the first cache having a plurality of cache lines, each cache line having a first portion for storing a state of the cache line, a second portion for storing an address to another cache line, a third portion for storing an address to a memory line, and a fourth portion for storing data.
Claim 11
Dependent Claim 184 words
A memory system for reliably changing states of caches and a memory from read/write to read-only in a computer system having a plurality of processors, the memory system comprising: a memory device having inputs and outputs for receiving and outputting data, the memory device having a plurality of memory lines, each memory line having a first portion for storing a state of the memory line, a second portion for storing an address to a cache line, and a third portion for storing data, the state of the memory line being changeable between a read-only state and a read/write state responsive to the presence or absence of conflicts; and a first cache associated with one of the plurality of processors, the first cache having inputs and outputs for receiving and outputting data, the first cache having a plurality of cache lines, each cache line having a first portion for storing a state of the cache line, a second portion for storing an address to another cache line, a third portion for storing an address to a memory line, and a fourth portion for storing data.
Claim 12
Dependent Claim 84 words
The memory system of claim 9 further comprising a second cache associated with one of the plurality of processors, the second cache having inputs and outputs for receiving and outputting data, the second cache having a plurality of cache lines, each cache line having a first portion for storing a state of the cache line, a second portion for storing an address to another cache line, a third portion for storing an address to a memory line, and a fourth portion for storing data.
Claim 13
Dependent Claim 24 words
The memory system of claim 9, wherein the first cache further comprises a fifth portion for storing an address offset to a memory line.
Claim 14
Dependent Claim 21 words
The memory system of claim 11, wherein the first cache further comprises a sixth portion for storing an memory identification number.

References Cited (Backward Citations)

US5023854A Cited
US5463759A Cited
US5469555A Cited
US5956754A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-03-07 2003-09-06 2004-03-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-03-07 2007-09-06 2008-03-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-03-07 2011-09-06 2012-03-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag