Многопроцессорность
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2014 г. ) |
Многопроцессорность — это использование двух или более центральных процессоров (ЦП) в одной компьютерной системе . [1] [2] Этот термин также относится к способности системы поддерживать более одного процессора или способности распределять задачи между ними. Существует множество вариаций на эту базовую тему, и определение многопроцессорности может меняться в зависимости от контекста, в основном в зависимости от того, как определяются процессоры ( несколько ядер на одном кристалле , несколько кристаллов в одном корпусе , несколько пакетов в одном системном блоке и т. д.). ).
Согласно некоторым онлайн-словарим, мультипроцессор — это компьютерная система, имеющая два или более процессоров (несколько процессоров), каждый из которых совместно использует основную память и периферийные устройства для одновременной обработки программ. [3] [4] В учебнике 2009 года многопроцессорная система определяется аналогичным образом, но отмечается, что процессоры могут совместно использовать «некоторые или всю системную память и средства ввода-вывода»; он также дал тесно связанную систему как синоним термина. [5]
На операционной системы уровне многопроцессорность иногда используется для обозначения выполнения нескольких параллельных процессов в системе, при этом каждый процесс выполняется на отдельном процессоре или ядре, а не на одном процессе в любой момент времени. [6] [7] При использовании этого определения многопроцессорность иногда противопоставляется многозадачности , которая может использовать только один процессор, но переключать его во временных интервалах между задачами (т. е. система разделения времени ). Однако многопроцессорность означает истинное параллельное выполнение нескольких процессов с использованием более чем одного процессора. [7] Многопроцессорность не обязательно означает, что один процесс или задача одновременно использует более одного процессора; термин «параллельная обработка» . для обозначения этого сценария обычно используется [6] Другие авторы предпочитают называть методы операционной системы мультипрограммированием и оставляют термин «многопроцессорность» для аппаратного аспекта наличия более одного процессора. [2] [8] В оставшейся части статьи многопроцессорная обработка рассматривается только в аппаратном смысле.
В таксономии Флинна мультипроцессоры, определенные выше, являются машинами MIMD . [9] [10] Поскольку термин «мультипроцессор» обычно относится к тесно связанным системам, в которых все процессоры совместно используют память, мультипроцессоры — это не весь класс машин MIMD, который также включает в себя многокомпьютерные системы передачи сообщений . [9]
Ключевые темы [ править ]
Симметрия процессора [ править ]
В многопроцессорной системе все процессоры могут быть одинаковыми или некоторые из них могут быть зарезервированы для специальных целей. Сочетание особенностей проектирования аппаратного и программного обеспечения операционной системы определяет симметрию (или ее отсутствие) в данной системе. Например, соображения аппаратного или программного обеспечения могут потребовать, чтобы только один конкретный ЦП реагировал на все аппаратные прерывания, тогда как вся остальная работа в системе может быть равномерно распределена между ЦП; или выполнение кода режима ядра может быть ограничено только одним конкретным ЦП, тогда как код пользовательского режима может выполняться в любой комбинации процессоров. Многопроцессорные системы часто легче проектировать, если наложены такие ограничения, но они, как правило, менее эффективны, чем системы, в которых используются все ЦП.
Системы, которые одинаково обрабатывают все процессоры, называются системами симметричной многопроцессорной обработки (SMP). В системах, где все процессоры не равны, системные ресурсы могут быть разделены несколькими способами, включая асимметричную многопроцессорную обработку (ASMP), многопроцессорную обработку с неравномерным доступом к памяти (NUMA) и кластерную многопроцессорную обработку.
Многопроцессорная система «главный/подчиненный» [ править ]
В многопроцессорной системе главный/подчиненный главный ЦП управляет компьютером, а подчиненный ЦП выполняет назначенные задачи. Процессоры могут быть совершенно разными по скорости и архитектуре. Некоторые (или все) ЦП могут использовать общую шину, каждый может также иметь частную шину (для частных ресурсов) или они могут быть изолированы, за исключением общего канала связи. Аналогичным образом, ЦП могут совместно использовать общую ОЗУ и/или иметь частную ОЗУ, к которой другой процессор(ы) не имеет доступа. Роли ведущего и ведомого могут меняться от одного процессора к другому.
Двумя ранними примерами главного/подчиненного мультипроцессора для мэйнфреймов являются Bull Gamma 60 и Burroughs B5000 . [11]
Ранним примером многопроцессорной системы главных/подчиненных микропроцессоров является настольный компьютер Tandy/Radio Shack TRS-80 Model 16 , который вышел в феврале 1982 года и работал под управлением многопользовательской/многозадачной операционной системы Xenix , версии UNIX от Microsoft ( называется TRS-XENIX). Модель 16 имеет два микропроцессора: 8-битный процессор Zilog Z80, работающий на частоте 4 МГц, и 16-битный процессор Motorola 68000, работающий на частоте 6 МГц. Когда система загружается, Z-80 является главным, а процесс загрузки Xenix инициализирует подчиненный процессор 68000, а затем передает управление 68000, после чего ЦП меняются ролями, и Z-80 становится подчиненным процессором, ответственным за все операции ввода-вывода. O операции, включая диск, связь, принтер и сеть, а также клавиатуру и встроенный монитор, в то время как операционная система и приложения работают на процессоре 68000. Z-80 можно использовать и для решения других задач.
Более раннюю модель TRS-80 Model II , выпущенную в 1979 году, также можно было считать многопроцессорной системой, поскольку она имела как процессор Z-80, так и процессор Intel 8021. [12] микроконтроллер в клавиатуре. Модель 8021 сделала Модель II первой настольной компьютерной системой с отдельной съемной легкой клавиатурой, соединенной одним тонким гибким проводом, и, вероятно, первой клавиатурой, в которой использовался выделенный микроконтроллер. Оба атрибута позже, годы спустя, будут скопированы Apple и IBM. .
Потоки инструкций и данных [ править ]
При многопроцессорной обработке процессоры могут использоваться для выполнения одной последовательности инструкций в нескольких контекстах ( одна инструкция, несколько данных или SIMD, часто используется в векторной обработке ), нескольких последовательностей инструкций в одном контексте ( множественная инструкция, отдельные данные или MISD). , используется для резервирования в отказоустойчивых системах и иногда применяется для описания конвейерных процессоров или гиперпоточности ) или нескольких последовательностей инструкций в нескольких контекстах ( множественные инструкции, несколько данных или MIMD).
Соединение процессора [ править ]
Тесно связанная многопроцессорная система [ править ]
Тесно связанные многопроцессорные системы содержат несколько процессоров, подключенных на уровне шины. Эти процессоры могут иметь доступ к центральной общей памяти (SMP или UMA ) или могут участвовать в иерархии памяти как с локальной, так и с общей памятью (SM) ( NUMA ). IBM p690 Regatta является примером высококлассной SMP-системы. Процессоры Intel Xeon доминировали на рынке мультипроцессоров для бизнес-ПК и были единственным основным вариантом x86 до выпуска процессоров AMD в 2004 году. Оба диапазона процессоров Opteron имели собственный встроенный кэш, но обеспечивали доступ к общей памяти; процессоры Xeon — через общий канал, а процессоры Opteron — через независимые пути к системной оперативной памяти .
Чиповые мультипроцессоры, также известные как многоядерные вычисления, включают в себя более одного процессора, размещенного на одном кристалле, и могут рассматриваться как самая крайняя форма тесно связанной многопроцессорной обработки. Системы мейнфреймов с несколькими процессорами часто тесно связаны между собой.
Слабосвязанная многопроцессорная система [ править ]
Слабосвязанные многопроцессорные системы (часто называемые кластерами ) основаны на нескольких автономных обычных компьютерах с относительно небольшим количеством процессоров , соединенных между собой через высокоскоростную систему связи ( Gigabit Ethernet обычно используется ). Кластер Linux Beowulf является примером слабосвязанной системы.
Сильно связанные системы работают лучше и физически меньше, чем слабосвязанные системы, но исторически требовали больших первоначальных инвестиций и могут обесцениваться быстро ; Узлы в слабосвязанной системе обычно представляют собой недорогие стандартные компьютеры, которые после вывода из кластера можно использовать как независимые машины.
Энергопотребление также следует учитывать. Тесно связанные системы, как правило, гораздо более энергоэффективны, чем кластеры. Это связано с тем, что значительное снижение энергопотребления может быть достигнуто путем разработки компонентов для совместной работы с самого начала в сильно связанных системах, тогда как в слабосвязанных системах используются компоненты, которые не обязательно предназначены специально для использования в таких системах.
Слабосвязанные системы могут запускать разные операционные системы или версии ОС на разных системах.
См. также [ править ]
- Архитектура многопроцессорной системы
- Симметричная многопроцессорная обработка
- Асимметричная многопроцессорная обработка
- Многоядерный процессор
- BMDFM - двоичная модульная машина потока данных, среда выполнения SMP MIMD
- Программная блокировка
- OpenHMPP
Ссылки [ править ]
- ^ Радж Раджагопал (1999). Введение в кластерный сервер Microsoft Windows NT: программирование и администрирование . ЦРК Пресс. п. 4. ISBN 978-1-4200-7548-9 .
- ↑ Перейти обратно: Перейти обратно: а б Майк Эбберс; Джон Кеттнер; Уэйн О'Брайен; Билл Огден (2012). Введение в новый мэйнфрейм: основы z/OS . ИБМ. п. 96. ИСБН 978-0-7384-3534-3 .
- ^ «Определение словаря многопроцессорности — определено многопроцессором» . www.yourdictionary.com . Архивировано из оригинала 16 марта 2018 года . Проверено 16 марта 2018 г.
- ^ «мультипроцессор» . Архивировано из оригинала 16 марта 2018 года . Проверено 16 марта 2018 г. - через The Free Dictionary.
- ^ Ирв Ингландер (2009). Архитектура компьютерного оборудования и системного программного обеспечения. Подход к информационным технологиям (4-е изд.). Уайли. п. 265. ИСБН 978-0471715429 .
- ↑ Перейти обратно: Перейти обратно: а б Дебора Морли; Чарльз Паркер (13 февраля 2012 г.). Понимание компьютеров: сегодня и завтра, всестороннее . Cengage Обучение. п. 183. ИСБН 978-1-133-19024-0 .
- ↑ Перейти обратно: Перейти обратно: а б Шибу К.В. Введение во встраиваемые системы . Тата МакГроу-Хилл Образование. п. 402. ИСБН 978-0-07-014589-4 .
- ^ Ашок Арора (2006). Основы информатики . Публикации Лакшми. п. 149. ИСБН 978-81-7008-971-1 .
- ↑ Перейти обратно: Перейти обратно: а б Ран Гилади (2008). Сетевые процессоры: архитектура, программирование и реализация . Морган Кауфманн. п. 293. ИСБН 978-0-08-091959-1 .
- ^ Саджан Г. Шива (20 сентября 2005 г.). Передовые компьютерные архитектуры . ЦРК Пресс. п. 221. ИСБН 978-0-8493-3758-1 .
- ^ Эксплуатационные характеристики процессоров Burroughs B5000 (PDF) . Редакция А. Берроуза . 1963. 5000-21005А. Архивировано (PDF) из оригинала 30 мая 2023 года . Проверено 27 июня 2023 г.
- ^ Техническое справочное руководство TRS-80 Model II . РадиоШак. 1980. с. 135.