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

Method for maintaining low-overhead and non-coherent cache refresh mechanism with valid status monitoring on time period basis

Assignee: Compaq Computer Holding Ltd
•
Filing: 1993-09-30
•
Granted: 1995-12-26
•
Expires: 2013-09-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache memory refreshment mechanism employing ageing-out criteria to remove stale entries from the cache memory. Entries in the cache memory may have one of four states: 1) VALID, indicating that the entry may be used by the local processor; 2) DYING, indicating that the entry may be used, but that it has been in existence in the cache for a predetermined period of time; 3) REFRESH, following a dying status, indicating a) that the entry may still be used, b) that the entry has just been used while in the dying state, and c) that retrieval of data to update the entry and return it its valid state is being effected; and 4) IDLE, indicating that the entry has been aged out of the cache, and may not be used. The refresh status enables a cache entry may be updated independently of the processor using the cache, and thus the number of processor stalls resulting from data not being available in the cache after having been aged out is substantially reduced.

Inventors

  • 👤 Neil A. J. Jarvis

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 17:56
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/12; G06F12/121

Claims Analysis

Total Claims: 2
Claim 1
Independent Claim 645 words
A method of operating a cache, comprising the steps of: (A) for each of data requests generated by a processor coupled to the cache, performing the following steps: (i) determining whether a copy of the requested data is stored in the cache; (ii) if a copy of the requested data is determined to be stored in the cache, performing the following steps: (a) retrieving a status flag associated with the stored copy of the requested data from the cache, the retrieved status flag indicating whether the stored copy of the requested data has an IDLE, VALID, DYING, or REFRESH status, the IDLE status indicating that the stored copy is non-usable for satisfying processor data requests, the VALID status indicating that the stored copy is usable for satisfying processor data requests for at least a first time period T 1 commencing when the stored copy first attains VALID status, the DYING status indicating that the stored copy is usable for satisfying processor data requests but will become non-usable after the passage of a second time period T 2 in the absence of access thereto by the processor, the second time period T 2 commencing when the stored copy first attains DYING status, and the REFRESH status indicating that the stored copy is usable for satisfying processor data requests but will shortly be replaced by a fresh copy of the requested data to be retrieved from a memory coupled to the cache; (b) if the stored copy is indicated by the retrieved status flag as having an IDLE status, performing the steps recited in (A)(iii) below for the case in which a copy of the requested data is determined not to be stored in the cache; (c) if the stored copy is indicated by the retrieved status flag as having either a VALID, DYING, or REFRESH status, retrieving the stored copy of the requested data and returning the retrieved copy to the processor in satisfaction of the processor's data request; and (d) if the stored copy is indicated by the retrieved status flag as having a DYING status, performing the following steps: (1) changing the stored status flag to indicate that the stored copy now has a REFRESH status; and (2) initiating an update of the stored copy from the memory; and (iii) if a copy of the requested data is determined not to be stored in the cache, performing the following steps: (a) retrieving a copy of the requested data from the memory; (b) storing the retrieved copy in the cache; (c) setting the status flag associated with the stored retrieved copy to VALID upon storing the retrieved copy in the cache; and (d) returning the retrieved data to the processor in satisfaction of the processor's data request; (B) for each of stored copies of requested data in the cache, periodically performing the following steps: (i) retrieving the status flag associated with the stored copy; (ii) if the retrieved status flag indicates that the stored copy has a VALID status, performing the following steps: (a) monitoring the passage of T 1 for the stored copy; and (b) setting the status flag for the stored copy to DYING if T 1 has passed; and (iii) if the retrieved status flag indicates that the stored copy has a DYING status, performing the following steps: (a) monitoring the passage of T 2 ; and (b) setting the status flag for the stored copy to IDLE if T 2 has passed; and (C) for each of the stored copies for which an update from the memory has been initiated, performing the following steps: (i) retrieving a fresh copy of the requested data from the memory; (ii) storing the retrieved fresh copy in the cache replacing the stored copy; and (iii) setting the status flag for the stored fresh copy to VALID upon storing the retrieved fresh copy in the cache.
Claim 2
Independent Claim 645 words
A method of operating a cache, comprising the steps of: (A) for each of data requests generated by a processor coupled to the cache, performing the following steps: (i) determining whether a copy of the requested data is stored in the cache; (ii) if a copy of the requested data is determined to be stored in the cache, performing the following steps: (a) retrieving a status flag associated with the stored copy of the requested data from the cache, the retrieved status flag indicating whether the stored copy of the requested data has an IDLE, VALID, DYING, or REFRESH status, the IDLE status indicating that the stored copy is non-usable for satisfying processor data requests, the VALID status indicating that the stored copy is usable for satisfying processor data requests for at least a first time period T 1 commencing when the stored copy first attains VALID status, the DYING status indicating that the stored copy is usable for satisfying processor data requests but will become non-usable after the passage of a second time period T 2 in the absence of access thereto by the processor, the second time period T 2 commencing when the stored copy first attains DYING status, and the REFRESH status indicating that the stored copy is usable for satisfying processor data requests but will shortly be replaced by a fresh copy of the requested data to be retrieved from a memory coupled to the cache; (b) if the stored copy is indicated by the retrieved status flag as having an IDLE status, performing the steps recited in (A)(iii) below for the case in which a copy of the requested data is determined not to be stored in the cache; (c) if the stored copy is indicated by the retrieved status flag as having either a VALID, DYING, or REFRESH status, retrieving the stored copy of the requested data and returning the retrieved copy to the processor in satisfaction of the processor's data request; and (d) if the stored copy is indicated by the retrieved status flag as having a DYING status, performing the following steps: (1) changing the stored status flag to indicate that the stored copy now has a REFRESH status; and (2) initiating an update of the stored copy from the memory; and (iii) if a copy of the requested data is determined not to be stored in the cache, performing the following steps: (a) retrieving a copy of the requested data from the memory; (b) storing the retrieved copy in the cache; (c) setting the status flag associated with the stored retrieved copy to VALID upon storing the retrieved copy in the cache; and (d) returning the retrieved data to the processor in satisfaction of the processor's data request; (B) for each of stored copies of requested data in the cache, periodically performing the following steps: (i) retrieving the status flag associated with the stored copy; (ii) if the retrieved status flag indicates that the stored copy has a VALID status, performing the following steps: (a) monitoring the passage of T 1 for the stored copy; and (b) setting the status flag for the stored copy to DYING if T 1 has passed; and (iii) if the retrieved status flag indicates that the stored copy has a DYING status, performing the following steps: (a) monitoring the passage of T 2 ; and (b) setting the status flag for the stored copy to IDLE if T 2 has passed; and (C) for each of the stored copies for which an update from the memory has been initiated, performing the following steps: (i) retrieving a fresh copy of the requested data from the memory; (ii) storing the retrieved fresh copy in the cache replacing the stored copy; and (iii) setting the status flag for the stored fresh copy to VALID upon storing the retrieved fresh copy in the cache.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-12-25 1999-06-26 1999-12-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-12-25 2003-06-26 2003-12-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-12-25 2007-06-26 2007-12-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag