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

Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete

Assignee: Sun Microsystems Inc
•
Filing: 1992-04-29
•
Granted: 1994-10-04
•
Expires: 2012-04-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache array, a cache tag and comparator unit and a cache multiplexor are provided to a cache memory. Each cache operation performed against the cache array, read or write, takes only half a clock cycle. The cache tag and comparator unit comprises a cache tag array, a cache miss buffer and control logic. Each cache operation performed against the cache tag array, read or write, also takes only half a clock cycle. The cache miss buffer comprises cache miss descriptive information identifying the current state of a cache fill in progress. The control logic comprises a plurality of combinatorial logics for performing tag match operations. In addition to standard tag match operations, the control logic also conditionally tag matches an accessing address against an address tag stored in the cache miss buffer. Depending on the results of the tag match operations, and further depending on the state of the current cache fill if the accessing address is part of the memory block frame of the current cache fill, the control logic provides appropriate signals to the cache array, the cache multiplexor, the main memory and the instruction/data destination. As a result, subsequent instruction/data requests that are part of a current cache fill in progress can be satisfied without having to wait for the completion of the current cache fill, thereby further reducing cache miss penalties and function unit idle time.

Inventors

  • 👤 Rajiv N. Patel
  • 👤 Adam Malamy
  • 👤 Norman M. Hayes

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 10:21
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0844; G06F12/0855; G06F12/0859; G06F13/00

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 188 words
In a computer system, a method for caching instruction/data that further reduces cache miss penalties, said method comprising the steps of: a) storing a plurality of memory block frames of a main memory of said computer system in a plurality of cache lines of a cache array; b) storing a plurality of address tags for said cached memory block frames in a plurality of cache tag entries of a cache tag array corresponding to said cache lines; c) storing cache fill descriptive information for a memory block frame of a cache fill in progress in a cache miss buffer; d) determining cache hit/miss for an instruction/data request using said address tags for said cached memory block frames and said cache fill descriptive information; and e) providing appropriate signals to said cache array, said main memory, and a destination for an instruction/data requested by said instruction/data request accordingly such that said instruction/data request is satisfied if said instruction/data requested is part of said memory block frame of said cache fill in progress, without having to wait for said cache fill to be completed, thereby further reducing cache miss penalties.
Claim 2
Dependent Claim 188 words
In a computer system, a method for caching instruction/data that further reduces cache miss penalties, said method comprising the steps of: a) storing a plurality of memory block frames of a main memory of said computer system in a plurality of cache lines of a cache array; b) storing a plurality of address tags for said cached memory block frames in a plurality of cache tag entries of a cache tag array corresponding to said cache lines; c) storing cache fill descriptive information for a memory block frame of a cache fill in progress in a cache miss buffer; d) determining cache hit/miss for an instruction/data request using said address tags for said cached memory block frames and said cache fill descriptive information; and e) providing appropriate signals to said cache array, said main memory, and a destination for an instruction/data requested by said instruction/data request accordingly such that said instruction/data request is satisfied if said instruction/data requested is part of said memory block frame of said cache fill in progress, without having to wait for said cache fill to be completed, thereby further reducing cache miss penalties.
Claim 3
Dependent Claim 134 words
The method as set forth in claim 1, wherein, said cache fill description information stored in said step c) comprises an address tag and an active indicator for said memory block frame of said cache fill in progress; and said step d) further comprises the steps of: d.1) matching a read address of said instruction/data request against said address tags of said memory block frames to determine whether said instruction/data requested is cached in said cache lines; d.2) matching said read address against said address tag of said memory block frame of said cache fill in progress to determine whether said instruction/data requested is part of said memory block frame of said cache fill in progress if no match is found for said matchings in said step d.1) and said active indicator is set.
Claim 4
Dependent Claim 76 words
The method as set forth in claim 2, wherein, said cache fill descriptive information stored in said step c) further comprises a progress indicator; and said step d) further comprises the step of: d.3) determining whether said instruction/data requested has been retrieved from said main memory and stored into one of said cache lines using said progress indicator of said cache fill in progress if a match was determined in said matching in said step d.2).
Claim 5
Dependent Claim 74 words
The method as set forth in claim 2, wherein, said cache fill descriptive information stored in said step c) further comprises a progress indicator; and said step d) further comprises the step of: d.3) determining whether said instruction/data requested is going to be the next instruction/data being returned from said main memory using said progress indicator of said cache fill in progress if a match was determined in said matching in said step d.2).
Claim 6
Dependent Claim 92 words
The method as set forth in claim 1, wherein, said memory block frames of said main memory are stored in said cache lines in said step a) in a set associative manner; and said cache fill descriptive information stored in said step c) further comprises an index and a block value, said index identifying a cache set for storing said memory block frame of said cache fill in progress, said block value identifying a cache line of said cache set for storing said memory block frame of said cache fill in progress.
Claim 7
Dependent Claim 29 words
The method as set forth in claim 1, wherein, each cache operation performed against said cache array and said cache tag array takes only half of a clock cycle.
Claim 8
Dependent Claim 45 words
The method as set forth in claim 1, wherein, said cache array is an instruction cache array; said cache tag array is an instruction cache tag array; said cache miss buffer is an instruction cache miss buffer; and said instruction/data request is an instruction request.
Claim 9
Dependent Claim 45 words
The method as set forth in claim 1, wherein, said cache array is a data cache array; said cache tag array is a data cache tag array; said cache miss buffer is a data cache miss buffer; and said instruction/data request is a data request.
Claim 10
Dependent Claim 207 words
In a computer system, an apparatus for caching instruction/data that further reduces cache miss penalties, comprising: a) a cache array coupled to a main memory of said computer system comprising a plurality of cache lines for storing a plurality of memory block frames of said main memory; b) a cache tag array comprising a plurality of cache tag entries corresponding to said cache lines for storing a plurality of address tags for said cached memory block frames; c) a cache miss buffer for storing cache fill descriptive information for a memory block frame of a cache fill in progress; d) control logic coupled to said main memory, said cache array, said cache tag array, and said cache miss buffer for determining cache hit/miss for an instruction/data request using said address tags for said cached memory block frames and said cache fill descriptive information, and providing appropriate signals to said cache array, said main memory, and a destination for an instruction/data requested by said instruction/data request accordingly such that said instruction/data request is satisfied if said instruction/data requested is part of said memory block frame of said cache fill in progress, without having to wait for said cache fill to be completed, thereby further reducing cache miss penalties.
Claim 11
Dependent Claim 207 words
In a computer system, an apparatus for caching instruction/data that further reduces cache miss penalties, comprising: a) a cache array coupled to a main memory of said computer system comprising a plurality of cache lines for storing a plurality of memory block frames of said main memory; b) a cache tag array comprising a plurality of cache tag entries corresponding to said cache lines for storing a plurality of address tags for said cached memory block frames; c) a cache miss buffer for storing cache fill descriptive information for a memory block frame of a cache fill in progress; d) control logic coupled to said main memory, said cache array, said cache tag array, and said cache miss buffer for determining cache hit/miss for an instruction/data request using said address tags for said cached memory block frames and said cache fill descriptive information, and providing appropriate signals to said cache array, said main memory, and a destination for an instruction/data requested by said instruction/data request accordingly such that said instruction/data request is satisfied if said instruction/data requested is part of said memory block frame of said cache fill in progress, without having to wait for said cache fill to be completed, thereby further reducing cache miss penalties.
Claim 12
Dependent Claim 150 words
The apparatus as set forth in claim 9, wherein, said cache fill description information stored in said cache miss buffer comprise an address tag and an active indicator for said memory block frame of said cache fill in progress; and said control logic comprises: d.1) first matching logic coupled to said cache tag array for matching a read address of said instruction/data request against said address tags of said memory block frames to determine whether said instruction/data requested is cached in said cache lines; and d.2) second matching logic coupled to said cache miss buffer for matching said read address against said address tag of said memory block frame of said cache fill in progress to determine whether said instruction/data requested is part of said memory block frame of said cache fill in progress if no match is found by said first matching logic and said active indicator is set.
Claim 13
Dependent Claim 81 words
The apparatus as set forth in claim 10, wherein, said cache fill descriptive information stored in said cache miss buffer further comprises a progress indicator; and said control logic further comprises: d.3) determining logic coupled to said cache miss buffer for determining whether said instruction/data requested has been retrieved from said main memory and stored into one of said cache lines using said progress indicator of said cache fill in progress if a match was determined by said second matching logic.
Claim 14
Dependent Claim 79 words
The apparatus as set forth in claim 10, wherein, said cache fill descriptive information stored in said cache miss buffer further comprises a progress indicator; and said control logic further comprises: d.3) determining logic coupled to said cache miss buffer for determining whether said instruction/data requested is going to be the next instruction/data being returned from said main memory using said progress indicator of said cache fill in progress if a match was determined by said second matching logic.
Claim 15
Dependent Claim 91 words
The apparatus as set forth in claim 9, wherein, said cache array stores said memory block frames of said main memory in said cache lines in a set associative manner; and said cache fill descriptive information stored in said cache miss buffer further comprises an index and a block value, said index identifying a cache set for storing said memory block frame of said cache fill in progress, said block value identifying a cache line of said cache set for storing said memory block frame of said cache fill in progress.
Claim 16
Dependent Claim 29 words
The apparatus as set forth in claim 9, wherein, each cache operation performed against said cache array and said cache tag array takes only half of a clock cycle.
Claim 17
Dependent Claim 45 words
The apparatus as set forth in claim 9, wherein, said cache array is an instruction cache array; said cache tag array is an instruction cache tag array; said cache miss buffer is an instruction cache miss buffer; and said instruction/data request is an instruction request.
Claim 18
Dependent Claim 45 words
The apparatus as set forth in claim 9, wherein, said cache array is a data cache array; said cache tag array is a data cache tag array; said cache miss buffer is a data cache miss buffer; and said instruction/data request is a data request.
Claim 19
Dependent Claim 102 words
A computer system comprising: a) at least one execution function unit; b) a main memory; and c) a cache memory coupled to said at least one execution function unit and said main memory for caching instructions and data, said cache memory comprising at least one cache array, at least one cache tag array, at least one cache miss buffer and at least one cache control logic, said cache memory satisfying an instruction/data request requesting an instruction/data that is part of a memory block frame of a cache fill in progress without having to wait for said cache fill in progress to complete.
Claim 20
Dependent Claim 102 words
A computer system comprising: a) at least one execution function unit; b) a main memory; and c) a cache memory coupled to said at least one execution function unit and said main memory for caching instructions and data, said cache memory comprising at least one cache array, at least one cache tag array, at least one cache miss buffer and at least one cache control logic, said cache memory satisfying an instruction/data request requesting an instruction/data that is part of a memory block frame of a cache fill in progress without having to wait for said cache fill in progress to complete.
Claim 21
Dependent Claim 179 words
The computer system as set forth in claim 17, wherein, said cache memory comprises: c.1) an instruction cache memory coupled to said at least one function unit and said main memory for caching instructions, said instruction cache memory comprising an instruction cache array, an instruction cache tag array, an instruction cache miss buffer and an instruction cache control logic, said instruction cache memory satisfying an instruction request requesting an instruction that is part of a memory block frame of a cache fill in progress without having to wait for said cache fill in progress to complete; and c.2) a data cache memory coupled to said at least one function unit and said main memory for caching data, said data cache memory comprising an data cache array, a data cache tag array, a data cache miss buffer and a data cache control logic, said data cache memory satisfying a data request requesting a data that is part of a memory block frame of a cache fill in progress without having to wait for said cache fill in progress to complete.

References Cited (Backward Citations)

US4768148A Cited
US5253358A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag