A multi-core processor is an integrated circuit that uses two or more individual processors, or cores, to handle data. The cores can be attached to one integrated circuit or incorporated into separate dies in a chip package. Each core has its own cache and each has a separate capacity to process data.
The advantage of a multi-core processor is increased speed. A traditional, single-core processor stores some data in its cache, and when data outside the cache is required, it has to be retrieved from other places like random access memory (RAM). When this happens, the processor speed slows down to the maximum speed of the RAM or other storage device. This speed is usually much slower than the maximum processor speed.
Multi-core processors are faster because each core can handle its own stream of data. While multi-core processors still selectively cache data and retrieve non-cached data from other storage locations, the additional core or cores can continue executing commands and receiving information at normal processor speed while another processor is retrieving needed information from slow storage devices. This way, the entire system doesn’t have to slow down while data is retrieved.
A multi-core processor is particularly valuable for multitasking, where more than one program each serves its own set of data for processing. The separate data streams can be handled by different cores, increasing overall processing speed. For a single software program to take advantage of multi-core technology, it must have simultaneous multi-threading technology (SMT) that allows it to send parallel sets of instructions for the multiple cores to use.
The first commercially available multi-core processor was the dual-core processor. There are also multi-core processors with four, six and eight cores. Many motherboards, however, are incapable of handling this many cores. Multi-core systems can be homogenous, using all identical cores, or heterogeneous, using non-identical cores.
Although multi-core processors are intended to increase overall speed and performance, not all programs take advantage of multi-core processing technology. Many programs and even some operating systems lack the SMT needed to use more than one processing core. Operating systems that use multi-core processing are not always designed to maximize multi-core processing potential, so the full processing capability often goes unrealized.
A multi-core processor tends to produce more heat than a single-core processor, causing heat management challenges. The amount of heat produced by a processor tends to rise exponentially with each additional core. High temperatures can cause processors to overheat, creating operational problems and safety risks. Processor manufacturers have had to invest considerable time and technology into creating solutions to the thermal challenges presented by multi-core processors.