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

Methods and apparatuses for servicing load instructions

Assignee: Sun Microsystems Inc
•
Filing: 1995-02-16
•
Granted: 1998-04-28
•
Expires: 2015-02-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A dual-ported tag array of a cache allows simultaneous access of the tag array by miss data of older LOAD instructions being returned during the same cycle that a new LOAD instruction is accessing the tag array to check for a cache hit. Because a load buffer queues LOAD instructions, the cache tags for older LOAD instructions which missed the cache return later when new LOAD instructions are accessing a tag array to check for cache hits. A method and apparatus for calculating and maintaining a hit bit in a load buffer perform the determination of whether or not a newly dispatched LOAD will hit the cache after it has been queued into the load buffer and waited for all older LOADs to be processed. A load buffer data entry includes the hit bit and all information necessary to process the LOAD instruction and calculate the hit bits for future LOAD instructions which must be buffered. A method and apparatus for servicing LOAD instructions, in which the access of the data array portion of a cache and the tag array portion are decoupled, allows the delayed access of the data array after a LOAD has been delayed in the load buffer without reaccessing the tag array. A method and apparatus allow access to the first level cache and second level cache to occur simultaneously for two separate LOADs in the load buffer.

Inventors

  • 👤 Dale Greenley
  • 👤 Leslie Kohn
  • 👤 Ming Yeh
  • 👤 Greg Williams

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 23:24
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/3004; G06F9/30043; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0844; G06F12/0853; G06F9/38; G06F9/3824; G06F9/3834; G06F9/3867; G06F9/3875; G06F12/0855; G06F12/0859

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 251 words
A method of servicing load instructions in a system having a cache, a second memory system, and a load buffer, wherein the load buffer is a first-in-first-out queue which holds load instructions while the load instructions await access to either the cache or the second memory system as required, wherein the load buffer has a head of the queue position, wherein access to the cache occurs with a first latency, and wherein access to the second memory system occurs with a second latency which is greater than the first latency, the method comprising the steps of: when a first load instruction reaches the head of the queue position, accessing the second memory system for the first load instruction when data requested by the first load instruction is not in the cache; when the first load instruction reaches the head of the queue position, accessing the cache for the first load instruction when it has been calculated that the data requested by the first load instruction is in the cache; and accessing the second memory system for a second load instruction not yet in the head of the queue position when the first load instruction is in the head of the queue position and the first load instruction is accessing the cache, such that the cache and second memory system are simultaneously being accessed by the first and second load instructions, respectively, and such that completion of all load instructions occur in the same order as their order in the load buffer.
Claim 2
Independent Claim 251 words
A method of servicing load instructions in a system having a cache, a second memory system, and a load buffer, wherein the load buffer is a first-in-first-out queue which holds load instructions while the load instructions await access to either the cache or the second memory system as required, wherein the load buffer has a head of the queue position, wherein access to the cache occurs with a first latency, and wherein access to the second memory system occurs with a second latency which is greater than the first latency, the method comprising the steps of: when a first load instruction reaches the head of the queue position, accessing the second memory system for the first load instruction when data requested by the first load instruction is not in the cache; when the first load instruction reaches the head of the queue position, accessing the cache for the first load instruction when it has been calculated that the data requested by the first load instruction is in the cache; and accessing the second memory system for a second load instruction not yet in the head of the queue position when the first load instruction is in the head of the queue position and the first load instruction is accessing the cache, such that the cache and second memory system are simultaneously being accessed by the first and second load instructions, respectively, and such that completion of all load instructions occur in the same order as their order in the load buffer.
Claim 3
Dependent Claim 16 words
A method as in claim 1, wherein the second memory system is a second level cache.
Claim 4
Dependent Claim 15 words
A method as in claim 2, wherein the cache is virtually indexed and physically tagged.
Claim 5
Dependent Claim 17 words
A method as in claim 3 wherein the second level cache is physically indexed and physically tagged.
Claim 6
Dependent Claim 96 words
A method as in claim 1, further comprising: before the first load instruction is in the head of the queue position, calculating whether the data requested by the first load instruction will be in the cache when the first load instruction reaches the head of the queue position, wherein, the step of accessing the cache for the first load instruction occurs only when it has been calculated in the calculating step that the data requested by the first load instruction would be in the cache when the first instruction reaches the head of the queue position.
Claim 7
Independent Claim 252 words
An apparatus for servicing load instructions in a system having a cache, a second memory system, and a load buffer, wherein the load buffer is a first-in-first-out queue which holds load instructions while the load instructions await access to either the cache or the second memory system as required, wherein the load buffer has a head of the queue position, wherein access to the cache occurs with a first latency, and wherein access to the second memory system occurs with a second latency which is greater than the first latency, the apparatus comprising: a first access circuit for accessing the second memory system for a first load instruction, when the first load instruction reaches the head of the queue position, when data requested by the first load instruction is not in the cache; a second access circuit for accessing the cache for the first load instruction in the head of the queue position when data requested by the first load instruction is in the cache; and a third access circuit for accessing the second memory system for a second load instruction not yet in the head of the queue position when the first load instruction is in the head of the queue position and the first load instruction is accessing the cache, such that the cache and second memory system are simultaneously being accessed by the first and second load instructions, respectively, and such that completion of all load instructions occurs in the same order as their order in the load buffer.
Claim 8
Independent Claim 252 words
An apparatus for servicing load instructions in a system having a cache, a second memory system, and a load buffer, wherein the load buffer is a first-in-first-out queue which holds load instructions while the load instructions await access to either the cache or the second memory system as required, wherein the load buffer has a head of the queue position, wherein access to the cache occurs with a first latency, and wherein access to the second memory system occurs with a second latency which is greater than the first latency, the apparatus comprising: a first access circuit for accessing the second memory system for a first load instruction, when the first load instruction reaches the head of the queue position, when data requested by the first load instruction is not in the cache; a second access circuit for accessing the cache for the first load instruction in the head of the queue position when data requested by the first load instruction is in the cache; and a third access circuit for accessing the second memory system for a second load instruction not yet in the head of the queue position when the first load instruction is in the head of the queue position and the first load instruction is accessing the cache, such that the cache and second memory system are simultaneously being accessed by the first and second load instructions, respectively, and such that completion of all load instructions occurs in the same order as their order in the load buffer.
Claim 9
Dependent Claim 16 words
An apparatus as in claim 6, wherein the second memory system is a second level cache.
Claim 10
Dependent Claim 15 words
An apparatus as in claim 7, wherein the cache is virtually indexed and physically tagged.
Claim 11
Dependent Claim 17 words
An apparatus as in claim 8, wherein the second level cache is physically indexed and physically tagged.
Claim 12
Dependent Claim 106 words
An apparatus as in claim 6, and further comprising: a calculating circuit for calculating whether or not the contents of a memory address referenced by the first load instruction, before the first load instruction is in the head of the queue position, will be resident in the direct mapped cache when the first load instruction reaches the head of the queue position, wherein the second access circuit accesses the cache for the first load instruction only when the calculating circuit has calculated the data requested by the first load instruction would be in the cache when the first instruction reaches the head of the queue position.

References Cited (Backward Citations)

US5056002A Cited
US5542062A Cited
US5283890A Cited
US5404484A Cited
US5467473A Cited
US5471598A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag