Асиметрична багатопроцесорна обробка
Асиметрична багатопроцессорна обробка чи Асиметричне мультипроцесування (англ. Asymmetric multiprocessing, скорочено AMP, або ASMP) — тип багатопроцесорної обробки, який використовувався до того, як була створена технологія симетричного багатопроцесування (SMP); також використовувався як дешевша альтернатива в системах, які підтримували SMP.
В асиметричній архітектурі різні процесори можуть відрізнятися як своїми характеристиками (продуктивністю, надійністю, системою команд і т. д., аж до моделі мікропроцесора), так і функціональною роллю, що доручається їм у системі. Наприклад, одні процесори можуть призначатися для роботи як основні обчислювачі, інші — для керування підсистемою вводу/виводу, треті — ще для якихось особливих цілей.
Функціональна неоднорідність в асиметричних архітектурах спричиняє структурні відмінності у фрагментах системи, що містять різні процесори системи. Наприклад, вони можуть відрізнятися схемами підключення процесорів до системної шини, набором периферійних пристроїв і способами взаємодії процесорів із пристроями.
Історія
У 60-ті — 70-ті роки, для того, щоб збільшити обчислювальну потужність комп'ютера достатньо було просто додати до нього ще один процесор. Це було дешевше, ніж купувати новий, який працював вдвічі швидше. Також просте додавання ще одного процесора було вигідніше, ніж покупка другого цілого комп'ютера, для якого був потрібний окремий машинний зал, додаткове периферійне устаткування і персонал для обслуговування.
Першими системами, до яких можна було додавати другий процесор, були B5000 від компанії Burroughs, DECsystem-1055, і IBM System / 360 модель 65MP. Крім того в деяких університетах теж були побудовані експериментальні комп'ютери зі здвоєними процесорами [1].
Проблема з додаванням процесора полягала в тому, що операційні системи того часу були розроблені лише для однопроцесорного комп'ютера, а внесення змін для надійної підтримки двох процесорів вимагало багато часу. Щоб обійти ці труднощі, в операційні системи з підтримкою одного процесора вносили незначні зміни лише для мінімальної підтримки другого процесора. «Мінімальна підтримка» означала, що операційна система запускалася на «завантажувальному процесорі» (boot processor), а на другому процесорі виконувалися тільки програми користувача. Наприклад, в Burroughs B5000 другий процесор апаратно не мав можливості виконувати «керуючий код»[2].
В інших системах операційна система могла працювати на будь-якому з процесорів, але або всі периферійні пристрої приєднувалися до якогось тільки одному процесору, або через кожен процесор був доступ тільки до якихось певних периферійних пристроїв.
Масштабування
Масштабування в асиметричній архітектурі реалізується інакше, ніж у симетричній. Тому що вимога єдиного корпуса відсутня, система може складатися з декількох пристроїв, кожне з яких містить один або кілька процесорів. Це масштабування по горизонталі. Кожний такий пристрій називається кластером, а вся мультипроцесорна система — кластерної. Іншим аспектом мультипроцесорних систем, що може характеризуватися симетрією або її відсутністю, є спосіб організації обчислювального процесу. Останній, як відомо, визначається й реалізується ОС.
Принцип «відничий-ведений»
Асиметричне мультипроцесування є найбільш простим способом організації обчислювального процесу в системах з декількома процесорами. Цей спосіб часто називають також «відничий-ведений». Функціонування системи за принципом "відничий-ведений" припускає виділення одного із процесорів як «відничого», на якому працює операційна система і який керує всіма іншими «веденими» процесорами. Тобто відничий процесор бере на себе функції розподілу завдань і ресурсів, а ведені процесори працюють тільки як обробні пристрої й ніякі дії з організації роботи обчислювальної системи не виконують.[джерело?]
Приклади багатопроцесорних систем, з асиметричною обробкою
Burroughs B5000
У Burroughs B5000 можна було при бажанні додати «Процесор „B“». Цей другий процесор, на відміну від «Процесора „А“», не мав доступу до периферійних пристроїв, але в обох процесорів був доступ до загальної пам'яті. Операційна система працювала тільки на процесорі «А», а користувацьке завдання — на процесорі «B». Коли користувацькому завданню потрібний доступ до операційної системи, Процесор «B» зупинявся і відправляв сигнал Процесору «A», який обробляв запит.
CDC 6500 та 6700
Компанія Control Data Corporation пропонувала два варіанти в «серії CDC 6000», де були два процесори: CDC 6500[3] де було два процесори CDC 6400; і CDC 6700, який представляв собою суперкомп'ютер CDC 6600 з доданим до нього процесором CDC 6400.
Ці системи були побудовані дещо інакше, ніж інші мультипроцесори, згадані в даній статті. Операційна система тут працювала тільки на периферійних процесорах, а на центральних процесорах працювала користувацька завдання. Так що дані системи не можна назвати ні AMP-системами, ні SMP-системами.
DECsystem-1055
Компанія Digital Equipment Corporation (DEC) пропонувала покупцям версію свого комп'ютера DECsystem-1050 з двома процесорами KA10. Потім такий же варіант був присутній і в серії комп'ютерів PDP-10.
PDP-11/74
Компанія Digital Equipment Corporation розробила, але так і не довела до ринку мультипроцесорну версію комп'ютера PDP-11 — the PDP-11/74 [7], на якій працювала багатопроцесорна версія операційної системи RSX-11M[4]. У цій системі будь-який з процесорів міг виконувати код операційної системи і здійснювати введення-виведення, але не всі периферійні пристрої були доступні кожному із процесорів; більша частина периферії приєднувалася лише до одного процесору, так що процесору без периферії для роботи з яким-небудь пристроєм процесора-сусіда було потрібно відправляти спеціальний запит.
VAX-11/782
Перший багатопроцесорний комп'ютер компанії DEC з лінійки VAX — VAX-11/782 — був асиметричним; тільки перший процесор мав доступ до пристроїв введення-виведення.
Univac 1108-II
У комп'ютері Univac 1108-II і його наступних варіантах можна було встановити до трьох процесорів. На цих комп'ютерах працювала операційна система UNIVAC EXEC 8, але по наявній документації так і не зрозуміло, якою мірою операційна система підтримувала асиметричне або симетричне багатопроцесування.
IBM System/370 модель 168
Додавання другого процесора в моделі 168 серії IBM System/370 пропонувалося в двох варіантах. Перший пропонувався у вигляді спеціального модуля IBM 3062 Attached Processing Unit, в якому процесор не мав доступ до каналів вводу-виводу і значить працював за схожою схемою, як «Процесор B» в комп'ютері B5000, або як другий процесор в системі DEC VAX-11 / 782. У другому варіанті передбачалося підключення повноцінного процесора, що було схоже з моделлю 65MP з попередньої лінійки System/360
Compaq SystemPro
У листопаді 1989 року компанія Compaq оголосила про випуск першого сервера-мультипроцесора Compaq SystemPro на базі архітектури x86 з двома процесорами Intel 80386 з частотою 33 МГц. Надалі були випущені моделі моделі з процесором Intel 80486, коли він вступив на ринок. Compaq SystemPro були асиметричними Мультипроцесорами. Другий процесор встановлювався на платі розширення на додаток до стандартного і виконував тільки користувацькі додатки, а перший процесор обробляв переривання і завантажував операційну систему. Через це в системі можна було змішувати процесори, наприклад до першого Intel 386 додавати на платі розширення Intel 486.
На той момент мультипроцесорність на x86-архітектурі підтримували тільки операційні системи Novell NetWare, Microsoft LAN Manager і SCO UNIX/386.
З усіх моделей серії SystemPro тільки пізня модель — SystemPro XL — пропонувалася зі стандартною симетричною мультипроцесорної, поки їй на зміну не була представлена серія SMP-серверів Compaq ProLiant.
Примітки
- http://forum.stanford.edu/wiki/index.php/Early_Computers_at_Stanford#DEC_PDP-10_2
- http://www.bitsavers.org/pdf/burroughs/B5000_5500_5700/5000-21005_B5000_operChar.pdf
- Архівована копія. Архів оригіналу за 2 січня 2014. Процитовано 24 травня 2015.
- http://www.bitsavers.org/pdf/dec/pdp11/1174/RSX11-mP_FuncSpec_Apr77.pdf