- •Московский государственный институт электроники и математики
- •Цель и практическое содержание методических указаний
- •Процедура выполнения команд. Конвейер команд
- •Арифметический конвейер
- •Система команд
- •Задание на лабораторную работу
- •Последовательность выполнения лабораторной работы
- •Содержание отчёта по лабораторной работе
- •Контрольные вопросы
- •Список литературы
Процедура выполнения команд. Конвейер команд
Процессор работает под управлением программы, состоящей из последовательности команд. При выполнении каждой команды процессор выполняет некоторую последовательность действий, называемую циклом выполнения команды. Каждый цикл состоит из нескольких фаз. Стандартные фазы работы ЦП включают в себя:
Выборка команды — передача содержимого счетчика команд в регистр адреса памяти, считывание команды из основной памяти в регистр команды, модификация содержимого счетчика команд для выборки следующей команды.
Выборка операндов — вычисление адреса и обращение в основную память или к регистру локальной памяти. Операнд считывается и принимается в регистр АЛУ.
Выполнение команды или арифметическая операция — инициализация (кодом операции) цикла работы устройства управления, которое, в свою очередь, управляет работой АЛУ, регистров и схем сопряжения.
Запись результатов — результат выполнения передается в локальную или основную память.
Обработку прерывания — сигналов от внутренних и внешних источников, требующих немедленной реакции ЭВМ.
Изменение состояния процессора и системы в целом, далее процессор переходит к выборке и выполнению следующей команды.
Эти фазы (за исключением прерывания) должны выполняться последовательно для каждой команды. Однако для нескольких команд можно совместить во времени различные фазы цикла. Для этого весь процессор разбивается на несколько частей - ступеней (уровней) конвейера. На каждой ступени выполняется определенная фаза выполнения команды. Такое совмещение стадий выполнения нескольких команд на различных ступенях конвейера приводит к тому, что выполнение следующей команды начинается в нём до окончания предыдущей. Это значительно увеличивает быстродействие процессора. Такую организацию процессора стали называть конвейером команд.
На рис.2 показаны временные диаграммы выполнения команды с разбиением на фазы а) последовательная обработка команд б) обработка команд в режиме совмещения - конвейер команд. Для простоты принято число фаз и ступеней конвейера равным 4. Моменты времени, помеченные t1, t2,… tN обозначают моменты окончания выполнения команд 1, 2, … N – соответственно. Как видно из рисунка 2, за меньшее время может быть выполнено большее число команд при конвейерной обработке, чем без неё. Значит средняя продолжительность выполнения команд в процессоре tСР (интервал, через который с конвейера «сходит» выполненная команда), гораздо меньше при конвейерной обработке, чем при последовательном выполнении команд. tСР при конвейерной обработке зависит не столько от длительности всех фаз команды, сколько от количества ступеней конвейера и временного шага конвейера.

Рис.2.
Временные диаграммы обработки в
процессоре N
команд:
а) последовательное выполнение команд;
б) совмещенное выполнение команд (конвейеризация).
Совмещенные принципы обработки (конвейер) команд существенно увеличивают пропускную способность процессора, однако эффективность их использования зависит от управления (синхронизации) и числа уровней обработки – ступеней конвейера.
Приостановку работы конвейера вызывает любая команда условного перехода, поскольку заранее не известен адрес следующей команды. Он будет определен только по окончании команды передачи управления, и значит начать заранее выполнение следующей команды мы не можем (см. рис.3). t” - Момент, когда станет известен адрес следующей команды 2, и возможно обращение по этому адресу в ОП для выборки команды
Рис.3.
Простой в работе процессора и в программе,
вызванный командой передачи управления
Простои также возникают при взаимозависимости команд, т.е. использование следующей командой результатов предыдущей команды (см. рис.4). Следующая команда2 не может завершить выборку операндов и начать их обработку, т.к. предыдущая команда1 не записала результат, который и будет операндом для команды2.
Рис.4.
Простой в работе программы, вызванный
взаимозависимостью команд
Простои и неравномерность в работе конвейера могут быть также вызваны различной длительностью разных фаз команд. Команда2 может уже быть готова перейти к следующей ступени, но эта ступень может оказаться ещё занята предыдущей командой1. И наоборот, ступень конвейера свободна, но команда, которая должна туда перейти, ещё находится на предыдущей фазе своего выполнения. Поэтому CISC-процессоры со своими сложными многотактными командами имеют меньшую эффективность от применения конвейерной обработки, чемRISC-процессоры.
Следует учитывать, что совмещение обработки увеличивает объем оборудования и усложняет схемы управления тем сильнее, чем больше число уровней совмещения – ступеней. Все эти обстоятельства приходится учитывать при выборе числа уровней совмещения в каждом конкретном случае для получения заданных параметров и прежде всего удельных затрат (отношение производительности к стоимости). Опыт разработки ЭВМ общего назначения и проведенные исследования показывают, что технически и экономически целесообразной является совмещенная обработка 5-6 команд.
