Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
default.docx
Скачиваний:
10
Добавлен:
13.09.2019
Размер:
2.43 Mб
Скачать
  1. Конфликты в командном конвейере.

На непрерывную работу командного конвейера оказывает влияние множество факторов. К основным факторам, нарушающим непрерывность конвейернойреализации команд, можно отнести следующие:

1) задержка начала выполнения следующей команды, связанная с ожиданием выборки операнда этой командой или определения его адреса.

2) команды условного перехода.

3) отсутствие в кэш-памяти требуемых данных или команд или конфликтное обращение к памяти.

4) изменение предшествующей командой содержания последующей команды или содержимого регистра состояния.

5) прерывания.

6) машинные команды, реализующие сложные операции (например, операции с плавающей точкой).

Рассмотренные факторы приводят к тому, что при конвейерной реализации команд могут возникнуть ситуации, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее машинном цикле (как правило, стараются сделать таким образом, чтобы машинный цикл состоял из одного такта). Такие ситуации называются конфликтными ситуациями или просто конфликтами. Конфликты снижают реальную производительность конвейера, которая могла бы быть достигнута в идеальном случае, так как приводят к возникновению задержек в командном конвейере.

Существуют три класса конфликтов:

  1. Структурные конфликты, которые возникают из-за конфликтов по ресурсам, когда аппаратные средства не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения с совмещением.

  2. Конфликты по данным, возникающие в случае, когда выполнение одной команды зависит от результата выполнения предыдущей команды.

  3. Конфликты по управлению, которые возникают при конвейеризации команд переходов и других команд, которые изменяют значение счетчика команд.

Конфликты в конвейере приводят к необходимости приостановки выполнения команд. Обычно в простейших конвейерах, если приостанавливается какая-либо команда, то все следующие за ней команды также приостанавливаются. Команды, предшествующие приостановленной, могут продолжать выполняться, но во время приостановки не выбирается ни одна новая команда.

В настоящее время конвейерная реализация машинных команд широко используется в высокопроизводительных микропроцессорах.

  1. Структурные конфликты и способы их минимизации.

Структурные конфликты проявляются в том, что последовательные команды, использующие некоторое функциональное устройство, не могут поступать в него в каждом такте.

Такие ситуации возникают тогда, когда требуемое функциональное устройство является недоступным, так как оно занято выполнением действий соответствующего этапа другой команды, или когда на данное функциональное устройство претендует одновременно несколько команд.

Наиболее типичным примером является случай, когда время работы некоторого функционального устройства может составлять несколько тактов синхронизации конвейера.

Другая возможность появления структурных конфликтов связана с недостаточным дублированием некоторых ресурсов, например, единственная память для команд и данных. В этом случае конфликтное обращение к памяти может произойти, при наложении друг на друга этапов ВК, ВО, ЗР команд, следующих одна за другой.

Для устранения структурных конфликтов принимаются следующие меры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]