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

Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays

Assignee: International Business Machines Corp
•
Filing: 1969-01-15
•
Granted: 1971-05-04
•
Expires: 1989-01-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Apparatus and a method in a digital computer is disclosed for allowing improved program branching from a first instruction sequence to a second instruction sequence. Said apparatus includes means for decoding a branch instruction in said first sequence; means for determining parameters which are to enter into a condition determination, the resolution of which defines whether or not the branch is to be made, means for detecting a specific type instruction in said first sequence subsequent to said branch instruction, said specific type instruction indicative of the point in the first instruction sequence at which the branch is to be made; and means responsive to said detection for ordering instructions from said second instruction sequence to be processed subsequent to the processing of said specific type instruction.

Inventors

  • 👤 John Cocke
  • 👤 Brian Randell
  • 👤 Herbert Schorr
  • 👤 Edward H Sussenguth

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 16:47
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3842; G06F9/3846

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 259 words
Apparatus in a digital computer for altering the sequence of instructions to be processed from a first instruction sequence to a second instruction sequence comprising, in combination: storaGe means for temporarily storing instructions transmitted in sequence from a storage system, said instructions including at least one branch instruction containing an operation code, and condition and address parameters, said at least one branch instruction indicating that the instruction sequence is to be altered from said first sequence to said second sequence upon the determination of a machine condition; means, coupled to said storage means and responsive to said address parameters, for determining a storage system address containing the first instruction in said second sequence; means, coupled to said storage means and responsive to said operation code and to said condition parameters, for detecting the occurrence of said machine condition; means, coupled to said storage means, for detecting an exit instruction subsequent in said sequence to said at least one branch instruction and separated therefrom by other instructions, said exit instruction indicating the point in said first sequence at which processing of said second sequence of instructions is to begin; means, responsive to said detection of the occurrence of said machine condition, for ordering instructions to be transmitted from said storage system to said storage means, beginning at said address containing said first instruction in said second sequence while said other instructions separating said at least one branch instruction from said exit instruction are being processed, such that said first instruction is processed at said point indicated by said exit instruction.
Claim 2
Dependent Claim 259 words
Apparatus in a digital computer for altering the sequence of instructions to be processed from a first instruction sequence to a second instruction sequence comprising, in combination: storaGe means for temporarily storing instructions transmitted in sequence from a storage system, said instructions including at least one branch instruction containing an operation code, and condition and address parameters, said at least one branch instruction indicating that the instruction sequence is to be altered from said first sequence to said second sequence upon the determination of a machine condition; means, coupled to said storage means and responsive to said address parameters, for determining a storage system address containing the first instruction in said second sequence; means, coupled to said storage means and responsive to said operation code and to said condition parameters, for detecting the occurrence of said machine condition; means, coupled to said storage means, for detecting an exit instruction subsequent in said sequence to said at least one branch instruction and separated therefrom by other instructions, said exit instruction indicating the point in said first sequence at which processing of said second sequence of instructions is to begin; means, responsive to said detection of the occurrence of said machine condition, for ordering instructions to be transmitted from said storage system to said storage means, beginning at said address containing said first instruction in said second sequence while said other instructions separating said at least one branch instruction from said exit instruction are being processed, such that said first instruction is processed at said point indicated by said exit instruction.
Claim 3
Dependent Claim 249 words
Apparatus in a digital computer for altering the sequence of instructions to be processed from a first sequence to the second sequence, comprising, in combination: means for detecting at least one branch instruction indicative that a branch is to be taken upon determination of a given condition; means for detecting a marker instruction subsequent to said at least one branch instruction, said marker instruction indicating the point of departure from said first sequence to said second sequence if said condition has been detected; means for determining a storage address containing the first instruction of said second sequence; storage means for storing information indicative of various digital computer machine conditions; means responsive to information contained within said at least one branch instruction for selecting predetermined information from said storage means; means for comparing said selected information with information indicative of the condition indicated in said at least one branch instruction; means for providing, when said comparison is successful, an indication that said branch is to be taken; means responsive to said indication for ordering instructions, beginning at said first instruction of said second sequence, while continuing to process instructions between said at least one branch instruction and said marker instruction; means for inhibiting the processing of branch instructions between a branch instruction for which said comparison is successful and said marker instruction; and, means responsive to the processing of said marker instruction for allowing the processing of said ordered instructions from said second sequence beginning with said first instruction thereof.
Claim 4
Dependent Claim 249 words
Apparatus in a digital computer for altering the sequence of instructions to be processed from a first sequence to the second sequence, comprising, in combination: means for detecting at least one branch instruction indicative that a branch is to be taken upon determination of a given condition; means for detecting a marker instruction subsequent to said at least one branch instruction, said marker instruction indicating the point of departure from said first sequence to said second sequence if said condition has been detected; means for determining a storage address containing the first instruction of said second sequence; storage means for storing information indicative of various digital computer machine conditions; means responsive to information contained within said at least one branch instruction for selecting predetermined information from said storage means; means for comparing said selected information with information indicative of the condition indicated in said at least one branch instruction; means for providing, when said comparison is successful, an indication that said branch is to be taken; means responsive to said indication for ordering instructions, beginning at said first instruction of said second sequence, while continuing to process instructions between said at least one branch instruction and said marker instruction; means for inhibiting the processing of branch instructions between a branch instruction for which said comparison is successful and said marker instruction; and, means responsive to the processing of said marker instruction for allowing the processing of said ordered instructions from said second sequence beginning with said first instruction thereof.
Claim 5
Dependent Claim 58 words
The combination according to claim 2 further including: means for providing, when said comparison is unsuccessful, an indication of the fact that said branch is not to be taken; and means responsive to said last-named indication and to the detection of said marker instruction for continuing the ordering of instructions to be processed, from said first instruction sequence.
Claim 6
Dependent Claim 20 words
The combination of claim 3 wherein said conditions comprise more than one bit of information in said information storage means.
Claim 7
Dependent Claim 243 words
In a digital computer wherein instructions are prefetched from a storage system in advance of the time at which they are processed, a combination of: first Storage means for storing said prefetched instructions; means for sending to said storage system the address of the next instruction to be prefetched; means for decoding at least one branch instruction in a first sequence of instructions, said branch instruction containing information indicative of the fact that a branch is to be taken subsequent to the detection of a given machine condition; second storage means for storing bits of information indicative of actual machine conditions; means responsive to the information in said at least one branch instruction for comparing said given machine condition with said actual machine conditions; means responsive to the successful comparison of said given and actual machine conditions for providing an indication that said branch is successful; means for detecting a marker instruction in advance of the time said marker instruction is decoded; means responsive to said successful branch indication and to the detection of said marker instruction for causing said means for sending said prefetch address to said storage system to send said address of said first instruction of said second sequence to be processed while instructions from said first sequence are being processed; and, means responsive to the processing of said marker instruction for causing said first instruction of said second sequence to be the next instruction processed after said marker instruction.
Claim 8
Dependent Claim 243 words
In a digital computer wherein instructions are prefetched from a storage system in advance of the time at which they are processed, a combination of: first Storage means for storing said prefetched instructions; means for sending to said storage system the address of the next instruction to be prefetched; means for decoding at least one branch instruction in a first sequence of instructions, said branch instruction containing information indicative of the fact that a branch is to be taken subsequent to the detection of a given machine condition; second storage means for storing bits of information indicative of actual machine conditions; means responsive to the information in said at least one branch instruction for comparing said given machine condition with said actual machine conditions; means responsive to the successful comparison of said given and actual machine conditions for providing an indication that said branch is successful; means for detecting a marker instruction in advance of the time said marker instruction is decoded; means responsive to said successful branch indication and to the detection of said marker instruction for causing said means for sending said prefetch address to said storage system to send said address of said first instruction of said second sequence to be processed while instructions from said first sequence are being processed; and, means responsive to the processing of said marker instruction for causing said first instruction of said second sequence to be the next instruction processed after said marker instruction.
Claim 9
Dependent Claim 34 words
The combination according to claim 5 further including means for inhibiting the processing of any branch instruction in said first instruction sequence which is located between a successful branch instruction and a marker instruction.
Claim 10
Independent Claim 118 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence, including the steps of: decoding a branch instruction located prior to and separated from a marker instruction in said first instruction sequence, said branch instruction indicating a branch condition and said marker instruction indicating the exit point from said first sequence; resolving said branch condition as successful or unsuccessful; prefetching, in response to the successful resolution of said branch condition, at least the first instruction in said second sequence while continuing to process instructions in said first sequence; processing said marker instruction; and processing, as the next instruction processed after said marker instruction, the first instruction in said second sequence.
Claim 11
Independent Claim 118 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence, including the steps of: decoding a branch instruction located prior to and separated from a marker instruction in said first instruction sequence, said branch instruction indicating a branch condition and said marker instruction indicating the exit point from said first sequence; resolving said branch condition as successful or unsuccessful; prefetching, in response to the successful resolution of said branch condition, at least the first instruction in said second sequence while continuing to process instructions in said first sequence; processing said marker instruction; and processing, as the next instruction processed after said marker instruction, the first instruction in said second sequence.
Claim 12
Dependent Claim 40 words
The process of claim 7, further including the step of inhibiting the processing of any branch instruction of said first sequence located between the marker instruction and a branch instruction for which the branch condition has been resolved as successful.
Claim 13
Dependent Claim 58 words
The process of claim 8 further including the steps, in response to the unsuccessful resolution of said decoded branch instruction, of: prefetching the next instruction to be prefetched from said first sequence; processing said marker instruction; and processing, as the next instruction processed after said marker instruction, the next instruction in said first sequence after said marker instruction.
Claim 14
Independent Claim 153 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence comprising the steps of: detecting a branch instruction indicating a machine condition after the occurrence of which said branching is to occur; obtaining a storage address indicative of the first instruction in said second sequence; detecting the occurrence of said indicated machine condition; prefetching said second sequence of instructions from a storage system beginning at said storage address indicative of the first instruction in said sequence; detecting, after said condition occurrence detection, a marker instruction in said first sequence which indicates that point at which the first instruction of said second sequence is to be processed; processing instructions in said first sequence to the point indicated by said marker instruction concurrently with said prefetching; and processing, beginning at said indicated point, said second sequence of instructions beginning with the first instruction of said second sequence.
Claim 15
Independent Claim 153 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence comprising the steps of: detecting a branch instruction indicating a machine condition after the occurrence of which said branching is to occur; obtaining a storage address indicative of the first instruction in said second sequence; detecting the occurrence of said indicated machine condition; prefetching said second sequence of instructions from a storage system beginning at said storage address indicative of the first instruction in said sequence; detecting, after said condition occurrence detection, a marker instruction in said first sequence which indicates that point at which the first instruction of said second sequence is to be processed; processing instructions in said first sequence to the point indicated by said marker instruction concurrently with said prefetching; and processing, beginning at said indicated point, said second sequence of instructions beginning with the first instruction of said second sequence.
Claim 16
Independent Claim 164 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence comprising the steps of: detecting a branch instruction previous to a marker instruction, said branch instruction indicating that a departure from said first instruction sequence to said second instruction sequence is to be made after the occurrence of a machine condition and said marker instruction indicating the point in said first sequence at which said departure is to be made; obtaining the storage address of the first instruction in said second sequence; detecting the occurrence of said machine condition; detecting said marker instruction; prefetching, in response to the detection of said machine condition and to the detection of said marker instruction, instructions from said second sequence beginning with said first instruction thereof; continuing the processing of instructions in said first sequence concurrently with said instruction prefetching; and processing said instructions fetched from said second sequence after the processing of said marker instruction of said first sequence.
Claim 17
Independent Claim 164 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence comprising the steps of: detecting a branch instruction previous to a marker instruction, said branch instruction indicating that a departure from said first instruction sequence to said second instruction sequence is to be made after the occurrence of a machine condition and said marker instruction indicating the point in said first sequence at which said departure is to be made; obtaining the storage address of the first instruction in said second sequence; detecting the occurrence of said machine condition; detecting said marker instruction; prefetching, in response to the detection of said machine condition and to the detection of said marker instruction, instructions from said second sequence beginning with said first instruction thereof; continuing the processing of instructions in said first sequence concurrently with said instruction prefetching; and processing said instructions fetched from said second sequence after the processing of said marker instruction of said first sequence.
Claim 18
Independent Claim 162 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence comprising the steps of: prefetching instructions from said first instruction sequence in advance of the time they are to be processed; decoding from said prefetched instructions of said first sequence a branch instruction indicating a branch will subsequently be taken to said second instruction sequence if certain indicated machine conditions are detected; obtaining the address of the beginning instruction in said second sequence; testing a plurality of possible machine conditions to detect the occurrence of said indicated machine conditions; detecting a marker instruction subsequent to said branch instruction in said first sequence, indicating the point of departure from said first sequence to said second sequence; prefetching instructions from sequential addresses beginning with said obtained address while continuing to process instructions from said first sequence; and processing instructions beginning with said prefetched instructions from said second instruction sequence after the detection of said marker instruction.
Claim 19
Independent Claim 162 words
The method, in a digital computer, of branching from a first instruction sequence to a second instruction sequence comprising the steps of: prefetching instructions from said first instruction sequence in advance of the time they are to be processed; decoding from said prefetched instructions of said first sequence a branch instruction indicating a branch will subsequently be taken to said second instruction sequence if certain indicated machine conditions are detected; obtaining the address of the beginning instruction in said second sequence; testing a plurality of possible machine conditions to detect the occurrence of said indicated machine conditions; detecting a marker instruction subsequent to said branch instruction in said first sequence, indicating the point of departure from said first sequence to said second sequence; prefetching instructions from sequential addresses beginning with said obtained address while continuing to process instructions from said first sequence; and processing instructions beginning with said prefetched instructions from said second instruction sequence after the detection of said marker instruction.
Claim 20
Dependent Claim 52 words
The method of claim 12 further including, in response to the detection of the absence of said occurrence of said indicated machine conditions, the steps of: continuing the prefetching of instructions from said first sequence; and processing, after the detecting of said marker instruction, said last-named prefetched instructions from said first sequence.

References Cited (Backward Citations)

US3297998A Cited
US3400371A Cited
US3408630A Cited
US3418638A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1974-05-03 1974-11-02 1975-05-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1978-05-03 1978-11-02 1979-05-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1982-05-03 1982-11-02 1983-05-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag