Помощь в учёбе, очень быстро...
Работаем вместе до победы

Конвейерный принцип выполнения команд

РефератПомощь в написанииУзнать стоимостьмоей работы

Тактовая частота современных высокопроизводительных процессоров достигает нескольких гигагерц, и на выполнение одной микро-операции отводится время менее одной наносекунды. Поэтому процедура выполнения команд разбивается на более мелкие этапы и число ступеней конвейера увеличивается до 10 и более. Например, в микропроцессорах Pentium 4 используется 20-ступенчатый конвейер. Разноформатные команды… Читать ещё >

Конвейерный принцип выполнения команд (реферат, курсовая, диплом, контрольная)

В соответствии с этим принципом процесс выполнения команды разбивается на ряд этапов. Рассмотрим его особенности на конкретном примере при следующих условиях [9]:

  • • команда разбивается на шесть этапов:
    • 1) выборка очередной команды (ВК);
    • 2) декодирование выбранной команды (ДК);
    • 3) формирование адреса операнда (ФА);
    • 4) прием операнда из памяти (ПО);
    • 5) выполнение операции (ВО);
    • 6) размещение результата в памяти (PP);
  • • выполнение каждого этапа занимает один такт машинного времени;
  • • каждый из этапов соответствует выполнению одной микрооперации;
  • • для каждой микрооперации используется отдельное устройство, или ступень исполнительного конвейера;
  • • выполнение микрооперации (включая загрузку в конвейер очередной команды) возможно только в случае готовности (незанятости) ступени исполнительного конвейера;
  • • для каждой команды должна соблюдаться очередность выполнения ее отдельных этапов, или микроопераций.

В конвейере одновременно может находиться несколько (для рассматриваемого примера три) команд на разных этапах их выполнения. В идеальном варианте при полной загрузке конвейера однотипными командами на его выход в каждом такте будет поступать результат выполнения очередной команды (рис. 2.1,а, б). В этом случае производительность процессора (операций/с) будет равна его тактовой частоте (тактов/с).

Однако в реальных условиях отдельные ступени конвейера могут оказаться:

  • • в состоянии ожидания (ОЖ), когда ступень не может выполнить требуемую микрооперацию из-за отсутствия необходимых данных. Например, не получен необходимый операнд, являющийся результатом выполнения предыдущей команды;
  • • в состоянии простоя (ПР), когда ступень вынуждена пропустить очередной такт, так как поступившая команда не требует выполне-

Конвейерный принцип выполнения команд.

Рис. 2.1. Конвейерный принцип выполнения команд.

ния соответствующего этапа. Например, безадресные команды не требуют выполнения этапов формирования адреса (ФА) и приема операнда (ПО), поэтому ступени ФА и ПО конвейера будут находиться в состоянии простоя.

На рис. 2.1, я показан пример работы 6-ступенчатого конвейера для случая, когда при выполнении фрагмента реальной программы отдельные ступени оказываются в состоянии ожидания (ОЖ) или простоя (ПР).

Команда I инкрементации INC R2 (увеличивает содержимое регистра R2 на 1) не требует выборки операндов из памяти и размещения в ней результата. Поэтому при ее выполнении исполнительные ступени конвейера, выполняющие микрооперации ФА, ПО, PP, находятся в состоянии простоя (ПР).

Команда 2 означает пересылку содержимого ячейки памяти, адресуемой содержимым регистра R2, в регистр R3 — MOV (R2), R3. При ее выполнении реализуются состояния ожидания, пока в регистре R2 не будет получен результат предыдущей операции.

Команда 3. Т акты ожидания вводятся также при выполнении команды сложения ADD R3 (R4) до получения необходимого значения операнда в регистре R3.

Тактовая частота современных высокопроизводительных процессоров достигает нескольких гигагерц, и на выполнение одной микро-операции отводится время менее одной наносекунды. Поэтому процедура выполнения команд разбивается на более мелкие этапы и число ступеней конвейера увеличивается до 10 и более. Например, в микропроцессорах Pentium 4 используется 20-ступенчатый конвейер.

Эффективность использования конвейера определяется типом поступающих команд:

  • однородные команды сокращают число состояний простоя и ожидания в процессе их выполнения, в результате чего повышается производительность процессора;
  • разноформатные команды, содержащие различное количество байтов, имеют большое количество состояний простоя и ожидания. Поэтому принятый во многих RISC-процессорах стандартный 4-байтный формат команд обеспечивает существенное сокращение числа ожиданий и простоев конвейера, что позволяет значительно повысить производительность.

На эффективность использования конвейера влияют также команды ветвления (условных переходов). При выполнении условия ветвления необходимо перезагружать конвейер командами из другой ветви программы, что ведет к значительному снижению производительности процессора. Для сокращения числа перезагрузок конвейера используются различные способы предсказания ветвлений (Branch Prediction), реализуемых с помощью блоков предсказания ветвления, вводимых в структуру процессора.

Один из способов предсказания базируется на предположении, что при повторном обращении к команде условие ветвления сохраняется. Для реализации этого способа используется специальная память ВТВ (Branch Target Buffer — буфер флагов ветвлений), где хранятся адреса ранее выполненных условных переходов. При повторном поступлении команды ветвления предсказывается переход к ветви, которая была выбрана в предыдущем случае, и производится загрузка в конвейер команд из той же ветви. При правильном предсказании не требуется перезагрузка конвейера и эффективность его использования не снижается. Эффективность такого способа предсказания зависит от емкости ВТВ и оказывается достаточно высокой: вероятность правильного предсказания составляет 80% и более.

Повышение точности предсказания достигается при использовании более сложных способов, когда хранятся и анализируются результаты нескольких предыдущих команд ветвления по данному адресу (предыстория переходов).

Показать весь текст
Заполнить форму текущей работой