Конвейер команд. Временные проблемы конвейера (временные диаграммы).
Конвейер - устройство, реализующее такой метод обработки команд внутри микропроцессора, при котором исполнение команды разбивается на несколько этапов. На стадии выполнения каждая машинная команда разбивается на более элементарные операции. Для выполнения каждого этапа операции имеется отдельный аппаратный блок. Эти блоки соединены в линию так, чтобы результат выполнения в данном блоке некоторого этапа передавался для реализации очередного этапа на следующий блок, все блоки функционируют одновременно.
Если для выполнения любого этапа операции выделено одно и тоже время tT (такт конвейера), то такой конвейер называется синхронным.
Рассмотрим рабочий цикл процессора (Пр). Выполнение любой команды Пр складывается из нескольких различных этапов, каждый из которых выполняется своим функциональным узлом.
Рассмотрим пример: выполнение одноадресной машинной арифметической операции без использования конвейерной обработки. Этапы рабочего цикла:
- этап 1 - формирование адреса команды – t1
- этап 2 - чтение команды из оперативной памяти (ОП) –t2
- этап 3 -формирование адреса операнда – t3
- этап 4 - чтение операнда из памяти – t4
- этап 5 - выполнение арифметической операции – t5
Если длительность i-ого этапа равна ti и все этапы выполняются последовательно, то
tпосл. =tl+t2+t3+t4+t5 (1.1)
Временная диаграмма работы одноадресной машины при последовательном выполнении команд представлена на рис. 1.1.
|
|
Принято, что tl=t3<t2=t4<t5=tT
Производительность определяется по формуле:
(1.2)
При рассмотрении функционирования конвейера основная задача состоит в определении такта. Далее поступим следующим образом:
1) Определяем такт конвейера. Обозначим через tT (время такта) величину tT=max{ti}
и будем требовать, чтобы для любых i=1,2,3,..., выполнялось условие ti+ti+1>tT
Иначе говоря, в качестве времени такта tT выберем длительность наиболее продолжительного этапа операции, а саму разбивку на этапы производим таким образом, чтобы никакие два последовательных этапа не могли быть выполнены за время одного такта.
2) Другой способ, которым можно действовать в этом случае, состоит в том, чтобы разделить на части наиболее длительный этап и таким образом уменьшить время такта.
Например, может оказаться, что самым длительным этапом является работа арифметического устройства, когда оно выполняет операцию умножения. Если это так, то множительное устройство можно построить в виде двух самостоятельных функциональных узлов, каждый со своими входными и выходными регистрами, из которых первый выполнял бы умножение множимого на младшие разряды множителя, а второй - умножение множимого на старшие разряды множителя и сложение с результатом, полученным первым функциональным узлом.
|
|
Когда условия ti<tT ti+ti+1>tT (i=1,2,3,…n) (1.4)
так или иначе, удовлетворены. Функциональные узлы, выполняющие последовательные этапы операции, целесообразно выстроить в единую конвейерную линию, в которой устройство, выполняющее этап 1, закончив его для одной операции, переходило бы в следующем такте к выполнению своего этапа для следующей операции и т.д.
Быстродействие в синхронном конвейере (номинальное) равно:
Количество этапов, на которые разделено выполнение каждой операции, называется глубиной перекрытия, т.е. определяет количество ступеней конвейера. В каждом такте на конвейере находится одновременно п последовательных операций. Чем больше глубина перекрытия, тем больший выигрыш в быстродействии может быть получен.
Из условия ti < tT, i = 1,2,...,n следует:
tпосл = , (1.6)
а из условий ti+ti+1>tT следует (1.7)
или
Таким образом,
т.е. выигрыш в номинальном быстродействии получается в
раз.
Отношение представляет собой предельный выигрыш в быстродействии при синхронном конвейере с глубиной перекрытия n.
Реальный выигрыш по быстродействию оказывается всегда меньше предельного выигрыша. Это объясняется двумя факторами:
|
|
1) некоторые операции могут выполняться за меньшее количество тактов, чем обычные арифметические операции, в виду чего отдельные функциональные узлы, включенные в конвейер, при выполнении данных операций простаивают.
2) при выполнении некоторых операций на определенных этапах могут потребоваться результаты более поздних этапов предыдущих операций, либо при выполнении некоторых операций результаты определенных этапов могут влиять на более ранние этапы следующих, ввиду чего приходится приостанавливать конвейер. Этот фактор проявляется при выполнении операций условного перехода.
Пример выполнения операции условного перехода по результату арифметической oпeрации. Если бы временная диаграмма строилась по последовательному принципу, то такая операция выполнилась бы всего в 2 такта: формирование адреса, команда условного перехода и чтение команды условного перехода из ОП, после чего необходимо переходить к формированию адреса следующей команды. Однако при конвейерной организации условный переход оказывается длиннее обычных операций.
Рассмотрим пример влияния на производительность конвейера команды условного перехода по результату арифметической операции при конвейерной обработке команд (Рис. 1.3). Временная диаграмма работы конвейера для следующих операций:
|
|
Показан случаи, когда условие перехода выполняется, т.е. приходится заново формировать адрес следующей команды. Заштрихованы те такты, когда не используются отдельные устройства, включенные в конвейер. При выполнении операции (2) пересылка данных в регистр - в шестом такте простаивает АЛУ, а при выполнении (3) операции - УП - в пятом такте простаивает устройство формирования адреса операнда, в шестом - АЛУ. Простой конвейера равен двум тактам.
Дата добавления: 2015-12-17; просмотров: 66; Мы поможем в написании вашей работы! |

Мы поможем в написании ваших работ!