инструкция, которые находятся в тени ошибочных ветвей являются фиктивными - неправильно, и никогда не должен быть замечен пользователем (конвейерный немного бит обмана, во внешний мир мы притворяемся, что процессор выполняет одну команду за раз, в совершенном последовательном порядке). Поэтому эти спекулятивные инструкции должны быть очищены без какого-либо архитектурного эффекта, такого как запись в память или изменение значения регистра.
Поскольку исполнение выполнено в порядке, а окончательное разрешение ветви известно на EX, у вас должно быть достаточно времени, чтобы сообщить следующую инструкцию в конвейере об отмене себя (эффективно заменяя их пузырьками, где машина ничего не делает для них на любом из следующих этапов труб). Этапы, на которых вы оказываете влияние на машины, находятся дальше по трубе, поэтому ни одна из плохих инструкций не дойдет до них слишком рано. Это будет намного сложнее на машине без порядка, но это совсем другая история. Единственная потерянная работа находится на предыдущих этапах, из которых у вас есть 2 (IF + ID) и, возможно, (в зависимости от вашего дизайна) следующая инструкция, которая должна быть отправлена в IF в следующем цикле (в случае, у вас есть время, чтобы исправить ваш счетчик программ, следующий за веткой. На более сложных машинах у вас может быть более глубокий трубопровод с большим количеством этапов, поэтому штраф увеличивается.
Как правило, вызывается очищение плохих инструкций, следующих за неверно предсказанной веткой промывка, очистка или раздавливание (обратите внимание, что эти термины также могут иметь разные значения в компьютерной архитектуре, поэтому это не технический термин, так как это графическое описание)