- •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. Структурні конфлікти й способи їхньої мінімізації
Сполучений режим виконання команд у загальному випадку вимагає конвеєризації функціональних пристроїв і дублювання ресурсів для дозволу всіх можливих комбінацій команд у конвеєрі. Якщо яка-небудь комбінація команд не може бути прийнята через конфлікт по ресурсах, то говорять, що в машині є структурний конфлікт. Найбільш типовим прикладом машин, у яких можлива поява структурних конфліктів, є машини з не повністю конвеєрними функціональними пристроями. Час роботи такого пристрою може становити кілька тактів синхронізації конвеєра. У цьому випадку послідовні команди, які використовують даний функціональний пристрій, не можуть надходити в нього в кожному такті. Інша можливість появи структурних конфліктів пов'язана з недостатнім дублюванням деяких ресурсів, що перешкоджає виконанню довільної послідовності команд у конвеєрі без його припинення. Наприклад, машина може мати тільки один порт запису в регістровий файл, але при певних обставинах конвеєру може знадобитися виконати два записи в регістровий файл в одному такті. Це також приведе до структурного конфлікту. Коли послідовність команд натрапляє на такий конфлікт, конвеєр припиняє виконання однієї з команд доти, поки не стане доступним необхідний пристрій.
Структурні конфлікти виникають, наприклад, і в машинах, у яких є єдиний конвеєр пам'яті для команд і даних (рис. 4). У цьому випадку, коли одна команда містить звертання до пам'яті за даними, воно буде конфліктувати із вибіркою більш пізньої команди з пам'яті. Щоб дозволити цю ситуацію, можна просто призупинити конвеєр на один такт, коли відбувається звертання до пам'яті за даними. Подібне припинення часто називаються "конвеєрною бульбашкою" (pipeline bubble) або просто бульбашкою, оскільки бульбашка проходить по конвеєрі, займаючи місце, але не виконуючи ніякої корисної роботи.
При всіх інших обставинах, машина без структурних конфліктів буде завжди мати більш низький CPI (середнє число тактів на видачу команди). Виникає питання: чому розроблювачі допускають наявність структурних конфліктів? Для цього є дві причини: зниження вартості й зменшення затримки пристрою. Конвеєризація всіх функціональних пристроїв може виявитися занадто дорогою. Машини, що допускають два звертання до пам'яті в одному такті, повинні мати подвоєну пропускну здатність пам'яті, наприклад, шляхом організації роздільних кешей для команд і даних. Аналогічно, повністю конвеєрний пристрій розподілу із плаваючою крапкою вимагає величезної кількості вентилів. Якщо структурні конфлікти не будуть виникати занадто часто, то може бути й не варто платити за те, щоб їх обійти. Як правило, можна розробити неконвеєрне, або не повністю конвеєрний пристрій, що має меншу загальну затримку, чим повністю конвеєрне. Наприклад, розроблювачі пристроїв із плаваючою крапкою комп'ютерів CDC7600 і MIPS R2010 зволіли мати меншу затримку виконання операцій замість повної їхньої конвеєризації.
Рис. 4. а. Приклад структурного конфлікту при реализації пам’яті з одним портом
Команда |
Номер такта |
|
|||
|
1 |
2 |
3 |
45678910 |
|
Команда загрузки |
IF |
ID |
EX |
MEMWB
|
|
Команда 1 |
|
IF |
ID |
EXMEMWB
|
|
Команда 2 |
|
|
IF |
IDEXMEMWB
|
|
Команда 3 |
|
|
|
stallIFIDEXMEMWB
|
|
Команда 4 |
|
|
|
IFIDEXMEMWB |
|
Команда 5 |
|
|
|
IFIDEXMEM |
|
Команда 6 |
|
|
|
IFIDEX |
Рис. 4. б. Діаграма роботи конвеєра при структурному конфлікті