Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторная работа №1.4_укр.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
180 Кб
Скачать
☆

2.2 Суперскалярні процесори

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

Прикладом комп'ютера з суперскалярним процесором є IBM RISC / 6000. Тактова частота процесора у ЕОМ була 62.5 МГц, а швидкодію системи на обчислювальних тестах досягало 104 Mflop (Mflop - одиниця виміру швидкодії процесора - мільйон операцій з плаваючою крапкою в секунду). Суперскалярний процесор не вимагає спеціальних векторизуется компіляторів, хоча компілятор повинен в цьому випадку враховувати особливості архітектури.

2.3 Векторна обробка даних

Векторний процесор "уміє" обробляти однією командою не одне єдине значення, а відразу масив (вектор) значень. Нехай A1, A2 і P - це три масиву, що мають однакову розмірність і однакову довжину, і є оператор

P = A1 + A2

Векторний процесор за один цикл виконання команди виконає попарне складання елементів масивів A1 і A2 і привласнить отримані значення відповідних елементів масиву P. Кожний операнд при цьому зберігається в особливому, векторному регістрі. звичайному,

послідовному процесору довелося б кілька разів виконувати операцію складання елементів двох масивів. Векторний процесор виконує лише одну команду! Зрозуміло, реалізація такої команди буде більш складною, більш детальне обговорення цієї проблеми міститься в третьому розділі цього підручника. Очевидно, за рахунок векторизації можна сподіватися (ми не випадково робимо тут це застереження) отримати високу продуктивність. Крім того, векторним ЕОМ властиві й інші цікаві особливості. Кількість команд, необхідних для виконання однієї і тієї ж програми, що використовує векторізуемие операції, менше у разі векторного процесора, ніж звичайного, скалярного. Зменшення потоку команд дозволяє знизити вимоги до пристроїв комунікації, у тому числі між процесором і оперативною пам'яттю комп'ютера. Інший момент полягає в тому, що при

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

Ø з пам'яті в пам'ять - в цьому випадку операнди витягуються з оперативної пам'яті, завантажуються в арифметичний пристрій і результат повертається в оперативну пам'ять;

Ø з регістра в регістр - операнди спочатку завантажуються в векторні регістри, потім

операнд передається в арифметичний пристрій і результат повертається в один з векторних регістрів.

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

і появою в конвеєрі першого результату. Якщо конвеєр вже завантажений, результат на його виході буде виходити в кожному такті. Прикладом ЕОМ з такою архітектурою є комп'ютери серії CYBER 200, час запуску у яких становило до 100 тактів. Це дуже велика величина, навіть при роботі з векторами довжиною 100 елементів, вищезазначені комп'ютери досягали лише половини від своєї максимально можливої продуктивності,

і це їх врешті-решт і згубило.

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

Нині домінують на ринку векторних комп'ютерів і найбільш відомими представниками є машини сімейства Cray, NEC, Fujitsu і Hitachi.

2.4 Процесори для паралельних комп'ютерів

Ідея паралелізму, як засобу збільшення швидкодії ЕОМ, виникла дуже давно - ще

в 19-му столітті. Прийнято виділяти чотири рівні паралелізму: 1. Паралелізм завдань - кожен процесор завантажується своєї власної незалежної від інших обчислювальної завданням. Паралелізм такого типу становить інтерес скоріше для системних адміністраторів, ніж рядових користувачів;

2. Паралелізм на рівні програми - обчислювальна програма розбивається на частини, які можуть виконуватися одночасно на різних процесорах;

3. Паралелізм команд - зазвичай реалізований на низькому рівні, це, наприклад, конвеєри і т.д .;

4. Паралелізм на рівні машинних слів і арифметичних операцій - в деяких ситуаціях, наприклад, додавання двох операндів виконується одночасним складанням всіх їх двійкових розрядів.

Як бачимо, в першому і другому випадках немає необхідності в якійсь особливій архітектурі процесора і лише в третьому і четвертому випадках потрібне введення нових елементів, мова про які вже йшлося вище. Але всі вони не є специфічними для паралельної багатопроцесорної архітектури.

2.5 Оперативна пам'ять

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

невисока швидкість роботи з оперативною пам'яттю буде визначати швидкодію комп'ютера. Час циклу роботи з пам'яттю tm зазвичай помітно більше, ніж час циклу центрального процесора tc. Якщо процесор инициализирует звернення до пам'яті, вона буде

зайнята протягом часу tc + tm і протягом цього проміжку часу жодне інше пристрій, в тому числі і сам процесор не зможуть працювати з оперативною пам'яттю. Таким чином, виникає проблема доступу до пам'яті.

Ця проблема вирішується спеціальною організацією оперативної пам'яті. Прийнята наступна класифікація паралельних комп'ютерів з архітектури підсистем оперативної пам'яті:

Ø системи з пам'яттю, що, у яких є одна велика віртуальна пам'ять і всі процесори мають однаковий доступ до даних і командам, що зберігаються в цій пам'яті;

Ø системи з розподіленою пам'яттю, у яких кожен процесор має свою локальну

оперативну пам'ять і до цієї пам'яті у інших процесорів немає доступу.

Відмінність цих двох типів пам'яті проявляється в структурі віртуальної пам'яті, тобто пам'яті, як вона "видно" процесору. Фізично пам'ять зазвичай ділиться на частини, доступ до яких може бути організований незалежно. Різниця між розділяється і розподіленою пам'яттю полягає в способі інтерпретації адреси. Ця відмінність простіше пояснити на наступному прикладі. Нехай один з процесорів виконує команду виду load r1, i - "завантажити в регістр r1 дані з комірки пам'яті i". Якщо команда виконується на комп'ютері з пам'яттю, що, номер комірки i має однаковий сенс для всіх процесорів, i є глобальним адресою. У випадку системи з розподіленою пам'яттю, осередок i різна для різних процесорів і в регістри r1 по цій команді будуть завантажені різні значення.

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

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

пам'яттю, що достатньо лише один раз задати відповідну структуру даних і розмістити її в оперативній пам'яті. Зупинимося докладніше на різних архітектурах підсистеми пам'яті.