Конвейеризация (конвейер операций)
Повысить производительность процессора можно за счет параллельного выполнения отдельных этапов рабочего цикла команд. Пусть рабочий цикл процессора состоит из К этапов. Тогда при последовательном выполнении этапов продолжительность всех процедур рабочего цикла команды равна:
— продолжительность i-го этапа Если процессор имеет отдельную аппаратуру для выполнения каждого этапа, то эту аппаратуру можно соединить в обрабатывающую линию и получить конвейер операций.
Каждый блок конвейера выполняет один этап рабочего цикла процессора и передает результат выполнения этого этапа на следующий блок для реализации очередного этапа и так далее.
Конвейеры операций могут быть синхронными и асинхронными. Если для выполнения этапа выделено одно и то же время tт, то такой конвейер называется синхронным. Время tт называется тактом процессора и равно продолжительности самого длинного этапа.
Синхронный конвейер целесообразно использовать при условии, что продолжительности ti примерно одинаковые и равны tт. Покажем принцип работы конвейерных команд на временной диаграмме.
Пусть процесс выполнения команд разбит на 5 этапов. Тогда временная диаграмма имеет следующий вид:
На временной диаграмме одинаковыми символами помечены разные этапы рабочего цикла одной и той же команды. Всего команд на диаграмме 7. Эти 7 команд выполняются за 11 тактов на конвейере или за 35 тактов при последовательном методе выполнения команд, т. е. при отсутствии конвейера.
Таким образом, рост производительности не менее, чем в К раз и не более, чем в К раз. 2.
При большой зависимости продолжительности выполнения процедур отдельных этапов от типа команд и вида операндов целесообразно применение асинхронного конвейера, в котором отсутствует единый такт работы его блоков. Информация с одного блока конвейера передается на следующий, когда данный блок закончит свою процедуру, а следующий блок полностью освободится от обработки предыдущей команды.
Кроме конвейера команд используется также и арифметический конвейер, то есть само АЛУ также можно строить в виде конвейера. Конвейерное АЛУ часто называют магистралью. Арифметический конвейер в основном используется в специализированных устройствах с ограниченным набором алгоритмов обработки данных.