- •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.
Лекція 8. Паралелелізм на рівні виконання команд, планування завантаження конвеєра та методика розгортання циклів
План лекції
Паралелізм на рівні виконання команд, планування завантаження конвеєра та методика розгортання циклів.
Паралелізм рівня команд: залежності й конфлікти за даними.
Паралелізм рівня циклу: концепції та методи.
Основи планування завантаження конвеєра й розгортання циклів.
Виклад лекції
1. Паралелізм на рівні виконання команд, планування завантаження конвеєра та методика розгортання циклів
Раніше ми розглянули засоби конвеєризації, які забезпечують сполучений режим виконання команд, коли вони є незалежними друг від друга. Це потенційне сполучення виконання команд називається паралелізмом на рівні команд. У даній лекції ми розглянемо ряд методів розвитку ідей конвеєризації, заснованих на збільшенні ступеня паралелізму, використовуваної при виконанні команд. Ми почнемо з розгляду методів, що дозволяють знизити вплив конфліктів за даними й по керуванню, а потім повернемося до теми розширення можливостей процесора по використанню паралелізму, закладеного в програмах. Потім ми обговоримо сучасні технології компіляторів, використовувані для збільшення ступені паралелізму рівня команд.
Для початку запишемо вираження, що визначає середню кількість тактів для виконання команди в конвеєрі:
CPI конвеєра = CPI ідеального конвеєра +
+ Припинення через структурні конфлікти +
+ Припинення через конфлікти типу RAW +
+ Припинення через конфлікти типу WAR +
+ Припинення через конфлікти типу WAW +
+ Припинення через конфлікти по керуванню
CPI ідеального конвеєра є не що інше, як максимальна пропускна здатність, досяжна при реалізації. Зменшуючи кожне з доданків у правій частині виразу, ми мінімізуємо загальний CPI конвеєра і у такий спосіб збільшуємо пропускну здатність команд. Цей вираз дозволяє також охарактеризувати різні методи, які будуть розглянуті в цій лекції, по тім компоненти загального CPI, що відповідний метод зменшує. На рис. 1 показані деякі методи, які будуть розглянуті, і їхній вплив на величину CPI.
Перш, ніж почати розгляд цих методів, необхідно визначити концепції, на яких ці методи побудовані.
2. Паралелізм рівня команд: залежності й конфлікти за даними
Всі розглянуті тут методи використовують паралелізм, закладений у послідовності команд. Як ми встановили вище цей тип паралелізму називається паралелізмом рівня команд. Ступінь паралелізму, доступна усередині базового блоку (лінійної послідовності команд, переходи із зовні якої дозволені тільки на її вхід, а переходи усередині якої дозволені тільки на її вихід) досить мала. Наприклад, середня частота переходів у цілочисельних програмах становить близько 16%. Це означає, що в середньому між двома переходами виконуються приблизно п'ять команд. Оскільки ці п'ять команд можливо взаємозалежні, то ступінь перекриття, що ми можемо використати усередині базового блоку, можливо буде менше ніж п'ять. Щоб одержати істотне поліпшення продуктивності, ми повинні використати паралелізм рівня команд одночасно для декількох базових блоків.
Метод |
Знижує |
Розгортання циклів |
Припинення по керуванню |
Базове планування конвеєра |
Припинення RAW |
Динамічне планування із централізованою схемою керування |
Припинення RAW |
Динамічне планування з перейменуванням регістрів |
Припинення WAR і WAW |
Динамічне прогнозування переходів |
Припинення по керуванню |
Видача декількох команд в одному такті |
Ідеальний CPI |
Аналіз залежностей компілятором |
Ідеальний CPI і припинення за даними |
Програмна конвеєризація й планування трас |
Ідеальний CPI і припинення за даними |
Виконання по припущенню |
Всі припинення за даними й керуванню |
Динамічне усунення неоднозначності пам'яті |
Припинення RAW, пов'язані з пам'яттю |
Рис. 1.
Найпростіший і загальний спосіб збільшення ступеня паралелізму, доступного на рівні команд, є використання паралелізму між ітераціями циклу. Цей тип паралелізму часто називається паралелізмом рівня ітеративного циклу. Нижче наведений простий приклад циклу, що виконує додавання двох 1000-елементних векторів, що є повністю паралельним:
for (i = 1; i <= 1000; i = i + 1)
x[i] = x[i] + y[i];
Кожна ітерація циклу може перекриватися з будь-якою іншою ітерацією, хоча усередині кожної ітерації циклу практична можливість перекриття невелика.
Є кілька методів для перетворення такого паралелізму рівня циклу в паралелізм рівня команд. Ці методи засновані головним чином на розгортанні циклу або статично, використовуючи компілятор, або динамічно за допомогою апаратури. Нижче в цьому розділі ми розглянемо докладний приклад розгортання циклу.
Важливим альтернативним методом використання паралелізму рівня команд є використання векторних команд. По суті векторна команда оперує з послідовністю елементів даних. Наприклад, наведена вище послідовність на типовій векторній машині може бути виконана за допомогою чотирьох команд: двох команд завантаження векторів x і y з пам'яті, однієї команди додавання двох векторів і однієї команди запису вектора-результату. Звичайно, ці команди можуть бути конвеєризованими й мати відносно більші затримки виконання, але ці затримки можуть перекриватися. Векторні команди й векторні машини заслуговують окремого розгляду, що виходить за рамки даного курсу. Хоча розробка ідей векторної обробки передувала появі більшості методів використання паралелізму, які тут розглядаються, машини, що використовують паралелізм рівня команд поступово заміняють машини, що базуються на векторній обробці. Причини цього зрушення технології обговорюються більш детально пізніше в даному курсі.