Computing. Having only one processor or central processing unit (CPU).

Computers with only one CPU are described as being uniprocessor while those with multiple processors are described as being multiprocessor. While various other chips inside a computer are in fact CPUs, this refers to the main processor which does the bulk of the computing.

A system with one CPU (except those based on a VLIW architecture) can generally only execute (or, it would be more fair to say, retire) one instruction at a time*. Modern computers give the appearance of doing more than one thing at a time by a procedure called multitasking, in which multiple tasks or processes are given small allotments of the computer's time in sequence. By contrast, computers with multiple processors can literally do more than one thing at the same time. This is useful because while they (again, generally) can only retire one instruction per cycle, many instructions (except on RISC processors) take more than one cycle to complete. A superscalar processor can therefore be working on one (or more) instruction(s) while retiring another.

Perhaps even more importantly, however, a machine with multiple processor has multiple contexts. Operating systems generally must associate a certain set of memory ranges and offsets and a register of flags often known as a condition or state register with each program, and when a certain program has access to the CPU, those values must be changed appropriately in memory for each program. This act is called context switching, and it takes time. The more processors you have, the less you have to do this. Most modern processors have hardware specifically to minimize the overhead of context switching.

Most modern processors are superscalar, meaning that they can in fact execute multiple instructions during the same clock cycle due to the existence of multiple functional units (the portions of the CPU that actually does the computation), but they are still limited to giving the results of a single instruction at once, also commonly known as retiring an instruction.


* There are exceptions for processors with coprocessors, whether internal or external, especially vector processors, which can execute an operation against multiple packed operands. (A coprocessor carries out tasks asynchronously.) Some processors can retire certain operations in parallel, but not others.

Log in or register to write something here or to contact authors.