Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZH 2011 - ОРГАНИЗАЦИЯ ЭВМ.doc
Скачиваний:
42
Добавлен:
20.09.2019
Размер:
5.4 Mб
Скачать

22. Динамическое планирование работы конвейера процессора

Возможные конфликты:

  • структурные (связанные со структурой);

  • конфликты по данным (результат предыдущей команды влияет на выполнение следующей);

  • по управлению.

Решение структурных конфликтов:

- стараются уменьшать влияние - приостановка конвейера на 1 такт (pipeline bubble);

- дублирование – 1 шина на ввод, 2-я – на вывод.

Решение конфликтов по данным:

WAR – запись после чтения;

RAW – чтение после записи;

WAW – запись после записи.

1) вводятся дополнительные пути (пути обхода). Результат не записывается в регистр, а идет напрямую в исполнительное устройство. Т. е. в конвейере –1 такт.

2) дублирование – дополнительный набор регистров.

Не все конфликты по данным можно обойти, особенно в архитектурах с расширенным набором команд.

Для решения этих проблем используют методы планирования работы конвейера.

1-й вариант связан с упорядочением команд программными средствами – интерпретатор, компилятор.

2-й вариант – динамическая оптимизация:

  1. обнаружение конфликтов на начальной стадии работы конвейера (при дешифрации команд);

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

  3. переименование регистров (дублирование). Должен существовать набор регистров, которые могут в процессе работы переименовываться => для выполнения одной команды – 1 набор регистров, а для другой конфликтующей команды – тот же набор, но другими именами.

Решение конфликтов по управлению

Эти конфликты дают наиболее существенные потери:

  • сброс конвейера (наипростейшее решение), однако это снижает производительность, т. к. в программе часты переходы.

Пути решения:

  • предсказание переходов;

  • дублирование вычислений.

Предсказание переходов.

Наиболее часты переходы вперед (60-70%). Переходы часто связаны с циклами. Каждому переходу в программе определяется признак (знак), который определяет, правильно или нет угадан предыдущий переход. С каждым циклом этот признак может ув. или ум. Имея 2-хразрядный признак, удается предсказать до 95% следующий переход.

23. Минимизация конфликтов в конвейере процессора

Решение структурных конфликтов:

- стараются уменьшать влияние - приостановка конвейера на 1 такт (pipeline bubble);

- дублирование – 1 шина на ввод, 2-я – на вывод.

Решение конфликтов по данным:

WAR – запись после чтения;

RAW – чтение после записи;

WAW – запись после записи.

1) вводятся дополнительные пути (пути обхода). Результат не записывается в регистр, а идет напрямую в исполнительное устройство. Т. е. в конвейере –1 такт.

2) дублирование – дополнительный набор регистров.

Не все конфликты по данным можно обойти, особенно в архитектурах с расширенным набором команд. Для решения этих проблем используют методы планирования работы конвейера.

1-й вариант связан с упорядочением команд программными средствами – интерпретатор, компилятор.

2-й вариант – динамическая оптимизация:

  1. обнаружение конфликтов на начальной стадии работы конвейера (при дешифрации команд);

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

  3. переименование регистров (дублирование). Должен существовать набор регистров, которые могут в процессе работы переименовываться => для выполнения одной команды – 1 набор регистров, а для другой конфликтующей команды – тот же набор, но другими именами.

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