There are different types of central processing units (CPUs) available for computers. These types of CPUs do not really differ in terms of processing hardware and architecture. Most of them perform the basic tasks of a CPU such as reading and writing data, basic arithmetic, and address jumping. They can, however, differ in terms of bus sizes and processor architecture. Several types of computer processor hardware are available, two of which are the scalar and superscalar processors.
A processor that executes scalar data is called a scalar processor. Using fixed point operands, integer instructions are executed by scalar processors even in their simplest state. More powerful scalar processors usually execute both floating point and integer operations. Recently produced scalar processors contain both a floating point unit and an integer unit, all on the same CPU chip. Most of these modern scalar processors use instructions of the 32-bit kind.
The superscalar processor, on the other hand, executes multiple instructions at a time because of its multiple number of pipelines. This CPU structure implements instruction-level parallelism, which is a form of parallelism in computer hardware, within a single computer processor. This means it can allow fast CPU throughput that is not even remotely possible in other processors that do not implement instruction-level parallelism. Instead of executing one instruction at a time, a superscalar processor uses its redundant functional units in the execution of multiple instructions. These functional units are not separate CPU cores, but a single CPU's extension resources such as multipliers, bit shifters and arithmetic logic units (ALUs).
Differences between scalar and superscalar processors generally boil down to quantity and speed. A scalar processor, considered to be the simplest of all processors, works on one or two computer data items at a given time. The superscalar processor works on multiple instructions and several groups of multiple data items at a time. Scalar and superscalar processors both function the same way in terms of how they manipulate data, but their difference lies in how many manipulations and data items they can work on in a given time. Superscalar processors can handle multiple instructions and data items, while the scalar processor simply cannot, therefore making the former a more powerful processor than the latter.
Scalar and superscalar processors both have some similarities with vector processors. Like a scalar processor, a vector processor also executes a single instruction at a time, but instead of just manipulating one data item, its single instruction can access multiple data items. Similar with the superscalar processor, a vector processor has several redundant functional units that let it manipulate multiple data items, but it can only work on a single instruction at a time. In essence, a superscalar processor is a combination of a scalar processor and a vector processor.