Почему многоядерные процессоры?

16

Почему чипы содержат все больше ядер? Почему бы не изготовить больший одноядерный процессор? Это проще в изготовлении? Разрешить ли программам многопоточность с использованием отдельных ядер?

rkrauter
источник
Причина в основном маркетинг. Большинство пользователей не получат пользу от многоядерности, но она раскручивается гораздо лучше. Это в основном имеет смысл для серверов или опытных пользователей.
harrymc
Конечно, есть реклама, но есть и выгода. Большинство пользователей в наши дни могут извлечь выгоду из многоядерности (то есть, как правило, двухъядерных), потому что большинство используют ОС, которая имеет несколько потоков выполнения. Но для тех, кто все еще использует Windows 95 или более раннюю версию, я бы согласился, что многоядерные процессоры - это, вероятно, пустая трата времени.
иррациональный Джон
at harrymc: «Причина в основном в маркетинге. Большинство пользователей не получат многоядерную выгоду, но она раскручивается гораздо лучше. Это в основном имеет смысл для серверов или опытных пользователей». --- Эти жадные продавцы змеиного масла ...
Даниэль

Ответы:

25

Тенденция к многоядерности - это инженерный подход, который помогает разработчикам ЦП избежать проблемы энергопотребления, которая сопровождается постоянно растущим масштабированием частоты. Когда скорость процессора выросла до диапазона 3-4 ГГц, количество электроэнергии, необходимое для ускорения, начало становиться недопустимым. Технические причины этого сложны, но такие факторы, как тепловые потери и ток утечки (мощность, которая просто проходит через схему, не делая ничего полезного), увеличиваются быстрее с ростом частот. Хотя, безусловно, возможно построить 6-ГГц процессор общего назначения x86, экономически неэффективно делать это. Вот почему начался переход к многоядерности, и поэтому мы увидим, что эта тенденция будет продолжаться, по крайней мере, до тех пор, пока проблемы распараллеливания не станут непреодолимыми.

В качестве практического примера E5640 Xeon (4 ядра при 2,66 ГГц) имеет огибающую мощность 95 Вт, в то время как для L5630 (4 ядра при 2,13 ГГц) требуется всего 40 Вт. Это на 137% больше электроэнергии и на 24% больше ресурсов процессора для процессоров, которые по большей части совместимы между собой. X5677 увеличивает скорость до 3,46 ГГц с некоторыми дополнительными функциями, но это только на 60% больше вычислительной мощности и на 225% больше электроэнергии.

Теперь сравните X5560 (2,8 ГГц, 4 ядра, 95 Вт) с более новым X5660 (2,8 ГГц, 6 ядер, 95 Вт) и получите на 50% больше вычислительной мощности в сокете (потенциально, если предположить, что закон Амдала нам очень нравится сейчас), не требуя дополнительной электроэнергии. Процессоры AMD серии 6100 демонстрируют аналогичное увеличение общей производительности по сравнению с сериями 2400 \ 8400 при сохранении постоянного энергопотребления.

Для однопоточных задач это проблема, но если ваши требования состоят в том, чтобы доставлять большие объемы совокупной мощности ЦП в кластер распределенной обработки или кластер виртуализации, то это разумный подход. Это означает, что для большинства серверных сред сегодня масштабирование числа ядер в каждом ЦП является гораздо лучшим подходом, чем попытка создать более быстрые \ лучшие одноядерные ЦП.

Эта тенденция будет продолжаться какое-то время, но есть проблемы, и непрерывное масштабирование числа ядер является нелегким делом (поддержание достаточно высокой пропускной способности памяти и управление кэшем становится намного сложнее по мере роста числа ядер). Это означает, что текущий довольно взрывной рост числа ядер на сокет должен замедлиться через пару поколений, и мы увидим другой подход.

Helvick
источник
3
Я не могу сказать вам, сколько раз я пытался объяснить это людям, которые все еще думают, что 3,6 ГГц процессор 5 лет назад быстрее, чем 2,8 ГГц процессор с новейшей технологией. Это бесит. Я ненавижу миф о мегагерцах.
2010 года
Нет ли также физического ограничения из-за скорости света для электрических сигналов?
Муш
1
@churnd - Но учтите, что они правы в каком-то смысле. Ибо мы не должны смешивать скорость с мощностью (3,6 ГГц, несомненно, быстрее, чем 2,8 ГГц; чем она не является, тем мощнее). Это может иметь существенное значение для программистов, которым нужна, например, более высокая скорость, но они еще не владеют технологиями многопоточного / параллельного программирования.
Ладья
3
@ldigas Эти программисты заботятся о скорости выполнения одноядерных команд, а не о тактовых частотах ядра. Современные процессоры имеют гораздо более высокие скорости выполнения одноядерных команд, даже если тактовая частота ниже.
Дэвид Шварц
5

Становилось слишком трудно сделать их полезными быстрее.

Проблема в том, что вам нужно работать над кучей инструкций одновременно, в текущем процессоре x86 одновременно работают 80 или более инструкций, и кажется, что это предел, так как он был достигнут P4, черт возьми Pentium Pro выполнил 40 в 1995 году. Типичные потоки инструкций непредсказуемы (вы должны угадать ветки, доступ к памяти и т. д.), чтобы выполнить сразу несколько инструкций (486 выполнило 5, Pentium выполнил 10, едва) ,

Таким образом, хотя вы можете сделать их шире (больше функциональных единиц для выполнения каждого фрагмента инструкции), длиннее (более глубокие конвейеры, чтобы скрыть задержку), похоже, это не очень полезно. И мы, кажется, также ударили в стену с тактовой частотой. И у нас до сих пор память обгоняет. Таким образом, разделение на множество процессоров кажется победой. Кроме того, они могут делиться кэшем.

Здесь есть кое-что еще, но все сводится к тому, что обычные программы не могут выполняться значительно быстрее на любом оборудовании, которое мы можем себе представить, как проектировать и создавать.

Теперь, если предсказуемость не является проблемой, например, многие научные проблемы и графики (они часто сводятся к умножению этого набора чисел на этот набор чисел), это не так, и, следовательно, популярность Intel IA64 ( Itanium и графические процессоры, которые продолжают работать быстрее, но они не помогут вам лучше запустить Word.

Рональд Поттол
источник
4

Вычислительная мощность и тактовая частота одного процессора достигли своего пика несколько лет назад, просто не так просто создать более мощные и / или более быстрые процессоры, чем нынешние; поэтому основные производители процессоров (Intel, AMD) сменили стратегию и стали многоядерными. Это, конечно, требует от разработчиков приложений гораздо больше работы, чтобы использовать все возможности многозадачности: программа, выполняемая в одной задаче, просто не получает никакой выгоды от многоядерного процессора (хотя система получает общий бонус, потому что он не блокируется, если один процесс использует один процессор до 100% использования).

О физической архитектуре (многоядерные процессоры вместо нескольких одноядерных) ... вы должны спросить Intel. Но я совершенно уверен, что это как-то связано с материнскими платами с одним сокетом процессора, которые гораздо проще проектировать и производить, чем с платами с несколькими.

Massimo
источник
2
Я ожидаю, что мы будем больше слышать о законе Амдала, чем о законе Мура.
Эван Андерсон
1

Чтобы увеличить тактовые частоты, кремниевые транзисторы на чипе должны иметь возможность переключаться быстрее. Эти более высокие скорости требуют более высоких входных напряжений и процессов производства полупроводников, которые приводят к большей утечке , которые увеличивают потребление энергии и тепловыделение. В конечном итоге вы достигнете точки, когда вы не сможете увеличить тактовые частоты, не требуя чрезмерного количества энергии или не используя экзотические решения для охлаждения.

Чтобы проиллюстрировать эту проблему, я сравню два современных процессора AMD. AMD FX-9590 способен достигать тактовой частоты до 5 ГГц из коробки, но работает при напряжениях ядра до 1,912 В, что является чрезвычайно высоким для 32-нм чипа, и рассеивает безумные 220 Вт тепла. FX-8350, который основан на том же кристалле, работает с максимальной частотой 4,2 ГГц, но работает с максимальной мощностью 1,4 В и рассеивает 125 Вт.

В результате, вместо того, чтобы пытаться увеличивать тактовую частоту, инженеры стремились к тому, чтобы микросхемы работали быстрее другими способами, включая разработку их для одновременной работы нескольких процессов - отсюда многоядерных процессоров.

bwDraco
источник
0

Закон Мура . По сути, процессоры не могут быть сделаны быстрее (частота достигла 3 ГГц 5 лет назад и никогда не выходили за рамки этого), поэтому они стали более мощными, получив больше ядер.

wazoox
источник
ИМХО, закон Мура - это скорее описание, чем предсказание ... конечно, оно выполнено, и оно все еще действует, но ничто не гарантирует, что завтра оно не сломается. Вы просто не можете пойти к инженеру и сказать ему: «Вы должны быть в состоянии сделать это, потому что закон Мура гласит, что это возможно», когда физика больше этого не допустит.
vlad-ardelean