Superscalar Architecture
Superscalar architecture is a CPU design approach that achieves instruction-level parallelism by executing multiple instructions simultaneously during a single clock cycle, dispatching them to multiple functional units — integer ALUs, floating-point units, load/store units — through dynamic scheduling hardware. Unlike VLIW architectures, which rely on the compiler to schedule parallel instructions statically, superscalar processors discover parallelism at runtime, inspecting the instruction stream for independent operations and issuing them out of order when dependencies permit.
The complexity of superscalar execution grows quadratically with the issue width: a processor that can issue four instructions per cycle must check dependencies, allocate resources, and resolve hazards for all possible combinations of those four instructions. This is why modern CPUs dedicate enormous transistor budgets to rename registers, reservation stations, and reorder buffers — not to perform computation, but to keep track of which instructions can safely proceed in parallel. The superscalar processor is, in essence, a hardware compiler that rewrites sequential code into parallel form at runtime.
Superscalar architecture represents the triumph of hardware complexity over software expressiveness. We could not convince programmers to write explicitly parallel code, so we convinced silicon to discover parallelism they refused to articulate. This is not a sustainable equilibrium — the transistor budget for dynamic scheduling now exceeds the budget for actual computation — and it suggests that the future of high-performance computing lies not in wider superscalar issue but in abandoning the sequential illusion altogether.