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

System and method for preventing stale data in multiple processor computer systems

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

Abstract

Abstract A multi-processor computer system comprising a data storage device, a memory controller, and a plurality of processors. The data storage device has a plurality of memory lines, each memory line having a portion for alternatively storing data or, a set of GONE codes, a count value, and a processor identification code value. A memory controller coupled to the data storage alternatively stores and retrieves data or the GONE code, the count field value and the processor identification code value. At least one of the processors includes a cache memory and a cache memory controller. The cache memory controller compares a GONE code associated with the requested memory line with the contents of the requested memory line, and requests the contents of the requested memory line from a second of the processors in response to the comparison.

Inventors

  • 👤 David V. James
  • 👤 Glen D. Stone
  • 👤 Donald N. North

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 15:03
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0817; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 106 words
A method for reading contents of a requested memory address in a first memory device, comprising the steps of: receiving a first address signal corresponding to the requested memory address; transmitting data contained in a first memory address location, corresponding to the requested memory address, to a second memory address location, located in a second memory device associated with said requesting processor; and storing an ownership code in said first memory address location, said ownership code being stored in at least portions of said first memory address location containing said data, before determining if said transmitted contents of said first memory address location is valid data.
Claim 2
Independent Claim 106 words
A method for reading contents of a requested memory address in a first memory device, comprising the steps of: receiving a first address signal corresponding to the requested memory address; transmitting data contained in a first memory address location, corresponding to the requested memory address, to a second memory address location, located in a second memory device associated with said requesting processor; and storing an ownership code in said first memory address location, said ownership code being stored in at least portions of said first memory address location containing said data, before determining if said transmitted contents of said first memory address location is valid data.
Claim 3
Dependent Claim 20 words
The method of claim 1, further comprising the step of: determining a GONE code corresponding to the requested memory address.
Claim 4
Dependent Claim 55 words
The method of claim 2, wherein said step of storing an ownership code includes the steps of: storing said GONE code in said first memory address location; incrementing a count field in said first memory address location; and storing a processor identifier in said first memory address location, said processor identifier representing said requesting processor.
Claim 5
Dependent Claim 38 words
The method of claim 2, further comprising the steps of: comparing said GONE code with a portion of said contents of said first memory address location; and generating a status signal representing a result of said comparing step.
Claim 6
Dependent Claim 54 words
The method of claim 4, further comprising the step of: determining if a first owner identification code corresponds with a valid processor device by comparing said first owner identification code to a predetermined table of valid processor device codes, said first owner identification code located in a portion of said first memory address location.
Claim 7
Dependent Claim 59 words
The method of claim 4, wherein said status signal represents one of a NONE status and a DIFF status, said NONE status indicating that the contents of the first memory address location are valid data, said DIFF status indicating that no determination as to the whether the contents of the first memory address location are valid data has occurred.
Claim 8
Dependent Claim 83 words
The method of claim 6, further comprising the step of: requesting the contents of a third memory address location, corresponding to the requested memory address located in a third memory device associated with a third processor, said third memory device represented in a portion of said transmitted contents of said first memory address location, if a DIFF status signal is generated; and transferring the contents of said third memory address location to said second memory address location if a coherency check is passed.
Claim 9
Dependent Claim 144 words
The method of claim 3, further comprising the steps of: comparing said GONE code with a CHECK value in said second memory address location; reading a second owner identification code in said second memory address location, if said GONE code is equal to said CHECK value in said second memory address location, said owner identification code identifying an owner processor having a third memory address location corresponding to the requested memory address; requesting the contents of said third memory address location, if said GONE code is equal to said CHECK value in said second memory address location; and transmitting one of an error code to said requesting processor if said third memory address location does not contain the requested memory address, and the contents of said third memory address location if said third memory address location contains the contents of the requested memory address.
Claim 10
Dependent Claim 29 words
The method of claim 8, wherein contents of said second memory address location are equal to the contents of the requested memory address if said error code is transmitted.
Claim 11
Dependent Claim 53 words
The method of claim 8, wherein said error code is transmitted if one of the following occurs: said second owner identification code does not identify a processor; said owner processor, identified by said second owner identification code, does not include the requested memory address; and said owner processor is in an inconsistent state.
Claim 12
Dependent Claim 34 words
The method of claim 8, further comprising the steps of: receiving said contents of said third memory address location representing the contents of the requested memory address if said error code is not transmitted.
Claim 13
Dependent Claim 92 words
A memory system for a computer system having a plurality of processors, the memory system comprising: a data storage device, having inputs and outputs for receiving and outputting data, the data storage device having a plurality of memory lines, each memory line having a portion for alternatively storing one of data and an ownership code; and a memory controller, having inputs and outputs disposed to receive and transmit commands, addresses, and data from the processors, said memory controller coupled to said data storage for alternatively storing and retrieving data and ownership code.
Claim 14
Dependent Claim 92 words
A memory system for a computer system having a plurality of processors, the memory system comprising: a data storage device, having inputs and outputs for receiving and outputting data, the data storage device having a plurality of memory lines, each memory line having a portion for alternatively storing one of data and an ownership code; and a memory controller, having inputs and outputs disposed to receive and transmit commands, addresses, and data from the processors, said memory controller coupled to said data storage for alternatively storing and retrieving data and ownership code.
Claim 15
Dependent Claim 21 words
The memory system of claim 12 wherein said ownership codes include one of a check field, count field, and identification field.
Claim 16
Dependent Claim 108 words
The memory system of claim 13, wherein a first of said processors comprises: a cache memory, having inputs and outputs for receiving and outputting data, the cache memory having memory lines to store the contents of a requested memory line of said memory lines; a cache memory controller, coupled to said cache memory, for requesting the contents of said requested memory line, for comparing a GONE code that is associated with said requested memory line with the contents of said check field of said requested memory line, and for requesting the contents of said requested memory line from a second of said processors in response to said comparison.
Claim 17
Dependent Claim 17 words
The memory system of claim 14, wherein the GONE code is a result of a hashing function.
Claim 18
Dependent Claim 163 words
The memory system of claim 13, wherein the data storage device has data inputs and outputs, a control input and address inputs and outputs and wherein the memory controller comprises: a data buffer, having inputs and outputs coupled to the data inputs and outputs of the data storage device, for receiving and outputting data; an address buffer, having inputs coupled to the plurality of processors and having inputs and outputs coupled to the address inputs of the data storage device, for receiving addresses; and a memory sequencer, having inputs and outputs, the outputs coupled to the control input of the data storage device, the address buffer, and the data buffer, for generating signals that instruct the data storage device to store and retrieve data, for modifying said memory line portion by storing said GONE value, for storing said processor identification code and incrementing said count field, and for returning a status signal indicating whether the data storage device previously contained the GONE value.
Claim 19
Dependent Claim 13 words
The memory system of claim 16, wherein the memory sequencer contains combinational logic.
Claim 20
Dependent Claim 34 words
The memory system of claim 16, further comprising a memory identification storage device, disposed to receive signals from said memory sequencer, said memory identification storage device having representations of valid cache memory identification codes.
Claim 21
Dependent Claim 36 words
The memory system of claim 14, further comprising a memory identification storage device, disposed to receive signals from said first of said processors, said memory identification storage device having representations of valid cache memory identification codes.
Claim 22
Dependent Claim 28 words
The memory system of claim 14, wherein each memory line of the data storage device has an unique address and the GONE code is based on the address.
Claim 23
Dependent Claim 33 words
The memory system of claim 20, wherein the GONE code held in said portion of said memory line is a result of a hashing function performed on the address of said memory line.
Claim 24
Dependent Claim 100 words
A memory system comprising: a data storage device comprising a plurality of memory locations; and a memory controller which controls writing of data to said data storage device and reading of data from said data storage device, comprising: means, responsive to a read request received from a processor, for retrieving data from a memory location in said data storage device corresponding to an address contained in said read request and for transmitting said retrieved data to said processor; and means for storing data which identifies said processor to said memory location corresponding to said address contained in said read request.
Claim 25
Dependent Claim 100 words
A memory system comprising: a data storage device comprising a plurality of memory locations; and a memory controller which controls writing of data to said data storage device and reading of data from said data storage device, comprising: means, responsive to a read request received from a processor, for retrieving data from a memory location in said data storage device corresponding to an address contained in said read request and for transmitting said retrieved data to said processor; and means for storing data which identifies said processor to said memory location corresponding to said address contained in said read request.
Claim 26
Dependent Claim 43 words
A memory system as set forth in claim 22 wherein said memory controller further comprises: means for determining a GONE value for said address and for storing said GONE value to said memory location corresponding to said address contained in said read request.

References Cited (Backward Citations)

US5247648A Cited
US5249284A Cited
US5530835A Cited
US5434993A Cited
US5524233A Cited
US5530933A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag