
- •1. Загальна структура і функції комп’ютера
- •2. Продуктивність комп’ютера
- •3. Швидкодія мікропроцесорів
- •4. Система магістралі
- •5.Зв’язок між компонентами комп’ютера через магістраль
- •6.Магістраль рсі
- •7. Внутрішня пам’ять
- •8.Функції і характеристики підсистеми пам’яті
- •Размещение
- •10. Сучасні тенденції в організації модулів пам’яті
- •11. Стек
- •12.Зовнішня память
- •13.Збереження інформації на магнітних дисках
- •15.Оптична пам'ять
- •16. Збереження інформації на магнітних стрічках
- •17. Введення – виведення
- •18.Програмне введення –виведення
- •19. Введення-виведення по прериванню
- •20.Прямий доступ до пам’яті
- •Зовнішні інтерфейси….. Типы интерфейсов
- •Концепція організації операційних систем
- •Планування завдань
- •Керування розподілом пам’яті
- •Вектори обчислень
- •Арифметико-логічний пристрій
- •Система команд комп’ютера
- •Характеристики та функції команд
- •Структура і функції центрального процесора
- •30.Структура центрального процесора
- •31.Організація набору регістрів
- •32. Конвеєрна обробка команд
- •33. Комп’ютери зі скороченим набором команд
- •34. Організація конвеєру в risc-процесорах
- •35. Порівняльні характеристики risc і сisc комп’ютерів
- •36. Суперскалярні процесори
- •37. Паралелізм на рівні машинних команд
- •38. Функції пристрою керування
- •39. Мікрооперації
- •40. Управління роботою процесора
- •41. Пристрої управління із жорсткою логікою
- •42. Мікропрограмне керування
- •43. Управління послідовністю виконання мікрокоманд
- •44. Використання мікропрограмування
- •45. Параллельна обробка
- •46. Організація мікропроцесорних систем
- •47. Симетричні мультипроцесорні системи
- •48. Інформаційна цілісність кешів та протокол mesi
- •49. Кластери
- •50. Системи зі змінним часом звернення до пам’яті
32. Конвеєрна обробка команд
В процессе эволюции вычислительных систем производительность повышалась не только за счет применения более совершенной элементной базы, но и во многом за счет более рациональной организации процесса выполнения команд в компьютере. Мы уже' видели несколько примеров организационных решений, способствовавших повышению эффективности работы системы, — увеличение количества программно доступных регистров в процессоре, использование сверхоперативной кэш-памяти. В последнее время
широкое распространение получило еще одно направление в организации процесса обработки команд — конвейерная обработка1.
Основы конвейерной организации обработки
В общих чертах конвейерная обработка команд в компьютере напоминает сборку изделия на конвейере в машиностроении. Эффективность сборочного конвейера основана на том, что изделие последовательно проходит через определенные рабочие позиции, причем операции на всех позициях выполняются одновременно (но с разными экземплярами изделий)2.
Для того чтобы этот принцип можно было применить к выполнению машинных команд, следует уяснить, что процесс обработки распадается на множество этапов. Представленная на рис. 11.6 схема основного цикла обработки предусматривает разбивку процесса на 10 подзадач, выполняемых последовательно. Совершенно очевидно, что уже в такой разбивке имеются предпосылки для совмещения выполнения отдельных задач во времени.
Рассмотрим самую простую схему разделения процесса обработки команды на два этапа — извлечение команды и выполнение команды. При выполнении команды существуют интервалы времени, когда обращение к памяти не производится. Их можно использовать для извлечения следующей команды параллельно с выполнением текущей. Этот подход иллюстрируется схемой, представленной на рис. 11.10,0. Конвейер имеет две независимые "рабочие позиции" — извлечения команды и выполнения команды. На первой позиции команда извлекается из памяти « загружается в буфер. Когда вторая позиция будет свободна, первая передаст ей команду из буфера. Пока команда будет выполняться на второй позиции, на первой позиции можно использовать любой свободный цикл обращения к памяти и извлечь следующую команду, загрузив ее в буфер. Этот процесс называется извлечением команды с опережением (instruction prefetch) или наложением извлечения (fetch overlap). Очевидно, что такая организация процесса ускорит обработку команд. Если оба этапа реализуются за одно и то же время, цикл обработки команды сократится вдвое. По присмотревшись к процессу повнимательнее, мы обнаружим, что увеличения скорости обработки вдвое вряд ли можно достичь на практике (рис. 11.10,6). Тому есть две причины.
1. Время выполнения команды в общем случае больше времени извлечения. Выполнение команды может потребовать извлечения и сохранения в памяти значений операндов и выполнения определенных операций с ними. Следовательно, "позиция извлечения" конвейера будет вынуждена определенное время простаивать, дожидаясь, пока заполненный ею буфер не освободится.
2. Приступая к выполнению команды условного перехода, нельзя заранее предсказать, каков будет адрес следующей выполняемой команды. Следовательно, позиция извлечения должна дождаться завершения выполнения текущей команды, получить от нее адрес следующей выполняемой команды, и только после этого можно будет приступить к ее извлечению.