Здавалка
Главная | Обратная связь

Симетричні мультипроцесорні системи (SMP)



Характерною рисою багатопроцесорних систем SMP архітектури є те, що всі процесори мають прямий і рівноправний доступ до будь-якої точки спільної пам'яті.

Перші системи SMP складалися з декількох однорідних процесорів і масиву спільної пам'яті, до якої процесори підключалися через спільну системну шину. Проте дуже скоро виявилося, що така архітектура непридатна для створення масштабних систем.

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

Сучасні системи SMP архітектури складаються, як правило, з декількох однорідних мікропроцесорів, що серійно випускаються, і масиву спільної пам'яті, підключення до якої виконується або за допомогою спільної шини, або за допомогою комутатора.

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

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

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

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

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

З більшим або меншим успіхом ці проблеми вирішуються в рамках загальноприйнятої в даний час архітектури ccNUMA (cache coherent Non Uniform Memory Access). В цій архітектурі пам'ять фізично розподілена, але логічно загальнодоступна.

Це, з одного боку, дозволяє працювати з єдиним адресним простором, а, з іншого, збільшує масштабованість систем. Когерентність кеш-пам'яті підтримується на апаратному рівні, що, проте, не звільняє від накладних витрат на її підтримку.

На відміну від класичних систем SMP пам'ять стає трирівневою:

· кеш-пам'ять процесора;

· локальна оперативна пам'ять;

· віддалена оперативна пам'ять;

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

Неприємною властивістю SMP систем є те, що їх вартість зростає швидше, ніж продуктивність при збільшенні кількості процесорів в системі. Крім того, через затримки під час звернення до загальної пам'яті неминуче взаємне гальмування при паралельному виконанні навіть незалежних програм.[3][7]







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.