ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6765
Скачиваний: 22
436
-
ОКМД - комп'ютерні системи з одиничним потоком команд та множинним потоком даних (SIMD - Single Instruction stream Multiply Data stream).
-
МКМД - комп'ютерні системи з множинним потоком команд та множинним потоком даних (MIMD - Multiply Instruction stream Multiply Data stream).
Розглянемо запропоновану М. Фліном класифікацію детальніше. На поданих нижче рисунках позначено: ПК - пристрій керування, IIP - процесор, ПД - пам'ять даних.
До класу комп'ютерних систем з одиничним потоком команд та одиничним потоком даних належить, зокрема, комп'ютер з архітектурою Джона фон Неймана, яким, наприклад, є розповсюджений персональний комп'ютер. Структура цієї системи представлена на рис. 12.14а. Організація роботи комп'ютерних систем цього класу була розглянута в попередніх розділах книги.
Структура комп'ютерної системи з множинним потоком команд та одиничним потоком даних показана на рис. 12.14b. Комерційні універсальні комп'ютерні системи цього типу на даний час невідомі, проте вони можуть з'явитися у майбутньому. До цього типу систем з деякими умовностями можна віднести спеціалізовані потокові процесори, зокрема систолічні, які використовують, наприклад, при обробці зображень.
В комп'ютерній системі з одиничним потоком команд та множинним потоком даних (рис. 12.14 с) одночасно обробляється велика кількість даних. До цього класу, зокрема, належать раніше розглянуті векторні процесори. До комп'ютерних систем з одиничним потоком команд та множинним потоком даних можна віднести також апаратну підсистему процесорів Pentium, яка реалізовує технологію ММХ опрацювання даних для графічної операційної системи Windows.
Характерним прикладом комп'ютерної системи з одиничним потоком команд та множинним потоком даних може служити система, яка складається з двох частин: зовнішнього комп'ютера з архітектурою Джона фон Неймана, який виконує роль пристрою керування, і масиву ідентичних синхронізованих елементарних процесорів, здатних одночасно виконувати ту ж саму дію над різними даними. Кожен процесор у масиві має місцеву пам'ять невеликої ємності, де зберігаються дані, які обробляються паралельно.
437
З масивом процесорів з'єднано шину пам'яті зовнішнього комп'ютера таким чином, що він може довільно звернутися до кожного процесора масиву. Програма може виконуватися традиційно послідовно на зовнішньому комп'ютері, а її частина може паралельно виконуватися на масиві процесорів.
У комп'ютерній системі з множинним потоком команд та множинним потоком даних кожен процесор оперує із своїм потоком команд та своїм потоком даних (рис. 12. -4d). Як правило, окремі процесори багатопроцесорної системи є серійними пристроями, що дозволяє значно зменшити вартість проекту. У класі МКМД треба відрізняти сильно зв'язані системи, власне багатопроцесорні системи, від мереж комп'ютерів, тобто слабо зв'язаних систем; тобто багатопроцесорні системи та комп'ютерні мережі потрапляють до різних підкласів класу MIMD.
В 1978 році Д. Куком було запропоновано розширення класифікації Фліна. У своїй класифікації Д. Кук розділив потоки команд та даних на скалярні та векторні потоки. Комбінація цих потоків приводить в підсумку до 16 типів архітектури паралельних комп'ютерних систем.
12.5. Типи архітектур систем ОКМД
До комп'ютерних систем класу ОКМД належать різні типи систем, які під керуванням одиничного потоку команд обробляють потоки даних. В першу чергу до цих систем потрібно віднести векторні та матричні комп'ютерні системи. Перші з них були детально розглянуті раніше. Призначення матричних комп'ютерних систем багато в чому схоже з призначенням векторних комп'ютерних систем - обробка великих масивів даних. В основі матричних комп'ютерних систем лежить матричний процесор, що складається з регулярного масиву процесорних елементів (ПЕ). Організація систем подібного типу на перший погляд достатньо проста. Вони мають пристрій керування, що генерує потік команд і велике число ПЕ, що працюють паралельно і оброблюють кожен свій потік даних. Проте на практиці, щоб забезпечити достатню ефективність системи при вирішенні широкого кола завдань, необхідно організувати зв'язки між процесорними елементами так, щоб якнайповніше завантажити їх роботою. Саме характер зв'язків між ПЕ і визначає різницю у властивостях системи.
Між матричними і векторними комп'ютерними системами є істотна різниця.
В складі системи команд векторного процесора є команди обробки векторів даних, що дозволяє ефективно завантажити конвеєри його операційних блоків. Векторні процесори простіше використовувати, тому що команди для обробки векторів - це зручніша модель програмування, ніж команди для паралельно включених ПЕ.
Матричний процесор інтегрує безліч ідентичних процесорних елементів, логічно об'єднаних у матрицю і працюючих в стилі ОКМД. Не так істотно, як конструктивно реалізована матриця процесорних елементів - на одному кристалі чи на декількох. Важливий сам принцип - ПЕ логічно скомпоновані в матрицю і працюють синхронно, тобто присутній тільки один потік команд для всіх.
Є дві головні конфігурації, які були використані в матричних комп'ютерних системах класу ОКМД. В першій схемі кожен процесор Р має власну локальну пам'ять М (рис. 12.15).
438
Процесори можуть зв'язатися один з одним через комунікаційну мережу. Якщо комунікаційна мережа не забезпечує прямого зв'язку між заданою парою процесорів, то згодом ця пара може обмінятися даними через проміжний процесор. Таку схему зв'язку було використано в комп'ютері ILLIAC IV. Комунікаційна мережа в ILLIAC IV дозволяла кожному процесору зв'язуватися безпосередньо з чотирма сусідніми процесорами. В матриці із 8x8 процесорів кожний і-й процесор міг контактувати безпосередньо з (і-1)-м, (і+1)-м, (і-8)-м, і (і+8)-м процесорами.
У другій схемі процесори і модулі пам'яті зв'язуються між собою через комунікаційну мережу (рис. 12.16). Два процесори можуть передати дані один одному через проміжний модуль пам'яті або, можливо, через проміжний процесор. За такою схемою, наприклад, побудовано процесор BSP фірми Burroughs.
439
12.6. Типи архітектур систем МКМД
Комп'ютерні системи класу МКМД складаються з багатьох процесорів та багатьох модулів пам'яті, з'єднаних за допомогою комунікаційної мережі. Вони можуть бути поділені на дві великі групи: зі спільною пам'яттю та з передачею повідомлень. На рис. 12.17 а та b показано загальну структуру цих двох груп комп'ютерних систем.
В першій групі процесори обмінюються інформацією через їх спільну пам'ять, причому кожний процесор має рівні можливості читати та записувати дані до пам'яті, а також однакову швидкість доступу до пам'яті, тому їх часто називають симетричними багатопроцесорними системами. Комерційними прикладами комп'ютерних систем першої групи є багатопроцесорні сервери фірм Sequent Computer's Balance and Symmetry, Sun Microsystems та Silicon Graphics Inc.
У другій групі процесори обмінюються інформацією через комунікаційну мережу. В комп'ютерній системі з передачею повідомлень (також 'їх називають системами з розподіленою пам'яттю) зазвичай наявна локальна пам'ять і процесор у кожному вузлі комунікаційної мережі. Тут відсутня спільна пам'ять, тому необхідно переміщувати дані з однієї локальної пам'яті до іншої за допомогою механізму передачі повідомлень. Це, зазвичай, робиться шляхом посилання-отримання кількох команд, які повинні бути вписані в прикладне програмне забезпечення. Комерційними прикладами систем передачі повідомлень є системи nCUBE, iPSC/2 і різні системи, базовані на трансп'ютерах. Ці системи кінець кінцем поступилися системам глобальної мережі Internet, в якій вузли є або серверами, або персональними комп'ютерами.
Архітектуру з розподіленою пам'яттю довелося використовувати із-за переходу до все більших систем. Потрібно відзначити, що програмування в системі зі спільною пам'яттю є простішим, а в системах передачі повідомлень забезпечується масштабова-ність. Тому з'явились комбіновані системи з розподіленою та з спільною пам'яттю, такі як SGI Origin2000, та інші.
12.7. Організація комп'ютерних систем із спільною пам'яттю
12.7.1. Типи комп'ютерних систем із спільною пам'яттю
При проектуванні багатопроцесорних систем ключовим є питання поділу даних між процесорами. Ідеальною відповіддю на це питання є застосування єдиного адресного