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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

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

История[править | править исходный текст]

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

Первыми системами, к которым можно было добавлять второй процессор, были 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, или как второй процессор в системе 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 - предлагалась со стандартной симметричной мультипроцессорностью, пока ей на смену не была представлена линия SMP-серверов Compaq ProLiant.

См.также[править | править исходный текст]

Примечания[править | править исходный текст]