Superscalar CPU Architecture: Exploiting Instruction-Level Parallelism
Overview of superscalar CPU architecture: how processors exploit instruction-level parallelism with multiple execution units, dispatch logic, out-of-order execution and branch prediction to increase throughput.
Superscalar design is a processor architecture that exploits fine-grained parallelism inside a single CPU to run multiple instructions during the same clock cycle. It is a form of parallel computing focused on increasing instruction-level parallelism by providing more than one execution unit so several operations can proceed at once on a single chip.
Image gallery
2 ImagesHow it differs from pipelining
Superscalar techniques are frequently combined with pipelining, but the two address different bottlenecks. A pipelined datapath allows each execution unit to work on parts of several instructions simultaneously, improving throughput by breaking instruction processing into stages. Superscalar designs instead add parallel functional units so multiple distinct instructions can be active in the same cycle.
Typical characteristics
- Instructions are presented to the processor in program order, though they may execute out of order depending on implementation.
- The hardware examines dependencies between instructions (data and control) and schedules or stalls to avoid conflicts.
- Multiple instructions are fetched, decoded, and issued in the same clock cycle when resources and dependencies allow.
Relation to scalar and vector designs
In a basic scalar processor, each instruction generally operates on one or two data elements and issues only a single operation at a time. Vector processors execute one instruction that applies to many data elements in a single operation. A superscalar processor sits between these models: individual instructions remain scalar in nature, but the processor issues several such instructions in parallel so many data items are processed concurrently across the duplicated functional units.
Implementation notes and historical context
A central part of a superscalar CPU is the unit that selects and issues work to execution resources — often called the instruction dispatcher or issue logic. Its effectiveness determines how well the extra execution units are kept busy; poor dispatching can force the processor to discard speculative work or leave units idle, reducing or eliminating performance gains. Many superscalar designs incorporate techniques such as out-of-order execution and branch prediction to increase usable parallelism.
By the late 2000s, most mainstream general-purpose processors employed superscalar architectures. Typical mainstream CPU cores from that era and afterward often included multiple integer arithmetic units (ALUs), one or more floating-point units (FPUs), and SIMD-capable units to accelerate data-parallel workloads.
Questions and answers
Q: What is superscalar technology?
A: Superscalar technology is a form of basic parallel computing that allows more than one instruction to be processed in each clock cycle by using multiple execution units at the same time.
Q: How does superscalar technology work?
A: Superscalar technology involves instructions coming into the processor in order, looking for data dependencies while it runs, and loading more than one instruction in each clock cycle.
Q: What is the difference between scalar and vector processors?
A: On a scalar processor, instructions usually work with one or two data items at once whereas on a vector processor, instructions usually work with many data items at once. A superscalar processor is a mix of both as each instruction processes one data item but more than one instruction runs at once so many data items are handled at once by the processor.
Q: What role does an accurate instruction dispatcher play in a superscalar processor?
A: An accurate instruction dispatcher is very important for a superscalar processor as it ensures that the execution units are always busy with work that will likely be needed. If the instruction dispatcher isn't accurate, then some of the work may have to be thrown away which would make it no faster than a scaler processor.
Q: In what year did all normal CPUs become superscalar?
A: All normal CPUs became superscaler in 2008.
Q: How many ALUs, FPUs and SIMD units can there be on a normal CPU?
A: On a normal CPU there can be up to 4 ALUs, 2 FPUs and 2 SIMD units.
Related articles
Author
AlegsaOnline.com Superscalar CPU Architecture: Exploiting Instruction-Level Parallelism Leandro Alegsa
URL: https://en.alegsaonline.com/art/95080