5.3.1. Типи конфліктів керування
Конфлікти керування можуть викликати ще більше зниження продуктивності конвеєра, ніж конфлікти за даними. Вони викликані наявністю в програмах команд керування, які змінюють хід обчислювального процесу: безумовний та умовний переходи, пропуск, виклик процедури та повернення з неї. Виконання команд керування може
178
призводити до необхідності очистки конвеєра та завантаження нової послідовності команд, що знижує його продуктивність. Те, що команда належить до команд керування, можна вияснити лише після її декодування, тобто за кілька тактів після її надходження до конвеєра (в комп'ютері DLXчерез 2 такти).
За цей час на перші яруси конвеєра вже надійдуть нові команди. При виявленні команди керування потрібно вияснити, чи здійснюється перехід, і якщо так, то очистити конвеєр від наступних за нею команд та завантажити команду, розміщену за адресою переходу. Для цього спочатку потрібно визначити виконавчу адресу переходу, яка може бути або безпосередньо в адресному полі команди, або її потрібно обчислити в наступних ярусах конвеєра. Таким чином, реалізація в конвеєрі команд керування вимагає виконання додаткових операцій, що рівнозначно його зупинці на відповідну кількість тактів
Особливо складною для виконання в конвеєрі є команда умовного переходу. Коли виконується команда умовного переходу, вона може або змінити вміст лічильника команд, або залишити його без змін. Якщо команда умовного переходу замінює лічильник команд значенням адреси, обчисленої в команді, то перехід називається здійснимим. В іншому випадку він називається нездійснимим. Для забезпечення опрацювання в конвеєрі команд умовного переходу потрібно передбачити проведення відповідних дій. Простий метод роботи з умовними переходами полягає в призупиненні конвеєра як тільки виявлена команда умовного переходу до тих пір, поки вона не досягне ярусу конвеєра, який обчислює нове значення лічильника команд. Реалізація цього методу для наведеного нижче фрагмента програми
dd r7,r8,rl bnez r4,$TEXT and r5,r7,r7 add r2,r2,r3
відображена на рис. 5.11, де після декодування команди BNEZ(перехід, якщо не рівний нулю) призупиняється виконання наступної команди.
Комп'ютер, в якому здійснюються призупинення при виявленні команд умовних переходів, суттєво втрачає прискорення, що одержується за рахунок конвеєрної організації. При цьому, чим більша глибина конвеєра, тим більші втрати на командах умовного переходу
Таким чином, для зменшення втрат в конвеєрі через конфлікти керування потрібно звернути увагу в першу чергу на організацію вибірки команди, до якої здійснюється перехід, та на скорочення часу виконання команд умовного переходу
179
- 2.6. Формати даних 63
- 3.1. Кодування та виконання команд в комп'ютері 82
- 4.3. Суперконвеєрні процесори 157
- 4.10. Питання до розділу 4 165
- 5.3. Конфлікти керування 177
- 6.1. Логічні операції 204
- 8.3. Пристрій мікропрограмного керування 297
- 9.3. Пам'ять з асоціативним доступом 321
- 9.4. Основна пам'ять 328
- 9.7. Зовнішня пам'ять 339
- 10.1. Ієрархічна організація пам'яті комп'ютера 357
- 10.2. Організація обміну інформацією між процесором і основною пам'яттю
- 10.3. Організація обміну інформацією між основною та зовнішньою пам'яттю 376
- 10.4. Захист пам'яті від несанкціонованих звернень 391
- 12.8. Організація комп'ютерних систем із розподіленою пам'яттю 444
- 12.9. Комунікаційні мережі багатопроцесорних систем 445
- Розділ 1 Сучасний комп'ютер. Основні поняття
- 1.2. Функції, структура та характеристики комп'ютера
- 1.2.1. Функції та основні функціональні вузли комп'ютера
- 1.2.2. Тенденції зміни основних характеристик апаратних засобів комп'ютера
- 1.2.3. Оцінка продуктивності комп'ютера
- 1.2.3.1. Одиниці оцінки продуктивності
- 1.2.3.2. Тестові програми для оцінки продуктивності
- 1.2.4. Організація зв'язків між функціональними вузлами комп'ютера
- 1.3. Архітектура комп'ютера
- 1.3.1. Поняття архітектури комп'ютера
- 1.3.2. Архітектурні принципи Джона фон Неймана
- 1.3.3. Ненейманівські архітектури комп'ютерів
- 1.4. Типи сучасних комп'ютерів
- 1.4.1. Персональні комп'ютери
- 1.4..2. Робочі станції
- 1.4.3. Багатотермінальні системи
- 1.4.4. Сервери
- 1.4.5. Великі універсальні комп'ютерні системи
- 1.4.6. Кластерні комп'ютерні системи
- 1.4.7. Суперкомп'ютери
- 7.4.8. Мікроконтролери
- 1.4.9. Спеціалізовані комп'ютери
- 1.5. Предмет та порядок розгляду матеріалу даної книги
- 1.6. Підсумок розділу
- 1.7. Література для подальшого читання
- 1.8. Література до розділу 1
- 1.9. Питання до розділу 1
- Розділ 2 Представлення даних у комп'ютері
- 2.7, Позиційні системи числення
- 2.2. Двійкові, вісімкові та шістнадцяткові числа
- 2.5. Представлення чисел зі знаком
- 2.5.7. Прямий код
- 2.5.2. Обернений код
- 2.6. Формати даних
- 2.6.1. Способи представлення чисел
- 2.6.2. Числа з фіксованою комою
- 2.6.3. Числа із рухомою комою
- 2.6.4. Стандарт іеее-754
- 2.6.5. Кодування алфавітно-цифрової інформації
- 2.6.5.7. Двійково-кодовані десяткові числа
- 2.6.4.2. Розширений двійково-кодований десятковий код обміну ebcdic
- 2.6.4.3 Американський стандартний код інформаційного обміну ascii
- 2.6.4.4. Стандарт кодування символів Unicode
- 2.7. Короткий зміст розділу
- 2.8. Література для подальшого читання
- 2.9. Література до розділу 2
- 2.10. Питання до розділу 2
- 2.11. Задачі до розділу 2
- Розділ 3 Порядок виконання команд і програм в комп'ютері
- 3.1.1. Кодування команди та програми
- 3.1.2. Порядок виконання команд
- 3.1.3. Виконання команд на рівні регістрів процесора
- 3.2. Типи операцій та команд
- 3.2.1. Класифікація команд за типами операцій
- 3.2.2. Команди обробки даних
- 3.2.3. Команди переміщення даних
- 3.2.4.. Команди передачі керування
- 3.2.4.1. Команди переходу
- 3.2.4.2. Команди пропуску
- 3.2.4.3. Команди звернення до підпрограм
- 3.2.5. Команди введєння-виведення
- 3.2.6. Принципи формування системи команд комп'ютера
- 3.2.7. Конвеєрне виконання команд
- 3.3. Формати команд комп'ютера
- 3.3.1. Класифікація архітектури комп'ютера за типом адресованої пам'яті
- 3.3.2. Порівняльний аналіз форматів команд
- 3.4. Способи адресації операндів
- 3.4.1. Безпосередня адресація
- 3.4.2. Пряма адресація
- 3.4.3. Непряма адресація
- 3.4.4. Способи адресації операндів на основі операції зміщення
- 3.4.4.1. Відносна адресація
- 3.4.4.2. Базова адресація
- 3.4.4.3. Індексна адресація
- 3.4.5. Сторінкова адресація
- 3.4.6. Неявна адресація
- 3.4.7. Стекова адресація
- 3.4.8. Використання стекової адресації
- 3.4.9. Вибір способів адресації операндів
- 3.5. Приклади форматів команд
- 3.5.1. Формати команд комп'ютерної системи ibm 370
- 3.5.2. Формати команд комп'ютера Cyber-70
- 3.5.3. Формати команд сучасного комп'ютера
- 3.6. Вплив технологи компілювання на систему команд комп'ютера
- 3.7. Архітектура системи команд комп'ютера
- 3.7.1. Класифікація архітектури комп'ютера за складом системи команд
- 3.7.2. Комп'ютери із складною та з простою системами команд
- 3.7.3. Особливості архітектури комп'ютера з простою системою команд
- 3.7.4. Архітектура комп'ютера з доповненою системою команд
- 3.7.5. Комп'ютери зі спеціалізованою системою команд
- 3.8. Короткий зміст розділу
- 3.9. Література для подальшого читання
- 3.10. Література до розділу з
- 4.1. Процесор комп'ютера із складною системою команд
- 4.1.1. Одношинна структура процесора
- 4.1.2. Основні операції процесора
- 4.1.2.1. Вибірка слова з пам'яті
- 4.1.2.2. Запам'ятовування слова в пам'яті
- 4.1.2.3. Обмін даними між регістрами
- 4.1.2.4. Виконання арифметичних і логічних операцій
- 4.1.3. Багатошинна структура процесора
- 4.1.4. Приклади виконання операцій в процесорі
- 4.1.4.1. Виконання операції додавання двох чисел
- 4.1.4.2. Виконання операції переходу
- 4.1.5. Особливості побудови процесора комп'ютера із складною системою команд
- 4.2. Процесор комп'ютера з простою системою команд
- 4.2.1. Вимоги до процесора комп'ютера з простою системою команд
- 4.2.2. Базові принципи побудови процесора комп'ютера з простою системою команд
- 4.2.3. Взаємодія процесора з пам'яттю в комп'ютері з простою системою команд
- 4.2.4. Виконання команд в процесорі комп'ютера з простою системою команд
- 4.2.4.1. Фаза вибирання команди
- 4.2.4.3. Фаза виконання та формування ефективної адреси
- 4.2.4.4. Фаза звернення до пам'яті та завершення умовного переходу
- 4.2.4.5. Фаза зворотного запису
- 4.2.5. Конвеєрна структура процесора комп'ютера з простою системою команд
- 4.2.5.1. Конвеєрний процесор
- 4.2.5.2. Мікродії ярусів конвеєрного процесора
- 4.8. Література для подальшого читання
- 4.9. Література до розділу 4
- 4.10. Питання до розділу 4
- 5. 1. Структурні конфлікти
- 5.2. Конфлікти за даними
- 5.2.1. Типи конфліктів за даними
- 5.2.2. Методи зменшення впливу конфліктів за даними на роботу конвеєра команд
- 5.2.3. Призупинення виконання команди
- 5.2,4. Випереджувальне пересилання
- 5.2.5. Статична диспетчеризація послідовності команд у програмі під час компіляції
- 5.2.6. Динамічна диспетчеризація послідовності команд у програмі під час компіляції
- 5.2.7. Перейменування регістрів
- 5.3. Конфлікти керування
- 5.3.1. Типи конфліктів керування
- 5.3.2. Зниження втрат на вибірку команди, до якої здійснюється перехід
- 5.3.3. Зниження втрат на виконання команд умовного переходу
- 5.3.3.7. Введення буфера попередньої вибірки
- 5.3.3.2. Дублювання початкових ярусів конвеєра
- 5.3.3.3. Затримка переходу
- 5.3.3.4. Статичне передбачення переходу
- 5.3.3.5. Динамічне передбачення переходу
- 5.7. Комп'ютери з комбінованою архітектурою
- 5.9. Короткий зміст розділу
- 5.10. Література для подальшого читання
- 5.12. Питання до розділу 5
- 6.1. Логічні операції
- 6.1.1. Операція заперечення
- 6.2. Операції зсуву
- 6.2.1. Логічні зсуви
- 6.2.2. Арифметичні зсуви
- 6.2.3. Циклічні зсуви
- 6.3. Операції відношення
- 6.3.1. Порівняння двійкових кодів на збіжність
- 6.3.2. Визначення старшинства двійкових кодів
- 6.4. Арифметичні операції
- 6.4.1. Додавання двійкових чисел без знаків
- 6.4.2. Додавання двійкових чисел із знаками
- 6.4.3. Віднімання двійкових чисел
- 6,4.4. Множення двійкових чисел
- 6.4.4.7. Множення цілих двійкових чисел без знаків
- 6.4.4.2. Багатомісна операція додавання часткових добутків
- 6.4.4.3. Множення двійкових чисел із знаками
- 6.4.4.4. Прискорене множення двійкових чисел за методом Бута
- 6.4.5. Ділення двійкових чисел
- 6.4.6. Арифметичні операції над двійковими числами у форматі з рухомою комою
- 6.5. Операції обчислення елементарних функцій
- 6.6. Операції перетворення даних
- 6.6.1. Перетворення даних із формату з фіксованою у формат з рухомою комою та навпаки
- 6.6.2. Перетворення даних з двійково-десяткового коду в двійковий та навпаки
- 6.7. Операції реорганізації масивів і визначення їх параметрів
- 6.8. Операції обробки символів та рядків символів
- 6.9. Короткий зміст розділу
- 6.70. Література для подальшого читання
- 6.11. Література до розділу 6
- 6.72. Питання до розділу 6
- Розділ 7
- 7.1. Функції арифметико-логічного пристрою
- 7.2. Способи обробки даних в арифметико-логічному пристрої
- 7.3. Елементарні операції арифметико-логічного пристрою
- 7.4. Складні операції арифметико-логічного пристрою
- 7.5. Використання графа алгоритму при побудові арифметико-логічного пристрою
- 7.6. Виконання складних операцій в арифметико-логічному пристрої
- 7.8. Типи операційних пристроїв
- 7.9. Табличний операційний пристрій
- 7.10. Вагатотактовий операційний пристрій
- 7.11. Однотактовий операційний пристрій
- 7.12. Конвеєрний операційний пристрій
- 7.13. Алгоритмічні операційні пристрої
- 7.13.1. Пристрої додавання і віднімання двійкових чисел з фіксованою комою
- 7.13.2. Пристрої множення двійкових чисел з фіксованою комою
- 7.13.2.1. Багатотактовий пристрій множення двійкових чисел з молодших розрядів множника при нерухомому множеному з зсувом суми часткових добутків
- 7.13.2.2. Багатотактовий пристрій множення двійкових чисел з молодших розрядів при нерухомій сумі часткових добутків з зсувом множеного вліво
- 7.13.2.3. Багатотактовий пристрій множення двійкових чисел з старших розрядів при нерухомій сумі часткових добутків з зсувом множеного вправо
- 7.13.2.4. Багатотактовий пристрій множення двійкових чисел з старших розрядів при нерухомому множеному з зсувом суми часткових добутків вліво
- 7.13.2.5. Багатотактовіш пристрій прискореного множення
- 7.13.2.6. Однотактові пристрої множення двійкових чисел з фіксованою комою
- 7.13.2.7. Конвеєрні пристрої множення двійкових чисел з фіксованою комою
- 7.13.3 Пристрої ділення двійкових чисел з фіксованою комою
- 7.13.3.1. Багатотактові пристрої ділення двійкових чисел з фіксованою комою
- 7.13.3.2. Однотактові та конвеєрні пристрої ділення двійкових чисел з фіксованою комою
- 7.13.4. Пристрої обчислення елементарних функцій методом "цифра за цифрою"
- 7.13.4.1. Багатотактовий пристрій обчислення елементарних функцій методом "цифра за цифрою"
- 7.13.5.2. Пристрої множення та ділення чисел з рухомою комою
- 7.14. Таблично-алгоритмічні операційні пристрої
- 7.15. Короткий зміст розділу
- 7.16. Література для подальшого читання
- 7. Т 7. Література до розділу 7
- 7. 18. Питання до розділу 7
- Розділ 8 Пристрій керування
- 8.1. Функції та методи побудови пристрою керування
- 8.2. Пристрій керування з жорсткою логікою
- 8.2.1. Структура пристрою керування з жорсткою логікою
- 8.2.2. Методи проектування пристрою керування з жорсткою логікою
- 8.2.3.2. Мови опису функціонування автоматів
- 8.2.3.3. Структурний синтез цифрових автоматів
- 8.2.4. Пристрій керування на основі синхронних елементів часової затримки
- 8.2.5. Пристрій керування на основі лічильників
- 8.3. Пристрій мікропрограмного керування
- 8.3.1. Організація роботи пристрою мікропрограмного керування
- 8.3.2. Організація мікропрограм в пам'яті мікрокоманд
- 8.3.3. Горизонтальне та вертикальне мікропрограмування
- 8.4. Порівняння пристроїв керування з жорсткою логікою та пристроїв мікропрограмного керування
- 8.5. Короткий зміст розділу
- 8.6. Література для подальшого читання
- 8.7. Література до розділу 8
- 8.8. Питання до розділу 8
- 9.1. Типи та характеристики пам'яті комп'ютера
- 9.1.1. Багаторівнева структура пам'яті комп'ютера
- 9.1.2. Типи пам'яті
- 9.1.3. Основні характеристики пам'яті
- 9.2 Регістровий файл процесора
- 9.2.1. Типи регістрових файлів
- 9.2.2. Інтегрований багатопортовий регістровий файл
- 9.2.3. Розподілений регістровий файл
- 9.2.3. 1. Кластерний розподілений регістровий файл
- 9.2.3.2. Розподілений регістровий файл з керованою комутацією
- 9.2.3.3. Розподілений регістровий файл з віконною організацією
- 9.2.4. Ієрархічний регістровий файл
- 9.2.5. Динамічна та статична організація збереження даних в регістрових файлах
- 9.3. Пам'ять з асоціативним доступом
- 9.3.1. Організація та типи пам'яті з асоціативним доступом
- 9.3.2. Пам'ять з повним паралельним асоціативним доступом
- 9.3.3. Пам'ять з неповним паралельним асоціативним доступом
- 9.3.4. Пам'ять з послідовним асоціативним доступом
- 9.3.5. Пам'ять з частково асоціативним доступом
- 9.4. Основна пам'ять
- 9.4.1. Структура основної пам'яті
- 9.4.2. Нарощування розрядності основної пам'яті
- 9.4.4. Розшарування пам'яті
- 9.5. Оперативний запам'ятовуючий пристрій
- 9.6. Постійний запам'ятовуючий пристрій
- 9.6.1. Організація роботи постійного запам'ятовуючого пристрою
- 9.6.2. Запрограмований при виготовленні постійний запам'ятовуючий пристрій
- 9.6.3. Одноразово запрограмований після виготовлення постійний запам'ятовуючий пристрій
- 9.6.4. Багаторазово програмований постійний запам'ятовуючий пристрій
- 9.7. Зовнішня пам'ять
- 9.7.1. Магнітні диски
- 9.7.2. Масиви магнітних дисків з надлишковістю
- 9.7.2.1. Базовий тип дискових масивів raid 0
- 9.7.2.2. Базовий тип дискових масивів raid 1
- 9.7.2.3. Базовий тип дискових масивів raid 2
- 9.7.2.4. Базовий тип дискових масивів raid з
- 9.7.2.5. Базовий тип дискових масивів raid 4
- 9.7.2.6. Базовий тип дискових масивів raid 5
- 9.7.2.7. Тип дискових масивів raid 6
- 9.7.2.8. Тип дискових масивів raid 7
- 9.7.2.9. Тип дискових масивів raid 10
- 9.7.3. Оптична пам'ять
- 9.7.3.1. Постійна пам'ять на основі компакт дисків
- 9.7.3.2. Оптичні диски із стиранням
- 9.7.4. Магнітні стрічки
- 9.8. Короткий зміст розділу
- 9.9. Література для подальшого читання
- 9. 1 0. Література до розділу 9
- 9.11. Питання до розділу 9
- Організація пам'яті
- 10.1. Ієрархічна організація пам'яті комп'ютера
- 10.1.1. Різниця між: продуктивністю процесора та пам'яті
- 10.1.2. Властивість локальності за зверненням до пам'яті
- 10.1.3. Принцип ієрархічної організації пам'яті
- 10.1.4. Характеристики ефективності ієрархічної організації пам'яті
- 10.1.5. Ієрархічна пам'ять сучасного комп'ютера
- 10.2. Організація обміну інформацією між процесором і основною пам'яттю через кеш пам'ять
- 10.2.1. Кеш пам'ять в складі комп'ютера
- 10.2.2. Порядок взаємодії процесора і основної пам'яті через кеш пам'ять
- 10.2.3. Забезпечення ідентичності вмісту блоків кеш пам'яті і основної пам'яті
- 10. 0.2.4. Функція відображення
- 10.2.4.1. Типи функцій відображення
- 10.2.4.2. Повністю асоціативне відображення
- 10.2.4.3. Пряме відображення
- 10.2.4.4. Частково-асоціативне відображення
- 10.2.5. Порядок заміщення блоків в кеш пам'яті з асоціативним відображенням
- 70.2.6. Підвищення ефективності кеш пам'яті
- 10.3. Організація обміну інформацією між основною та зовнішньою пам'яттю
- 10.3.1. Статичний та динамічний розподіл пам'яті
- 10.3.2. Розподіл основної пам'яті за допомогою базових адрес
- 10.3.3. Віртуальна пам'ять
- 10.3.4. Сторінкова організація пам'яті
- 10.3.4.1. Основні правила сторінкової організації пам'яті
- 10.3.4.2. Реалізація сторінкової організації пам'яті
- 10.3.4.3. Апаратна реалізація сторінкової таблиці
- 10.3.5. Сегментна організація віртуальної пам'яті
- 10.4. Захист пам'яті від несанкціонованих звернень
- 10.4.1. Задачі захисту пам'яті
- 10.4.2. Захист пам'яті за допомогою регістра захисту
- 10.4.3. Захист пам'яті за граничними адресами
- 10.4.4. Захист пам'яті за значеннями ключів
- 10.4.5. Кільцева схема захисту пам'яті
- 10.5. Короткий зміст розділу
- 10.6. Література для подальшого читання
- 10.7. Література до розділу 10
- 10.8. Питання до розділу 10
- Розділ 11 Організіція введення-виведення
- 11.1. Під'єднаний зовнішніх пристроїв до комп'ютера
- 1 1.2. Розпізнавання пристроїв введення-виведення
- 11.3. Методи керування введенням-виведенням
- 11.4. Програмно-кероване введення-вивєдення
- 11.5. Система переривання програм та організація введення-виведення за перериваннями
- 11.5.1. Функції системи переривання програм
- 11.5.2. Характеристики системи переривання програм
- 11.5.3. Вхід в переривальну програму
- 11.5.4. Пріоритетне обслуговування переривання
- 11.5.5. Організація повернення до перериваної програми
- 11.5.6. Введення-виведення за перериваннями
- 11.6. Прямий доступ до пам'яті
- 11.7. Введення-виведення під керуванням периферійних процесорів
- 11.7.1. Принципи введення-виведення під керуванням периферійних процесорів
- 11.7.2. Причини застосування каналів введення-виведення
- 11.7.3. Функції каналів введення-виведення
- 11.7.4. Керуюча інформація каналу введення-виведення
- 11.7.5. Мультиплексний та селекторний канали введення-виведення
- 11.8. Короткий зміст розділу
- 11.9. Література для подальшого читання
- 11.10. Література до розділу 11
- 11.11. Питання до розділу 11
- Розділ 12
- 12.1. Використання принципів паралельної обробки інформації в архітектурі комп'ютера
- 12.2. Вибір кількості процесорів у багатопроцесорній системі
- 12.3. Багатопотокова обробка інформації
- 12.4. Класифікація паралельних комп'ютерних систем
- 12.4.1. Класифікація Шора
- 12.4.2. Класифікація Фліна
- 12.5. Типи архітектур систем окмд
- 12.6. Типи архітектур систем мкмд
- 12.7. Організація комп'ютерних систем із спільною пам'яттю
- 12.7.1. Типи комп'ютерних систем із спільною пам'яттю
- 12.7.2. Системи з однорідним доступом до пам'яті
- 12.7.3. Системи з неоднорідним доступом до пам'яті
- 12.7.4. Системи лише з кеш пам'яттю
- 12.8. Організація комп'ютерних систем із розподіленою пам'яттю
- 12.9. Комунікаційні мережі багатопроцесорних систем
- 12.9.1. Типи комунікаційних мереж
- 12.9.2. Основні характеристики комунікаційних мереж багатопроцесорних систем
- 12.9.3. Статичні топології комунікаційних мереж: багатопроцесорних систем
- 12.9.4. Шинні динамічні комунікаційні мережі багатопроцесорних систем
- 12.9.5. Комутуючі динамічні комунікаційні мережі багатопроцесорних систем
- 12.9.5.1. Типи комутуючих динамічних комунікаційних мереж
- 12.9.5.2. Координатна мережа
- 12.9.5.3. Матрична одноярусна комутуюча мережа
- 12.9.5.4. Багатоярусні блокуючі комутуючі мереж
- 12.9.5.5. Багатоярусні неблокуючі комутуючі мережі з реконфігурацією
- 12.9.5.6. Багатоярусні неблокуючі комутуючі мережі
- 12.10. Короткий зміст розділу
- 12.11. Література для подальшого читання
- 12.12. Література до розділу 12
- 12.13. Питання до розділу 12
- 43010 М. Луцьк, пр. Волі, 27.