- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •2. Надійність і відмовостійкість
- •3. Масштабованість
- •4. Сумісність і мобільність програмного забезпечення
- •5. Класифікація комп'ютерів по галузям застосування Персональні комп'ютери та робочі станції
- •Сервери
- •Мейнфрейми
- •Кластерні архітектури
- •Контрольні запитання
- •Тести tpc
- •2. Тест tpc-a
- •3. Тест tpc-b
- •4. Тест tpc-c
- •5. Майбутні тести tpc
- •2. Архітектура системи команд. Класифікація процесорів (cisc і risc)
- •3. Методи адресації та типи даних Методи адресації
- •4. Типи команд
- •5. Команди керування потоком команд
- •6. Типи й розміри операндів
- •2. Найпростіша організація конвеєра й оцінка його продуктивності
- •3. Структурні конфлікти й способи їхньої мінімізації
- •4. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів
- •5. Класифікація конфліктів за даними
- •6. Конфлікти за даними, що призводять до призупинки конвеєра
- •7. Методика планування компілятора для усунення конфліктів за даними
- •Контрольні запитання
- •2. Зниження втрат на виконання команд умовного переходу
- •Метод вичікування
- •Метод повернення
- •Затримані переходи
- •3. Статичне прогнозування умовних переходів: використання технології компіляторів
- •2. Обробка багатотактних операцій і механізми обходів у довгих конвеєрах
- •3. Конфлікти й прискорені пересилання в довгих конвеєрах
- •4. Підтримка точних переривань
- •Контрольні запитання
- •2. Паралелізм рівня команд: залежності й конфлікти за даними
- •Залежності
- •3. Паралелізм рівня циклу: концепції та методи
- •4. Основи планування завантаження конвеєра й розгортання циклів
- •Контрольні запитання
- •2. Динамічна оптимізація із централізованою схемою виявлення конфліктів
- •2. Подальше зменшення зупинок по керуванню: буфера цільових адрес переходів
- •Контрольні запитання
- •Процесор з архітектурою 80x86 і Pentium.
- •Особливості процесорів з архітектурою spark компанії Sun Microsystems.
- •Процесори pa-risc компанії Newlett-Packard
- •2.Особливості процесорів з архітектурою sparc компанії Sun Microsystems
- •Процесори pa-risc компанії Hewlett-Packard
- •Контрольні запитання
- •Процесор mc88110 компанії Motorola.
- •Особливості архітектури mips компанії mips Technology.
- •Особливості архітектури Alpha компанії dec.
- •Особливості архітектури power компанії ibm і power pc компанії Motorola, Apple і ibm.
- •2.Особливості архітектури mips компанії mips Technology
- •3.Особливості архітектури Alpha компанії dec
- •4.Особливості архітектури power компанії ibm і PowerPc компаній Motorola, Apple і ibm
- •Архітектура power
- •Еволюція архітектури power у напрямку архітектури PowerPc
- •Процесор PowerPc 603
- •Контрольні запитання
- •Термінологія в області паралельної обробки .
- •Питання створення програмного забезпечення.
- •Ахітектура паралельної обробки.
- •2.Питання створення програмного забезпечення.
- •1) Язикові розширення.
- •2) Розширення компіляторів.
- •3) Додавання нового язикового рівня.
- •4) Нова мова.
- •3.Архітектура паралельної обробки.
- •4.Елементи теорії конкурентних процесів. Події та процеси
- •Особливості мов конкурентного програмування
- •Моделі конкурентних процесів
- •Взаємодія процесів, синхронізація й передача даних
- •2. Внутрішня архітектура трансп’ютера
- •3. Послідовна обробка
- •Регістри трансп’ютера
- •4. Інструкції
- •Безпосередні функції
- •Непрямі функції
- •Ефективність кодування
- •5. Підтримка паралелізму
- •6. Зв'язок
- •Лінії зв'язку
- •7. Таймер
- •8. Альтернативне виконання
- •9. Інструкції із плаваючою крапкою
- •Контрольні запитання
- •2. Найпростіші процеси-примітиви
- •3. Послідовні процеси-композиції
- •4. Паралельні процеси
- •5. Канали зв'язку
- •6. Конструктор альтернативного процесу
- •7. Описи
- •8. Масиви
- •9. Оголошення процесів
- •10. Цикли і масиви процесів
- •Контрольні запитання
- •2. Структури програмування
- •Прості паралельні процеси
- •Синхронізація за допомогою керуючих сигналів
- •3. Мовні засоби для програмування в реальному масштабі часу
- •4. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
4. Підтримка точних переривань
Інша проблема, пов'язана з реалізацією команд із більшим часом виконання, може бути проілюстрована за допомогою наступної послідовності команд:
DIVF F0,F2,F4
ADDF F10,F10,F8
SUBF F12,F12,F14
Ця послідовність команд виглядає дуже просто. У ній відсутні які-небудь залежності. Однак вона приводить до появи нових проблем через те, що видана раніше команда може завершитися після команди, виданої для виконання пізніше. У даному прикладі можна чекати, що команди ADDF і SUBF завершуватися раніше, ніж завершиться команда DIVF. Цей ефект є типовим для конвеєрів команд із більшим часом виконання й називається позачерговим завершенням команд (out-of-order completion). Тоді, наприклад, якщо команда DIVF викличе арифметичне переривання після завершення команди ADDF, ми не зможемо реалізувати точне переривання на рівні апаратур. У дійсності, оскільки команда ADDF міняє значення одного зі своїх операндів, неможливо навіть за допомогою програмних засобів відновити стан, що було перед виконанням команди DIVF.
Є чотири можливих підходи для роботи в умовах позачергового завершення команд. Перший з них просто ігнорує проблему й пропонує механізми неточного переривання. Цей підхід використовувався в 60-х і 70-х роках і усе ще застосовується в деяких суперкомп'ютерах, у яких деякі класи переривань заборонені або обробляються апаратурами без зупинки конвеєра. Такий підхід важко використати в сучасних машинах при наявності концепції віртуальної пам'яті й стандарту на операції із плаваючою крапкою IEEE, які вимагають реалізації точного переривання шляхом комбінації апаратних і програмних засобів. У деяких машинах ця проблема вирішується шляхом введення двох режимів виконання команд: швидкого, але з можливо не точними перериваннями, і повільну, гарантуючу реалізацію точних переривань.
Другий підхід полягає в буферизації результатів операції до моменту завершення виконання всіх команд, що передували даній. У деяких машинах використовується цей підхід, але він стає усе більш дорогим, якщо відмінності в часі виконання різних команд великі, оскільки стає більшим кількість результатів, які необхідно буферизувати. Більше того, результати із цієї буферизованої черги необхідно пересилати для забезпечення продовження видачі нових команд. Це вимагає великої кількості схем порівняння й багатовходових мультиплексорів. Є дві варіації цього основного підходу. Перша називається буфером історії (history file), що использовались у машині CYBER 180/990. Буфер історії відслідковує первісні значення регістрів. Якщо виникає переривання й стан машини необхідно відкотити назад до крапки, що передувала деяким командам, що завершилися позачергово, то первісне значення регістрів може бути відновлене із цього буфера історії. Подібна методика використовувалася також при реалізації автоінкрементної і автодекрементної адресації в машинах типу VAX. Інший підхід називається буфером майбутнього (future file). Цей буфер зберігає нові значення регістрів. Коли всі попередні команди завершені, основний регістровий файл поновлюється значеннями із цього буфера. При перериванні основний регістровий файл зберігає точні значення регістрів, що спрощує організацію переривання. У наступній главі будуть розглянуті деякі розширення цієї ідеї.
Третій використовуваний метод полягає в тім, щоб дозволити в ряді випадків неточні переривання, але при цьому зберегти досить інформації, щоб підпрограма обробки переривання могла виконати точну послідовність переривання. Це припускає наявність інформації про команди, що перебували в конвеєрі, і їхніх адрес. Тоді після обробки переривання, програмне забезпечення завершує виконання всіх команд, що передували останній команді, що завершилася, а потім послідовність може бути запущена заново. Розглянемо наступний найгірший випадок:
Команда 1 - довга команда, що зрештою викликає переривання
Команда 2, ... , Команда n-1 - послідовність команд, виконання яких не завершилося
Команда n - команда, виконання якої завершилося
Маючи значення адрес всіх команд у конвеєрі та адреса повернення з переривання, програмне забезпечення може визначити стан команди 1 і команди n. Оскільки команда n завершила виконання, хотілося б продовжити виконання з команди n+1. Після обробки переривання програмне забезпечення повинне змоделювати виконання команд із 1 по n-1. Тоді можна здійснити повернення з переривання на команду n+1. Найбільша неприємність такого підходу пов'язана з ускладненням підпрограми обробки переривання. Але для простих конвеєрів, подібних розглянутому нами, є й спрощення. Якщо команди з 2 по n усі є цілочисельними, то ми просто знаємо, що у випадку завершення виконання команди n, всі команди з 2 по n-1 також завершили виконання. Таким чином, необхідно обробляти тільки операцію із плаваючою крапкою. Щоб зробити цю схему працюючою, кількість операцій ПК, що виконуються зі сполученням, може бути обмежена. Наприклад, якщо допускається сполучення тільки двох операцій, те тільки перервана команда повинна завершуватися програмними засобами. Це обмеження може знизити потенційну пропускну здатність, якщо конвеєри плаваючої крапки є досить довгими або якщо є значна кількість функціональних пристроїв. Такий підхід використовувався в архітектурі SPARC, що дозволяє сполучати виконання цілочисельними операцій з операціями плаваючої крапки.
Четвертий метод являє собою гібридну схему, що дозволяє продовжувати видачу команд тільки якщо відомо, що всі команди, що передували видаванємій, будуть завершені без переривання. Це гарантує, що у випадку виникнення переривання жодна наступна за нею команда не буде завершена, а всі попередні будуть завершені. Іноді це означає необхідність припинення машини для підтримки точних переривань. Щоб ця схема працювала, необхідно, щоб функціональні пристрої плаваючої крапки визначали можливість появи переривання на самій ранній стадії виконання команд так, щоб запобігти завершенню виконання наступних команд. Така схема використовується, наприклад, у мікропроцесорах R2000/R3000 і R4000 компанії MIPS.