- •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. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
3. Конфлікти й прискорені пересилання в довгих конвеєрах
Є кілька різних аспектів виявлення конфліктів і організації прискореного пересилання даних у конвеєрах, подібних представленому на рис. 3
Оскільки пристрої не є повністю конвеєрними, у даній схемі можливі структурні конфлікти. Ці ситуації необхідно виявляти й припиняти видачу команд.
Оскільки пристрої мають різні часи виконання, кількість записів у регістровий файл у кожному такті може бути більше 1.
Можливі конфлікти типу WAW, оскільки команди більше не надходять на щабель WB у порядку їхньої видачі для виконання. Помітимо, що конфлікти типу WAR неможливі, оскільки читання регістрів завжди здійснюється на щаблі ID.
Команди можуть завершуватися не в тім порядку, у якому вони були видані для виконання, що викликає проблеми з реалізацією переривань.
Перш ніж представити загальне рішення для реалізації схем виявлення конфліктів, розглянемо другу й третю проблеми.
Якщо припустити, що файл регістрів із ПК має тільки один порт запису, то послідовність операцій із ПК, а також операція завантаження ПК разом з операціями ПК може викликати конфлікти по порту запису в регістровий файл. Розглянемо послідовність команд, представлену на рис. 4. У такті 10 всі три команди досягнуть щабля WB і повинні зробити запис у регістровий файл. При наявності тільки одного порту запису в регістровий файл машина повинна забезпечити послідовне завершення команд. Цей єдиний регістровий порт є джерелом структурних конфліктів. Щоб вирішити цю проблему, можна збільшити кількість портів у регістровому файлі, але таке рішення може виявитися неприйнятним, оскільки ці додаткові порти запису швидше за все будуть рідко використатися. Однак у сталому стані максимальна кількість необхідних портів запису дорівнює 1. Тому в реальних машинах розроблювачі воліють відслідковувати звертання до порту запису в регістри й розглядати одночасне до нього звернення як структурний конфлікт.
Команда |
Номер такта |
|
|||
|
1 |
2 |
3 |
45678910 |
|
MULTD F0,F4,F6 |
IF |
ID |
EX11 |
EX12EX13EX21EX22EX23MEMWB |
|
... |
|
IF |
ID |
EXMEMWB
|
|
ADDD F2,F4,F6 |
|
|
IF |
IDEX11EX12EX21EX22MEMWB |
|
... |
|
|
|
IFIDEXMEMWB
|
|
... |
|
|
|
IFIDEXMEMWB
|
|
LD F8,0(R2) |
|
|
|
IFIDEXMEMWB |
Рис. 4. Приклад конфлікту по запису в регістровий файл
Є два способи для обходу цього конфлікту. Перший полягає у відстеженні використання порту запису на щаблі ID конвеєра й припиненню видачі команди як при структурному конфлікті. Схема виявлення такого конфлікту звичайно реалізується за допомогою регістра зсуву. Альтернативна схема припускає припинення конфліктуючої команди, коли вона намагається потрапити на щабель MEM конвеєра. Перевагою такої схеми є те, що вона не вимагає виявлення конфлікту до входу на щабель MEM, де це легше зробити. Однак подібна реалізація ускладнює керування конвеєром, оскільки припинення в цьому випадку можуть виникати у двох різних місцях конвеєра.
Іншою проблемою є можливість конфліктів типу WAW. Можна розглянути той же приклад, що й на рис. 4. Якби команда LD була видана на один такт раніше й мала як місцерозташування результату регістр F2, то виник би конфлікт типу WAW, оскільки ця команда виконувала б запис у регістр F2 на один такт раніше команди ADDD. Є два способи обробки цього конфлікту типу WAW. Перший підхід полягає в затримці видачі команди завантаження до моменту передачі команди ADDD на щабель MEM. Другий підхід полягає в придушенні результату операції додавання при виявленні конфлікту й зміні керування таким чином, щоб команда додавання не записувала свій результат. Тоді команда LD може видаватися для виконання відразу ж. Оскільки такий конфлікт є рідким, обидві схеми будуть працювати досить добре. У кожному разі конфлікт може бути виявлений на ранній стадії ID, коли команда LD видається для виконання. Тоді припинення команди LD або установка блокування запису результату командою ADDD реалізуються досить просто.
Таким чином, для виявлення можливих конфліктів необхідно розглядати конфлікти між командами ПК, а також конфлікти між командами ПК і цілочисельними командами. За винятком команд завантаження/запису із ПК і команд пересилання даних між регістрами ПК і цілочисельними регістрами, команди ПК і цілочисельні команди досить добре розділені, і всі цілочисельні команди працюють із цілочисельними регістрами, а команди ПК - з регістрами ПК. Таким чином, для виявлення конфліктів між цілочисельними командами й командами ПК необхідно розглядати тільки команди завантаження/запису із ПК і команди пересилання регістрів ПК. Це спрощене керування конвеєром є додатковою перевагою підтримки окремих регістрових файлів для зберігання цілочисельних даних і даних із ПК. (Головна перевага полягає в подвоєнні загальної кількості регістрів і збільшенні пропускної здатності без збільшення числа портів у кожному наборі). Якщо припустити, що конвеєр виконує виявлення всіх конфліктів на стадії ID, перед видачею команди для виконання у функціональні пристрої повинні бути виконані три перевірки:
Перевірка наявності структурних конфліктів. Очікування звільнення функціонального пристрою й порту запису в регістри, якщо він буде потрібно.
Перевірка наявності конфліктів за даними типу RAW. Очікування доти, поки регістри-джерела операндів зазначені як регістри результату на конвеєрних станціях ID/EX (яка відповідає команді, виданої в попередньому такті), EX1/EX2 або EX/MEM.
Перевірка наявності конфліктів типу WAW. Перевірка того, що команди, котрі перебувають на конвеєрних станціях EX1 і EX2, не мають як місцезнаходження результату регістр результату виданої для виконання команди. В іншому випадку видача команди, що перебуває на щаблі ID, припиняється.
Хоча логіка виявлення конфліктів для багатотактних операцій ПК більш складна, концептуально вона не відрізняється від такої ж логіки для цілочисельного конвеєра. Те ж саме стосується логіки для прискореного пересилання даних. Логіка прискореного пересилання даних може бути реалізована за допомогою перевірки того, що зазначений на конвеєрних станціях EX/MEM і MEM/WB регістр результату є регістром операнда команди ПК. Якщо відбувається такий збіг, для пересилання даних дозволяється прийом по відповідному вході мультиплексора. Багатотактні операції ПК створюють також нові проблеми для механізму переривання.