Een superscalaire CPU-ontwerp maakt een vorm van parallellisme op instructieniveau binnen een enkele CPU, waardoor er meer werk kan worden gedaan met dezelfde kloksnelheid. Dit betekent dat de CPU meer dan één instructie uitvoert tijdens een klokcyclus door meerdere instructies tegelijkertijd uit te voeren (instructieverzending genaamd) op dubbele functionele eenheden. Elke functionele eenheid is slechts een uitvoeringsbron binnen de CPU-kern, zoals een rekenkundige logische eenheid (ALU), floating point unit (FPU), een bit shifter, of een vermenigvuldigingsfactor.
De meeste superscalaire CPU's zijn ook pipelined, maar het is mogelijk om een niet-pipelined superscalaire CPU of een pipelined niet-superscalaire CPU te hebben.
De superscalaire techniek wordt ondersteund door verschillende kenmerken van de CPU-kern:
- De instructies komen van een geordende instructielijst.
- CPU-hardware kan bepalen welke instructies welke gegevensafhankelijkheden hebben.
- Kan meerdere instructies per klokcyclus lezen
Elke instructie die door een scalaire processor wordt uitgevoerd, verandert één of twee data-items tegelijk, maar elke instructie die door een vectorprocessor wordt uitgevoerd, behandelt veel data-items tegelijk. Een superscalaire processor is een mengeling van deze twee:
- Elke instructie verwerkt één data-item.
- Er zijn meerdere dubbele functionele eenheden binnen elke CPU-kern, zodat meerdere instructies tegelijkertijd onafhankelijke gegevensitems behandelen.
In een superscalaire CPU leest een instructieverkeersleider instructies uit het geheugen en beslist welke instructies parallel kunnen worden uitgevoerd, waarbij hij deze op de meerdere dubbele functionele eenheden die binnen de CPU beschikbaar zijn, verstuurt.
Het ontwerp van Superscalar CPU's is gericht op het verbeteren van de nauwkeurigheid van de instructieverspreider, zodat deze de meerdere functionele eenheden te allen tijde bezig kan houden. Vanaf 2008 zijn alle general-purpose CPU's superscalar, een typische superscalar CPU kan tot 4 ALU's, 2 FPU's en twee SIMD-eenheden bevatten. Als de treindienstleider niet alle units bezet kan houden, zal de prestatie van de CPU lager zijn.


