
- •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. Найпростіша організація конвеєра й оцінка його продуктивності
Для ілюстрації основних принципів побудови процесорів ми будемо використати найпростішу архітектуру, що містить 32 цілочисельних регістра загального призначення (R0,...,R31), 32 регістра плаваючої крапки (F0,...,F31) і лічильник команд PC. Будемо вважати, що набір команд нашого процесора включає типові арифметичні й логічні операції, операції із плаваючою крапкою, операції пересилання даних, операції керування потоком команд і системні операції. В арифметичних командах використовується трьохадресний формат, типовий для RISC-процесорів, а для звертання до пам'яті використовують операції завантаження й запису вмісту регістрів на згадку.
Виконання типової команди можна розділити на наступні етапи:
вибірка команди - IF (за адресою, заданому лічильником команд, з пам'яті витягає команда);
декодування команди / вибірка операндыв з регістрів - ID;
виконання операції / обчислення ефективної адреси пам'яті - EX;
звертання до пам'яті - MEM;
запам'ятовування результату - WB.
Можна представити схему найпростішого процесора, що виконує зазначені вище етапи виконання команд без сполучення. Щоб конвеєризувати цю схему, ми можемо просто розбити виконання команд на зазначені вище етапи, відвівши для виконання кожного етапу один такт синхронізації, і починати в кожному такті виконання нової команди. Природно, для зберігання проміжних результатів кожного етапу необхідно використати регістрові станції. Хоча загальний час виконання однієї команди в такому конвеєрі буде становити п'ять тактів, у кожному такті апаратури буде виконувати в сполученому режимі п'ять різних команд.
Роботу конвеєра можна умовно представити у вигляді зрушених у часі схем процесора (рис. 1). Цей малюнок добре відбиває сполучення в часі виконання різних етапів команд. Однак частіше для подання роботи конвеєра використаються часові діаграми (рис. 2), на яких звичайно зображуються виконувані команди, номери тактів і етапи виконання команд.
Конвеєризація збільшує пропускну здатність процесора (кількість команд, що завершуються в одиницю часу), але вона не скорочує час виконання окремої команди. У дійсності, вона навіть трохи збільшує час виконання кожної команди через накладні витрати, пов'язаних з керуванням регістровими станціями. Однак збільшення пропускної здатності означає, що програма буде виконуватися швидше в порівнянні із простою неконвеєрною схемою.
Той факт, що час виконання кожної команди в конвеєрі не зменшується, накладає деякі обмеження на практичну довжину конвеєра. Крім обмежень, пов'язаних із затримкою конвеєра, є також обмеження, що виникають у результаті незбалансованості затримки на кожному його щаблі й через накладні витрати на конвеєризацію. Частота синхронізації не може бути вище, а, отже, такт синхронізації не може бути менше, ніж час, необхідне для роботи найбільш повільного щабля конвеєра. Накладні витрати на організацію конвеєра виникають через затримку сигналів у конвеєрних регістрах (засувках) і через перекоси сигналів синхронізації. Конвеєрні регістри до тривалості такту додають час установки й затримку поширення сигналів. У граничному випадку тривалість такту можна зменшити до суми накладних витрат і перекосу сигналів синхронізації, однак при цьому в такті не залишиться часу для виконання корисної роботи з перетворення інформації.
Як приклад розглянемо неконвеєрну машину з п'ятьма етапами виконання операцій, які мають тривалість 50, 50, 60, 50 і 50 нс відповідно (рис. 3). Нехай накладні витрати на організацію конвеєрної обробки становлять 5 нс. Тоді середній час виконання команди в неконвеєрній машині буде дорівнює 260 нс. Якщо ж використовується конвеєрна організація, тривалість такту буде дорівнює тривалості самого повільного етапу обробки плюс накладні витрати, тобто 65 нс. Цей час відповідає середньому часу виконання команди в конвеєрі. Таким чином, прискорення, отримане в результаті конвеєризації, буде дорівнює:
Середній час виконання команди в неконвеєрному режимі Середній час виконання команди в конвеєрному режимі |
=260 65=4 |
Конвеєризація ефективна тільки тоді, коли завантаження конвеєра близьке до повного, а швидкість подачі нових команд і операндів відповідає максимальній продуктивності конвеєра. Якщо відбудеться затримка, то паралельно буде виконуватися менше операцій і сумарна продуктивність знизиться. Такі затримки можуть виникати в результаті виникнення конфліктних ситуацій. У наступних розділах будуть розглянуті різні типи конфліктів, що виникають при виконанні команд у конвеєрі, і способи їхнього дозволу.
Рис. 1 Зображення роботи конвейера
Номер команди |
Номер такта |
|
|||
|
1 |
2 |
3 |
456789 |
|
Команда i |
IF |
ID |
EX |
MEMWB
|
|
Команда i+1 |
|
IF |
ID |
EXMEMWB
|
|
Команда i+2 |
|
|
IF |
IDEXMEMWB
|
|
Команда i+3 |
|
|
|
IFIDEXMEMWB
|
|
Команда i+4 |
|
|
|
IFIDEXMEMWB |
Рис. 2. Діаграма работи простого конвейера
Рис. 3 Ефект конвеєризації при виконанні 3-х команд - чотириразове прискорення
При реалізації конвеєрної обробки виникають ситуації, які перешкоджають виконанню чергової команди з потоку команд у призначеному для неї такті. Такі ситуації називаються конфліктами. Конфлікти знижують реальну продуктивність конвеєра, що могла б бути досягнута в ідеальному випадку. Існують три класи конфліктів:
Структурні конфлікти, які виникають через конфлікти по ресурсах, коли апаратні засоби не можуть підтримувати всі можливі комбінації команд у режимі одночасного виконання зі сполученням.
Конфлікти за даними, виникаючі у випадку, коли виконання однієї команди залежить від результату виконання попередньої команди.
Конфлікти по керуванню, які виникають при конвеєризації команд переходів і інших команд, які змінюють значення лічильника команд.
Конфлікти в конвеєрі приводять до необхідності припинення виконання команд (pipeline stall). Звичайно в найпростіших конвеєрах, якщо припиняється яка-небудь команда, то всі наступні за нею команди також припиняються. Команди, що передують припиненій, можуть продовжувати виконуватися, але під час припинення не вибирається жодна нова команда.