Pipelining in Computer Organization

What is Pipelining?

  • The technique of gathering instructions from the processor via a pipeline is known as pipelining. It makes it possible to organize the storing and carrying out of instructions. Another name for it is pipeline processing.
  • Pipelining is a method in which several instructions are executed simultaneously. The stages of a pipeline are joined to one another to produce a structure like a pipe. One end of the instruction enters, and the other ends out.
  • Pipelining improves the flow of instructions overall.

  • An input register and a combinational circuit make up each section of a pipeline system. Data is stored in the register, where combinational circuit operations are carried out. The subsequent segment's input register receives the output of the combinational circuit.

Pipeline Types
It is separated into two groups:
  1. Arithmetic Pipeline
  2. Instruction Pipeline
Arithmetic Pipeline
  • The majority of computers often contain arithmetic pipelines. They are employed in fixed point number multiplication and floating-point operations, among other things. As an illustration: The pipeline's input for the floating-point adder is:
X = A*2^a
Y = B*2^b

  • In this case, a and b are exponents and A and B are mantissas, or significant digits of floating-point values.
  • There are four steps involved in adding and subtracting in floating points:

  1. Examine the exponents in comparison.
  2. Correct the mantissas.
  3. Change the number of mantissas.
  4. Generate the outcome.

The intermediate results between the aforementioned procedures are stored in registers.

Instruction Pipeline
  • This allows for the overlapping of the fetch, decode, and execute phases of an instruction cycle to execute a stream of instructions. This kind of method is employed to boost the computer system's throughput.
  • While earlier instructions are being carried out in other pipeline segments, an instruction pipeline reads instructions from memory. As a result, we can carry out several instructions at once. 
  • If you divide the instruction cycle into equal-duration chunks, the pipeline will operate more efficiently.
Pipeline Conflicts
  • The pipeline deviates from its typical performance for a number of reasons. Here are a few of these variables:
1. Timing Differences
  • Not every step can take the same length of time. When processing instructions, this issue typically arises because different instructions have varying operand needs, which in turn affect processing times.
2. Data Hazards
  • The issue appears when multiple instructions are partially executed and make reference to the same piece of data. Because this will produce inaccurate results, we must make sure that the following instruction does not try to access data before the present instruction.
3. Branching
  • We need to know what the next instruction is before we can retrieve and carry it out. The next instruction might not be known until the current one is completed if the current instruction is a conditional branch and its outcome will direct us to the next one.
4. Interrupts
  • Unwanted instructions are introduced into the instruction stream by interrupts. Interruptions affect how instructions are carried out.
5. Data Dependency
  • It occurs when an instruction needs to know the outcome of a prior instruction, but that outcome isn't yet known.
  • The processor's cycle time is shortened.
  • It raises the system's throughput.
  • It increases the system's dependability.
  • A pipelined processor's design is intricate and expensive to produce.
  • There is a greater instruction latency.

Post a Comment

Previous Post Next Post