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