- •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. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
2. Зниження втрат на виконання команд умовного переходу
Є кілька методів скорочення припинень конвеєра, що виникають через затримки виконання умовних переходів. У даному розділі обговорюються чотири прості схеми, використовувані під час компіляції. У цих схемах прогнозування напрямку переходу виконується статично, тобто прогнозований напрямок переходу фіксується для кожної команди умовного переходу на увесь час виконання програми. Після обговорення цих схем ми досліджуємо питання про правильність пророкування напрямку переходу компіляторами, оскільки всі ці схеми засновані на такій технології. У наступній главі ми розглянемо могутніші схеми, використовувані компіляторами (такі, наприклад, як розгортання циклів), які зменшують частоту команд умовних переходів при реалізації циклів, а також динамічні, апаратно реалізовані схеми прогнозування.
Метод вичікування
Найпростіша схема обробки команд умовного переходу полягає в заморожуванні або придушенні операцій у конвеєрі, шляхом блокування виконання будь-якої команди, що випливає за командою умовного переходу, доти, поки не стане відомим напрямок переходу. Рис.1 відбивав саме такий підхід. Привабливість такого рішення полягає в його простоті.
Метод повернення
Більше гарна й не на багато більше складна схема полягає в тому, щоб прогнозувати умовний перехід як невиконуваний. При цьому апаратури повинна просто продовжувати виконання програми, як якби умовний перехід зовсім не виконувався. У цьому випадку необхідно подбати про те, щоб не змінити стан машини доти, поки напрямок переходу не стане остаточно відомим. У деяких машинах ця схема з невиконуваними за прогнозом умовними переходами реалізована шляхом продовження вибірки команд, як якби умовний перехід був звичайною командою. Поводження конвеєра виглядає так, начебто нічого незвичайного не відбувається. Однак, якщо умовний перехід насправді виконується, то необхідно просто очистити конвеєр від команд, обраних слідом за командою умовного переходу й заново повторити вибірку команд (рис. 2).
Невиконуємий умовний перехід |
IF |
ID |
EX MEMWB
|
Команда i+1 |
|
IF |
IDEXMEMWB
|
Команда i+2 |
|
|
IFIDEXMEMWB
|
Команда i+3 |
|
|
IFIDEXMEMWB
|
Команда i+4 |
|
|
IFIDEXMEMWB |
|
|
|
|
Виконуємий умовний перехід |
IF |
ID |
EX MEMWB
|
Команда i+1 |
|
IF |
IDEXMEMWB
|
Команда i+2 |
|
|
stallIFIDEXMEMWB
|
Команда i+3 |
|
|
stallIFIDEXMEMWB |
Команда i+4 |
|
|
stallIFIDEXMEM |
Рис. 2. Діаграма роботи модернізованого конвеєра
Альтернативна схема прогнозує перехід як виконуваний. Як тільки команда умовного переходу декодована й обчислений цільова адреса переходу, ми припускаємо, що перехід виконуваний, і здійснюємо вибірку команд і їхнє виконання, починаючи із цільової адреси. Якщо ми не знаємо цільову адресу переходу раніше, ніж довідаємося остаточний напрямок переходу, у цього підходу немає ніяких переваг. Якби умова переходу залежалася від безпосередньо попередньої команди, то відбулося б припинення конвеєра через конфлікт за даними для регістра, що є умовою переходу, і ми б довідалися спочатку цільову адресу. У таких випадках прогнозувати перехід як виконуваний було б вигідно. Додатково в деяких машинах (особливо в машинах із установлюваними за замовчуванням кодами умов або могутнішим (а тому й більше повільним) набором умов переходу) цільова адреса переходу відома раніше остаточного напрямку переходу, і схема прогнозу переходу як виконуваного має сенс.