Multi-core CPUs

Introduction

Since many years, CPUs are subject to a performance race, so manufacturers dedicate to a fight without mercy to get CPUs more and more performant. They often use different approaches, even sometimes divergent approaches. The only constant data is : for a given architecture, the main way to improve performances is to increase frequency. Unfortunately, this method has several disadvantages :
First, it's more and more difficult to apply since the increase of frequency is not proportional to the evolution of manufacturing processes. Secondly, this evolution becomes difficult and very expensive. And thirdly, the current consumption (so the thermal dissipation too) increases much more quickly than the frequency for a given fineness of engraving.

Faced with these problems, multi-core is definitely the best solution.

Definition

A multi-core CPU, or CMP (chip-level multiprocessor) is a single physical processor which contains two or more independent cores into the die. A dual-core processor contains two cores, a quad-core processor contains four cores, and so on. In a multi-core device, cores may share cache memory or each core may have its own memory.
A multi-core microprocessor implements multiprocessing in a single physical processor, thus its goal is to enable a system to run more tasks simultaneously and thereby achieve greater overall system performance.

Advantages

Disadvantages

Example : Montecito (Intel)

Montecito is the code-name of a dual-core of Intel, it's an implementation of the Intel Itanium architecture on a dual-core processor. It was launched on july 18, 2006.

There are two threads per core, but they can't run simultaneously. The core just switches thread in case of a high latency.
Each core gets separate 16 KB instruction L1 and 16 KB data L1 cache, separate 1 MB Instruction L2 and 256 KB data L2 cache, and 12 MB L3 cache.
The die has 1.72 billion transistors, its size is 27.72 mm x 21.5 mm which is 596 mm˛.