Nova Patents
EP0583089B1

Instruction decoder

Abstract

This record has no abstract on file.

EP0583089B1, drawing sheet 1
Sheet 1 of 8

Term

Term ended

Expired 20 July 2013, 13.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

17 claims: 15 independent, 2 dependent

  1. 1
    An instruction decoder (18) for use in a superscalar processor of the type including a source of instructions (14, 16) and a plurality of functional units (24, 26) for executing said instructions, said instruction decoder comprising:input means (118) coupled to said source of instructions for receiving a block of said instructions from said source of instructions, said block of instructions containing a plurality of said instructions;decoding means for decoding selected ones of said instructions of said received block of instructions, said decoding means including dispatch control means (168) for applying a dispatch criteria to said selected ones of said instructions of said received block of instructions;and output means coupled to said functional units and responsive to said dispatch control means for dispatching all of said selected instructions of said received block of instructions satisfying said dispatch criteria in parallel to said functional units, wherein said dispatch control means further includes means for providing a control signal (HOLDIFET) having a first state indicating that all of said selected instructions of said received block of instructions have been dispatched, said control signal being applied to said source of instructions for causing said source of instructions, when said control signal is in said first state, to provide a further block of instructions to said instruction decoder input means, and wherein said control signal has a second state indicating that less than all of said selected instructions of said received block of instructions have been dispatched for causing said source of instructions to once again provide said block of instructions to said instruction decoder input means.
  2. 2
    An instruction decoder as defined in claim 1 wherein said source of instructions provides a predicted executed signal (146; INSVAL) accompanying each said instruction provided to said instruction decoder, each said predicted executed signal having a first state or a second state, wherein said selected instructions are those instructions accompanied by a predicted executed signal in said first state, and wherein said instruction decoder is responsive to said predicted executed signals for decoding and applying said dispatch criteria to only those instructions having a predicted executed signal in said first state:said predicted executed signal (INSVAL) being responsive to said dispatch control means (168).
  3. 3
    An instruction decoder as defined in claim 2 wherein said dispatch control means further includes means for providing a set of dispatch status signals (INSDISP), each said dispatch status signal corresponding to a respective given one of said instructions of said received block of instructions, each said dispatch status signal having a first state indicating that its corresponding instruction has been dispatched or a second state indicating that its corresponding instruction has not been dispatched.
  4. 4
    An instruction decoder as defined in claim 3 wherein said dispatch status signals (INSDISP) are applied to said source of instructions for causing said source of instructions to set to said second state the predicted executed signals corresponding to the instructions which have been dispatched by said instruction decoder.
  5. 5
    An instruction decoder as defined in claim 4 wherein said plurality of instructions of said received block of instructions are arranged in ascending order and wherein said decoding means scans said block of instructions in said ascending order and begins decoding and applying said dispatch criteria with the first one of said instructions having a predicted executed signal in said first state.
  6. 6
    An instruction decoder as defined in claim 5 wherein said decoding means decodes and said dispatch control means applies said dispatch criteria to said selected instructions until one of said selected instructions fails to satisfy said dispatch criteria.
  7. 7
    An instruction decoder as defined in claim 1 wherein said processor further includes register file mans (20) for storing operand data associated with said instructions, said register file means including a plurality of read ports (44) for providing said functional units with said operand data, wherein each said instruction includes predecoded information indicating the number or read ports required for executing said instruction, and wherein said decoding means includes pointer means responsive to said predecoded information to generate read pointers and allocating means responsive to said read pointers for allocating said read ports for said block on instructions.
  8. 8
    An instruction decoder as defined in claim 7 wherein said read ports are fewer in number than potentially required for the execution of said selected instructions of said block of instructions, wherein said allocating means allocates said read ports for said selected instructions until all said read ports are allocated, said allocating means being coupled to said dispatch control means, and wherein said dispatch control means precludes said output means from dispatching those selected instructions for which a required read port is not allocated.
  9. 9
    An instruction decoder as defined in claim 8 wherein said plurality of instructions of said block of instructions are arranged in ascending order and wherein said allocating means allocates said read ports to said selected instructions in said ascending order.
  10. 10
    An instruction decoder as defined in claim 7 wherein said processor further includes buffer means (22) for storing forwarded operands required by said instructions, said decoding means being coupled to said buffer means for providing said buffer means with said read pointers, wherein said buffer means is responsive to said read pointers for determining if its entries contain operand data required for executing said instructions, and wherein said buffer means provides said dispatch control means with status signals (ROBARD, ROBBRD) indicating for which ones of said selected instructions it can provide required operand data.
  11. 11
    An instruction decoder as defined in claim 10 wherein said dispatch control means is responsive to said status signals for not allocating said register file read ports for those ones of said selected instructions which can be provided with required operand data by said buffer means.
  12. 12
    An instruction decoder as defined in claim 11 wherein said dispatch control means causes said output means to dispatch only those selected instructions which have required allocated read ports or which can be provided with required operand data from said buffer means.
  13. 13
    An instruction decoder as defined in claim 1 wherein each said instruction includes an opcode, wherein said functional units are of different types, and wherein said decoding means includes a type decoder (166) responsive to said opcodes for decoding which type of said functional units is required for executing each said instruction and for providing type signals indicative of the type of functional unit required for executing each said instruction.
  14. 14
    An instruction decoder as defined in claim 13 wherein each said functional unit has a capacity for receiving a finite number of instructions, wherein each said functional unit provides said dispatch control means with a status signal (58) indicating its availability for receiving an instruction wherein said type decoder is coupled to said dispatch control means for providing said dispatch control means with said type signals, and wherein said dispatch control means precludes said output means from dispatching a selected instruction when said status signals indicate that all functional units of a type required to execute said selected instruction are not available.
  15. 15
    An instruction decoder as defined in claim 14 wherein said plurality of said instructions of said received block of instructions are received by said input means in ascending order and wherein said dispatch control means ceases dispatching instructions of said block of instructions upon precluding a selected one of said instructions from being dispatched.