Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Многопроцессорность - это использование двух или более центральных процессоров (ЦП) в одной компьютерной системе . [1] [2] Термин также относится к способности системы поддерживать более одного процессора или способности распределять задачи между ними. Есть много вариантов этой базовой темы, и определение многопроцессорности может варьироваться в зависимости от контекста, в основном в зависимости от того, как определены процессоры ( несколько ядер на одном кристалле , несколько кристаллов в одном пакете , несколько пакетов в одном системном блоке и т. Д. ).

Согласно некоторым онлайн-словарям, мультипроцессор - это компьютерная система, имеющая два или более процессора (несколько процессоров), каждый из которых совместно использует основную память и периферийные устройства для одновременной обработки программ. [3] [4] В учебнике 2009 г. многопроцессорная система определяется аналогично, но при этом отмечается, что процессоры могут совместно использовать «часть или всю системную память и средства ввода-вывода»; он также дал термин " тесно связанная система" как синоним. [5]

В операционной системе уровня, многопроцессорная иногда используется для обозначения выполнения нескольких параллельных процессов в системе, при этом каждый процесс , работающий на отдельном процессоре или ядра, в отличие от одного процесса в любой момент времени . [6] [7] При использовании с этим определением многопроцессорность иногда противопоставляется многозадачности , которая может использовать только один процессор, но переключать его во временных интервалах между задачами (например, система разделения времени ). Однако многопроцессорность означает истинное параллельное выполнение нескольких процессов с использованием более чем одного процессора. [7]Многопроцессорность не обязательно означает, что один процесс или задача используют более одного процессора одновременно; термин параллельная обработка обычно используется для обозначения этого сценария. [6] Другие авторы предпочитают называть методы операционной системы мультипрограммированием и резервируют термин « многопроцессорность» для аппаратного аспекта наличия более чем одного процессора. [2] [8] В оставшейся части этой статьи многопроцессорность обсуждается только в аппаратном смысле.

В таксономии Флинна мультипроцессоры, как определено выше, являются машинами MIMD . [9] [10] Поскольку термин «мультипроцессор» обычно относится к сильно связанным системам, в которых все процессоры совместно используют память, мультипроцессоры не являются полным классом машин MIMD, которые также содержат мультикомпьютерные системы с передачей сообщений . [9]

Предистория [ править ]

Возможно, первое выражение идеи многопроцессорного было написано Менабреы в 1842 году, о Чарльз Бэббидж «s аналитической машины (как переведено Ад Лавлейс ):«машина может быть пущена в ход, чтобы дать несколько результатов , в том же время, что значительно сократит весь объем процессов ». [11]

Ключевые темы [ править ]

Симметрия процессора [ править ]

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

Системы, которые обрабатывают все ЦП одинаково, называются системами с симметричной многопроцессорной обработкой (SMP). В системах, где все процессоры не равны, системные ресурсы могут быть разделены несколькими способами, включая асимметричную многопроцессорность (ASMP), многопроцессорность с неоднородным доступом к памяти (NUMA) и кластерную многопроцессорность.

Многопроцессорная система ведущий / ведомый [ править ]

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

Ранним примером многопроцессорной системы ведущий / ведомый является настольный компьютер Tandy / Radio Shack TRS-80 Model 16, выпущенный в феврале 1982 года и работающий под управлением многопользовательской / многозадачной операционной системы Xenix , версии Microsoft UNIX (называемой TRS). -XENIX). Модель 16 имеет 3 микропроцессора, 8-битный ЦП Zilog Z80 с тактовой частотой 4 МГц, 16-битный ЦП Motorola 68000 с тактовой частотой 6 МГц и Intel 8021.в клавиатуре. Когда система была загружена, Z-80 был ведущим, а процесс загрузки Xenix инициализировал ведомое устройство 68000, а затем передало управление 68000, после чего процессоры сменили роли, и Z-80 стал ведомым процессором, который отвечал за все Операции ввода-вывода, включая диск, связь, принтер и сеть, а также клавиатуру и встроенный монитор, в то время как операционная система и приложения выполнялись на процессоре 68000. Z-80 можно было использовать для решения других задач.

Более ранняя модель TRS-80 Model II , выпущенная в 1979 году, также могла считаться многопроцессорной системой, поскольку она имела как процессор Z-80, так и микропроцессор Intel 8021 [12] в клавиатуре. Модель 8021 сделала Model II первой настольной компьютерной системой с отдельной съемной легкой клавиатурой, соединенной одним тонким гибким проводом, и, вероятно, первой клавиатурой, в которой использовался выделенный микропроцессор, оба атрибута позже были скопированы годами позже Apple и IBM. .

Инструкции и потоки данных [ править ]

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

Связь процессора [ править ]

Многопроцессорная система с сильной связью [ править ]

Сильно связанные многопроцессорные системы содержат несколько процессоров, подключенных на уровне шины. Эти процессоры могут иметь доступ к центральной общей памяти (SMP или UMA ) или могут участвовать в иерархии памяти как с локальной, так и с общей памятью (SM) ( NUMA ). IBM p690 Регата является примером высокого конца системы SMP. Intel Xeon процессоры доминируют на рынке многопроцессорной для бизнес - ПК и были единственным основным вариантом x86 до выхода AMD «s Opteronлинейка процессоров в 2004 году. Обе серии процессоров имели собственный встроенный кэш, но обеспечивали доступ к общей памяти; процессоры Xeon через общий канал, а процессоры Opteron через независимые каналы к системной RAM .

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

Слабосвязанная многопроцессорная система [ править ]

Слабо связанные многопроцессорные системы (часто называемые кластерами ) основаны на нескольких автономных однопроцессорных или двухпроцессорных компьютерах, соединенных между собой через высокоскоростную систему связи ( обычно используется Gigabit Ethernet ). Кластер Linux Beowulf является примером слабосвязанной системы.

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

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

Слабосвязанные системы могут запускать разные операционные системы или версии ОС в разных системах.

См. Также [ править ]

  • Архитектура многопроцессорной системы
  • Симметричная многопроцессорная обработка
  • Асимметричная многопроцессорная обработка
  • Многоядерный процессор
  • BMDFM - двоичная модульная машина потока данных, среда выполнения SMP MIMD
  • Блокировка программного обеспечения
  • OpenHMPP

Ссылки [ править ]

  1. Радж Раджагопал (1999). Введение в кластерный сервер Microsoft Windows NT: программирование и администрирование . CRC Press. п. 4. ISBN 978-1-4200-7548-9.
  2. ^ a b Майк Эбберс; Джон Кеттнер; Уэйн О'Брайен; Билл Огден (2012). Введение в новый мэйнфрейм: основы z / OS . IBM. п. 96. ISBN 978-0-7384-3534-3.
  3. ^ «Определение многопроцессорного словаря - многопроцессорное определение» . www.yourdictionary.com . Проверено 16 марта 2018 .
  4. ^ "мультипроцессор" . Проверено 16 марта 2018 г. - через The Free Dictionary.
  5. ^ Ирв Энгландер (2009). Архитектура компьютерного оборудования и системного программного обеспечения. Подход информационных технологий (4-е изд.). Вайли. п. 265. ISBN 978-0471715429.
  6. ^ a b Дебора Морли; Чарльз Паркер (13 февраля 2012 г.). Понимание компьютеров: сегодня и завтра, всесторонний . Cengage Learning. п. 183. ISBN. 1-133-19024-3.
  7. ^ a b Шибу К.В. Введение во встраиваемые системы . Тата Макгроу-Хилл Образование. п. 402. ISBN. 978-0-07-014589-4.
  8. Ашок Арора (2006). Основы компьютерных наук . Публикации Лакшми. п. 149. ISBN. 978-81-7008-971-1.
  9. ^ а б Ран Гилади (2008). Сетевые процессоры: архитектура, программирование и реализация . Морган Кауфманн. п. 293. ISBN 978-0-08-091959-1.
  10. ^ Sajjan Г. Шива (20 сентября 2005). Продвинутая компьютерная архитектура . CRC Press. п. 221. ISBN. 978-0-8493-3758-1.
  11. LF Menabrea (октябрь 1842 г.). «Набросок аналитической машины, изобретенной Чарльзом Бэббиджем» . Bibliothèque Universelle de Genève (82). Точно так же, когда должна быть выполнена длинная серия идентичных вычислений, таких как те, которые требуются для формирования числовых таблиц, машина может быть задействована так, чтобы выдавать несколько результатов одновременно, что значительно сократит всю сумму процессов.
  12. ^ TRS-80 Model II Техническое справочное руководство . Radio Shack. 1980. с. 135.