Embed presentation

![Overview Pipelining is widely used in modernprocessors. Pipelining improves system performance interms of throughput.[No of work done at agiven time] Pipelined organization requires sophisticatedcompilation techniques.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-2-2048.jpg&f=jpg&w=240)













![Role of Cache Memory Each pipeline stage is expected to complete in oneclock cycle. The clock period should be long enough to let theslowest pipeline stage to complete. Faster stages can only wait for the slowest one tocomplete. Since main memory is very slow compared to theexecution, if each instruction needs to be fetchedfrom main memory, pipeline is almost useless.[tentimes greater than the time needed to performpipeline stage] Fortunately, we have cache.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-16-2048.jpg&f=jpg&w=240)


![Pipeline Performance The previous pipeline is said to have been stalled for two clockcycles. Any condition that causes a pipeline to stall is called a hazard. Data hazard – any condition in which either the source or thedestination operands of an instruction are not available at thetime expected in the pipeline. So some operation has to bedelayed, and the pipeline stalls. Instruction (control) hazard – a delay in the availability of aninstruction causes the pipeline to stall.[cache miss] Structural hazard – the situation when two instructions requirethe use of a given hardware resource at the same time.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-19-2048.jpg&f=jpg&w=240)

![Pipeline PerformanceF1F2F3I1I2 (Load)I3E1M2D1D2D3W1W2InstructionF4I4Clock cycle 1 2 3 4 5 6 7Figure 8.5. Effect of a Load instruction on pipeline timing.F5I5 D5TimeE2E3 W3E4D4Load X(R1), R2StructuralhazardThe memory address, X+(R1) is computed in step E2in cycle4, then memoryaccess takes place in cycle5. the operand read from memory is written intoregister R2 in cycle 6[Execution takes 2 cycles] it stalls pipeline to stall for onecycle. Bcox both instruction I2 and I3 require access of register file in cycle 6.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-21-2048.jpg&f=jpg&w=240)



























![Complex Addressing ModeFF DD EX +[R1] [X +[R1]] [[X +[R1]]]LoadNext instruction(a) Complex addressing modeW1 2 3 4 5 6 7Clock cycleTimeWForwardLoad (X(R1)), R2](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-49-2048.jpg&f=jpg&w=240)
![Simple Addressing ModeX + [R1]F DFFF DDDE[X +[R1]][[X +[R1]]]AddLoadLoadNext instruction(b) Simple addressing modeWWWWAdd #X, R1, R2Load (R2), R2Load (R2), R2](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-50-2048.jpg&f=jpg&w=240)





























Pipelining is a technique used in modern processors to improve performance. It allows multiple instructions to be processed simultaneously using different processor components. This increases throughput compared to sequential processing. However, pipeline stalls can occur due to data hazards when instructions depend on each other, instruction hazards from branches or cache misses, or structural hazards when resources are needed simultaneously. Various techniques like forwarding, reordering, and branch prediction aim to reduce the impact of hazards on pipeline performance.
Introduction by Ramakrishna Reddy on Chapter 8 of Pipelining in computer architecture.
Pipelining enhances performance and throughput, needing sophisticated compilation techniques.
Introduction to basic concepts related to pipelining operations.
Improving execution speed through faster circuits and concurrent operations in processing.
Pipelining decomposes processes into sub-operations, akin to an assembly line in manufacturing.
Laundry analogy depicting sequential vs. pipelined processes with time calculations.
Pipelining improves throughput not latency, with focus on instruction fetch and execution stages.
Describes hardware for fetching and executing instructions, including buffer usage.
Detailed operations of fetching, decoding, executing, and writing in four-stage pipeline.
Fast cache memory mitigates main memory latency impacts on pipeline performance.
Growth potential and factors influencing pipeline execution efficiency, such as stalls and hazards.
Interactive quiz question on calculating cycles for a 4-stage pipeline scenario.
Definition of data hazards, their examples, and implications in pipelined processors.
Concept of instruction hazards including branch interruptions causing pipeline stalls.
Effects of unconditional branches on pipeline execution and strategies to minimize penalties.
Utilization of instruction queues and the role of dispatch units in reducing stalls.
Challenges of conditional branches in pipelining and using delays for instruction efficiency.
Predictions to manage branch instructions and maintain instruction flow without stalls.
The influence of addressing modes on pipelining, including advantages and trade-offs.
Conditional codes effects on instruction reordering and maintaining computational outcomes.
Alterations in the datapath for effective pipelined execution and hardware organization.
Superscalar processing enhancing concurrency with multiple instruction executions.
Strategies for managing out-of-order execution and handling exceptions to preserve order.
Factors affecting pipeline execution time and the limits of throughput enhancement.

![Overview Pipelining is widely used in modernprocessors. Pipelining improves system performance interms of throughput.[No of work done at agiven time] Pipelined organization requires sophisticatedcompilation techniques.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-2-2048.jpg&f=jpg&w=240)













![Role of Cache Memory Each pipeline stage is expected to complete in oneclock cycle. The clock period should be long enough to let theslowest pipeline stage to complete. Faster stages can only wait for the slowest one tocomplete. Since main memory is very slow compared to theexecution, if each instruction needs to be fetchedfrom main memory, pipeline is almost useless.[tentimes greater than the time needed to performpipeline stage] Fortunately, we have cache.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-16-2048.jpg&f=jpg&w=240)


![Pipeline Performance The previous pipeline is said to have been stalled for two clockcycles. Any condition that causes a pipeline to stall is called a hazard. Data hazard – any condition in which either the source or thedestination operands of an instruction are not available at thetime expected in the pipeline. So some operation has to bedelayed, and the pipeline stalls. Instruction (control) hazard – a delay in the availability of aninstruction causes the pipeline to stall.[cache miss] Structural hazard – the situation when two instructions requirethe use of a given hardware resource at the same time.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-19-2048.jpg&f=jpg&w=240)

![Pipeline PerformanceF1F2F3I1I2 (Load)I3E1M2D1D2D3W1W2InstructionF4I4Clock cycle 1 2 3 4 5 6 7Figure 8.5. Effect of a Load instruction on pipeline timing.F5I5 D5TimeE2E3 W3E4D4Load X(R1), R2StructuralhazardThe memory address, X+(R1) is computed in step E2in cycle4, then memoryaccess takes place in cycle5. the operand read from memory is written intoregister R2 in cycle 6[Execution takes 2 cycles] it stalls pipeline to stall for onecycle. Bcox both instruction I2 and I3 require access of register file in cycle 6.](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-21-2048.jpg&f=jpg&w=240)



























![Complex Addressing ModeFF DD EX +[R1] [X +[R1]] [[X +[R1]]]LoadNext instruction(a) Complex addressing modeW1 2 3 4 5 6 7Clock cycleTimeWForwardLoad (X(R1)), R2](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-49-2048.jpg&f=jpg&w=240)
![Simple Addressing ModeX + [R1]F DFFF DDDE[X +[R1]][[X +[R1]]]AddLoadLoadNext instruction(b) Simple addressing modeWWWWAdd #X, R1, R2Load (R2), R2Load (R2), R2](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2fpipeliningincomputerarchitecture-170621032212%2f75%2fPipelining-in-computer-architecture-50-2048.jpg&f=jpg&w=240)



























