Асимметричное мультипроцессирование

AMP или ASMP (от англ.: Asymmetric multiprocessing, рус.: Асимметричная многопроцессорная обработка или Асимметричное мультипроцессирование) — тип многопроцессорной архитектуры компьютерной системы, который использовался до того, как была создана технология симметричного мультипроцессирования (SMP). Также использовался как более дешевая альтернатива в системах, которые поддерживали SMP.

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

История править

В 1960-е—1970-е годы увеличить вычислительную мощность компьютера можно было, просто добавив в него ещё один процессор. Добавить ещё один такой же процессор было дешевле, чем покупать новый компьютер, работающий вдвое быстрее. Также простое добавление ещё одного процессора было выгоднее, чем покупка второго целого компьютера, для которого требовался отдельный машинный зал, дополнительное периферийное оборудование и персонал для обслуживания.

Первыми системами, к которым можно было добавлять второй процессор, были B5000 от компании Burroughs, DECsystem-1055, и IBM System/360 модель 65MP. Кроме того в некоторых университетах тоже были построены экспериментальные компьютеры со сдвоенными процессорами[1].

Однако проблема с добавлением процессора заключалась в том, что операционные системы того времени были разработаны только для однопроцессорных компьютеров, а внесение изменений для надежной поддержки двух процессоров требовало много времени. Чтобы обойти эту трудность, в операционные системы с поддержкой одного процессора вносили незначительные изменения лишь для минимальной поддержки второго процессора. «Минимальная поддержка» означала, что операционная система запускалась на «загрузочном процессоре» (boot processor), а на втором процессоре исполнялись только пользовательские программы. Например, в Burroughs B5000 второй процессор аппаратно не имел возможности исполнять «управляющий код»[2].

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

Burroughs B5000 править

В Burroughs B5000[2] можно было при желании добавить «Процессор B». Этот второй процессор, в отличие от «Процессора А», не имел доступа к периферийным устройствам, но у обоих процессоров был доступ к общей памяти. Операционная система работала только на Процессоре А, а пользовательская задача — на Процессоре B. Когда пользовательской задаче требовался доступ к функциям операционной системе, Процессор B выдавал системный вызов в код ОС на Процессоре A, останавливался и ожидал результат обработки кодом ОС системного вызова, и только получив результат обработки системного вызовы, продолжал работу.[3].

CDC 6500 и 6700 править

Компания Control Data Corporation предлагала два варианта в «серии CDC 6000», где имелись два процессора: CDC 6500[4] двухпроцессорный CDC 6400 и CDC 6700, который представлял собой суперкомпьютер CDC 6600, с добавленным к нему процессором CDC 6400.

Эти системы были построены несколько иначе, чем другие многопроцессорные системы, упомянутые в данной статье. Операционная система здесь работала только на периферийных процессорах, а на центральных процессорах работала пользовательская задача. Так что данные системы нельзя де-факто не есть ни AMP-системами, ни SMP-системами.

DECsystem-1055 править

Компания Digital Equipment Corporation (DEC) предлагала покупателям версию своего компьютера DECsystem-1050 с двумя процессорами KA10[5][6]. Потом такой же вариант присутствовал и в линейке компьютеров PDP-10.

PDP-11/74 править

Компания Digital Equipment Corporation разработала, но так и не довела до рынка мультипроцессорную версию компьютера PDP-11 — the PDP-11/74[7], на которой работала многопроцессорная версия операционной системы RSX-11M[8]. В этой системе любой из процессоров мог выполнять код операционной системы и осуществлять ввод-вывод, но не все периферийные устройства были доступны каждому из процессоров, — большая часть периферии присоединялась лишь к одному процессору, так что процессору без периферии для работы с каким-либо устройством процессора-соседа требовалось отправлять специальный запрос[8].

VAX-11/782 править

Первый многопроцессорный компьютер компании DEC из линейки VAX — VAX-11/782 — был асимметричным. (Только первый процессор имел доступ к устройствам ввода-вывода[9].)

Univac 1108-II править

В компьютере Univac 1108-II и его последующих вариантах можно было установить до трех процессоров[10][11]. На этих компьютерах работала операционная система UNIVAC EXEC 8, но по имеющейся документации так и не понятно, в какой степени операционная система поддерживала асимметричную или симметричную многопроцессорность.

IBM System/370 модель 168 править

Добавление второго процессора в модели 168 линейки IBM System/370 предлагалось в двух вариантах[12]. Первый предлагался в виде специального модуля IBM 3062 Attached Processing Unit, в котором процессор не имел доступ к каналам ввода-вывода и значит работал по схожей схеме, как «Процессор B» в компьютере B5000 от Burroughs, или как второй процессор в системе DEC VAX-11/782. Во втором варианте предполагалось подключение полноценного процессора, что было схоже с моделью 65MP из предыдущей линейки System/360.

Compaq SystemPro править

В ноябре 1989 года компания Compaq объявила о выпуске первого многопроцессорного сервера Compaq SystemPro на базе архитектуры x86 с двумя процессорами Intel 80386 с частотой 33 МГц[13]. В дальнейшем были выпущены модели с процессором Intel 80486, когда тот вышел на рынок. Compaq SystemPro были асимметричной многопроцессорной системой, — второй процессор устанавливался на плате расширения в дополнение к стандартному и выполнял только пользовательские программы, а первый процессор обрабатывал прерывания, системные вызовы и загружал операционную систему. Это позволяло в одной системе в использовать разные процессоры, например к первому Intel 386 добавлять на плате расширения Intel 486 и наоборот.

На тот момент многопроцессорность на x86-архитектуре поддерживали только операционные системы Novell NetWare, Microsoft LAN Manager и SCO UNIX/386[14].

Из всех моделей линейки SystemPro только поздняя модель — SystemPro XL — предлагалась со стандартной симметричной мультипроцессорностью, пока осенью 1993 года ей на смену не была представлена линия SMP-серверов Compaq ProLiant.

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

Примечания править

  1. Early Computers at Stanford: the dual processor computer at the AI lab. Дата обращения: 11 октября 2013. Архивировано 13 августа 2014 года.
  2. 1 2 Operational Characteristics of the Processors for the Burroughs B5000. Burroughs. Дата обращения: 11 октября 2013. Архивировано 24 сентября 2019 года.
  3. A Narrative Description of the B5500 MCP, pages 29 (initiate routine) and 40 (a note on parallel processing). Дата обращения: 11 октября 2013. Архивировано 7 сентября 2012 года.
  4. CONTROL DATA 6400/6500/6600 COMPUTER SYSTEMS Reference Manual Архивировано 2 января 2014 года.
  5. Introduction to DECsystem-10 Software, section 1.4 (DECsystem-10 Multiprocessing). Дата обращения: 11 октября 2013. Архивировано 19 марта 2012 года.
  6. DECsystem-10 Technical Summary page 2-1. Дата обращения: 11 октября 2013. Архивировано 7 сентября 2012 года.
  7. (PDP-11) Multiprocessor FAQ. (недоступная ссылка)
  8. 1 2 RSX-11M multiprocessing. Digital Equipment Corporation. Дата обращения: 11 октября 2013. Архивировано 7 сентября 2012 года.
  9. VAX Product Sales Guide, pages 1-23 and 1-24 Архивная копия от 16 июня 2012 на Wayback Machine: the VAX-11/782 is described as an asymmetric multiprocessing system in 1982
  10. Univac 1108-II announcement. Sperry Rand. Дата обращения: 11 октября 2013. Архивировано 27 сентября 2011 года.
  11. A history of Univac computers and Operating Systems. Дата обращения: 11 октября 2013. Архивировано из оригинала 2 августа 2014 года.
  12. IBM. IBM System/370 Model 168 Functional Characteristics (январь 1976). Дата обращения: 11 октября 2013. Архивировано 12 августа 2012 года.
  13. InfoWorld 13 Nov 1989. Дата обращения: 29 октября 2017. Архивировано 18 октября 2013 года.
  14. Network World 13 Nov 1989. Дата обращения: 29 октября 2017. Архивировано 17 октября 2013 года.