5.2.3. Призупинення виконання команди
Найпростішим рішенням для зменшення впливу конфліктів на роботу конвеєра команд при наявності залежності між даними є призупинення виконання команди jна декілька тактів з тим, щоб завершилось виконання команди і, або тієї її фази, яка викликала конфлікт. Відповідно затримається і виконання команд, які йдуть слідом за командою і.
Розглянемо фрагмент програми, виконання якого вимагає призупинення роботи конвеєра:
LW R1,0(R2)
SUB R4,R1,R5
AND R6,R1,R7
OR R8,R1,R9
Рис. 5.6 ілюструє роботу конвеєра при виконанні поданого вище фрагмента програми.
Тут друга команда SUBпотребує результату виконання першої команди, який з'являється лише на такті 12 (фаза MEM),через що виконання призупиняється (зупинка R-Stall)до завершення вказаного такту. Призупинення конвеєра знижує його ефективність, тому частіше використовують інші шляхи ліквідації впливу залежностей між даними.
- 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.