- •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. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
Контрольні запитання
Які методи дозволяють знизити вплив конфліктів за даними та по керуванню при використанні можливостей процесора паралелізму, закладеного у програмах?
Які типи залежностей можуть існувати між командами?
Що означає „залежність по іменах” між командами програми?
Які існують різновиди залежності по іменах?
У чому полягає залежність по керуванню між командами програми?
На чому фокусується увага при аналізі паралелізму на рівні циклу?
У чому полягає алгоритм розгортання циклів?
Рекомендована література
1. Самофалов и др. Основы теории многоуровневых конвеерных вычислительных систем. – К.,”Техніка”, 1980.
Лекція 9. Усунення залежностей по даним і механізми динамічного планування
План лекції
1. Основна ідея динамічної оптимізації.
2. Динамічна оптимізація із централізованою схемою виявлення конфліктів.
Виклад лекції
1. Основна ідея динамічної оптимізації
Головним обмеженням методів конвеєрної обробки, які ми розглядали раніше, є видача для виконання команд строго в порядку, запропонованому програмою: якщо виконання якої-небудь команди в конвеєрі припинялося, то випливаючі за нею команди також припинялися. Таким чином, при наявності залежності між двома близько розташованими в конвеєрі командами виникало припинення обробки багатьох команд. Але якщо є кілька функціональних пристроїв, багато хто з них можуть виявитися незавантаженими. Якщо команда j залежить від довгої команди i, що виконується в конвеєрі, то всі команди, що випливають за командою j повинні призупинитися доти, поки команда i не завершиться й не почне виконуватися команда j. Наприклад, розглянемо наступну послідовність команд:
DIVD F0,F2,F4
ADDD F10,F0,F8
SUBD F8,F8,F14
Команда SUBD не може виконуватися через те, що залежність між командами DIVD і ADDD привела до призупинки конвеєра. Однак команда SUBD не має ніяких залежностей від команд у конвеєрі. Це обмеження продуктивності, що може бути усунуто зняттям вимоги про виконання команд у суворому порядку.
У розглянутому нами конвеєрі структурні конфлікти й конфлікти за даними перевірялися під час стадії декодування команди (ID). Якщо команда могла нормально виконуватися, вона видавалася із цього щабля конвеєра в наступні. Щоб дозволити почати виконання команди SUBD з попереднього приклада, необхідно розділити процес видачі на дві частини: перевірку наявності структурних конфліктів і очікування відсутності конфлікту за даними. Коли ми видаємо команду для виконання, ми можемо здійснювати перевірку наявності структурних конфліктів; таким чином, ми усе ще використовуємо впорядковану видачу команд. Однак ми хочемо почати виконання команди як тільки стануть доступними її операнди. Таким чином, конвеєр буде здійснювати неупорядковане виконання команд, що означає й неупорядковане завершення команд.
Неупорядковане завершення команд створює основні труднощі при обробці виняткових ситуацій. У розглянутих в даному дослідженні машинах з динамічним плануванням потоку команд переривання будуть неточними, оскільки команди можуть завершитися до того, як виконання більш ранньої виданої команди викличе виняткову ситуацію. Таким чином, дуже важко повторити запуск після переривання. Замість того, щоб розглядати ці проблеми негайно, ми обговоримо можливі рішення для реалізації точних переривань пізніше в контексті машин, що використають планування по припущенню.
Щоб реалізувати неупорядковане виконання команд, ми розщеплюємо щабель ID на два щаблі:
Видача - декодування команд, перевірка структурних конфліктів.
Читання операндів - очікування відсутності конфліктів за даними й наступне читання операндів.
Потім, як і в розглянутому нами конвеєрі, треба щабель EX. Оскільки для виконання команд ПК може знадобидись декілька тактів залежно від типу операції, ми повинні знати, коли команда починає виконуватися і коли закінчується. Це дозволяє декільком командам виконуватися в той самий момент часу. На додаток до цих змін структури конвеєра ми змінимо і структуру функціональних пристроїв, змінюючи кількість пристроїв, затримку операцій і ступінь конвеєризації функціональних пристроїв так, щоб краще використати ці методи конвеєризації.