Система із змінним часом звернення до пам"яті (NUMA)
Типова структура CC-NUMA-системи наведена на рис. 1. В системі є багато незалежних вузлів, кожний з яких може бути самостійною SMP-системою. Вузол містить кілька процесорів, кожний з блоком кеша рівня L1 і L2, і єдиний для всіх процесорів вузла блок пам’яті. Вузол є базовою компонентою всієї структури CC-NUMA-системи. Наприклад, кожен вузол системи NUMA-Q фірми Sequent включає чотири процесори… Читати ще >
Система із змінним часом звернення до пам"яті (NUMA) (реферат, курсова, диплом, контрольна)
NUMA-системи
Системи із змінним часом звернення до пам’яті (NUMA — non uniform memory access).
§ UMA-системи (uniform memory access). Мультипроцесорні системи, у яких всі процесори мають доступ до всього адресного простору головної пам’яті і можуть виконувати як операції читання, так і запису. Час звернення якого-небудь процесора до любої комірки пам’яті один і той же.
§ NUMA-системи. Мультипроцесорні системи, у яких всі процесори мають доступ до всього адресного простору головної пам’яті і можуть виконувати як операції читання, так і запису. Час звернення процесора до комірки пам’яті залежить від того, в якому адресному просторі він знаходиться. Для різних процесорів «швидких» і «повільних» підпростори головної пам’яті можуть відрізнятись.
§ CC-NUMA-системи (cache-coherent NUMA). NUMA-системи в якій забезпечується підтримка інформаційної цілісності даних в кешах всіх процесорів.
NUMA-системи без підтримки інформаційної цілісності даних в кешах досить схожі на кластери. В останній час більше уваги до себе притягують комерційні CC-NUMA-системи, які багато в чому відрізняються як від кластерів, так і від SMP-систем.
У мультипроцесорних комплексах, побудованих по типу SMP-систем, на практиці існує обмеження на кількість процесорів в складі одного комплексу. Застосування ефективної схеми кешування дозволяє скоротити потік інформації, яка циркулює по системній магістралі між окремими процесорами і головною пам’яттю. Ала по мірі збільшення кількості процесорів цей потік зростає. Крім того по управляючим лініям магістралі активно передаються сигнали, необхідні для роботи механізму підтримки інформаційної цілісності даних в багаточисельних кешах. В кінці кінців системна магістраль стає вузьким місцем комплексу.
На сьогодні вважається, що кількість процесорів в SMP-системі повинно бути в діапазоні від 16 до 64. Як показали експерименти, подальше збільшення кількості процесорів приводить не до підвищення, а до зниження продуктивності.
Саме обмеження на кількість процесорів в SMP-системі і було однією з головних причин відродження інтересу до кластерних комплексів. Але кожен вузол кластера має власний блок пам’яті, і прикладні задачі не володіють великим глобальним простором пам’яті. Інформаційна цілісність підтримується програмними, а не апаратними засобами. Таке подріблення глобальної пам’яті негативно відображається на продуктивності, а для отримання максимальної продуктивності необхідно дуже ретельно настроювати програмне забезпечення на особливості обчислювального середовища.
Бажання збільшити кількість процесорів в комплексі, зберігаючи при цьому привабливі риси SMP-системи, і привело до ідеї NUMA-системи.
Наприклад, фірма Silicon Graphics розробила NUMA-систему Origin з 1024 процесорами MIPS R10000. Фірма Sequent в своїй системі NUMA-Q розмістила 256 процесорів Pentium II.
Мета створення NUMA-систем — забезпечення можливості роботи з головною пам’яттю великого об'єму багатьох мікропроцесорних вузлів, кожний з яких має власну магістраль або іншу систему взаємних зв’язків.
змінний час звернення пам’ять
Структура CC-NUMA-системи
Типова структура CC-NUMA-системи наведена на рис. 1. В системі є багато незалежних вузлів, кожний з яких може бути самостійною SMP-системою. Вузол містить кілька процесорів, кожний з блоком кеша рівня L1 і L2, і єдиний для всіх процесорів вузла блок пам’яті. Вузол є базовою компонентою всієї структури CC-NUMA-системи. Наприклад, кожен вузол системи NUMA-Q фірми Sequent включає чотири процесори Pentium II. Вузли зв’язані між собою якою-небудь підсистемою взаємодії, наприклад кільцевою або мережевою. Інший приклад: кожний вузол системи Origin фірми Silicon Graphics в своєму складі має два процесори MIPS R10000.
Рис.1. Структура CC-NUMA-системи
Кожен вузол CC-NUMA-системи має блок пам’яті. Але для окремого процесора існує спільний глобальний адресний простір, в який входять блоки пам’яті всіх вузлів, причому кожна комірка цієї глобальної пам’яті має унікальну адресу, єдину для всіх процесорів. Коли процесор звертається до комірки за деякою адресою, то в перше чергу проглядаються його власні кеші L1 і L2. Якщо шуканий елемент даних в них відсутній, кеш L2 ініціює операцію добування із глобальної пам’яті. Якщо шуканий блок даних знаходиться в частині глобальної пам’яті яка входить до складу вузла, блок даних (рядок кеша) добувається через локальну магістраль вузла. Якщо ж шуканий блок знаходиться в блоці пам’яті іншого вузла, то автоматично формується запит до підсистеми зв’язку, яка транслює запит до відповідної локальної магістралі. Весь цей механізм працює автоматично і для процесора, що звернувся до пам’яті, абсолютно прозорий.
Основна проблема в такій структурі - інформаційна цільність даних в кешах. Кожен вузол має довідник, в якому відслідковується інформація про розміщення порції адресного простору і про стан рядків кешів вузла.
Приклад: Допустимо, що процесор 3 вузла 2 (процесор Р2−3) звертається до комірки пам’яті за адресою 798, яка знаходиться в блоці пам’яті вузла 1. Далі послідують такі операції:
1. Процесор Р2−3 передає у магістраль вузла 2 запит на читання вмісту комірки за адресою 798.
2. Довідник вузла 2 посилає запит і виясняє, що комірка 798 знаходиться у блоці головної пам’яті, підключеної до вузла 1.
3. Довідник вузла 2 посилає запит вузлу 1, який приймається довідником цього вузла.
4. Довідник вузла 1, діючи від імені процесора Р2−3, виставляє на лінії магістралі запит читання вмісту комірки 798 точно тек же, як це робить процесор.
5. У відповідь блок пам’яті вузла 1 виставляє на лінії магістралі запрошені дані.
6. Довідник вузла 1 зчитує дані з лінії магістралі.
7. Дані передаються довіднику вузла 2.
8. Довідник вузла 2 поміщає дані на лінії магістралі вузла 2 точно так же, як це зробив би блок пам’яті.
9. Дані зчитуються з магістралі, поміщаються в кеш процесора Р2−3 і далі обробляються по звичайній схемі.
Описана послідовність операцій виконується апаратними засобами, і процес передачі даних прозорий для процесора. Для надійної роботи цього механізму в ньому повинен бути реалізований який-небудь протокол підтримки інформаційної цілісності даних в кешах. В існуючих системах використовуються різні модифікації таких протоколів.
В тій послідовності, яка представлена вище, довідник вузла 1 повинен зберігати інформацію, про ті кеші, в яких є копія рядка, який включає комірку 798. Тоді на основі цієї інформації можна відстежувати внесення в одному із кешів змін в рядок. Про внесення змін повідомляються всі вузли, і відповідні довідники модифікують код стану копії рядка в кешах свого вузла. Якщо комірка, зміст якої змінено, знаходиться в блоці пам’яті даного вузла, то в довіднику також відмічається, що ця комірка містить недостовірні дані. Достовірним вміст комірки стане тільки після виконання оберненого запису. Якщо який-небудь процесор, який знаходиться в тому ж вузлі, або в іншому, звернеться до комірки, поміченої як недостовірна, довідник вузла ініціює операцію зворотнього запису і тільки після цього дозволить виконувати читання вмісту комірки.
Переваги і недоліки NUMA-систем
Головною перевагою CC-NUMA-систем є те, що вони дозволяють реалізувати більш високий рівень паралелізму при виконанні задач ніж SMP-системи, не потребуючи при цьому внесення суттєвих змін в програмне забезпечення.
Слід застерегти тільки про можливість зниження продуктивності системи при великій кількості звернень процесорів одного вузла до блоків пам’яті інших вузлів. Але є підстави розраховувати, що таких звернень практично не багато.
Застосування кешів двох рівнів мінімізує кількість звернень до пам’яті, в тому числі і до блоків пам’яті віддалених вузлів. Якщо більша частина даних, що використовуються в програмах характеризується високим рівнем тимчасової локалізації, то потік звернень до віддалених блоків пам’яті навряд чи буде інтенсивним.
Якщо програмне забезпечення прикладних задач характеризується високим рівнем просторової локалізації і використовується механізм віртуальної пам’яті, то інформація необхідна для роботи прикладних задач, буде розміщатись в обмеженій кількості часто використовуваних сторінок. Ці сторінки з самого початку можна завантажити в блок пам’яті того вузла, в якому реалізується основна частина прокладної задачі, і таким чином суттєво знизити потік інформації між вузлами.
Можна також застосувати вдосконалений механізм віртуальної пам’яті, який дозволяє переносити віртуальну сторінку в той вузол системи, який її частіше використовує.
CC-NUMA-системам притаманні і певні недоліки. По-перше, вони не мають таку прозорість як SMP-системи. Необхідна певна модифікація програмного забезпечення при перенесенні його з SMP-системи на CC-NUMA-систему. Це відноситься до механізму розподілу пам’яті, розподілу процесів між вузлами і балансування завантаження вузлів системи. Друга проблема — це проблема надійності.