В чем разница между MultiCore и MultiProcessor? [Дубликат]

Ответы:

28

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

Многопроцессорная система содержит более одного такого процессора, что позволяет им работать параллельно. Это называется SMP или Symmetric MultiProcessing.

Мульти Ядро процессора имеет несколько вычислительных ядра на одном процессоре. Теперь, это может означать разные вещи в зависимости от конкретной архитектуры, но в основном это означает, что определенное подмножество компонентов ЦП дублируется, так что несколько «ядер» могут работать параллельно в отдельных операциях. Это называется CMP, многопроцессорная обработка на уровне чипа.

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

Существует еще одно подразделение, называемое SMT , одновременная многопоточность. Именно здесь дублируется еще меньшее подмножество компонентов процессора или ядра. Например, ядро ​​SMT может иметь дублированные ресурсы планирования потоков, так что ядро ​​выглядит как две отдельные «процессоры» для операционной системы, даже если оно имеет только один набор исполнительных блоков. Одна из распространенных реализаций этого - Intel Hyperthreading.

Таким образом, вы могли бы иметь многопроцессорную, многоядерную, многопоточную систему. Что-то вроде двухъядерных, многопоточных процессоров даст вам 2x4x2 = 16 логических процессоров с точки зрения операционной системы.

Разные рабочие нагрузки выигрывают от разных настроек. Однопоточная рабочая нагрузка, выполняемая в основном на одноцелевой машине, выигрывает от очень быстрой одноядерной системы / процессора. Рабочие нагрузки, которые получают преимущества от систем с высокой степенью параллелизации, таких как установки SMP / CMP / SMT, включают в себя те, которые имеют множество мелких деталей, с которыми можно работать одновременно, или системы, которые используются для множества вещей одновременно, например, настольный компьютер, используемый для просматривайте веб-страницы, играйте во флэш-игры и смотрите видео одновременно. В целом, в наши дни аппаратное обеспечение все больше склоняется к высокопараллельным архитектурам, так как большинство необработанных скоростей одного ЦП / ядра «достаточно быстрые» для обычных рабочих нагрузок большинства моделей.

Феб
источник
Как насчет тепла, какая установка? Если вы объединяете много процессоров в одном корпусе процессора, тепло очень концентрируется только на одном «месте» и требует лучшего охлаждения, я прав? Если это правда, почему производители остаются с таким дизайном, только для затрат? Или есть другие проблемы, которые нужно преодолеть при использовании разделенных ядер?
Codebeat
18

Все дали достаточно объяснений. Тем не менее, если вы не понимаете. Посмотри на это:

альтернативный текст

когти
источник
Два запроса на изображении, которое вы поставили ей 1) Что такое APIC 2) Диаграмма в последнем ряду ячеек, для многоядерного и многопроцессорного (2 диаграммы в первом и третьем столбцах последнего ряда сетки), кажется, то же самое, за исключением пунктирных / сплошных линий / квадратных границ вокруг ALU. Что они имеют в виду?
goldenmean
2
@goldenmean: 1. APIC - это en.wikipedia.org/wiki/… , это то, что получает прерывания от других устройств и действий. Я мог бы объяснить больше , если у вас есть знания о внутренней работе OperatingSystems 2) Ну, твердые средства линии , что они представляют собой две разные фишки / Штампы , как показано в первом ряду и пунктирные линии показывает , что они оба находятся на одном чипе или умереть
когтями
Это должно быть сформулировано как «Посмотрите на эту картину, но если вы не понимаете, все дали достаточно объяснений»
Теоман Шипахи,
2

многоядерный процессор содержит два или более ядер в одном физическом пакете.

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

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

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

многопроцессорная многоядерная система была бы смесью плюсов и минусов каждого.

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

Xantec
источник
2

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

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

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

Плюсы и минусы могут быть сложными, так как нужно учитывать множество переменных, но есть некоторые заметные различия:

  • охлаждение: двухъядерный процессор часто будет производить меньше отработанного тепла, чем два отдельных одноядерных блока одной и той же спецификации, и для него потребуется только один радиатор и вентилятор, который обычно будет дешевле (хотя все тепло находится в одном месте, а не распространяется по всей поверхности). два, которые могут потребовать более высокотехнологичных решений для охлаждения)
  • скорость из-за локальности кэша: на одном и том же чипе есть возможность повысить эффективность когерентности / совместного использования кэша L2 (или L3), так как ядрам не нужно координировать работу на большем расстоянии по внешней шине памяти
  • Различия в стоимости из-за простоты: многоядерное решение не требует нескольких разъемов на материнской плате и т. д.
Дэвид Спиллетт
источник
1

В общих чертах, многоядерный процессор - это один процессор с несколькими ядрами (например, четырехъядерный процессор имеет 4 ядра), где многопроцессорная система содержит более одного процессора на материнской плате (который, в свою очередь, также может быть многоядерным).

Когда дело доходит до плюсов и минусов каждого, все становится немного сложнее.

Изменить: исправление орфографии.

WoodE
источник
1

Multicore - это несколько ядер всего за один кристалл . Мультипроцессоры - это несколько матриц.

Мехпер С. Палавузлар
источник
1

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

Dacota
источник