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

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

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

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

Добавлен: 24.12.2021

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

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

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



431


повідність поміж регістрами загального призначення логічних процесорів та фізичного процесора (використовують одну таку таблицю на кожен логічний процесор).


При паралельному опрацюванні двох потоків підтримується вміст двох лічильників команд. Переважна частка команд отримується з таблиці Trace Cache (ТС), де ці коман­ди зберігають в декодованому (трансльованому до рівня мікрооперацій) виді. Доступ до ТС обидва активні логічні процесори отримують за чергою, через такт. У той же час, коли активним є лише один логічний процесор, він отримує монопольний доступ до ТС, без чергування за тактами. Так само відбувається і доступ до пам'яті команд, коли треба опрацювати складну команду, що не має динамічно компільованого варіанту для подання на безпосереднє виконання. Буфери перетворення з передісторією ITLB (In­struction 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).