- •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. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів
Одним з факторів, що впливає на продуктивність конвеєрних систем, є міжкомандні логічні залежності. Такі залежності у великому ступені обмежують потенційний паралелізм суміжних операцій, забезпечуваний відповідними апаратними засобами обробки. Ступінь впливу цих залежностей визначається як архітектурою процесора (в основному, структурою керування конвеєром команд і параметрами функціональних пристроїв), так і характеристиками програм.
Конфлікти за даними виникають у тому випадку, коли застосування конвеєрної обробки може змінити порядок обігів за операндами так, що цей порядок буде відрізнятися від порядку, що спостерігається при послідовному виконанні команд на неконвеєрній машині. Розглянемо конвеєрне виконання послідовності команд на рисунку 5.
.
ADD |
R1,R2,R3 |
IF |
ID |
EXMEMWB
|
|
|
|
|
|
SUB |
R4,R1,R5 |
|
IF |
IDEXMEMWB
|
|
|
|
|
|
AND |
R6,R1,R7 |
|
|
IFIDEXMEMWB
|
|
|
|
|
|
OR |
R8,R1,R9 |
|
|
IFIDEXMEMWB
|
|
|
|
|
|
XOR |
R10,R1,R11 |
|
|
IFIDEXMEMWB |
Рис. 5. а. Послідовність команд в конвеєреі та прискорена пересилка даних
(data forwarding, data bypassing, short circuiting)
ADD |
R1,R2,R3 |
IF |
ID |
EXMEMWB
|
|
|
|
|
|
R |
W
|
SUB |
R4,R1,R5 |
|
IF |
IDEXMEMWB
|
|
|
|
|
|
R
W
|
|
AND |
R6,R1,R7 |
|
|
IFIDEXMEMWB
|
|
|
|
|
|
R
W
|
|
OR |
R8,R1,R9 |
|
|
IFIDEXMEMWB
|
|
|
|
|
|
R
W
|
|
XOR |
R10,R1,R11 |
|
|
IFIDEXMEMWB |
|
|
|
|
|
R
W
|
Рис. 5. б. Сполучення читання й запису регістрів в одному такті
У цьому прикладі всі команди, що випливають за командою ADD, використовують результат її виконання. Команда ADD записує результат у регістр R1, а команда SUB читає це значення. Якщо не почати ніяких мір для того, щоб запобігти цьому конфлікту, команда SUB прочитає неправильне значення й спробує його використати. Насправді значення, що використовуэться командою SUB, є навіть невизначеним: хоча логічно припустити, що SUB завжди буде використати значення R1, що було привласнено якою-небудь командою, що передувала ADD, це не завжди так. Якщо відбудеться переривання між командами ADD і SUB, то команда ADD завершиться, і значення R1 у цій крапці буде відповідати результату ADD. Таке непрогнозоване поводження очевидно неприйнятно.
Проблема, поставлена в цьому прикладі, може бути дозволена за допомогою досить простої апаратної техніки, що називається пересиланням або просуванням даних (data forwarding), обходом (data bypassing), іноді закороткою (short-circuiting). Ці апаратури працює в такий спосіб. Результат операції АЛУ з його вихідного регістра завжди знову подається назад на входи АЛУ. Якщо апаратури виявляє, що попередня операція АЛУ записує результат у регістр, що відповідає джерелу операнда для наступної операції АЛУ, то логічні схеми керування вибирають як вхід для АЛУ результат, що надходить по ланцюзі "обходу" , а не значення, прочитане з регістрового файлу (рис. 6).
Рис. 6 АЛУ з ланцюгами обходу й прискореного пересилання
Ця техніка "обходів" може бути узагальнена для того, щоб включити передачу результату прямо в той функціональний пристрій, якому він необхідний: результат з виходу одного пристрою "пересилається" на вхід іншого, а не з виходу деякого пристрою тільки на його вхід.