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

Branch stream coprocessor

Assignee: International Business Machines Corp
•
Filing: 1987-02-05
•
Granted: —
•
Expires: 2007-02-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A novel approach to reducing delays resulting from resolution of conditional branch instructions, in which such instructions are pre-executed in a coprocessor which precedes a pipeline processor and prepares an instruction stream for input to the pipeline processor. Because of this pre-execution, the input instruction stream has fewer conditional branches for the pipeline processor to resolve. Also, the coprocessor may handle address generation interlock situations which also cause execution delays in the pipeline processor.

Inventors

  • 👤 Philip George Emma
  • 👤 James Herbert Pomerene
  • 👤 Thomas Roberts Puzak
  • 👤 Rudolph Nathan Rechtschaffen
  • 👤 Frank John Sparacio

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-01 06:46
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3877; G06F9/3802; G06F9/3804; G06F9/3836; G06F9/3842; G06F9/3844

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 111 words
A computing apparatus for executing instructions in instruction sequences, said instruction sequences including first and second types of instructions, said first type of instructions determining choices among alternative ones of said instruction sequen­ces, said computing apparatus comprising: memory means for storing instructions and data; main processing means for executing said instructions and processing said data; prefetching means for prefetching said in­structions from said memory means and forming said instruction sequences for processing by said main processing means; and coprocessing means, positioned between said prefetching means and said main processing means, and comprising means for receiving said instruction sequences from said prefetching means and pre-executing ones of said first type of instructions.
Claim 2
Dependent Claim 111 words
A computing apparatus for executing instructions in instruction sequences, said instruction sequences including first and second types of instructions, said first type of instructions determining choices among alternative ones of said instruction sequen­ces, said computing apparatus comprising: memory means for storing instructions and data; main processing means for executing said instructions and processing said data; prefetching means for prefetching said in­structions from said memory means and forming said instruction sequences for processing by said main processing means; and coprocessing means, positioned between said prefetching means and said main processing means, and comprising means for receiving said instruction sequences from said prefetching means and pre-executing ones of said first type of instructions.
Claim 3
Dependent Claim 20 words
A computing apparatus as claimed in claim 1, wherein said coprocessing means further comprises means for correcting said prefet­ching means.
Claim 4
Dependent Claim 33 words
A computing apparatus as claimed in claim 2, wherein said coprocessing means further comprises: means for compiling corrected instruction sequences; and means for outputting said corrected instruc­tion sequences to said main processing means.
Claim 5
Dependent Claim 18 words
A computing apparatus as claimed in claim 3, wherein said first type of instructions includes conditional branch instructions.
Claim 6
Dependent Claim 29 words
A computing apparatus as claimed in claim 4, wherein said coprocessing means comprises means for minimizing a number of errors in said instruction sequences formed by said prefetching means.
Claim 7
Dependent Claim 65 words
A computing apparatus as claimed in claim 4, wherein said prefetching means includes means for making preliminary guesses as to outcomes of execution of said conditional branch instructions, said coprocessing means inclu­ding means for adjusting said prefetching means in accordance with outcomes of pre-­execution of ones of said first type of in­structions, whereby a percentage of said preliminary guesses which are correct may be maximized.
Claim 8
Dependent Claim 54 words
A computing apparatus as claimed in claim 6, wherein said means for making preliminary guesses comprises a table containing informa­tion indicative of outcomes of execution of said conditional branch instructions, said adjusting means including means for updating entries in said table in accordance with said outcomes of pre-execution of said first type of instructions.
Claim 9
Dependent Claim 28 words
A computing apparatus as claimed in claim 7, wherein said means for updating entries comprises means for adding said entries to and deleting said entries from said table.
Claim 10
Dependent Claim 51 words
A computing apparatus as claimed in claim 8, wherein said corrected instruction sequences contain first and second types of information indicative of said outcomes of pre-execution of said first type of instructions, said main processing means executing said corrected instruction sequences in accordance with said first and second types of information.
Claim 11
Dependent Claim 30 words
A computing apparatus as claimed in claim 9, wherein said first type of information in­cludes information indicative of whether a given one of said conditional branch instruc­tions has been resolved.
Claim 12
Dependent Claim 18 words
A computing apparatus as claimed in claim 10, wherein said first type of instructions further includes load instructions.
Claim 13
Dependent Claim 55 words
A computing apparatus as claimed in claim 11, wherein said coprocessing means further comprises: means for receiving said instructions from said instruction sequences in instruction pairs from said prefetching means; and means for scanning said instruction pairs, ones of said second type of instructions being output directly to said main processing means without being pre-executed.
Claim 14
Dependent Claim 20 words
A computing apparatus as claimed in claim 12, wherein said main processing means comprises means for correcting said prefetching means.
Claim 15
Dependent Claim 32 words
A computing apparatus as claimed in claim 13, wherein said second type of information includes information indicative of whether a first instruction in each of said instruction pairs is a load instruction.
Claim 16
Dependent Claim 17 words
A computing apparatus as claimed in claim 3, wherein said first type of instructions includes load instructions.
Claim 17
Dependent Claim 55 words
A computing apparatus as claimed in claim 15, wherein said coprocessing means further comprises: means for receiving said instructions from said instruction sequences in instruction pairs from said prefetching means; and means for scanning said instruction pairs, ones of said second type of instructions being output directly to said main processing means without being pre-executed.
Claim 18
Dependent Claim 51 words
A computing apparatus as claimed in claim 16, wherein said corrected instruction sequen­ces contain first and second types of informa­tion indicative of said outcomes of pre-­execution of said first type of instructions, said main processing means executing said corrected instruction sequences in accordance with said first and second types of informa­tion.
Claim 19
Dependent Claim 32 words
A computing apparatus as claimed in claim 17, wherein said second type of information includes information indicative of whether a first instruction in each of said instruction pairs is a load instruction.
Claim 20
Dependent Claim 85 words
A computing method for executing instructions in instruction sequences, said instruction sequences including first and second types of instructions, said first type of instructions determining choices among alternative ones of said instruction sequences, said computing method comprising the following steps: storing instructions and data in a memory; prefetching said instructions from said memory; forming said instruction sequences in accor­dance with said prefetching step; pre-executing ones of said first type of instructions; and executing said instructions and processing said data in accordance with said pre-execu­ting step.
Claim 21
Dependent Claim 85 words
A computing method for executing instructions in instruction sequences, said instruction sequences including first and second types of instructions, said first type of instructions determining choices among alternative ones of said instruction sequences, said computing method comprising the following steps: storing instructions and data in a memory; prefetching said instructions from said memory; forming said instruction sequences in accor­dance with said prefetching step; pre-executing ones of said first type of instructions; and executing said instructions and processing said data in accordance with said pre-execu­ting step.
Claim 22
Dependent Claim 28 words
A method according to claim 19, further comprising the step of compiling corrected instruction sequences in accordance with outcomes of said pre-executing step prior to said executing step.
Claim 23
Dependent Claim 28 words
A method according to claim 20, wherein said executing step further comprises the step of optimizing said prefetching step in accordance with said outcomes of said pre-executing step.
Claim 24
Dependent Claim 18 words
A method according to claim 21, wherein said pre-executing step comprises the step of pre-executing conditional branch instructions.
Claim 25
Dependent Claim 44 words
A method according to claim 22, wherein said prefetching step comprises the step of making preliminary guesses as to outcomes of execu­tion of said conditional branch instructions, said optimizing step comprising the step of maximizing a number of correct ones of said preliminary guesses.
Claim 26
Dependent Claim 38 words
A method according to claim 23, wherein said executing step further comprises the step of executing said corrected instruction sequences in accordance with information indicative of whether a given one of said conditional branch instructions has been executed.
Claim 27
Dependent Claim 22 words
A method according to claim 24, wherein said pre-executing step further comprises the step of scanning said instruction sequences in instruction pairs.
Claim 28
Dependent Claim 40 words
A method according to claim 25, wherein said executing step further comprises the step of executing said corrected instruction sequences in accordance with information indicative of whether a first instruction in each of said instruction pairs is a load instruction.

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