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
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 04:45
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 sequences, 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 instructions 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 sequences, 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 instructions 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 prefetching 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 instruction 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 including means for adjusting said prefetching means in accordance with outcomes of pre-execution of ones of said first type of instructions, 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 information 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 includes information indicative of whether a given one of said conditional branch instructions 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 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 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 accordance 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-executing 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 accordance 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-executing 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 execution 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.