This is an old revision of the document!


Modern Processors: Pipeline, Superscalar, Branch Prediction, Hyperthreading

Modern processors have a very complex design and include many units responsible mainly for shortening the execution time of the software.

Pipeline

As was described in the previous chapter, executing a single instruction requires many actions which must be performed by the processor. We could see that each step, or even substep, can be performed by a separate logical unit. This feature has been used by designers of modern processors to create a processor in which instructions are executed in a pipeline. A pipeline is a collection of logical units that execute many instructions at the same time - each of them at a different stage of execution. If the instructions arrive in a continuous stream, the pipeline allows the program to execute faster than a processor that does not support the pipeline. Note that the pipeline does not reduce the time of execution of a single instruction, it increases the throughput of the instruction stream.

A simple pipeline is implemented in AVR microcontrollers. It has two stages, which means that while one instruction is executed another one is fetched as shown in Fig 1.

Simple 2-stage pipeline in AVR microcontroller
Figure 1: Simple 2-stage pipeline in AVR microcontroller

a mature 8086 processor. This processor has

Price of the pipeline

Superscalar

The superscalar processor increases the speed of program execution because it can execute more than one instruction during a clock cycle. It is realised by simultaneously dispatching instructions to different execution units on the processor.

en/multiasm/cs/chapter_3_9.1736200834.txt.gz · Last modified: 2025/01/06 22:00 by ktokarz
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0