Микропроцессор, как правило, имеет несколько уровней КЭШа (processor cache memory, кеш). Первый (L1 & L1i (кэш для инструкций)), второй (L2) и третий (L3) ( на серверных решениях бывает и больше).

Чем ниже по рангу кэш, тем медленней скорость его работы.

Первый уровень обычно работает на частоте процессора и имеет самую широкую шину, но и самый маленький объём. Служит для адресации команд и инструкций, но не их временного хранения.

Второй и третий уровни КЭШ-а служат для записи значений вычислений и для служебной информации, используемой чаще всего в данный момент. Имеет в несколько раз больший объём, чем кэш первого уровня, но и в несколько раз меньшую шину, что отрицательно сказывается на пропускной способности.

Кэш бывает разделяемый (на каждое ядро) и общий (объединённый).

Бесспорно, общий кэш работает быстрее. Так как в разделённом кэше, если одному ядру требуется информация, которая до этого была просчитана другим ядром и находится в его КЭШе, то ей придётся проходить по гораздо более медленной оперативной памяти. Иногда быстрее посчитать снова, что процессор и делает. А в случае с общим кэшем, мог бы просто взять данные из общего КЭШа.

К примеру, процессор Intel C2D q9550 состоит из двух Intel C2D E8400.

Четыре ядра будут медленнее не только из-за использования общих ресурсов шины. Кэш L2 теперь не общий и ему приходится искать обходные пути, если к примеру ядру 1 понадобилась информация обработанная ядром 3. Это увеличивает время обработки информации, следовательно уменьшает быстродействие.