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

Circuit and method for reducing prefetch cycles on microprocessors

Assignee: International Business Machines Corp
•
Filing: 1994-08-04
•
Granted: 1997-04-22
•
Expires: 2014-08-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An enhanced microprocessor (278) (FIG. 6) having a first portion (153) (FIG. 7) and a second portion (196) (FIG. 8) configured to eliminate prefetching of instructions from an instruction cache (102) (FIG. 6) when the required instructions are already present within a prefetch buffer (104) (FIG. 6). The first portion (153) and second portion (196) are in circuit communication with a prefetch buffer (104) (FIG. 6), branch target cache (108) (FIG. 6), control unit (110) (FIG. 6), and execution unit (112) (FIG. 6). The first portion (153) is responsive to forward or backward branch instructions that have a branch target within the same prefetch buffer, and to forward branch instructions that have a branch target within a next successive prefetch buffer. The first portion (153) is configured to inhibit prefetching of instructions when such conditions are present. The second portion (196) is responsive to backward branch instructions that have a branch target within an immediately preceding prefetch buffer and configured to assert a prefetch inhibit signal to prevent any further prefetching of instructions.

Inventors

  • 👤 Gaby J. Salem
  • 👤 Terry L. Weakley

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 22:16
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; G06F12/0875; G06F12/0877; G06F12/0886; G06F2212/00; G06F2212/45; G06F2212/452; G06F2212/60; G06F2212/6022; G06F2212/6024; Y; Y02; Y02D; Y02D10/00

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 298 words
A microprocessor for use in a computer system having a system memory comprising: (a) an instruction decoder configured to decode processor instructions into codes suitable for causing execution of the instructions by said microprocessor; (b) a branch target cache configured to store branch target information and further configured to present branch target information responsive to said instruction decoder determining that an instruction is a branching instruction having a branch target; (c) an instruction cache in circuit communication with said branch target cache and configured to store at least one block of code comprised of a plurality of instruction lines wherein each instruction line comprises at least one instruction read from the system memory; (d) a prefetch buffer in circuit communication with said instruction decoder and said instruction cache and configured to store at least a first processor instruction line and a second processor instruction line copied from either said instruction cache or the system memory; (e) a control circuit in circuit communication with said instruction decoder and configured to prefetch blocks of code from said system memory to said instruction cache and further configured to copy instructions from said instruction cache to said prefetch buffer; and (f) a prefetch inhibit circuit in circuit communication with said prefetch buffer, said branch target cache, said control circuit, and an execution circuit and configured to generate a prefetch inhibit signal responsive to the contents of said prefetch buffer and branch target information determining that the branch target information is in one of said instructions in said prefetch buffer; wherein said control circuit is further configured to inhibit prefetches from the instruction cache to the prefetch buffer responsive to said prefetch inhibit signal generated by said prefetch inhibit circuit while allowing the execution circuit to continue executing instructions from the prefetch buffer.
Claim 2
Dependent Claim 298 words
A microprocessor for use in a computer system having a system memory comprising: (a) an instruction decoder configured to decode processor instructions into codes suitable for causing execution of the instructions by said microprocessor; (b) a branch target cache configured to store branch target information and further configured to present branch target information responsive to said instruction decoder determining that an instruction is a branching instruction having a branch target; (c) an instruction cache in circuit communication with said branch target cache and configured to store at least one block of code comprised of a plurality of instruction lines wherein each instruction line comprises at least one instruction read from the system memory; (d) a prefetch buffer in circuit communication with said instruction decoder and said instruction cache and configured to store at least a first processor instruction line and a second processor instruction line copied from either said instruction cache or the system memory; (e) a control circuit in circuit communication with said instruction decoder and configured to prefetch blocks of code from said system memory to said instruction cache and further configured to copy instructions from said instruction cache to said prefetch buffer; and (f) a prefetch inhibit circuit in circuit communication with said prefetch buffer, said branch target cache, said control circuit, and an execution circuit and configured to generate a prefetch inhibit signal responsive to the contents of said prefetch buffer and branch target information determining that the branch target information is in one of said instructions in said prefetch buffer; wherein said control circuit is further configured to inhibit prefetches from the instruction cache to the prefetch buffer responsive to said prefetch inhibit signal generated by said prefetch inhibit circuit while allowing the execution circuit to continue executing instructions from the prefetch buffer.
Claim 3
Dependent Claim 51 words
The microprocessor of claim 1 wherein said prefetch inhibit circuit is configured to assert said prefetch inhibit signal responsive to said first instruction line containing a branching instruction and the branch target information indicating that said first instruction line in said prefetch buffer is the branch target of said branching instruction.
Claim 4
Dependent Claim 51 words
The microprocessor of claim 1 wherein said prefetch inhibit circuit is configured to assert said prefetch inhibit signal responsive to said second instruction line containing a branching instruction and the branch target information indicating that said second instruction line in said prefetch buffer is the branch target of said branching instruction.
Claim 5
Dependent Claim 51 words
The microprocessor of claim 1 wherein said prefetch inhibit circuit is configured to assert said prefetch inhibit signal responsive to said first instruction line containing a branching instruction and the branch target information indicating that said second instruction line in said prefetch buffer is the branch target of said branching instruction.
Claim 6
Dependent Claim 52 words
The microprocessor of claim 1 wherein said prefetch inhibit circuit is further configured to assert said prefetch inhibit signal responsive to said second instruction line containing a branching instruction and the branch target information indicating that said first instruction line in said prefetch buffer is the branch target of said branching instruction.
Claim 7
Dependent Claim 52 words
The microprocessor of claim 2 wherein said prefetch inhibit circuit is further configured to assert said prefetch inhibit signal responsive to said second instruction line containing a branching instruction and the branch target information indicating that said first instruction line in said prefetch buffer is the branch target of said branching instruction.
Claim 8
Dependent Claim 52 words
The microprocessor of claim 3 wherein said prefetch inhibit circuit is further configured to assert said prefetch inhibit signal responsive to said second instruction line containing a branching instruction and the branch target information indicating that said first instruction line in said prefetch buffer is the branch target of said branching instruction.
Claim 9
Dependent Claim 52 words
The microprocessor of claim 4 wherein said prefetch inhibit circuit is further configured to assert said prefetch inhibit signal responsive to said second instruction line containing a branching instruction and the branch target information indicating that said first instruction line in said prefetch buffer is the branch target of said branching instruction.
Claim 10
Dependent Claim 108 words
A computer system having a microprocessor and a system memory, wherein said microprocessor comprises a branch target cache, a prefetch buffer, an execution unit, a control unit and a prefetch inhibit circuit in circuit communication with said branch target cache, prefetch buffer, execution unit, and control unit, wherein (a) said prefetch buffer is comprised of at least one branch instruction having a branch target, and (b) said prefetch inhibit circuit is comprised of combinational logic configured to determine if the branch target is in said prefetch buffer and to assert a prefetch inhibit signal responsive to said determination indicating that the branch target is in said prefetch buffer.
Claim 11
Dependent Claim 108 words
A computer system having a microprocessor and a system memory, wherein said microprocessor comprises a branch target cache, a prefetch buffer, an execution unit, a control unit and a prefetch inhibit circuit in circuit communication with said branch target cache, prefetch buffer, execution unit, and control unit, wherein (a) said prefetch buffer is comprised of at least one branch instruction having a branch target, and (b) said prefetch inhibit circuit is comprised of combinational logic configured to determine if the branch target is in said prefetch buffer and to assert a prefetch inhibit signal responsive to said determination indicating that the branch target is in said prefetch buffer.
Claim 12
Dependent Claim 43 words
The computer system of claim 9 wherein said branch target cache is configured to store branch target information and further configured to present branch target information responsive to an instruction decoder determining that an instruction is a branching instruction having a target instruction.
Claim 13
Dependent Claim 36 words
The computer system of claim 10 wherein said prefetch inhibit circuit further comprises a first portion configured to assert said prefetch inhibit signal responsive to an instruction line comprising said branching instruction and said target instruction.
Claim 14
Dependent Claim 43 words
The computer system of claim 10 wherein said prefetch inhibit circuit further comprises a first portion configured to assert said prefetch inhibit signal responsive to a first instruction line comprising said branching instruction and a second successive instruction line comprising said target instruction.
Claim 15
Dependent Claim 51 words
The computer system of claim 10 wherein said prefetch inhibit circuit further comprises a second portion configured to assert said prefetch inhibit signal responsive to said second successive instruction line comprising a branching instruction and the branch target information indicating that said first instruction line is comprised of said target instruction.
Claim 16
Independent Claim 192 words
A method for reducing the power consumed in a microprocessor having a branch target cache which stores branch target information, an instruction cache, an instruction decoder, an execution circuit and a prefetch buffer and for use in a computer system having a system memory, comprising the steps of: (a) prefetching a block of code containing instructions from the system memory to the instruction cache; (b) prefetching a plurality of instructions from the instruction cache to the prefetch buffer; (c) decoding at least one of the plurality of instructions; (d) accessing the branch target cache to determine branch target information responsive to the at least one decoded instruction being a branch instruction to a target instruction; (e) determining if the target instruction is included in the plurality of instructions in said prefetch buffer; (f) inhibiting prefetches from the instruction cache to the prefetch buffer responsive to the branch target information indicating that said plurality of instructions in said prefetch buffer includes the target instruction; and (g) executing said plurality of instructions for so long as the branch target information indicates that the plurality of instructions in said prefetch buffer includes the target instruction.
Claim 17
Independent Claim 192 words
A method for reducing the power consumed in a microprocessor having a branch target cache which stores branch target information, an instruction cache, an instruction decoder, an execution circuit and a prefetch buffer and for use in a computer system having a system memory, comprising the steps of: (a) prefetching a block of code containing instructions from the system memory to the instruction cache; (b) prefetching a plurality of instructions from the instruction cache to the prefetch buffer; (c) decoding at least one of the plurality of instructions; (d) accessing the branch target cache to determine branch target information responsive to the at least one decoded instruction being a branch instruction to a target instruction; (e) determining if the target instruction is included in the plurality of instructions in said prefetch buffer; (f) inhibiting prefetches from the instruction cache to the prefetch buffer responsive to the branch target information indicating that said plurality of instructions in said prefetch buffer includes the target instruction; and (g) executing said plurality of instructions for so long as the branch target information indicates that the plurality of instructions in said prefetch buffer includes the target instruction.
Claim 18
Independent Claim 174 words
A method for reducing the power consumed in a microprocessor having a branch target cache which stores branch target information, an instruction cache, an instruction decoder, an execution circuit and a prefetch buffer and for use in a computer system having a system memory comprising the steps of: (a) prefetching a plurality of instructions from the instruction cache to the prefetch buffer; (b) decoding at least one of the instructions; (c) accessing the branch target cache to determine branch target information responsive to the at least one decoded instruction being a branch instruction to a target instruction; (d) determining if the target instruction is included in the plurality of instructions in said prefetch buffer; (e) inhibiting prefetches from the instruction cache to the prefetch buffer responsive to the branch target information indicating that said plurality of instructions in said prefetch buffer includes the target instruction; and (f) executing said plurality of instructions for so long as the branch target information indicates that the plurality of instructions in said prefetch buffer includes the target instruction.
Claim 19
Independent Claim 174 words
A method for reducing the power consumed in a microprocessor having a branch target cache which stores branch target information, an instruction cache, an instruction decoder, an execution circuit and a prefetch buffer and for use in a computer system having a system memory comprising the steps of: (a) prefetching a plurality of instructions from the instruction cache to the prefetch buffer; (b) decoding at least one of the instructions; (c) accessing the branch target cache to determine branch target information responsive to the at least one decoded instruction being a branch instruction to a target instruction; (d) determining if the target instruction is included in the plurality of instructions in said prefetch buffer; (e) inhibiting prefetches from the instruction cache to the prefetch buffer responsive to the branch target information indicating that said plurality of instructions in said prefetch buffer includes the target instruction; and (f) executing said plurality of instructions for so long as the branch target information indicates that the plurality of instructions in said prefetch buffer includes the target instruction.
Claim 20
Dependent Claim 41 words
The method for reducing the power consumed in a microprocessor as recited in claim 15, wherein the step of accessing the branch target cache comprises setting a pair of history bits responsive to the execution circuit branching to the target instruction.
Claim 21
Independent Claim 194 words
A method for reducing the power consumed in a microprocessor having a branch target cache, instruction cache, instruction decoder, execution circuit and a prefetch buffer and for use in a computer system having a system memory comprising the steps of: (a) prefetching a plurality of instruction lines, comprising a first and second instruction line, from the instruction cache to the prefetch buffer; (b) decoding the second instruction line into at least one branch instruction having a target instruction; (c) accessing the branch target cache to determine branch target information responsive to the target instruction; (d) altering the branch target information responsive to said execution unit executing the decoded branch instruction; (e) determining if the branch target information indicates that said execution will branch to said target instruction; (f) inhibiting prefetches from the instruction cache to the prefetch buffer responsive to the branch target information indicating that said plurality of instruction lines in said prefetch buffer includes the target instruction; and (g) executing said plurality of instruction lines in said prefetch buffer for so long as the branch target information indicates that the plurality of instruction lines in said prefetch buffer include the target instruction.
Claim 22
Independent Claim 194 words
A method for reducing the power consumed in a microprocessor having a branch target cache, instruction cache, instruction decoder, execution circuit and a prefetch buffer and for use in a computer system having a system memory comprising the steps of: (a) prefetching a plurality of instruction lines, comprising a first and second instruction line, from the instruction cache to the prefetch buffer; (b) decoding the second instruction line into at least one branch instruction having a target instruction; (c) accessing the branch target cache to determine branch target information responsive to the target instruction; (d) altering the branch target information responsive to said execution unit executing the decoded branch instruction; (e) determining if the branch target information indicates that said execution will branch to said target instruction; (f) inhibiting prefetches from the instruction cache to the prefetch buffer responsive to the branch target information indicating that said plurality of instruction lines in said prefetch buffer includes the target instruction; and (g) executing said plurality of instruction lines in said prefetch buffer for so long as the branch target information indicates that the plurality of instruction lines in said prefetch buffer include the target instruction.
Claim 23
Dependent Claim 41 words
The method for reducing the power consumed in a microprocessor as recited in claim 17, wherein the step of altering the branch target information comprises setting a pair of history bits responsive to the execution circuit branching to the target instruction.
Claim 24
Dependent Claim 54 words
The method of reducing the power consumed in a microprocessor as recited in claim 17, wherein the step of determining if the branch target information indicates that said execution will branch to said target instruction comprises comparing the history bits to a predefined value indicating that said execution will branch to said target instruction.

References Cited (Backward Citations)

US4873627A Cited
US4933837A Cited
US5101341A Cited
EP0371418A2 Cited
US5214766A Cited
US5136697A Cited
EP0417013A2 Cited
WO1991004536A1 Cited
JPH04239323A Cited
JPH04369061A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-04-21 2000-10-21 2001-04-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-04-21 2004-10-21 2005-04-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-04-21 2008-10-21 2009-04-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag