Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_РВу.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.3 Mб
Скачать

4.2. Основні типи паралельних архітектур

Існують різні підходи до побудови класифікації систем паралельної обробки. Традиційно для опису паралельних архітектур використовується так звана класифікація Флінна (М. J. Flynn, 1966 р.), класифікує архітектури за особливостями реалізації потоків управління і даних. Цей підхід є найбільш поширеним.

Процес розв'язування задачі можна представити у вигляді моделі обробки даних (рис. 4.1), в якій відбувається вплив певної послідовності команд програми (потоку команд) на відповідну послідовність даних (потік даних), що викликаються цією послідовністю команд. Різні способи організації паралельної обробки інформації можна представити як способи організації одне-тимчасового впливу одного або декількох потоків команд на один або кілька потоків даних.

Існує 2 способи організації обробки:

1) команди управляють даними (концепція фон Неймана); 2) дані керують командами (т. зв. потокові машини).

Рис. 4.1. Модель обробки даних в ПОС

Для побудови класифікації вводиться поняття множинності потоків команд і даних. Під множинним потоком команд (даних) розуміється наявність у системі декількох послідовностей команд, що знаходяться в стадії реалізації, або декількох послідовностей даних, що піддаються обробці командами. Множинність потоків визначається як максимально можливу кількість одночасно виконуваних операцій (команд) або операндів (даних), які перебувають в однаковій стадії обробки на найбільш вузькій ділянці обробки.

Виділяються чотири класи архітектур за ознаками множинності потоків команд і даних (рис. 4.2.):

1. Системи з одиночним потоком команд і одиночним потоком даних (ОКОД, SISD – single instruction/single data).

2. Системи з множинним потоком команд і одиночним потоком даних (МКОД, MISD – multiple instruction/single data).

3. Системи з одиночним потоком команд і множинним потоком даних (ОКМД, SIMD – single instruction/multiple data).

4. Системи з множинним потоком команд і множинним потоком даних (МКМД, MIMD – multiple instruction/multiple data).

Реалізація описаних вище способів організації паралельної обробки інформації добре вкладається в представлену класифікацію, і кожному класу систем притаманні цілком певні способи.

Системи класу ОКОД. Системи цього класу – звичайні однопроцесорні ЕОМ з послідовною архитектурой (рис. 4.2, а), що включають в себе оперативний запомятовуючий пристрій (ОЗП) для команд і даних (воно найчастіше буває загальним) і один процесор, що містить арифметично-логічний пристрій (АЛП) і пристрій керування (УУ). В сучасних системах цього класу найбільш широко використовується перший шлях організації паралельної обробки – суміщення у часі різних етапів вирішення різних задач, при якому в системі одночасно працюють різні пристрої: введення, виведення і власне обробки інформації. У загальному вигляді це розглянуто в попередній лекції, проте практична реалізація цього принципу передбачає і більш широке суміщення роботи різних пристроїв. Щодо вводу–виводу інформації – це введення декількох одночасно працюючих каналів вводу–виводу, а також декількох пристроїв одного типу: клавіатури, принтерів, різного роду накопичувачів та ін. Запровадження великої кількості паралельно працюючих периферійних пристроїв дозволяє істотно скоротити час на ввод інформації в пам'ять, зменшуючи загальний час розв'язання задачі, й певною мірою, згладити розрив між швидкостями роботи центральних (процесор, ОЗП) та периферійних пристроїв.

Рис. 4.2. Системи: ОКОД (а), МКОД (б, в), ОКМД (м), МКМД (д).

Тут: К – команди; К’ - мікрооперації; Д – вхідні дані; Р – результат.

Значний ефект у продуктивності однопроцесорній системи дає поділ ОЗП на кілька модулів, функціонально самостійних, що дозволяє їм працювати незалежно один від одного. Продуктивність збільшується за рахунок зменшення простоїв пристроїв з-за так званих конфліктів при зверненні до ОЗП.

При паралельній роботі багатьох пристроїв вводу–виводу і процесора неминучі ситуації, коли декільком пристроям треба звернення до ОЗП для запису або читання інформації. Така ситуація і називається конфліктною. Природно, вирішити цей конфлікт можна лише шляхом запровадження системи пріоритетів, яка встановлює певну черговість задоволення запитів в ОЗП. При цьому неминучі черги, а, отже, і простої пристроїв, що не мають вищого пріоритету. Найбільшою мірою від цього страждає процесор, так як за принципом своєї роботи він може очікувати в черзі на обслуговування як завгодно довго, у той час як більшість периферійних пристроїв, в основному електромеханічних, чекати довго не можуть або це буде приводити до дуже великих втрат часу. Так, наприклад, якщо вчасно не считати інформацію з накопичувача на магнітному диску, то доведеться втратити кілька мілісекунд (один оборот диска) до наступного моменту, коли ця інформація може бути прочитана.

При наявності декількох модулів ОЗП з незалежним управлінням є певна ймовірність того, що різні пристрої будуть звертатися до різних модулів, а, отже, черга до ОЗП розділиться на кілька менших черг і очікування (тобто простой пристрою) в черзі буде зменшено.

Крім сумісництва у часі різних етапів обробки інформації в системах класу ОКОД істотне збільшення продуктивності досягається за рахунок введення конвеєра команд.

По суті, конвеєр команд – це також суміщення в часі роботи декількох різних блоків, що виконують окремі частини спільної операції. Якщо суміщення у часі роботи різних пристроїв можна назвати «макросуміщенням», то конвеєр є якби «микросуміщенням».

При організації конвеєра команд дуже часто застосовуються також способи збільшення продуктивності, що базуються на використанні многомодульных ОЗП. По-перше, якщо програми і дані розміщувати в різних модулях пам'яті, то це дозволить поєднувати у часі вибірку команди, і операнди, що при виконанні ОЗП у вигляді одного функціонального пристрою було б неможливо. По-друге, використовується той факт, що команди і дані зазвичай при обробці вибираються з деякої послідовності комірок пам'яті з послідовно зростаючими адресами.

Якщо організувати ОЗП таким чином, що всі парні адреси будуть належати одному модулю ОЗП, а усі непарні – іншому, і зрушити початок циклу роботи цих двох модулів на половину циклу, то при виконанні програми середній час звернення до ОЗП істотно зменшується (в найкращому випадку  в 2 рази).

Цей принцип може бути поширений і на більше число модулів ОЗП з незалежним керуванням. При N модулів ОЗП середній час звернення до ОЗП виявляється рівним 1/N від циклу ОЗП. Така пам'ять називається пам'яттю з чергуванням адресів або розшаруванням звернень.

У системах класу ОКОД можлива реалізація і ще одного способу збільшення продуктивності – конвеєр арифметичних і логічних операцій, що цілком вписується в цей клас систем, так як потік команд залишається один: просто команди розбиваються на деяке число мікрооперацій, утворюючи, таким чином, кілька потоків мікрокоманд. З цієї причини системи з конвеєром арифметичних і логічних операцій відноситься до наступного класу – МКОД.

Системи класу МКОД. Структуру систем цього класу можна представити у вигляді структури, зображеної на рис. 5.2, б: кілька потоків команд впливають на єдиний потік даних. Однак не існує такого класу задач, в яких одна і та ж послідовність даних піддавалася б обробці за кількома різними програмами. З цієї причини в чистому вигляді така структура досі не реалізована. Умовно будемо вважати цей клас порожнім.

Реалізована інша схема обробки, представлена на рис. 5.2, ст. Тут один струм команд K поділяється пристроєм управління на кілька потоків мікрооперацій, кожна з яких реалізується спеціалізованим, налаштованим на виконання імен-але цієї мікрооперації, пристроєм. Потік даних проходить послідовно через всі (або частину) цих спеціалізованих АЛУ. Саме такого класу системи прийнято називати конвеєрними або системами з магістральної обробкою інформації.

Зрозуміло, в системах МКОД з метою досягнення високої продуктивності використовується не тільки конвеєр операції. Зазвичай в таких системах використовується і кон-вейєр команд, і різні способи поєднання роботи багатьох пристроїв. Однак при цьому головною, визначальною ознакою є наявність конвеєра арифметичних і логічних операцій. Зауважимо також, що системи цього класу розвивають максимальну продуктивність тільки при вирішенні задач певного типу, в яких існують довгі послідовності (ланцюжки) однотипних операцій над досить великою послідовністю даних, тобто коли має місце паралелізм об'єктів або даних.

Системи класу ОКМД. Системи цього класу також орієнтовані на використання паралелізму об'єктів або даних для підвищення продуктивності. Узагальнена структура представлена на рис. 4.2, г. В цій системі по одній і тій ж (або майже по одній і тій же) програмі обробляється кілька потоків даних, кожен з цих потоків обробляється своїм АЛП, працюючим, однак, під загальним управлінням, за рахунок чого і досягається висока продуктивність системи. Загальна схема, представлена на рис. 5.2, г, може реалізуватися різними способами. Так, наприклад, АЛП може являти собою досить складний пристрій, що містить оброблюваючий процесор і оперативне ЗП. У цьому випадку потік даних в кожен процесор надходить з власного ЗП. Управління і пам'ять команд реалізуються окремою ЕОМ, що керує ансамблем процесорів. Пам'ять даних може мати не тільки адресну вибірку, але і асоціативну, тобто по вмісту пам'яті. Тому всі системи класу ОКМД можна розділити на матричні (векторні) і асоціативні.

У системах класу ОКМД для досягнення високої продуктивності можуть використовуватися й інші шляхи паралельної обробки, однак визначальним є одночасна обробка одним потоком команд декільках потоків даних на декільках процесорах.

Системи класу МКМД. Можливі два способи побудови систем МКМД: у вигляді сукупності елементарних систем (рис. 4.2, а) і за схемою, наведеною на рис. 4.2, д. На перший погляд різниця незначна: у варіанті а для кожної послідовності команд та даних є власне ОЗУ, у варіанті д) усі команди і всі дані розміщуються в загальних ОЗП. Ця відмінність призводить, однак, до двох сильно відрізняються побудови та організації обчисленні типів обчислювальних комплексів і систем: багатомашинних (рис. 4.2, а) і багатопроцесорним (рис. 4.2, д). У многомашинном варіанті вся система якби розпадається на декілька незалежних систем класу ОКОД, тобто по суті самостійних ЕОМ з усіма особливостями, притаманними їм. При цьому існують певні зв'язки між ЕОМ, які об'єднують ці ЕОМ в систему. В багатопроцесорному варіанті система досить жорстко зв'язана спільною пам'яттю команд та даних і, хоча процесори системи мають достатню самостійність, у системі організується спільна їхня робота.

Многомашині комплекси в найкращій мірі пристосовані для вирішення потока незалежних задач. При цьому об'єднання в комплекс декількох ЕОМ істотно збільшує продуктивність системи. Багатопроцесорні системи (комплекси) є досить універсальними і забезпечують підвищення продуктивності при використанні всіх видів паралелізму, але, мабуть, найбільший ефект досягається при задачах, що характеризуються паралелізмом незалежних гілок.

З усіх розглянутих систем найбільш універсальними щодо класу розв'язуваних задач є системи МКМД.

В книзі [18] наводяться ще п'ять видів класифікації; в дійсності їх значно більше.

Однак тонкощі класифікації цікаві розробникам ПОС. Ми ж обмежимся головною, найбільш поширеною, класифікацією Флінна.