A device that integrates the functions of the central processing unit (CPU) of a computer onto one semiconductor chip or integrated circuit (IC). In essence, the microprocessor contains the core elements of a computer system, its computation and control engine. Only a power supply, memory, peripheral interface ICs, and peripherals (typically input/output and storage devices) need be added to build a complete computer system. See also Computer peripheral devices.
A microprocessor consists of multiple internal function units. A basic design has an arithmetic logic unit (ALU), a control unit, a memory interface, an interrupt or exception controller, and an internal cache. More sophisticated microprocessors might also contain extra units that assist in floating-point match calculations, program branching, or vector processing (see illustration).
A microprocessor consists of multiple independent function units. The memory interface fetches instructions from, and writes data to, external memory. The control unit issues one or more instructions to other function units. These units process the instructions in parallel to boost performance.
The ALU performs all basic computational operations: arithmetic, logical, and comparisons.
The control unit orchestrates the operation of the other units. It fetches instructions from the on-chip cache, decodes them, and then executes them. Each instruction has the control unit direct the other function units through a sequence of steps that carry out the instruction’s intent. The execution path taken by the control unit can depend upon status bits produced by the arithmetic logic unit or the floating-point unit (FPU) after the instruction sequence completes. This capability implements conditional execution control flow, which is a critical element for general-purpose computation. See also Bit.
The memory interface enables the microprocessor to maintain two-way communication with off-chip semiconductor memory, which stores programs and data. This interface typically supports memory reads and writes in blocks of words (the number of bits that the processor operates on at one time). The block size facilitates burst data transfers to and from the chip’s internal cache. See also Semiconductor memories.
The interrupt or exception controller enables the microprocessor to respond to requests from the external environment or to error conditions by allowing interruptions of the ongoing operation. An interrupt might be an external peripheral requesting service, while an exception typically consists of a floating-point math error or an unrecognized instruction. The interrupt controller can prioritize and selectively handle these interrupts.
The internal cache is an on-chip memory storage area that holds recently used data values or instruction sequences that are likely to be used again in the near future. Since this information is already on-chip, it can be accessed rapidly, thereby accelerating the computation rate. Items not in the cache can take several or more extra operations to access, which significantly degrades the computation rate. Software writers often organize a program’s code and data structures so that the most frequently used elements often occupy the cache, thus maintaining a high level of computational throughput. See also Computer storage technology; Computer systems architecture.
The design of instruction sets (the commands that produce basic work when executed by the microprocessor) often influences the design of the microprocessor itself. Instruction sets—and as a consequence, the microprocessor architecture—are of two types: reduced instruction set computers (RISC) and complex instruction set computers (CISC). Because of the limits of early computer technology, most computers were by necessity RISC machines. Since most of the software was written in assembly language (that is, a programming language that represented the program’s intent in actual machine instructions), there was a drive to build instruction sets of greater sophistication and complexity. These new CISC instruction sets made assembly language programming easier, but they also made it difficult to build high-speed computer hardware. First, CISC instructions were harder to decode. In addition, since CISC instructions involved long and complex operation sequences, they incurred a major cost by requiring more complicated logic to implement. Second, such instructions were also difficult to interrupt or abort if an exception occurred. Finally, such instructions usually carried many data dependencies that made it more difficult to support advanced architectural techniques. By returning to a RISC design, much faster computers can be built. In fact, an enhancement in performance by a factor of 2 to 3 has been attributed to this simple organizational change. To achieve these efficiencies, most of the RISC microprocessor’s function units must be kept as busy as possible. This requires optimizing compilers that can translate a program’s high-level source code and then reorder the resulting low-level instructions in such a way as to ensure the high throughput. See also Computer programming; Programming languages.
Microprocessors are found in virtually every consumer product that requires electric power, such as microwave ovens, automobiles, video recorders, cellular telephones, digital cameras, and hand-held computers. High-performance microprocessors implement the servers that store and distribute Web content, such as streaming audio and video, desktop computers, and the high-speed network switches that constitute the Web’s infrastructure. More modest-powered microprocessors are at the heart of notebook computers and electronic games. Low-power microprocessors provide the control and flow logic of hand-held devices, digital cameras, cellular and cordless phones, pagers, and the diagnostic and pollution control of automobile engines