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

Instruction prefetch buffer control

Assignee: International Business Machines Corp
•
Filing: 1985-04-30
•
Granted: 1987-12-22
•
Expires: 2005-04-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An instruction prefetch buffer control (20) is provided for an instruction prefetch buffer array (10) which stores the code for a number of instructions that have already been executed as well as the code for a number of instructions yet to be executed. The instruction prefetch buffer control includes a register (201) for storing an instruction fetch pointer, this pointer being supplied to the buffer array (10) as a write pointer which points to the location in the array where a new word is to be written from main memory. A second register (205) stores an instruction execution pointer which is supplied to the buffer array (10) as a read pointer. A first adder (203) increments the first register to increment the instruction fetch pointer for sequential instructions and calculates a new instruction fetch pointer for branch instructions. A second adder (215) increments the second register to increment the instruction execution pointer for sequential instructions and calculates a new instruction execution pointer for branch instructions. Incrementing of the second register is variable depending on the length of the instruction. A third adder ( 221) is responsive to the output of the first adder and a branch target address to calculate whether the target instruction is contained in the array (10) and, if it is, causes the new instruction execution pointer calculated by the second adder (215) to be loaded into the second register (205).

Inventors

  • 👤 Vojin G. Oklobdzija
  • 👤 Daniel T. Ling

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 00:54
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3808; G06F9/381

Claims Analysis

Total Claims: 10
Claim 1
Independent Claim 226 words
A method of controlling an instruction prefetch buffer that stores the code for a number of instructions that have already been executed as well as the code for a number of instructions yet to be executed, said method comprising the steps of: storing an instruction fetch pointer which is supplied to said buffer as a write pointer that points to the location where a new word is to be written into the buffer; writting instructions into said buffer at the locations pointed to by said instruction fetch pointer; storing an instruction execution pointer which is supplied to said buffer as a read pointer that points to the location from which an instruction is to be read from the buffer; reading instructions from locations in the buffer pointed to by said instruction execution pointer; decoding each instruction read from the buffer to determine if it is a branch or jump instrustion; determining if a target instruction of a branch or jump instruction is within a range of instructions which may be stored in the buffer; determining for those target instructions found to be within said range if the target instruction is in the buffer; and setting the instruction execution pointer to the location of the target instruction found to be in the buffer, said target instruction being either preceding or following a current instruction in the buffer.
Claim 2
Independent Claim 226 words
A method of controlling an instruction prefetch buffer that stores the code for a number of instructions that have already been executed as well as the code for a number of instructions yet to be executed, said method comprising the steps of: storing an instruction fetch pointer which is supplied to said buffer as a write pointer that points to the location where a new word is to be written into the buffer; writting instructions into said buffer at the locations pointed to by said instruction fetch pointer; storing an instruction execution pointer which is supplied to said buffer as a read pointer that points to the location from which an instruction is to be read from the buffer; reading instructions from locations in the buffer pointed to by said instruction execution pointer; decoding each instruction read from the buffer to determine if it is a branch or jump instrustion; determining if a target instruction of a branch or jump instruction is within a range of instructions which may be stored in the buffer; determining for those target instructions found to be within said range if the target instruction is in the buffer; and setting the instruction execution pointer to the location of the target instruction found to be in the buffer, said target instruction being either preceding or following a current instruction in the buffer.
Claim 3
Dependent Claim 57 words
The method recited in claim 1 wherein the instruction prefetch buffer stores instructions of variable lengths, said method further comprising the step of determining the length of an instruction read out of the buffer and incrementing the instruction execution buffer according to the length of the instruction if the instruction is not a branch or jump instruction.
Claim 4
Dependent Claim 69 words
The method recited in claim 2 further comprising the steps of: setting the instruction fetch pointer and the instruction execution pointer to zero if the instruction read out of the buffer is a branch or jump instruction and the target instruction is not within said range; and reading the next instruction from a main memory storing instructions to a location in said buffer pointed to by said fetch pointer.
Claim 5
Dependent Claim 49 words
The method recited in claim 3 further comprising the steps of: testing for the condition of equality of the instruction fetch pointer and the instruction execution pointer as an indication that the buffer is empty; and reading a next instruction from said main memory if the buffer is empty.
Claim 6
Dependent Claim 336 words
An instruction prefetch buffer control for buffer means that stores the code for a number of instructions that have already been executed as well as the code for a number of instructions yet to be executed, said instruction prefetch buffer control comprising: first register means for storing an instruction fetch pointer, said instruction fetch pointer being supplied to said buffer means by said first register means as a write pointer which points to the location where a new word is to be written into said buffer means; second register means for storing an instruction execution pointer, said instruction execution pointer being supplied to said buffer means by said second register means as a read pointer which points to the location in said buffer means where a word is to be read from said buffer means; decoding means for decoding an instruction read from said buffer means to determine if that instruction is a branch or jump instruction; first adder means for incrementing said first register means to increment said instruction fetch pointer for sequential instructions, said first adder means calculating a new instruction fetch pointer for branch or jump instructions; second adder means for incrementing said second register means to increment said instruction execution pointer for sequential instructions, said second adder means calculating a new instruction execution pointer for branch or jump instructions; first logic means responsive to said decoding means for determining if a target instruction of a branch or jump instruction read from said buffer means is within a range of instructions which may be in said buffer means; and second logic means for determining if a target instruction found to be within said range is in said buffer means, said second logic means including third adder means responsive to said first adder an a branch target address to calculate whether the target instruction is contained in said buffer means and, if it is, causing the new instruction execution pointer calculated by said second adder means to be loaded into said second register means.
Claim 7
Dependent Claim 336 words
An instruction prefetch buffer control for buffer means that stores the code for a number of instructions that have already been executed as well as the code for a number of instructions yet to be executed, said instruction prefetch buffer control comprising: first register means for storing an instruction fetch pointer, said instruction fetch pointer being supplied to said buffer means by said first register means as a write pointer which points to the location where a new word is to be written into said buffer means; second register means for storing an instruction execution pointer, said instruction execution pointer being supplied to said buffer means by said second register means as a read pointer which points to the location in said buffer means where a word is to be read from said buffer means; decoding means for decoding an instruction read from said buffer means to determine if that instruction is a branch or jump instruction; first adder means for incrementing said first register means to increment said instruction fetch pointer for sequential instructions, said first adder means calculating a new instruction fetch pointer for branch or jump instructions; second adder means for incrementing said second register means to increment said instruction execution pointer for sequential instructions, said second adder means calculating a new instruction execution pointer for branch or jump instructions; first logic means responsive to said decoding means for determining if a target instruction of a branch or jump instruction read from said buffer means is within a range of instructions which may be in said buffer means; and second logic means for determining if a target instruction found to be within said range is in said buffer means, said second logic means including third adder means responsive to said first adder an a branch target address to calculate whether the target instruction is contained in said buffer means and, if it is, causing the new instruction execution pointer calculated by said second adder means to be loaded into said second register means.
Claim 8
Dependent Claim 65 words
The instruction prefetch buffer control recited in claim 5 wherein said buffer means stores instructions of variable length, further comprising length means for determining the length of an instruction read out of said buffer means, said second adder means being responsive to said length determining means for incrementing said instruction execution pointer according to the length of the instruction read out of said buffer means.
Claim 9
Dependent Claim 73 words
The instruction prefetch buffer control recited in claim 6 further comprising means responsive to said first and second logic means for setting said first and second registers to zero if the target instruction is not within said range or, if within said range, not in said fuffer means, whereby said fetch pointer pointer to an initial location in said buffer means where a new word is to be written into said buffer means.
Claim 10
Dependent Claim 61 words
The instruction prefetch buffer control recited in claim 7, further comprising comparing means connected to said first and second register means for determining the condition of equality of the instruction fetch pointer and the instruction execution pointer as an indication that said buffer means is empty, said comparing means causing an instruction to be read from a main memory storing instructions.

References Cited (Backward Citations)

US3401376A Cited
US3551895A Cited
US3764988A Cited
US3967247A Cited
US4099229A Cited
US4403284A Cited
US4583163A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-12-21 1991-06-22 1991-12-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-12-21 1995-06-22 1995-12-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-12-21 1999-06-22 1999-12-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag