Многопроцессорность - Multiprocessing

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

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

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

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

Предыстория

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

Ключевые темы

Симметрия процессора

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

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

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

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

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

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

Инструкции и потоки данных

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

Связь процессора

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

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

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

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

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

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

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

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

Смотрите также

использованная литература

  1. ^ Радж Раджагопал (1999). Введение в кластерный сервер Microsoft Windows NT: программирование и администрирование. CRC Press. п. 4. ISBN  978-1-4200-7548-9.
  2. ^ а б Майк Эбберс; Джон Кеттнер; Уэйн О'Брайен; Билл Огден (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. ^ а б Дебора Морли; Чарльз Паркер (13 февраля 2012 г.). Понимание компьютеров: сегодня и завтра, всестороннее. Cengage Learning. п. 183. ISBN  1-133-19024-3.
  7. ^ а б Сибу К. В. Введение во встраиваемые системы. Тата Макгроу-Хилл Образование. п. 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. ^ Саджан Г. Шива (20 сентября 2005 г.). Продвинутая компьютерная архитектура. CRC Press. п. 221. ISBN  978-0-8493-3758-1.
  11. ^ Л. Ф. Менабреа (Октябрь 1842 г.). «Набросок аналитической машины, изобретенной Чарльзом Бэббиджем». Bibliothèque Universelle de Genève (82). Точно так же, когда должна быть выполнена длинная серия идентичных вычислений, таких как те, которые требуются для формирования числовых таблиц, машина может быть задействована так, чтобы выдавать несколько результатов одновременно, что значительно сократит всю сумму процессов.
  12. ^ TRS-80 Model II Техническое справочное руководство. Radio Shack. 1980. с. 135.