EP0959402A2

Virtual single-cycle execution in pipelined processors

Abstract

A pipelined processor is configured to provide virtual single-cycle instruction execution using a register locking mechanism in conjunction with instruction stalling based on lock status. In an illustrative embodiment, a set of register locks is maintained in the form of a stored bit vector in which each bit indicates the current lock status of a corresponding register. A decode unit receives an instruction fetched from memory, and decodes the instruction to determine its source and destination registers. The instruction is stalled for at least one processor cycle if either its source register or destination register is already locked by another instruction. The stall continues until the source and destination registers of the instruction are both unlocked, i.e., no longer in use by other instructions. Before the instruction is dispatched for execution, the destination register of the instruction is again locked, and remains locked until after the instruction completes execution and writes its result to the destination register. The decode unit can thus dispatch instructions to execution units of the processor as if the execution of each of the instructions completed in a single processor cycle, in effect ignoring the individual latencies of the execution units. Moreover, the instructions can be dispatched for execution in a program-specified order, but permitted to complete execution in a different order.

EP0959402A2, drawing sheet 1
Sheet 1 of 5

Term

Term ended

Projected expiry passed 10 May 2019, 7.4 years ago.

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

14 claims: 3 independent, 11 dependent

  1. 1
    A processor comprising:a decode unit for decoding an instruction retrieved from a memory;an execution unit for executing at least a portion of the instruction;a plurality of registers including at least one register associated with the instruction;and a locking mechanism operative to indicate a lock status for each of at least a subset of the plurality of registers, the subset including the register associated with the instruction, wherein the lock status of the register associated with the instruction is checked prior to permitting the instruction to execute.
  2. 7
    A method of processing instructions in a processor including a decode unit, at least one execution unit and a plurality of registers, the method comprising the steps of:decoding an instruction retrieved from a memory;checking a lock status of a register associated with the instruction prior to permitting the instruction to execute;and storing a lock status for each of at least a subset of the plurality of registers, the subset including the register associated with the instruction.
  3. 13
    An integrated circuit comprising:a decode unit for decoding an instruction;an execution unit for executing at least a portion of the instruction;a plurality of registers including at least one register associated with the instruction;and a locking mechanism operative to indicate a lock status for each of at least a subset of the plurality of registers, the subset including the register associated with the instruction, wherein the lock status of the register associated with the instruction is checked prior to permitting the instruction to execute.