EP0352103A2

Pipeline bubble compression in a computer system.

Abstract

Bubble compression in a pipelined central processing unit (CPU) of a computer system is provided. A bubble represents a stage in the pipeline that cannot perform any useful work due to the lack of data from an earlier pipeline stage. When a particular pipeline stage has stalled, the CPU instructions that have already passed through this stage continue to move ahead and leave behind vacant stages or bubbles. If a bubble is introduced into a pipeline and the pipeline subsequently stalls, the disclosed CPU takes advantage of this stalled condition to compress the previously introduced bubble.

EP0352103A2, drawing sheet 1
Sheet 1 of 13

Term

Term ended

Projected expiry passed 20 July 2009, 17.2 years ago.

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

14 claims: 5 independent, 9 dependent

  1. 1
    A method of operating a pipelined processing unit (10) in a digital computer, the pipelined processing unit having at least a first pipeline segment for processing data and a second pipeline segment for processing data downstream of the first pipeline segment; the said processing of data being capable of causing a stall condition which produces a bubble in the first pipeline segment; the method being characterised by:a) detecting a bubble in the first pipeline segment;b) thereafter detecting a stall condition in the second pipeline segment;andc) overwriting and thereby compressing the bubble.
  2. 4
    A method according to any one of the preceding claims wherein the bubble in the first segment includes a condition whereby the control data is invalid and thus may be overwriten.
  3. 5
    A method according to any one of the preceding claims wherein the processor includes a third pipeline segment in which operands are fetched from a register file (50), an operation is performed on the operands, and a result is stored in the register file (50).
  4. 7
    A method according to any one of the preceding claims wherein the processor (10) is microprogrammed and the second pipeline segment includes fetching the sets of control bits from a microinstruction store (22)
  5. 8
    A processor (10) comprising:a) a plurality of successive operating stages (fig 10), with each stage either performing some operation on a set of data or controls received from a preceding stage and passing an output set of data or controls to a succeeding stage;or introducing a stall whereby no operation is performed and no data or controls are passed to a succeeding stage, at least one of the stages then having a non-operative set of data or controls ready to be passed to a succeeding stage;b) means (44) for advancing the sets of data or controls in all of the stages simultaneously when none of the stages has introduced a stall, or in later ones of the stages downstream of a given stage when the said given stage has introduced a stall;characterised by means for overwriting the non-­operative set of data or controls.