Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6762

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

440

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

  • контроль доступу до пам'яті;

  • синхронізація;

  • захист;

  • безпека.

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

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

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

Найпростіша система із спільною пам'яттю має один модуль пам'яті, який може бути доступний від двох процесорів (рис. 12.18). Запити надходять в модуль пам'яті через його два порти. Арбітражний блок у межах модуля пам'яті передає запити до диспетчера пам'яті. Якщо модуль пам'яті не зайнятий і надходить один запит, то арбітражний блок передає цей запит до диспетчера пам'яті і запит обслуговується. Модуль знаходиться в зайнятому стані під час обслуговування запиту. Якщо надходить новий запит, коли пам'ять зайнята, обслуговуючи попередній запит, процесор Р, що послав запит, може утримувати свій запит на лінії, поки пам'ять не стає вільною, або може повторювати свій запит пізніше.


441

Залежно від типу комунікаційної мережі, системи із спільною пам'яттю можна кла­сифікувати наступним чином:

  • системи UMA з однорідним доступом до пам'яті (UMA - uniform memory access);

  • системи NUMA з неоднорідним доступом до пам'яті (NUMA - nonuniform memo­ry access);

  • системи СОМА - архітектура лише з кеш-пам'яттю (СОМА - cache-only memory architecture).

12.7.2. Системи з однорідним доступом до пам'яті

У системі UMA спільна пам'ять доступна всім процесорам через комунікаційну мере­жу однаковим чином. Тому всі процесори мають рівний час доступу до будь-якої комірки пам'яті. Комунікаційна мережа, яка використовується в системі UMA, може бути одинич­ною або множинною шиною, координатною мережею чи багатопортовою пам'яттю.

Типова структура системи з однорідним доступом до пам'яті на основі одношинної комунікаційної мережі приведена на рис. 12.19а.

В граничному випадку час пересилання через шину може бути зменшений до нуля після того, як вміст кеш пам'ятей С завантажено від спільної пам'яті. Ця організація пам'яті є найпопулярнішою серед систем із спільною пам'яттю. Вона дозволяє досить просто розширити систему шляхом підключення більшої кількості процесорів. Прикла­ди цієї архітектури - сервери Sun Starfire servers, HP V series, і Compaq AlphaServer GS. Зрозуміло, що продуктивність цієї системи обмежена часом циклу шини. Тому кожен процесор має свою кеш пам'ять, що суттєво зменшує кількість звернень до шини. Наяв­ність багатьох кеш пам'ятей породжує проблему їх когерентності, тобто несуперечності вмісту кеш пам'яті кожного процесора із вмістом спільної основної пам'яті багатопро­цесорної системи. Зазначену проблему вирішують шляхом спостереження за шиною, що з'єднує процесори з пам'яттю, за допомогою контролера кожної кеш пам'яті разом із реалізацію в кожній кеш пам'яті наскрізного запису. Можна також в частині процесорів не використовувати кеш пам'ять.

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


442

Так, максимальна кількість процесорів типу Alpha 21264 в системі Compaq Alfa Server GS 140 рівна 14, процесорів РА-8500 в системі HP N9000 - 8, процесорів Power PC 604 у системі RS 6000 - 4.

Як вже вказувалось, використовувана в системі UMA комунікаційна мережа може бути одиничною чи множинною шиною, координатною мережею чи багатопортовою пам'яттю. На рис. 12.19b та рис. 12.19с подано типові логічні організації багатопроцесор­них систем із спільною пам'яттю на основі топології координатної комутації та багато­ярусної мережі. Тут буквою С позначено локальну кеш пам'ять, I/O - пристрої введення/ виведення, Р - процесори, М - модулі спільної пам'яті.

Структури на основі топології координатної комутації (рис. 12.19а) та багатоярусної мережі (рис.12.19Ь) дозволяють вирішити проблему обмеженої пропускної здатності системи із спільною шиною. Координатний комутатор та багатоярусна мережа забез­печують множинність шляхів з'єднання процесорів та блоків пам'яті. Тому тут кількість процесорів є зазвичай більшою, ніж в системах із спільною шиною.

12.7.3. Системи з неоднорідним доступом до пам'яті

У системі NUMA кожен процесор має частину спільної пам'яті (рис. 12.20). Ця пам'ять має єдиний адресний простір. Тому, будь-який процесор може звернутися до будь-якої комірки спільної пам'яті безпосередньо, використовуючи її адресу. Проте час доступу до модулів спільної пам'яті залежить від 'їх відстані від процесора. Це приводить до різного (неоднорідного) часу доступу до пам'яті від різних процесорів. Використовується кілька архітектур для підключення процесорів до модулів пам'яті в системі NUMA.

Як правило, система NUMA розрахована на застосування великої кількості проце­сорів. UMA є більш вибагливою щодо швидкодії підсистеми пам'яті. Тобто реалізація UMA є порівняно простішою та розповсюдженішою (багатопроцесорні сервери фірмі: Compaq, як приклад). Архітектуру NUMA реалізовано, наприклад, в суперкомп'ютері ORIGIN 2000 фірми SGI (більш точно - тут є архітектура CC-NUMA, або NUMA із мно­жиною когерентних кеш пам'ятей).

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


443

навантаження на шину між процесором і основною пам'яттю, але зі збільшенням чис­ла процесорів навантаження на шину також зростає. Оскільки шина використовується також для передачі сигналів, що забезпечують когерентність, ситуація з навантаженням на шину ще більш ускладнюється. З якогось моменту в плані продуктивності шина пере­творюється на вузьке місце. Для систем із спільною пам'яттю такою межею стає число процесорів в межах від 16 до 64. Наприклад, кількість процесорів системи Silicon Grap­hics Power Challenge обмежена 64 процесорами типу R10000, оскільки при подальшому збільшенні числа процесорів продуктивність падає.

Обмеження на число процесорів в архітектурі з спільною пам'яттю служить спо­нукальним мотивом для розвитку кластерних систем. В останніх кожен вузол має ло­кальну основну пам'ять, тобто додатки "не бачать" спільної основної пам'яті. По суті, когерентність підтримується не стільки апаратурою, скільки програмним забезпечен­ням, що не кращим чином позначається на продуктивності. Одним із шляхів створення великомасштабних комп'ютерних систем є технологія CC-NUMA. Наприклад, система NUMA Silicon Graphics Origin підтримує до 1024 процесорів R10000. Технологія CC-NUMA передбачає включення множини незалежних вузлів, кожний з яких може бути, наприклад, системою із спільною пам'яттю. Таким чином, вузол містить множину про­цесорів, у кожного з яких присутні локальні кеш пам'яті першого і другого рівнів. У вузлі є й основна пам'ять, спільна для всіх процесорів цього вузла, але така, що розглядається як частина спільної основної пам'яті системи. В архітектурі CC-NUMA вузол виступає основним будівельним блоком. Наприклад, кожен вузол у системі Silicon Graphics Origin містить два мікропроцесори MIPS R10000. Вузли об'єднуються за допомогою якої-не-будь комунікаційної мережі, яка представлена координатним комутатором, кільцем або має іншу топологію.

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

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


12.7.4. Системи лише з кеш пам'яттю

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