- •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. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
5. Класифікація конфліктів за даними
Конфлікт виникає скрізь, де має місце залежність між командами, і вони розташовані по відношенню один до одного досить близько так, що сполучення операцій, що відбувається при конвеєризації, може привести до зміни порядку звертання до операндів. У нашому прикладі був проілюстрований конфлікт, що відбувається з регістровими операндами, але для пари команд можлива поява залежностей при записі або читанні однієї й тієї ж комірки пам'яті. Однак, якщо всі звертання до пам'яті виконуються в суворому порядку, то поява такого типу конфліктів запобігає.
Відомі три можливих конфлікти за даними залежно від порядку операцій читання й записи. Розглянемо дві команди i і j, при цьому i передує j. Можливі наступні конфлікти:
RAW (читання після запису) - j намагається прочитати операнд-джерело даних перш, ніж i туди запише. Таким чином, j може некоректно одержати старе значення. Це найбільш загальний тип конфліктів, спосіб їхнього подолання за допомогою механізму "обходів" розглянутий раніше.
WAR (запис після читання) - j намагається записати результат у приймач перш, ніж він зчитується відтіля командою i, так що i може некоректно одержати нове значення. Цей тип конфліктів як правило не виникає в системах із централізованим керуванням потоком команд, що забезпечують виконання команд у порядку їхнього надходження, тому що наступний запис завжди виконується пізніше, ніж попереднє зчитування. Особливо часто конфлікти такого роду можуть виникати в системах, що допускають виконання команд не в порядку їхнього розташування в програмному коді.
WAW (запис після запису) - j намагається записати операнд перш, ніж буде записаний результат команди i, тобто записи закінчуються в неправильному порядку, залишаючи в приймачі значення, записане командою i, а не j. Цей тип конфліктів присутній тільки в конвеєрах, які виконують запис із багатьох щаблів (або дозволяють команді виконуватися навіть у випадку, коли попередня припинена).
6. Конфлікти за даними, що призводять до призупинки конвеєра
На жаль не всі потенційні конфлікти за даними можуть оброблятися за допомогою механізму "обходів". Розглянемо наступну послідовність команд (рис. 5.9):
Команда |
IF |
ID |
EX |
MEMWB
|
LW R1,32(R6) |
|
IF |
ID |
EXMEMWB
|
ADD R4,R1,R7 |
|
|
IF |
IDstallEXMEMWB
|
SUB R5,R1,R8 |
|
|
|
IF stallIDEXMEMWB
|
AND R6,R1,R7 |
|
|
|
stallIFIDEXMEMWB |
Рис. 7. Послідовність команд із припиненням конвеєра
Цей випадок відрізняється від послідовності команд АЛУ, що йдуть підряд. Команда завантаження (LW) регістра R1 з пам'яті має затримку, що не може бути усунута звичайною "пересиланням". Замість цього нам потрібна додаткові апаратури, називана апаратурами внутрішніх блокувань конвеєра (pipeline interlook), щоб забезпечити коректне виконання приклада. Взагалі такого роду апаратури виявляє конфлікти й припиняє конвеєр доти, поки існує конфлікт. У цьому випадку ці апаратури припиняє конвеєр починаючи з команди, що хоче використати дані в той час, коли попередня команда, результат якої є операндом для нашої, виробляє цей результат. Ці апаратури викликає припинення конвеєра або поява "бульбашки" точно також, як і у випадку структурних конфліктів.