A superscalar processor is a type of processor that can execute multiple sets of instructions at the same time. This type of processor contains several sub-units that control certain types of basic functions. While other processors have these units as well, a superscalar processor can have information sent directly to these units for processing while the main processor is busy with something else. The superscalar processor is the midpoint of the three main types of processors.
A computer's central processing unit, also called a CPU or simply processor, does the majority of the calculations for a computer. Every time something happens on the machine, the CPU works on it a little before it actually happens. This makes the processor very busy and time spent with it very valuable. When the CPU has reached its limit, other computer functions are left waiting for the processor to catch up.
Many CPUs are made up of a main processor and several smaller areas. The main processor does the majority of the calculations for the computer system. Other systems, like the arithmetic logic unit, have very specific functions and are used less than the main processor. In the case of the arithmetic logic unit, it performs low-level math functions for the computer.
At this point, computer processors divide into three broad categories: scalar, superscalar and vector. A scalar system is the type of processor with which most users are familiar. This processor accepts one command at a time and executes them in sequence or order of priority. These processors make up the majority of home and business computers.
Vector processors take in multiple commands at once through an array system. A series of commands arrive simultaneously within the processor's main core. These commands are treated as single parts of a larger command by the processor and executed simultaneously.
A superscalar processor is the midpoint between these two methods. The main processor is only able to take a single command at a time, similar to a scalar processor. On the other hand, there are direct connections to the processor's secondary systems, something not commonly present in other forms of processor. These connections allow information to feed directly into the subsystems where they can execute specific commands and output information separate from the main processor. This allows the processor to work on and output multiple instructions, like a vector processor.
This operation is not to be confused with a multi-core processor. These systems actually have more than one entire processor active at a single time. In order to be a superscalar processor, the commands go to sub-units, not entire systems. In most cases, a multi-core system is a collection of scalar, processors but it is possible for them to be superscalar processors as well.