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

Processor including fetch operation for branch instruction with control tag

Assignee: International Business Machines Corp
•
Filing: 1984-10-31
•
Granted: 1988-10-04
•
Expires: 2004-10-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus expands the capability of an instruction prefetch buffer. The method and apparatus enables the instruction prefetch buffer to distinguish between old prefetches that occurred before a branch in an instruction stream and new prefetches which occurred after the branch in the instruction stream. A control tag is generated each time a request for an instruction is sent to a storage. The returning instruction has appended thereto the original control tag which is then compared to the current value of control tag in the instruction prefetch buffer. If the two values match, then this is an indication that a branch has not occurred and the instruction is still required. However, if the two values of the control tag are not equal, then this is an indication that a branch in the instruction stream has occurred and that the instruction being sent from storage to the buffer is no longer required. The method and apparatus are also applicable to the use of branch-with-execute instructions wherein a subject instruction is executed immediately following the branch-with-execute instruction. The execution of this subject instruction before the branch target instruction enables the system processor to continue operating while it is waiting for the branch target instruction.

Inventors

  • 👤 Phillip D. Hester
  • 👤 William M. Johnson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 16:09
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3804; G06F9/3836; G06F9/3842; G06F9/3885; G06F9/3889

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 204 words
In a processing system including a processor for fetching and executing a pluarlity of instructions having at least one branch instruction, and a storage from which said processor fetches the instructions, said processor comprising: means for generating control tags each of whose current value is changed when a branch instruction is executed; means connected to said generating means for appending one of said control tags to a request from a sending means before said request is sent to said storage by combining said request with said control tag; said sending means connected to said appending means for sending said request for instructions to said storage with said control tag; means connected to said storage for receiving requests with said control tags and instructions from said storage; means connected to said generating and recieving means, for determining if the control tag of the request for a received instruction is equal to the current value of the control tag in said generating means; and means connected to said determining and receiving means, for retaining each instruction received from said storage only if the control tag of the request for the received instruction is equal to the current value of the control tag in said generating means.
Claim 2
Dependent Claim 204 words
In a processing system including a processor for fetching and executing a pluarlity of instructions having at least one branch instruction, and a storage from which said processor fetches the instructions, said processor comprising: means for generating control tags each of whose current value is changed when a branch instruction is executed; means connected to said generating means for appending one of said control tags to a request from a sending means before said request is sent to said storage by combining said request with said control tag; said sending means connected to said appending means for sending said request for instructions to said storage with said control tag; means connected to said storage for receiving requests with said control tags and instructions from said storage; means connected to said generating and recieving means, for determining if the control tag of the request for a received instruction is equal to the current value of the control tag in said generating means; and means connected to said determining and receiving means, for retaining each instruction received from said storage only if the control tag of the request for the received instruction is equal to the current value of the control tag in said generating means.
Claim 3
Dependent Claim 23 words
A processor according to claim 1 wherein said means for retaining includes an instruction fetch buffer having a plurality of separately identifiable registers.
Claim 4
Dependent Claim 56 words
A processor according to claim 2 further including means connected to said instruction fetch buffer for appending a number to each request, before said request is sent to said storage by combining the number with the request, for the instruction identifying to which one of said plurality of registers each instruction received is to be sent.
Claim 5
Dependent Claim 48 words
A processor according to claim 2 further including means connected to the sending means and to each of said pluarlity of separately identifiable registers for setting a control bit for one of said registers each time a request for instruction is sent to said storage for that register.
Claim 6
Dependent Claim 67 words
A processor according to claim 4 wherein said control bit setting means further includes means connected to said retaining means, for resetting said control bit for each of said register each time a received instruction control tag for a received instruction for that register is unequal to the current value of the control tag in said generating means, thereby indicating that a branch instruction has been reached.
Claim 7
Dependent Claim 29 words
A processor according to claim 5 further including means connected to said instruction fetch buffer for delaying execution of said branch instruction until said control bit has been reset.
Claim 8
Dependent Claim 156 words
In a processing system including a processor and a storage from which said processor fetches instructions, a method for fetching and executing a plurality of instructions having at least one branch instruction, said method comprising the steps of: generating control tags each of whose current value is changed when a branch instruction is executed; appending one of said control tags to each request sent to said storage before said request is sent to said storage by combining said control tag with said request; sending requests for instructions to said storage with said control tags; receiving said instructions from said storage with said requests and control tags; determining if the control tag of the request for a received instruction is equal to the current valve of the control tags; and retaining each instruction received from storage if the control tag of the request for the received instruction is equal to the current value of the control tag.
Claim 9
Dependent Claim 156 words
In a processing system including a processor and a storage from which said processor fetches instructions, a method for fetching and executing a plurality of instructions having at least one branch instruction, said method comprising the steps of: generating control tags each of whose current value is changed when a branch instruction is executed; appending one of said control tags to each request sent to said storage before said request is sent to said storage by combining said control tag with said request; sending requests for instructions to said storage with said control tags; receiving said instructions from said storage with said requests and control tags; determining if the control tag of the request for a received instruction is equal to the current valve of the control tags; and retaining each instruction received from storage if the control tag of the request for the received instruction is equal to the current value of the control tag.
Claim 10
Dependent Claim 31 words
A method according to claim 7 further comprising the step of appending a number to each request for instruction identifying a register to which each received instruction is to be sent.
Claim 11
Dependent Claim 34 words
A method according to claim 7 further comprising the step of setting a control bit for one of said registers each time a request for instruction is sent to said storage for that register.
Claim 12
Dependent Claim 44 words
A method according to claim 9 further comprising the step of resetting said control bit for one of said registers each time a received instruction control tag for a received instruction for that register is unequal to the current value of the control tag.

References Cited (Backward Citations)

US4155120A Cited
US4179737A Cited
US4360868A Cited
US4409654A Cited
US4348724A Cited
US4471433A Cited
US4430706A Cited
US4435756A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1991-10-04 1992-04-04 1992-10-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1995-10-04 1996-04-04 1996-10-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1999-10-04 2000-04-04 2000-10-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag