Что такое многоядерный процессор?
Чаще всего под многоядерными процессорами понимают центральные процессоры, в которых несколько вычислительных ядер интегрированы в одну микросхему (то есть они расположены на одном кристалле кремния).
Обычно тактовая частота в многоядерных процессорах намеренно занижается. Это делают для того, чтобы сократить энергопотребление, сохранив при этом требуемую производительность процессора. Каждое ядро при этом представляет собой полноценный микропроцессор, для которого характерны черты всех современных процессоров - он использует многоуровневый кэш, поддерживает внеочередное исполнение кода и векторные команды.
Hyper-threading
Ядра в многоядерных процессорах могут поддерживать технологию SMT, позволяющую исполнять несколько потоков вычислений и создавать на основе каждого ядра несколько логических процессоров. На процессорах, которые выпускает компания Intel, такая технология называется «Hyper-threading». Благодаря ей можно удваивать число логических процессоров по сравнению с числом физических чипов. В микропроцессорах, поддерживающих эту технологию, каждый физический процессор способен сохранять состояние двух потоков одновременно. Для операционной системы это будет выглядеть, как наличие двух логических процессоров. Если в работе одного из них возникает пауза (например, он ждет получения данных из памяти), другой логический процессор приступает к выполнению собственного потока.
Виды многоядерных процессоров
Многоядерные процессоры подразделяются на несколько видов. Они могут поддерживать использование общей кэш-памяти, а могут не поддерживать. Связь между ядрами реализуется на принципах использования разделяемой шины, сети на каналах точка-точка, сети с коммутатором или использования общего кэша.
Принцип работы
Большинство современных многоядерных процессоров работает по следующей схеме. Если запущенное приложение поддерживает многопоточность, оно может заставлять процессор выполнять несколько заданий одновременно. Например, если в компьютере используется 4-ядерный процессор с тактовой частотой 1.8 ГГц, программа может «загрузить» работой сразу все четыре ядра, при этом суммарная частота процессора будет составлять 7.2 ГГц. Если запущено сразу несколько программ, каждая из них может использовать часть ядер процессора, что тоже приводит к росту производительности компьютера.
Многие операционные системы поддерживают многопоточность, поэтому использование многоядерных процессоров позволяет ускорить работу компьютера даже в случае приложений, которые многопоточность не поддерживают. Если рассматривать работу только одного приложения, то использование многоядерных процессоров будет оправданным лишь в том случае, если это приложение оптимизировано под многопоточность. В противном случае, скорость работы многоядерного процессора не будет отличаться от скорости работы обычного процессора, а иногда он будет работать даже медленнее.