← Back to Patent Explorer
EP0227892A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Updates to branch history table in a pipeline processing system

Assignee: International Business Machines Corp
•
Filing: 1986-09-05
•
Granted: —
•
Expires: 2006-09-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data-dependent branch table (64) is described, which is a mechanism that is sensitive to those operands that will be tested in order to determine branch action outcomes. The data dependent branch table operates in conjunction with a branch history table to anticipate those instances where the branch history table will make an erroneous prediction, including means to correct the branch history table prior to the time that the actual prediction is made.

Inventors

  • 👤 Philip G. Emma
  • 👤 James H. Pomerene
  • 👤 Gururaj S. Rao
  • 👤 Rudolph N. Rechtschaffen
  • 👤 Howard E. Sachar
  • 👤 Frank J. Sparacio

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-06 11:48
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3842; G06F9/3848

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 214 words
In a computing machine, apparatus for predicting the outcome of branch instructions, the combination comprising; a processor, a memory for storing information to be processed by said processor, said information inclucing instructions and operands, a branch history table (2) for storing prior actions of branch instructions which are processed by said processor, means (10,16,24,32) for associating specific ones of said operands with specific ones of said branch instructions, and said prior actions of said branch instructions, means (38) for determining the specific association between said specific ones of said branch instructions, and said prior actions of said branch instructions, characterized by a storage means (DDBT, 64) which stores said specific associations, means (Fig. 2) for monitoring stores made to operands in said memory by said processor to determine if a given operand being stored to is one of said specific operands stored in said storage means; and means (Fig. 3) responsive to said specific associations for determining, if the subsequent branch action of a given branch instruction in said storage means is different than the branch action of said given branch instruction in said branch history table (64), including means (138,150) for updating the branch action of said given branch instruction in said branch history table, in the event that the branch actions differ.
Claim 2
Dependent Claim 214 words
In a computing machine, apparatus for predicting the outcome of branch instructions, the combination comprising; a processor, a memory for storing information to be processed by said processor, said information inclucing instructions and operands, a branch history table (2) for storing prior actions of branch instructions which are processed by said processor, means (10,16,24,32) for associating specific ones of said operands with specific ones of said branch instructions, and said prior actions of said branch instructions, means (38) for determining the specific association between said specific ones of said branch instructions, and said prior actions of said branch instructions, characterized by a storage means (DDBT, 64) which stores said specific associations, means (Fig. 2) for monitoring stores made to operands in said memory by said processor to determine if a given operand being stored to is one of said specific operands stored in said storage means; and means (Fig. 3) responsive to said specific associations for determining, if the subsequent branch action of a given branch instruction in said storage means is different than the branch action of said given branch instruction in said branch history table (64), including means (138,150) for updating the branch action of said given branch instruction in said branch history table, in the event that the branch actions differ.
Claim 3
Dependent Claim 25 words
The apparatus claimed in claim 1, wherein said branch action includes the branch address (BA) and the target address (TA) of the associated branch instruction.
Claim 4
Dependent Claim 30 words
The apparatus claimed in claim 2, wherein said means for updating includes means for updating whichever of BA and TA differ in the event the comparison of branch actions differ.
Claim 5
Dependent Claim 31 words
The apparatus claimed in claim 1, wherein said branch action includes an action bit which is indicative of whether or not said given branch instruction was taken on its last execution.
Claim 6
Dependent Claim 27 words
The apparatus claimed in claim 4, wherein said means for updating includes means for updating said action bit in the event the comparison of action bits differ.
Claim 7
Dependent Claim 31 words
The apparatus claimed in claim 2, wherein said branch action includes an action bit which is indicative of whether or not said given branch instruction was taken on its last execution.
Claim 8
Dependent Claim 33 words
The apparatus claimed in claim 6, wherein said means for updating includes means for updating whichever of BA, TA or the action bit differ in the event the comparison of branch actions differ.
Claim 9
Independent Claim 230 words
A method of processing branch instructions in a computing machine, wherein said computing machine includes a processor, a memory for storing information to be processed by said processor, said information including instructions and operands, a branch history table (BHT) for storing prior branch actions of instructions processed by said processor, characterized by a data-dependent branch table (DDBT, 64) which stores addresses of operands, addresses of branch instructions, branch actions of said branch instructions, and associations between specific ones of said operands and specific ones of said branch instructions, and said prior actions of said branch instructions; said method comprising the steps of: associating specific ones of said operands with specific ones of said branch instructions, and said prior actions of said branch instructions; determining the specific association between said specific ones of said branch instructions, and said prior actions of said branch instructions; monitoring all stores made to operands stored in said memory by said processor to determine if a given operand being stored to is one of a said specific operands stored in said DDBT; responding to said specific associations for determining if the subsequent branch action of a given branch instruction in said DDBT is different than the branch action of said given branch instruction in said BHT; and updating the branch action of said given branch instruction in said BHT, in the event the branch actions differ.
Claim 10
Independent Claim 230 words
A method of processing branch instructions in a computing machine, wherein said computing machine includes a processor, a memory for storing information to be processed by said processor, said information including instructions and operands, a branch history table (BHT) for storing prior branch actions of instructions processed by said processor, characterized by a data-dependent branch table (DDBT, 64) which stores addresses of operands, addresses of branch instructions, branch actions of said branch instructions, and associations between specific ones of said operands and specific ones of said branch instructions, and said prior actions of said branch instructions; said method comprising the steps of: associating specific ones of said operands with specific ones of said branch instructions, and said prior actions of said branch instructions; determining the specific association between said specific ones of said branch instructions, and said prior actions of said branch instructions; monitoring all stores made to operands stored in said memory by said processor to determine if a given operand being stored to is one of a said specific operands stored in said DDBT; responding to said specific associations for determining if the subsequent branch action of a given branch instruction in said DDBT is different than the branch action of said given branch instruction in said BHT; and updating the branch action of said given branch instruction in said BHT, in the event the branch actions differ.
Claim 11
Independent Claim 45 words
The method of claim8, wherein said branch action includes the branch address (BA) and the target address (TA) of the associated branch instruction, and said step of updating includes updating whichever of BA and TA differ in the event the comparison of branch actions differ.
Claim 12
Independent Claim 54 words
The method of claim8 , wherein said branch action includes an action bit which is indicative of whether or not said given branch instruction was taken on its last execution, and said step of updating includes updating said action bit in said branch history table in the event the comparison of action bits differ.
Claim 13
Dependent Claim 58 words
lL The method of claim 9 _ , wherein said branch action includes an action bit which is indicative of whether or not said given branch instruction was taken on its last execution, and said step of updating includes updating whichever of BA, TA or the action bit differ in the event the comparison of branch actions differ.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag