EP0474297A2

Very long instruction word machine for efficient execution of programs with conditional branches.

Abstract

A parallel and pipelined computer processor having a plurality of arithmetic and logic units (ALUs) which process computer operations in parallel to speed up the operation of the computer. Operations issued during the branch delay period following conditional jump operations are conditioned on the outcomes of the condition evaluation of such conditional jump operations that have not yet gone through the instruction issue pipeline, by matching a field in the operation to path information generated by a branch control unit. Operations that succeed are allowed to proceed and the effects of unsuccessful operations are disabled. This allows look-ahead computation after a conditional branch which is particularly attractive for a VLIW processor having a large number of parallel functional units and allows useful work to be done in the branch delay periods. Optionally, only such operations that affect the programmer-visible state of the computer are so conditioned, e.g., store operations to memory, program flow control operations and operations that raise exception conditions. The matching algorithm can be implemented such that an operation is enabled on a single path or on an arbitrary set of paths.

EP0474297A2, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Projected expiry passed 2 September 2011, 15.1 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

9 claims: 3 independent, 6 dependent

  1. 1
    A pipelined computer system adapted to initiate at least one branching operation and at least one non-branching operation in each machine cycle of said computer and which has a branch delay of at least one of said machine cycles, said computer system being characterized by    a branch control circuit for encoding the path identification outcomes of conditional branching operations during said branch delay,    a control field in at least one operation following said branching operations for identifying the program path on which such operations are to be executed, and    means utilizing said path identification and said control field for enabling operations following said branching operations.
  2. 5
    A digital computer processor comprising    a plurality of functional units connected for parallel operation,    instruction register means for storing an instruction capable of simultaneously initiating operations on all of said functional units,    conditional branching control means for testing the conditions for branching in a conditional branching operation,    means for encoding the results of said testing to produce a path identifier, and    means for inhibiting execution of operations following said conditional branching operation which include a control field which does not match said path identifier.
  3. 9
    A computer system as claimed in any of claims 1 to 4, wherein said branch delay is at least two machine cycles.