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

Prefetching instructions between caches

Assignee: International Business Machines Corp
•
Filing: 1995-09-18
•
Granted: 1998-02-24
•
Expires: 2015-09-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for selectively pre-fetching Line M+1 into an L1 instruction cache from an L2 cache or from main memory during the execution of Line M. If unresolved branches exist in pending Line M, Line M+1 is speculative and may be pre-fetched into L1 instruction cache only from L2 cache, not from main memory. Unresolved branches in pending Line M are resolved before Line M+1 is pre-fetched from main memory. If no unresolved branches exist, Line M is committed ("inevitable-speculative") and is pre-fetched from main memory. In this way, no potentially wasteful pre-fetches are performed and main memory bandwidth is preserved.

Inventors

  • 👤 Kevin Arthur Chiarot
  • 👤 Michael John Mayfield
  • 👤 Era Kasturia Nangia
  • 👤 Milford John Peterson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 22:20
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3814; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0862; G06F9/3824; G06F9/383

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 139 words
In a processing system comprising a processor, a first cache, a second cache and a main memory, a method for pre-fetching data into said first cache comprising the steps of: detecting in said first cache a cache access event for a Line M; searching said second cache for said Line M in response to said cache access event; if said Line M is found in said second cache, transferring said Line M from said second cache to said first cache; if said Line M is not found in said second cache, waiting until unresolved branch instructions in a Line M-1 are resolved before fetching said Line M from said main memory; searching said first cache for a Line M+1; and if said Line M+1 is not found in said first cache, searching said second cache for said Line M+1.
Claim 2
Dependent Claim 139 words
In a processing system comprising a processor, a first cache, a second cache and a main memory, a method for pre-fetching data into said first cache comprising the steps of: detecting in said first cache a cache access event for a Line M; searching said second cache for said Line M in response to said cache access event; if said Line M is found in said second cache, transferring said Line M from said second cache to said first cache; if said Line M is not found in said second cache, waiting until unresolved branch instructions in a Line M-1 are resolved before fetching said Line M from said main memory; searching said first cache for a Line M+1; and if said Line M+1 is not found in said first cache, searching said second cache for said Line M+1.
Claim 3
Dependent Claim 17 words
The method as set forth in claim 1 wherein said cache access event is a cache miss.
Claim 4
Dependent Claim 17 words
The method as set forth in claim 1 wherein said cache access event is a cache hit.
Claim 5
Dependent Claim 43 words
The method as set forth in claim 1 including the further step of, if said Line M+1 is not found in said second cache, waiting until unresolved branch instructions in said Line M are resolved before fetching Line M+1 from said main memory.
Claim 6
Dependent Claim 40 words
The method as set forth in claim 1 including the further step of, if said Line M+1 is found in said second cache, determining whether said Line M+1 resides in a separate logical block of memory from said Line M.
Claim 7
Dependent Claim 37 words
The method as set forth in claim 5 including the further step of, if said Line M+1 does not reside in said separate logical block, transferring said Line M+1 from said second cache to said first cache.
Claim 8
Dependent Claim 48 words
The method as set forth in claim 5 including the further step of, if said Line M+1 does reside in said separate logical block, waiting until unresolved branch instructions in said Line M are resolved before transferring said Line M+1 from said second cache to said first cache.
Claim 9
Dependent Claim 141 words
In a processing system comprising a processor, a first cache, a second cache and a main memory, a method for pre-fetching data into said first cache comprising the steps of: detecting in said first cache a cache access event for a Line M; searching said second cache for a Line M+1 in response to said cache access event; if said Line M+1 is not found in said second cache, waiting until unresolved branch instructions in said Line M are resolved before fetching said Line M+1 from said main memory; if said Line M+1 is found in said second cache, determining whether said Line M+1 resides in a separate logical block of memory from said Line M; and if said Line M+1 does not reside in said separate logical block, transferring said Line M+1 from said second cache to said first cache.
Claim 10
Dependent Claim 141 words
In a processing system comprising a processor, a first cache, a second cache and a main memory, a method for pre-fetching data into said first cache comprising the steps of: detecting in said first cache a cache access event for a Line M; searching said second cache for a Line M+1 in response to said cache access event; if said Line M+1 is not found in said second cache, waiting until unresolved branch instructions in said Line M are resolved before fetching said Line M+1 from said main memory; if said Line M+1 is found in said second cache, determining whether said Line M+1 resides in a separate logical block of memory from said Line M; and if said Line M+1 does not reside in said separate logical block, transferring said Line M+1 from said second cache to said first cache.
Claim 11
Dependent Claim 17 words
The method as set forth in claim 8 wherein said cache access event is a cache miss.
Claim 12
Dependent Claim 17 words
The method as set forth in claim 8 wherein said cache access event is a cache hit.
Claim 13
Dependent Claim 48 words
The method as set forth in claim 8 including the further step of, if said Line M+1 does reside in said separate logical block, waiting until unresolved branch instructions in said Line M are resolved before transferring said Line M+1 from said second cache to said first cache.
Claim 14
Dependent Claim 155 words
A processing system comprising: a processor; a first cache; a second cache; a main memory; means for detecting in said first cache a cache access event for a first data; means responsive to said cache access event for determining if a second data sequential to said first data is present in said second cache; means responsive to a determination that said second data is not present in said second cache for waiting until unresolved branch instructions in said first data are resolved before fetching said second data from said main memory; means responsive to a determination that said second data is present in said second cache for determining if said second data resides in a separate logical block of memory from said first data; and means responsive to a determination that said second data does not reside in said separate logical block for transferring said second data from said second cache to said first cache.
Claim 15
Dependent Claim 155 words
A processing system comprising: a processor; a first cache; a second cache; a main memory; means for detecting in said first cache a cache access event for a first data; means responsive to said cache access event for determining if a second data sequential to said first data is present in said second cache; means responsive to a determination that said second data is not present in said second cache for waiting until unresolved branch instructions in said first data are resolved before fetching said second data from said main memory; means responsive to a determination that said second data is present in said second cache for determining if said second data resides in a separate logical block of memory from said first data; and means responsive to a determination that said second data does not reside in said separate logical block for transferring said second data from said second cache to said first cache.
Claim 16
Dependent Claim 18 words
The processing system as set forth in claim 12 wherein said cache access event is a cache miss.
Claim 17
Dependent Claim 18 words
The processing system as set forth in claim 12 wherein said cache access event is a cache hit.
Claim 18
Dependent Claim 52 words
The processing system as set forth in claim 12 further comprising means responsive to a determination that said second data does reside in said separate logical block for waiting until unresolved branch instructions in said first data are resolved before transferring said second data from said second cache to said first cache.

References Cited (Backward Citations)

US5276848A Cited
US5590293A Cited
US5155832A Cited
US5214765A Cited
US5455925A Cited
US5542062A Cited
US5185871A Cited
US5386547A Cited
US5553255A Cited
US5551001A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag