Риск по
управлению обусловлен командами,
изменяющими естественный порядок вычислений, что создает наибольшие проблемы
практической реализации эффективного конвейера. Канонический конвейер ориентирован
на линейные программы. В нем ступень выборки извлекает команды из
последовательных ячеек памяти, используя для этого счетчик команд. Адрес
очередной команды в линейной программе формируется автоматически, за счет
прибавления к содержимому счетчика команд числа, равного длине текущей команды
в байтах. Реальные программы практически никогда не бывают линейными. В них как
правило обязательно присутствуют команды управления, изменяющие последовательность
вычислений. Это команды безусловных и условных переходов, команды вызова
процедур, команды возврата из процедур и т. п. Доля подобных команд в программе
в среднем составляет не менее 15 – 20%.
Неоднозначность при выборке следующей команды в случае команд перехода может
приводить к приостановке конвейера, что в целом снижает производительность
процессора.