21. Конвейерная архитектура процессора: принцип организации, модель производительности, классификация конвейеров.
Конвейерная архитектура: зачем?
Проблемы, связанные с выполнением инструкции за один такт:
- Продолжительность такта равна продолжительности самой медленной инструкции.
- Слабое использование процессорных ресурсов: во время выполнения инструкции другие компоненты процессора, не связанные с данной инструкцией, простаивают.
- Некоторые инструкции нельзя выполнить за один такт. Например, инструкции с операндом из памяти.
Конвейерная архитектура процессора
- Конвейер инструкций – это техника увеличения пропускной способности (числа инструкций, выполняемых в единицу времени) процессора.
- Несколько инструкций перекрываются во времени. При этом используется врожденный параллелизм, существующий среди действий, составляющих инструкцию.
- Инструкция разбивается на последовательность этапов. Различные этапы выполняются одновременно и параллельно (различными схемами).
- Техника увеличивает пропускную способность благодаря параллельному выполнению нескольких инструкций. Однако время выполнения одной инструкции остается прежним, т.к. нужно выполнить все этапы.
- Непредсказуемость времени выполнения отдельной инструкции из-за приостановок
осложняет использование конвейеризации в системах реального времени. - Техника не требует особых усилий со стороны пользователей. Это выглядит очень привлекательно: техника предлагает увеличение производительности при сохранении существующего кода.
Классификация конвейеризированных процессоров
- Структура: линейные, нелинейные.
- Составление расписания операций: статическое, динамическое.
- Глубина: мелкие, глубокие.
Структура
- Линейные конвейеры – те, в которых поток данных последовательно передается от стадии к стадии.
- Нелинейные конвейеры – те, в которых имеются обратные переходы, несколько выходов, выходы не обязательно из последней стадии.
Составление расписания операций
Статическое:
- Одинаковая последовательность стадий для любых команд.
- Все стадии выполняются по порядку.
- Если одна инструкция останавливается (stall), последующие
инструкции также задерживаются.
Динамическое – ослабленный вариант статического. Виды:
- Начинаются и заканчиваются в правильном порядке.
- Начинаются по порядку.
- Нет ограничений за исключением зависимостей.
- Начинаются по порядку, обращения к памяти по порядку.