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

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

16
задан 21.08.2010, 15:39

4 ответа

Тенденция к нескольким ядрам является техническим подходом, который помогает разработчикам ЦП избежать проблемы потребляемой мощности, которая шла с когда-либо увеличением частотного масштабирования. Поскольку скорости ЦП повысились в диапазон на 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%-я дополнительная вычислительная мощность в сокете (потенциально, предполагая что закон Amdahl, являющийся добрым к нам на данный момент), не требуя никакой дополнительной электроэнергии. 6 100 рядов AMD ЦП видят подобные усиления в совокупной производительности по 2400\8400 ряд при сохранении потребления электроэнергии плоским.

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

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

25
ответ дан 07.12.2019, 10:47

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

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

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

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

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

5
ответ дан 07.12.2019, 10:47

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

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

4
ответ дан 07.12.2019, 10:47

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

0
ответ дан 07.12.2019, 10:47

Теги

Похожие вопросы