ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6766
Скачиваний: 22
431
повідність поміж регістрами загального
призначення логічних процесорів та
фізичного процесора (використовують
одну таку таблицю на кожен логічний
процесор).
При паралельному
опрацюванні двох потоків підтримується
вміст двох лічильників команд. Переважна
частка команд отримується з таблиці
Trace Cache
(ТС), де ці команди зберігають
в декодованому (трансльованому до рівня
мікрооперацій) виді. Доступ до ТС обидва
активні логічні процесори отримують
за чергою, через такт. У той же час, коли
активним є лише один логічний процесор,
він отримує монопольний доступ до ТС,
без чергування за тактами. Так само
відбувається і доступ до пам'яті команд,
коли треба опрацювати складну команду,
що не має динамічно компільованого
варіанту для подання на безпосереднє
виконання. Буфери перетворення з
передісторією ITLB
(Instruction
Translation
Look-aside
Buffer), задіяні
за умови відсутності необхідних команд
у кеш пам'яті команд, дублюються і
постачають команди за правилом "кожен
для свого потоку". Блок декодування
команд є поділюваним і у випадку, коли
потрібне декодування команд для обох
потоків, обслуговує їх за чергою
(знову-таки через такт). Блоки черги
мікрооперацій та їх розміщення поділено
навпіл, аби розподілити елементи для
кожного логічного процесора. Блоки
диспетчерів у кількості 5 штук опрацьовують
черги декодованих команд, незважаючи
на приналежність до LP0
або LP1, і
спрямовують команди на виконання
цільовим виконавчим блокам залежно від
готовності до виконання операндів
команд і наявності вільного стану
цільових виконавчих блоків (динамічне
виконання). Кеш пам'яті усіх рівнів
(L1/L2
для Хеоп, а також L3
для Xeon MP)
є цілком поділюваними поміж двома
логічними процесорами, проте для
забезпечення когерентності (цілісності)
даних записи до буферів перетворення
з передісторією DTLB
(Data Translation
Look-aside
Buffer)
забезпечуються дескрипторами у вигляді
ідентифікаторів логічних процесорів.
Таким чином, команди обох логічних процесорів можна виконувати одночасно на ресурсах одного фізичного процесора, причому ці ресурси поділено на чотири наступні класи: дубльовані, цілком поділювані, із дескрипторами елементів, динамічно поділювані залежно від режиму роботи: однозадачний режим першого або другого логічного процесора чи багатозадачний режим.
Більшість прикладних програм, що отримують прискорення у багатопроцесорних системах, можуть також прискорюватися і на процесорі із увімкнутим режимом гіпер-
432
потокової обробки без будь-яких змін власних машинних кодів. Але існують і проблеми, Наприклад, якщо один процес знаходиться в стані очікування, то він спроможний захопити усі ресурси фізичного процесора, перешкоджаючи тим самим функціонуванню другого логічного процесора. Таким чином, продуктивність при використанні технології гіперпотокової обробки може іноді й знижуватися (до 20%).
Ще однією метою реалізації технології гіперпотокової обробки було зведення до мінімуму зростання числа транзисторів, площі кристала та енергоспоживання при помітному зростанні продуктивності. І це завдання вдалося виконати. Додання до Хеоп/ Xeon-МР підтримки технології гіперпотокової обробки збільшило площу кристала та енергоспоживання лише на 5%.
Загалом ефективність багатопотокової технології підтверджується зростанням продуктивності. Наступним рисунком (рис. 12.7) подано порівняльну продуктивність, що забезпечує двопроцесорна система без використання багатопотокової технології та із використанням цієї технології
Бачимо зростання продуктивності (темний колір) при використанні другого процесора в порівнянні із базовим її рівнем для одного задіяного процесора, та додатковий приріст продуктивності за рахунок увімкнення багатопотокової обробки (світлий колір).
12.4. Класифікація паралельних комп'ютерних систем
12.4.1. Класифікація Шора
Одна з перших класифікацій комп'ютерних систем була запропонована Д. Шором на початку 70-х років. Вона цікава тим, що є спробою виділення типових способів компонування комп'ютерних систем на основі фіксованого числа базових блоків: пристрою керування, арифметико-логічного пристрою, пам'яті команд і пам'яті даних. Додатково передбачається, що вибірка з пам'яті даних може здійснюватися словами, тобто вибираються всі розряди одного слова, і/або бітовим шаром - по одному розряду з однієї і тієї ж позиції кожного слова (іноді ці два способи називають горизонтальною і вертикальною
433
вибірками відповідно). Звичайно ж, при аналізі даної класифікації треба робити знижку на час її появи, оскільки передбачити велику різноманітність паралельних систем теперішнього часу тоді було у принципі неможливо. Отже, згідно з класифікацією Д. Шора, всі комп'ютери розбиваються на шість класів, перший з яких дістав назву машини І, другий - машини II, і т. д.
На поданих нижче рисунках позначено: ПІ - пам'ять команд (інструкцій), ПК - пристрій керування, АЛП - арифметико-логічний пристрій, ПД - пам'ять даних.
Машина І - це комп'ютерна система, яка містить пристрій керування, арифметико-логічний пристрій, пам'ять команд і пам'ять даних із послівною вибіркою (рис. 12.8).
Зчитування даних здійснюється вибіркою всіх розрядів деякого слова для їх паралельної обробки в арифметико-логічному пристрої. Склад АЛП спеціально не вказується, що допускає наявність декількох функціональних пристроїв, в тому числі конвеєрного типу. За цими міркуваннями до даного класу потрапляють як класичні послідовні машини (IBM 701, PDP-11, VAX 11/780), так і конвеєрні скалярні (CDC 7600) і векторно-конвеєрні (CRAY-1).
Якщо в машині І здійснювати вибірку не по словах, а по одному розряду з усіх слів, то одержимо машину II (рис. 12.9). Слова в пам'яті даних, як і раніше, розташовуються горизонтально, але доступ до них здійснюється інакше. Якщо в машині І відбувається послідовна обробка слів при паралельній обробці розрядів, то в машині II - послідовна обробка бітових шарів при паралельній обробці множини слів.
Структура машини II лежить в основі асоціативних комп'ютерів (наприклад, так побудовано центральний процесор машини STARAN), причому фактично такі комп'ютери мають в складі арифметико-логічного пристрою множину порівняно простих операцій-
434
них пристроїв порозрядної обробки даних. Іншим прикладом служить матрична система ICL DAP, яка може одночасно обробляти по одному розряду з 4096 слів.
Якщо об'єднати принципи побудови машин І і II, то одержимо машину III (рис. 12.10). Ця машина має два арифметико-логічні пристрої - горизонтальний і вертикальний, а також модифіковану пам'ять даних, яка забезпечує доступ як до слів, так і до бітових шарів. Вперше ідею побудови таких систем у 1960 році висунув У Шуман, що називав їх ортогональними (якщо пам'ять представляти як матрицю слів, то доступ до даних здійснюється в напрямі, "ортогональному" традиційному - не по словах (рядках), а по бітових шарах (стовпцях)). У принципі, як машину STARAN, так і ICL DAP можна запрограмувати на виконання функцій машини III, але оскільки вони не мають окремих АЛП для обробки слів і бітових шарів, віднести їх до даного класу не можна. Повноправними представниками машин класу III є обчислювальні системи сімейства OMEN-60 фірми Sanders Associates, побудовані в прямій відповідності до концепції ортогональної машини.
Якщо в машині І збільшити кількість пар арифметико-логічний пристрій <==> пам'ять даних (іноді цю пару називають процесорним елементом), то одержимо машину IV (рис. 12.11). Єдиний пристрій керування видає команду за командою відразу всім процесорним елементам. З одного боку, відсутність з'єднань між процесорними елементами робить подальше нарощування їх числа відносно простим, але з іншого боку, сильно обмежує застосовність машин цього класу. Таку структуру має обчислювальна система РЕРЕ, яка об'єднує 288 процесорних елементів
435
Якщо ввести безпосередні лінійні зв'язки між сусідніми процесорними елементами машини IV, то одержимо структуру машини V (рис. 12.12). Будь-який процесорний елемент тепер може звертатися до даних як у своїй пам'яті, так і в пам'яті безпосередніх сусідів. Подібна структура характерна, наприклад, для класичної матричної багатопроцесорної системи ILLIAC IV.
Відмітимо, що у всіх машинах з І-ї по V-y дотримана концепція розділення пам'яті даних і арифметико-логічних пристроїв, припускаючи наявність шини даних або якого-небудь комутуючого елемента між ними. Машина VI, названа матрицею з функціональною пам'яттю (або пам'яттю з вбудованою логікою), є іншим підходом, що передбачає розподіл логіки процесора по всьому запам'ятовуючому пристрою (рис.12.13). Прикладом можуть служити як прості асоціативні запам'ятовуючі пристрої, так і складні асоціативні процесори.
12.4.2. Класифікація Фліна
Одну з перших практично значимих класифікацій паралельних комп'ютерних систем подав у 1966 році співробітник фірми IBM Майкл Флін, який зараз є професором Стен-фордського університету (США). Його класифікація базується на оцінці потоку інформації, яка поділена на потік даних між основною пам'яттю та процесором, та потік команд, які виконує процесор. При цьому потік даних та команд може бути як одиничним, так і множинним. Згідно з М. Фліном, усі комп'ютерні системи поділяють наступним чином:
-
ОКОД - комп'ютерні системи з одиничним потоком команд та одиничним потоком даних (SISD - Single Instruction stream Single Data stream).
-
МКОД - комп'ютерні системи з множинним потоком команд та одиничним потоком даних (MISD - Multiply Instruction stream Single Data stream).