Multi-core processor

multi-coredual-corequad-coremulticorecoresdual coreocta-coreprocessor corecorequad core
A multi-core processor is a single computing component with two or more independent processing units called cores, which read and execute program instructions.wikipedia
845 Related Articles

CPU cache

cachecache memorycaches
For example, cores may or may not share caches, and they may implement message passing or shared-memory inter-core communication methods.
A cache is a smaller, faster memory, closer to a processor core, which stores copies of the data from frequently used main memory locations.

Central processing unit

CPUprocessorprocessors
A multi-core processor is a single computing component with two or more independent processing units called cores, which read and execute program instructions. The terms multi-core and dual-core most commonly refer to some sort of central processing unit (CPU), but are sometimes also applied to digital signal processors (DSP) and system on a chip (SoC).
Some computers employ a multi-core processor, which is a single chip containing two or more CPUs called "cores"; in that context, one can speak of such single chips as "sockets".

Multiprocessing

multiprocessormulti-processormulti-processing
A multi-core processor implements multiprocessing in a single physical package.
There are many variations on this basic theme, and the definition of multiprocessing can vary with context, mostly as a function of how CPUs are defined (multiple cores on one die, multiple dies in one package, multiple packages in one system unit, etc.).

Heterogeneous computing

heterogeneousheterogeneous systemheterogeneous systems
Homogeneous multi-core systems include only identical cores; heterogeneous multi-core systems have cores that are not identical (e.g. big.LITTLE have heterogeneous cores that share the same instruction set, while AMD Accelerated Processing Units have cores that don't even share the same instruction set). In addition, multi-core chips mixed with simultaneous multithreading, memory-on-chip, and special-purpose "heterogeneous" (or asymmetric) cores promise further performance and efficiency gains, especially in processing multimedia, recognition and networking applications.
Heterogeneous computing refers to systems that use more than one kind of processor or cores.

ARM big.LITTLE

big.LITTLEARM's DynamIQGTS
Homogeneous multi-core systems include only identical cores; heterogeneous multi-core systems have cores that are not identical (e.g. big.LITTLE have heterogeneous cores that share the same instruction set, while AMD Accelerated Processing Units have cores that don't even share the same instruction set).
ARM big.LITTLE is a heterogeneous computing architecture developed by ARM Holdings, coupling relatively battery-saving and slower processor cores (LITTLE) with relatively more powerful and power-hungry ones (big). Typically, only one "side" or the other will be active at once, but all the cores have access to the same memory regions, so workloads can be swapped between Big and Little cores on the fly.

Multithreading (computer architecture)

multithreadingmultithreadedmulti-threading
Just as with single-processor systems, cores in multi-core systems may implement architectures such as VLIW, superscalar, vector, or multithreading.
In computer architecture, multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to execute multiple processes or threads concurrently, supported by the operating system.

Software

computer softwaresoftware technologyprogram
The improvement in performance gained by the use of a multi-core processor depends very much on the software algorithms used and their implementation.
, most personal computers, smartphone devices and servers have processors with multiple execution units or multiple processors performing computation together, and computing has become a much more concurrent activity than in the past.

Symmetric multiprocessing

SMPsymmetric multiprocessorD825" modular data processing system
Since computer manufacturers have long implemented symmetric multiprocessing (SMP) designs using discrete CPUs, the issues regarding implementing multi-core processor architecture and supporting it with software are well known.
In the case of multi-core processors, the SMP architecture applies to the cores, treating them as separate processors.

Clock rate

clock speedclock frequencyclock
Clock rates also increased by orders of magnitude in the decades of the late 20th century, from several megahertz in the 1980s to several gigahertz in the early 2000s.
The clock rate typically refers to the frequency at which a chip like a central processing unit (CPU), one core of a multi-core processor, is running and is used as an indicator of the processor's speed.

Superscalar processor

superscalarsuperscalar architecturesuperscalar execution
Just as with single-processor systems, cores in multi-core systems may implement architectures such as VLIW, superscalar, vector, or multithreading.
Each execution unit is not a separate processor (or a core if the processor is a multi-core processor), but an execution resource within a single CPU such as an arithmetic logic unit.

Embarrassingly parallel

embarrassingly parallel problemE'''mbarrassingly '''P'''arallelembarrassing parallelism
In the best case, so-called embarrassingly parallel problems may realize speedup factors near the number of cores, or even more if the problem is split up enough to fit within each core's cache(s), avoiding use of much slower main-system memory.
Password cracking is another embarrassingly parallel task that is easily distributed on central processing units, CPU cores, or clusters.

Soft microprocessor

soft processorembedded processorsmicroprocessor IP core schematics
Some systems use many soft microprocessor cores placed on a single FPGA.
In those multi-core systems, rarely used resources can be shared between all the cores in a cluster.

Integrated circuit

integrated circuitsmicrochipchip
Manufacturers typically integrate the cores onto a single integrated circuit die (known as a chip multiprocessor or CMP) or onto multiple dies in a single chip package.
Among the most advanced integrated circuits are the microprocessors or "cores", which control everything from personal computers and cellular phones to digital microwave ovens.

X86

x86 architectureIntel x8680x86
For example, Intel has produced a 48-core processor for research in cloud computing; each core has an x86 architecture.
AMD's 64-bit extension of x86 (which Intel eventually responded to with a compatible design) and the scalability of x86 chips such as the eight-core Intel Xeon and 12-core AMD Opteron is underlining x86 as an example of how continuous refinement of established industry standards can resist the competition from completely new architectures.

Field-programmable gate array

FPGAFPGAsfield programmable gate array
Some systems use many soft microprocessor cores placed on a single FPGA.
Examples of such hybrid technologies can be found in the Xilinx Zynq-7000 All Programmable SoC, which includes a 1.0 GHz dual-core ARM Cortex-A9 MPCore processor embedded within the FPGA's logic fabric or in the Altera Arria V FPGA, which includes an 800 MHz dual-core ARM Cortex-A9 MPCore.

Parallel computing

parallelparallel processingparallelism
The instructions are ordinary CPU instructions (such as add, move data, and branch) but the single processor can run multiple instructions on separate cores at the same time, increasing overall speed for programs amenable to parallel computing.
As power consumption (and consequently heat generation) by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors.

System on a chip

SoCsystem-on-a-chipsystem-on-chip
The terms multi-core and dual-core most commonly refer to some sort of central processing unit (CPU), but are sometimes also applied to digital signal processors (DSP) and system on a chip (SoC).
An SoC must have at least one processor core, but will typically have more.

Threading Building Blocks

TBBIntel TBBIntel Threading Building Blocks
Intel introduced a new abstraction for C++ parallelism called TBB.
Threading Building Blocks (TBB) is a C++ template library developed by Intel for parallel programming on multi-core processors.

Simultaneous multithreading

SMTconcurrent user threadsdual threaded
In addition, multi-core chips mixed with simultaneous multithreading, memory-on-chip, and special-purpose "heterogeneous" (or asymmetric) cores promise further performance and efficiency gains, especially in processing multimedia, recognition and networking applications.
Chip-level multiprocessing (CMP or multicore): integrates two or more processors into one chip, each executing threads independently.

Thread (computing)

threadthreadsmultithreading
On the other hand, on the server side, multi-core processors are ideal because they allow many users to connect to a site simultaneously and have independent threads of execution.
On a multiprocessor or multi-core system, multiple threads can execute in parallel, with every processor or core executing a separate thread simultaneously; on a processor or core with hardware threads, separate software threads can also be executed concurrently by separate hardware threads.

Concurrent computing

concurrentconcurrent programmingconcurrency
Managing concurrency acquires a central role in developing parallel applications.
The concept of concurrent computing is frequently confused with the related but distinct concept of parallel computing, although both can be described as "multiple processes executing during the same period of time". In parallel computing, execution occurs at the same physical instant: for example, on separate processors of a multi-processor machine, with the goal of speeding up computations—parallel computing is impossible on a (one-core) single processor, as only one computation can occur at any instant (during any single clock cycle).

Parallel programming model

parallelprogramming modelconcurrency
Some existing parallel programming models such as Cilk Plus, OpenMP, OpenHMPP, FastFlow, Skandium, MPI, and Erlang can be used on multi-core platforms.
Conventional multi-core processors directly support shared memory, which many parallel programming languages and libraries, such as Cilk, OpenMP and Threading Building Blocks, are designed to exploit.

Instruction set architecture

instruction setinstructionsinstruction
A multi-core processor is a single computing component with two or more independent processing units called cores, which read and execute program instructions. The instructions are ordinary CPU instructions (such as add, move data, and branch) but the single processor can run multiple instructions on separate cores at the same time, increasing overall speed for programs amenable to parallel computing.
These types of cores often take little silicon to implement, so they can be easily realized in an FPGA or in a multi-core form.

Task parallelism

thread-level parallelismtask-paralleltasks
Many applications are better suited to thread-level parallelism (TLP) methods, and multiple independent CPUs are commonly used to increase a system's overall TLP.
The exploitation of thread-level parallelism has also begun to make inroads into the desktop market with the advent of multi-core microprocessors.

Computer

computerscomputer systemdigital computer
Multi-core processors are widely used across many application domains, including general-purpose, embedded, network, digital signal processing (DSP), and graphics (GPU).
Multiprocessor and multi-core (multiple CPUs on a single integrated circuit) personal and laptop computers are now widely available, and are being increasingly used in lower-end markets as a result.