1   2   3   4   5   6   7   8
Ім'я файлу: Архітектура серверів корпоративних баз даних.doc
Розширення: doc
Розмір: 237кб.
Дата: 23.10.2022
скачати
Пов'язані файли:
Лекція1_ПЗІС_2022-23.pptx

2.1.Архітектура PowerScale


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

  • Через малу ймовірність знаходження відповідних даних у кеш-пам'яті постає досить інтенсивний трафік між системною пам'яттю і кешами ЦП.

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

У традиційній SMP-архітектурі зв'язку між кешами ЦП і глобальної пам'яттю реалізуються за допомогою загальної шини пам'яті, що розділяється між різними процесорами. Як правило, ця шина стає слабким місцем конструкції системи і прагне до насичення при збільшенні числа інстальованих процесорів. Це відбувається тому, що збільшується трафік пересилань між кешами і пам'яттю, а також між кешами різних процесорів, які конкурують між собою за пропускну здатність шини пам'яті.
В архітектурі PowerScale компанії Bull інтерфейс пам'яті реалізований з урахуванням зазначеного вище профілю додатків і розрахований на використання декількох поколінь процесорів з дедалі більшою продуктивністю. У дійсності архітектура PowerScale з самого початку була розроблена в розрахунку на підтримку до 8 процесорів PowerPC 620.
В архітектурі PowerScale (Мал. 1) основним засобом оптимізації доступу до поділюваного основної пам'яті є використання достатньо складної системної шини. Насправді ця "шина" представляє собою комбінацію шини адреси / управління, реалізованої класичним способом, і набору магістралей даних, які з'єднуються між собою за допомогою високошвидкісного матричного комутатора. Ця система межз'єднань отримала назву MPB_SysBus. Шина пам'яті використовується тільки для пересилання простих адресних тегів, а неблокіруемой матричний комутатор - для забезпечення більш інтенсивного трафіку даних. До матричному комутатора можуть бути приєднані до 4 двопроцесорних портів, порт вводу / виводу і підсистема пам'яті.
Головною перевагою такого підходу є те, що він дозволяє кожному процесору мати прямий доступ до підсистеми пам'яті. Іншою важливою властивістю реалізації є використання розшарування пам'яті, що дозволяє багатьом процесорам звертатися до пам'яті одночасно.
Нижче наведена схема, що ілюструє загальну організацію доступу до пам'яті (Мал. 2) Кожен процесорний модуль має свій власний виділений порт пам'яті для пересилання даних. При цьому загальна шина адреси і управління гарантує, що на рівні системи всі адреси є когерентними.
У системі використовуються великі кеші другого рівня (L2), що доповнюють кеші першого рівня (L1), інтегровані в процесорах PowerPC. Це дозволяє оптимізувати рівень міграції процесів між процесорами і збільшує загальну пропускну здатність системи. Очевидно, що завжди корисно виконувати процес на одному і тому ж процесорі і мати більш високий коефіцієнт попадань в кеш, ніж при виконанні процесу на наступному доступному процесорі. Використовуючи алгоритми, що базуються на засобах ядра системи, можна визначити найбільш підходяще використання пулу процесорів з урахуванням поточного коефіцієнта попадань в кеш.
Рис. 1. Архітектура PowerScale
Рис. 2. Схема організації доступу до пам'яті
Модель пам'яті
Процесор PowerPC визначає слабо упорядковану модель пам'яті, яка дозволяє оптимізувати використання пропускної здатності пам'яті системи. Це досягається за рахунок того, що апаратурі дозволяється переупорядочівать операції завантаження і запису так, що потребують тривалого часу операції завантаження можуть виконуватися раніше визначених операцій запису. Такий підхід дозволяє зменшити дійсну затримку операцій завантаження. Архітектура PowerScale повністю підтримує цю модель пам'яті як на рівні процесора за рахунок набору команд PowerPC, так і глобально шляхом реалізації наступних обмежень:

  • Звернення до глобальних змінних синхронізації виконуються строго послідовно.

  • Ніяке звернення до змінної синхронізації не видається процесором до завершення виконання всіх звернень до глобальних даними.

  • Ніякі звернення до глобальних даними не видаються процесором до завершення виконання попередніх звернень до змінної синхронізації.

Для забезпечення такої моделі упорядкованих звернень до пам'яті на рівні кожного процесора системи використовуються певна апаратна підтримка і явні команди синхронізації. Крім того, на системному рівні дотримання необхідних протоколів для забезпечення упорядкування звернень між процесорами або між процесорами і підсистемою вводу / виводу покладено на програмне забезпечення.
Підсистема пам'яті
З реалізацією архітектури глобальної пам'яті в мультипроцессорной системі зазвичай пов'язаний дуже важливе питання. Як поєднати переваги "логічно" локальної для кожного процесора пам'яті, що має малу затримку доступу, з вимогами реалізації поділюваної глобальної пам'яті?
Компанія Bull розробила патентовану архітектуру, в якій масив пам'яті повністю розшаровані до рівня довжини рядка системного кеша (32 байти). Така організація забезпечує мінімум конфліктів між процесорами при роботі підсистеми пам'яті і гарантує мінімальну затримку. Вимога реалізації глобальної пам'яті забезпечується тим, що масив пам'яті для програмних засобів завжди представляється безперервним.
Запропонована конструкція вирішує також проблему, часто виникає в інших системах, в яких використання методів розшарування для організації послідовного доступу до різних областей пам'яті можливо тільки, якщо плати пам'яті встановлюються збалансовано. Цей, що здається тривіальним, питання може призводити до зайвих закупівель додаткових ресурсів і пов'язаний виключно з можливостями конструкції системи. PowerScale дозволяє обійти цю проблему.
Архітектура PowerScale автоматично оптимізує ступінь розшарування пам'яті залежно від того, які плати пам'яті інстальовані в системі. У залежності від конкретної конфігурації вона буде використовувати низьку або високу ступінь розшарування або їх комбінацію. Все це повністю прозоро для програмного забезпечення і, що більш важливо, для користувача.
Архітектура матричного комутатора
Архітектура комутатора реалізована за допомогою апаратної мережі, яка здійснює індивідуальні з'єднання типу точка-точка процесора з процесором, процесора з основною пам'яттю і процесора з магістраллю даних введення / виводу. Ця мережа працює спільно з розділяється адресною шиною. Такий збалансований підхід дозволяє використовувати найкращі властивості кожного з цих методів організації з'єднань.
Колективна адресна шина спрощує реалізацію спостереження (snooping) за адресами, яке необхідно для апаратної підтримки когерентності пам'яті. Адресні транзакції конвеєризований, виконуються асинхронно (розщеплено) по відношенню до пересилках даних і вимагають відносно невеликий смуги пропускання, гарантуючи, що цей ресурс ніколи не увійде у стан насичення.
Організація пересилань даних вимагає більше уваги, оскільки рівень трафіку і час зайнятості ресурсів фізичного межсоединения тут істотно вище, ніж це потрібно для пересилання адресної інформації. Операція пересилання адреси являє собою одиночну пересилання, в той час як операція пересилання даних повинна задовольняти вимогу багатобайтні пересилання відповідно до розміру рядка кеша ЦП. При реалізації окремих магістралей даних з'являється ряд додаткових можливостей, які забезпечують:

  • максимальну швидкість передачі даних за допомогою з'єднань точка-точка на більш високих тактових частотах;

  • паралельну пересилання даних за допомогою організації виділеного шляху для кожного з'єднання;

  • поділ адресних транзакцій і транзакцій даних. Тому архітектуру PowerScale компанії Bull можна назвати многопотоковой апаратної архітектурою (multi-threaded hardware architecture) з можливостями паралельних операцій.

На Рис. 3 показані основні режими і операції, що виконуються матричним комутатором (ССA2 - здвоєний контролер адрес кеш-пам'яті; CCD2 - здвоєний контролер даних кеш-пам'яті; IOD - дочірня плата вводу / виводу; DCB - матричний комутатор даних; SMC - контролер системної пам'яті).
Рис. 4.3. Матричний комутатор.
Параметри продуктивності
Слідом за настановної фазою транзакції (наприклад, після встановлення адреси на адресній шині) дані можуть пересилатися через комутатор на повній швидкості синхронізації. Це можливо завдяки організації з'єднанню точка-точка, яка створюється для кожної окремої транзакції. Тому надалі будь-які перешкоди відсутні. Можливо також виконувати паралельно кілька операцій, наприклад, множинний доступ до пам'яті або пересилання між кешами.
Для того щоб зменшити затримку пам'яті, операції читання починаються до виконання будь-яких дій по забезпеченню глобальної когерентності на рівні системи. Відповіді когерентності повністю синхронізовані, вирішуються за фіксований час і надходять завжди перш, ніж буде захоплений розділяється ресурс - шина пам'яті. Це допомагає уникнути непотрібних захоплень шини. Будь-які транзакції, які не вирішуються когерентно за дане фіксований час, пізніше будуть повторені системою.
Використовувана в системі внутрішня частота синхронізації дорівнює 75 МГц, що дозволяє оцінити рівень продуктивності розробленої архітектури. Інтерфейс фізичної пам'яті має ширину 32 байта і, враховуючи арбітраж шини, дозволяє пересилати 32 байти кожні 3 такту синхронізації. Це дає швидкість передачі даних 800 Мбайт / с, підтримувану на рівні інтерфейсу пам'яті. Кожен порт ЦП має ширину 8 байт і здатний передавати по 8 байт за такт, тобто зі швидкістю 600 Мбайт / с. Слід зазначити, що це швидкість, що досягається як при пересиланні ЦП-пам'ять, так і при пересиланні кеш-кеш. Швидкість 800 Мбайт / с для пам'яті підтримується за допомогою буферів у комутаторі, які дозволяють конвеєризований кілька операцій.
Пропускна здатність може досягати пікового значення 1400 Мбайт / с. Таким чином, максимальна пропускна спроможність буде варіюватися в діапазоні від 800 до 1400 Мбайт / с в залежності від коефіцієнта влучень кеш-пам'яті.
Когерентність кеш-пам'яті
Проблема когерентності пам'яті в мультипроцессорной системі виникає через те, що значення елемента даних, що зберігається в кеш-пам'яті різних процесорів, доступно цим процесорам тільки через їх індивідуальні кеші. При цьому певні операції одного з процесорів можуть впливати на достовірність даних, що зберігаються в кешах інших процесорів. Тому в подібних системах життєво необхідний механізм забезпечення когерентного (погодженого) стану кешів. З цією метою в архітектурі PowerScale використовується стратегія зворотного запису, реалізована в такий спосіб.
Кожен процесор для своєї роботи використовує дворівневий кеш з властивостями охоплення. Це означає, що крім внутрішнього кеша першого рівня (кешу L1), вбудованого в кожен процесор PowerPC, є пов'язаний з ним кеш другого рівня (кеш L2). При цьому кожен рядок в кеші L1 є також і в кеші L2. В даний час обсяг кеша L2 становить 1 Мбайт на кожен процесор, а в майбутніх реалізаціях передбачається його розширення до 4 Мбайт. Сама по собі кеш-пам'ять другого рівня дозволяє істотно зменшити число звернень до пам'яті і збільшити ступінь локалізації даних. Для підвищення швидкодії кеш L2 побудований на принципах прямої відображення. Довжина рядка дорівнює 32 байт (розміру когерентної гранулюванні системи). Слід зазначити, що, хоча з точки зору фізичної реалізації процесора PowerPC, 32 байти становлять тільки половину рядка кеша L1, це не міняє протокол когерентності, який управляє операціями кеша L1 і гарантує що кеш L2 завжди містить дані кеша L1.
Кеш L2 має зовнішній набір тегів. Таким чином, будь-яка активність механізму спостереження за когерентним станом кеш-пам'яті може бути пов'язана з кешем другого рівня, в той час як більшість звернень з боку процесора можуть оброблятися первинним кешем. Якщо механізм спостереження виявляє попадання в кеш другого рівня, то він повинен виконати арбітраж за первинний кеш, щоб оновити стан і можливо знайти дані, що зазвичай буде призводити до припинення процесора. Тому глобальна пам'ять може працювати на рівні тегів кеша L2, що дозволяє істотно обмежити кількість операцій спостереження, що генеруються системою в напрямку даного процесора. Це, у свою чергу, істотно збільшує продуктивність системи, оскільки будь-яка операція спостереження у напрямку процесора сама по собі може призводити до припинення його роботи.
Вторинна когерентність кеш-пам'яті
Вторинна когерентність кеш-пам'яті потрібно для підтримки когерентності кешів L1 & L2 різних процесорних вузлів, тобто для забезпечення когерентного стану всіх наявних у мультипроцессорной системі розподілених кешей (природно включаючи підтримку когерентної буферизації введення / виводу як з читання, так і по запису).
Вторинна когерентність забезпечується за допомогою перевірки кожної транзакції, яка виникає на шині MPB_SysBus. Така перевірка дозволяє виявити, що запитувана по шині рядок вже кешовані у процесорному вузлі, і забезпечує виконання необхідних операцій. Це робиться за допомогою тегів кеша L2 і логічно підтримується тим фактом, що L1 є підмножиною L2.
Фізична реалізація архітектури
Нижче на Рис. 5 показано схема, що представляє системні плати, розроблені компанією Bull, які використовуються для фізичної реалізації архітектури PowerScale.
Багатопроцесорна материнська плата, яка використовується також як монтажної панелі для встановлення модулів ЦП, модулів основної пам'яті і однієї плати в / в (IOD).
Кожен модуль ЦП, побудований на базі PowerPC 601/604, включає два мікропроцесора та пов'язані з ними кеші. Є можливість модернізації системи, побудованої на базі процесорів 601, шляхом встановлення модулів ЦП з процесорами 604. Змішані конфігурації 601/604 не підтримуються.
Дочірня плата вводу / виводу (IOD) працює як моста між шинами MCA і комплексом ЦП і пам'яті. Підтримуються 2 канали MCA зі швидкістю передачі 160 Мбайт / с кожен. Хоча поставляється сьогодні підсистема в / в базується на технології MCA, це не є принциповим елементом архітектури PowerScale. В даний час проводяться дослідження можливостей реалізації декількох альтернативних шин введення / виводу, наприклад, PCI.
Кожна плата пам'яті складається з парного числа банків. Максимальне число банків дорівнює 16. Об'єм пам'яті на кожній платі може бути 64, 256 або 512 Мбайт.
Комутатор даних (DCB) інтегрований в декількох НВІС (4х16 біт) і функціонально з'єднує магістраль даних MPB_SysBus з підсистемою пам'яті, модулями ЦП і платою в / в. Ширина магістралі даних DCB на рівні масиву пам'яті становить 256 + 32 біт, а ширина магістралі даних для кожного порту ЦП і порту в / в дорівнює 64 + 8 біт. Операції DCB управляються контролером системної пам'яті (SMC) за допомогою командної шини, що забезпечує необхідну комутацію пристроїв.
Рис. 5. Фізична реалізація PowerScale

1   2   3   4   5   6   7   8

скачати

© Усі права захищені
написати до нас