Pipeline Conflicts

There are some difficulties that cause the pipeline to be moved away from its normal operation. Some of these conflicts are given below :

1. Resource conflicts :  The resource conflicts result due to access to memory by two segments simultaneously. A resource conflict is a situation when more than one instruction tries to access the same resource in the same cycle. A resource can be a register, memory, or ALU. These conflicts can be removed by using different instruction and data memories.

2. Data Dependency : The Data dependency conflicts occurs when an instruction depends on the output of a previous instruction but this output is not yet present.

3. Branch difficulties : Branch difficulties occurs from branch and other instructions that updates the value of Program Counter. In order to fetch and execute the next instruction, we must know what that instruction is. If the present instruction is a conditional branch, and its result will lead us to the next instruction, then the next instruction may not be known until the current one is processed.

4. Interrupts : Interrupts set unwanted instruction into the instruction stream. It effects the execution of instruction.

5. Timing Variations : All segments cannot take same amount of time. This problem generally occurs in instruction processing where different instructions have different operand requirements and thus different processing time.

No comments:

Post a Comment