EP0348728A2

Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor.

Abstract

Apparatus and method which provides a variable instruction stack. Instructions to be executed are fed into a single input multiple output stack register feeding from the lowest to the highest level. Instructions are provided with a valid bit to distinguish instructions requiring execution from those requiring no execution (NOOP). When an instruction not requiring execution (NOOP) propagates to the highest level, the execution unit receives an instruction in a lower level of the stack avoiding any idle time of the execution unit waiting for an executable instruction to propagate to the highest level.

EP0348728A2, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Projected expiry passed 12 June 2009, 17.3 years ago.

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

18 claims: 4 independent, 14 dependent

  1. 1
    A method of increasing the execution efficiency of a pipelined processor which includes a first processor for executing NOOP instructions and a second pipelined processor for executing arithmetic instruction segments contained in RX and RR instructions, comprising:supplying from an instruction register first, second, and third consecutive instructions to be executed by said first and second processor from a sequence of serially connected first, second, and third consecutive instruction stack registers;decoding each instruction and placing a valid bit in a field associated with said instruction when said instruction is either an RR or RX instruction and an invalid bit when said instruction is a NOOP instruction;propagating each instruction including said valid and invalid bits to a next adjacent stack, each machine cycle of said processors;executing each execution segment of an instruction in said third stack in said second pipelined processor when said bit associated with said instruction is a valid bit;and executing a later RR instruction execution segment in another of said stacks in said second pipelined processor when said bit associated with an instruction in said third stack is invalid and said subsequent RR instruction is an instruction having a valid bit whereby said second processor executes said later instruction segment and said first processor executes a NOOP instruction in said third stack.
  2. 7
    An apparatus for increasing execution efficiency of an arithmetic execution processor in a pipelined processor during execution of a sequential instruction stream which include NOOP instructions having no arithmetic execution segment and instructions having arithmetic execution segments comprising:an instruction register for receiving each instruction to be processed in said pipelined processor;each instruction being decoded by a decoding circuit connected to said instruction register for determining when a received instruction is a NOOP instruction and for setting a valid bit associated with said instruction identifying said instruction as a NOOP instruction or a non-NOOP instruction;a plurality of serially connected multilayer stack registers forming multiple levels, each having an individual output for supplying an instruction multiplexer;an instruction multiplexer connected to each output of said stack for supplying a selected instruction to said arithmetic execution unit in response to a select signal;control circuit connected to said instruction register and each level of said stack for determining the state of a valid bit associated with each instruction, said control circuitry enabling said multiplexer to apply the highest level stack instruction to said execution unit when said higher level instruction is not a NOOP instruction, and enabling said multiplexer to apply a lower level stack instruction to said execution processor when said highest level instruction is a NOOP instruction;whereby said execution processor is provided with an executable task when a NOOP instruction is in said higher level stack.
  3. 13
    An apparatus for increasing execution efficiency of an arithmetic execution unit in a pipelined processor during execution of a sequential instruction stream which includes NOOP instructions having no arithmetic execution segments and non-­NOOP instructions of first and second types having arithmetic execution segments comprising:an instruction register for sequentially receiving each instruction of said set;a single input multiple output stack register serially connected forming plural levels of instruction registers, said input being connected to receive each instruction from said instruction register and propagate said instructions through said stack register levels;a decoder circuit connected to said instruction register providing a first decode when a first RX instruction is received, and a second decode when a next instruction following said first instruction is a NOOP instruction;a first control latch which is set by said second decode;a multiplexer having a first input connected to said instruction register and second, third, and fourth inputs connected to first, second, and third levels of said stack register, and an output connected to said execution unit, said multiplexer being enabled to transmit said third level when said RX instruction reaches said third level, and being enabled to transmit said second level when said next NOOP instruction reaches said third level and a subsequently following instruction reaches said second level, whereby said execution unit executes a non-NOOP instruction in said second level.
  4. 16
    An apparatus for increasing the efficiency of an arithmetic execution unit in a pipelined processor during execution of a sequential instruction stream including instructions of second and third types RX, RR having an arithmetic execution segment and instructions (NOOP) which do not require arithmetic execution comprising:an instruction register connected to receive each instruction of said instruction set;a single input multiple output stack register having an input connected to said instruction register for propagating said each instruction from the lowest level through the highest level of said stack register;a multiplexer having a plurality of inputs connected to said multiple outputs and said instruction register, selecting one of said inputs for connection to said execution unit;and control circuitry means enabling said multiplexer to apply the highest level of said stack register to said execution unit when a first RX instruction is received and for assigning a valid bit to said RX instruction and any subsequent first and second instruction types RX, RR, said control circuitry enabling the next consecutive stack register level which contains an instruction of said first or second instruction type when a NOOP instruction is received in said highest level of said stack register, whereby said execution unit does not remain idle when said NOOP instruction is in said highest stack level.