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

Operand prefetch table

Assignee: International Business Machines Corp
•
Filing: 1995-07-13
•
Granted: 1998-08-04
•
Expires: 2015-07-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A operand prefetching mechanism is described for a system having a cache, in addition to its normal memory. The prefetch apparatus utilizes a table that records the location of each instruction that caused an operand miss and the location of the miss. Associated with this information is the address of each instruction fetch block that contains an instruction that caused an operand miss. The table is called an Operand Prefetch Table. With each instruction block fetched from the cache a search is made of the Operand Prefetch table to determine if the instructions found in this block previously caused operand misses. If the instruction block fetched matches an entry in the Operand Prefetch Table then a prefetch for future operands can be attempted for the instructions contained within the instruction block fetch segment.

Inventors

  • 👤 Thomas Roberts Puzak
  • 👤 Harold Stuart Stone

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 10:47
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3824; G06F9/383; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0862; G06F9/34; G06F9/345; G06F9/3455

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 169 words
In a data processing system wherein sequences of instructions stored in a main memory are executed by at least one processor, a method of transferring from said main memory to a high speed buffer operand data utilized by said processor when executing one or more of said sequences of instructions, the method comprising the steps of: storing operand miss addresses in entries of a table, wherein each entry of said table includes an operand miss address that identifies an operand miss and an instruction address field that identifies an instruction that caused said operand miss identified by said operand miss address of said entry, fetching at least one instruction from said main memory to said high speed buffer according to a fetch control signal; and prefetching operand data identified by an operand miss address stored in at least one entry of said table from said main memory to said high speed buffer when said fetch control signal corresponds to an instruction address field of said at least one entry.
Claim 2
Dependent Claim 169 words
In a data processing system wherein sequences of instructions stored in a main memory are executed by at least one processor, a method of transferring from said main memory to a high speed buffer operand data utilized by said processor when executing one or more of said sequences of instructions, the method comprising the steps of: storing operand miss addresses in entries of a table, wherein each entry of said table includes an operand miss address that identifies an operand miss and an instruction address field that identifies an instruction that caused said operand miss identified by said operand miss address of said entry, fetching at least one instruction from said main memory to said high speed buffer according to a fetch control signal; and prefetching operand data identified by an operand miss address stored in at least one entry of said table from said main memory to said high speed buffer when said fetch control signal corresponds to an instruction address field of said at least one entry.
Claim 3
Dependent Claim 105 words
The method of claim 1, wherein each entry of said table includes a confirmation bit corresponding to said operand miss address of said entry, and wherein first operand data identified by an operand miss address stored in a first entry of said table is prefetched from said main memory to said high speed buffer when i) said fetch control signal corresponds to said instruction address field of said first entry, and ii) said confirmation bit of said first entry is set to a first predetermined value thereby indicating that said first operand data should be prefetched from said main memory to said high speed buffer.
Claim 4
Dependent Claim 175 words
The method of claim 2, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, further comprising the steps of: identifying a cache miss address; identifying a particular entry whose instruction address field corresponds to said cache miss address; and if said confirmation bit of said particular entry is set to said first predetermined value and sum of said operand miss address and said stride field of said particular entry does not equal said cache miss address, setting said confirmation bit to a second predetermined value thereby indicating that operand data corresponding to said operand miss address of said particular entry should not be prefetched from said main memory to said high speed buffer, updating said stride field of said particular entry to difference between said operand miss address of said entry and said cache miss address, and updating said operand miss address of said particular entry to said cache miss address.
Claim 5
Dependent Claim 112 words
The method of claim 2, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, further comprising the steps of: identifying a cache miss address; identifying a particular entry whose instruction address field corresponds to said cache miss address; and if said confirmation bit of said particular entry is set to said first predetermined value and sum of said operand miss address and said stride field of said particular entry equals said cache miss address, updating said operand miss address of said particular entry to said cache miss address.
Claim 6
Dependent Claim 166 words
The method of claim 2, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, further comprising the steps of: identifying a cache miss address; identifying a particular entry whose instruction address field corresponds to said cache miss address; and if said confirmation bit of said particular entry is set to a second predetermined value thereby indicating that operand data corresponding to said operand miss address of said particular entry should not be prefetched from said main memory to said high speed buffer and sum of said operand miss address and said stride field of said particular entry does not equal said cache miss address, updating said stride field of said particular entry to difference between said operand miss address of said entry and said cache miss address, and updating said operand miss address of said particular entry to said cache miss address.
Claim 7
Dependent Claim 139 words
The method of claim 2, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, further comprising the step of: identifying a cache miss address; identifying a particular entry whose instruction address field corresponds to said cache miss address; and if said confirmation bit of said particular entry is set to a second predetermined value thereby indicating that operand data corresponding to said operand miss address of said particular entry should not be prefetched from said main memory to said high speed buffer and sum of said operand miss address and said stride field of said particular entry equals said cache miss address, setting said confirmation bit of said particular entry to said first predetermined value.
Claim 8
Dependent Claim 36 words
The method of claim 2, further comprising the step of updating said confirmation bit of a particular entry upon determining that a prefetch request corresponding to said entry was made but not utilized by said processor.
Claim 9
Dependent Claim 29 words
The method of claim 1, wherein said fetch control signal is an address within said main memory of an instruction fetch block that comprises said at least one instruction.
Claim 10
Dependent Claim 19 words
The method of claim 1, wherein said high speed buffer includes a data cache integral with an instruction cache.
Claim 11
Dependent Claim 19 words
The method of claim 1, wherein said high speed buffer includes a data cache separate from an instruction cache.
Claim 12
Dependent Claim 19 words
The method of claim 1, wherein said high speed buffer includes a prefetch buffer separate from said data cache.
Claim 13
Dependent Claim 156 words
A data processing system comprising: a main memory that stores sequences of instructions to be executed by at least one processor; a high speed buffer that stores operand data utilized by said processor when executing one or more of said sequences of instructions; instruction fetch logic that fetches at least one instruction from said main memory to said high speed buffer according to a fetch control signal; a table for storing entries each including an operand miss address that identifies an operand miss and an instruction address field that identifies an instruction that caused said operand miss identified by said operand miss address of said entry; and operand prefetch control means for prefetching operand data identified by an operand miss address stored in at least one entry of said table from said main memory to said high speed buffer when said fetch control signal corresponds to an instruction address field of said at least one entry.
Claim 14
Dependent Claim 156 words
A data processing system comprising: a main memory that stores sequences of instructions to be executed by at least one processor; a high speed buffer that stores operand data utilized by said processor when executing one or more of said sequences of instructions; instruction fetch logic that fetches at least one instruction from said main memory to said high speed buffer according to a fetch control signal; a table for storing entries each including an operand miss address that identifies an operand miss and an instruction address field that identifies an instruction that caused said operand miss identified by said operand miss address of said entry; and operand prefetch control means for prefetching operand data identified by an operand miss address stored in at least one entry of said table from said main memory to said high speed buffer when said fetch control signal corresponds to an instruction address field of said at least one entry.
Claim 15
Dependent Claim 108 words
The system of claim 12, wherein each entry of said table includes a confirmation bit corresponding to said operand miss address of said entry, and wherein said operand prefetch control means prefetches first operand data identified by an operand address stored in a first entry of said table from said main memory to said high speed buffer when i) said fetch control signal corresponds to said instruction address field of said first entry, and ii) said confirmation bit of said first entry is set to a first predetermined value thereby indicating that said first operand data should be prefetched from said main memory to said high speed buffer.
Claim 16
Dependent Claim 187 words
The system of claim 12, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, said system further comprising means for identifying a cache miss address; and wherein said operand prefetch control means identifies a particular entry whose instruction address field corresponds to said cache miss address, and if said confirmation bit of said particular entry is set to said first predetermined value and sum of said operand miss address and said stride field of said particular entry does not equal said cache miss address, sets said confirmation bit of said particular entry to a second predetermined value thereby indicating that operand data corresponding to said operand miss address of said particular entry should not be prefetched from said main memory to said high speed buffer, updates said stride field of said particular entry to difference between said operand miss address of said entry and said cache miss address, and updates said operand miss address of said particular entry to said cache miss address.
Claim 17
Dependent Claim 120 words
The system of claim 12, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, said system further comprising means for identifying a cache miss address; and wherein said operand prefetch control means identifies a particular entry whose instruction address field corresponds to said cache miss address, and if said confirmation bit of said particular entry is set to said first predetermined value and sum of said operand miss address and said stride field of said particular entry equals said cache miss address, updates said operand miss address of said particular entry to said cache miss address.
Claim 18
Dependent Claim 173 words
The system of claim 12, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, said system further comprising means for identifying a cache miss address; and wherein said operand prefetch control means identifies a particular entry whose instruction address field corresponds to said cache miss address, and if said confirmation bit of said particular entry is set to second predetermined value thereby indicating that operand data corresponding to said operand miss address of said particular entry should not be prefetched from said main memory to said high speed buffer and sum of said operand miss address and said stride field of said particular entry does not equal said cache miss address, updates said stride field of said particular entry to difference between said operand miss address of said entry and said cache miss address, and updates said operand miss address of said particular entry to said cache miss address.
Claim 19
Dependent Claim 147 words
The system of claim 12, wherein each entry further comprises a stride field that identifies offset from a subsequent operand miss to a next operand miss for said instruction identified by said instruction address field of said entry, said system further comprising means for identifying a cache miss address; and wherein said operand prefetch control means identifies a particular entry whose instruction address field corresponds to said cache miss address, and if said confirmation bit of said particular entry is set to a second predetermined value thereby indicating that operand data corresponding to said operand miss address of said particular entry should not be prefetched from said main memory to said high speed buffer and sum of said operand miss address and said stride field of said particular entry equals said cache miss address, sets said confirmation bit of said particular entry to said first predetermined value.
Claim 20
Dependent Claim 37 words
The system of claim 12, wherein said operand prefetch control means updates said confirmation bit of a particular entry upon determining that a prefetch request corresponding to said entry was made but not utilized by said processor.
Claim 21
Dependent Claim 29 words
The system of claim 12, wherein said fetch control signal is an address within said main memory of an instruction fetch block that comprises said at least one instruction.
Claim 22
Dependent Claim 19 words
The system of claim 12, wherein said high speed buffer includes a data cache integral with an instruction cache.
Claim 23
Dependent Claim 19 words
The system of claim 12, wherein said high speed buffer includes a data cache separate from an instruction cache.
Claim 24
Dependent Claim 19 words
The system of claim 12, wherein said high speed buffer includes a prefetch buffer separate from said data cache.

References Cited (Backward Citations)

US3898624A Cited
US4502110A Cited
US4551799A Cited
US4807110A Cited
US4774654A Cited
US5093777A Cited
US5357618A Cited
US5377336A Cited
US5305389A Cited
US5367656A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag