#### Статические методы обработки условных переходов. **Задержанный/отложенный переход** - инструкция, след. после перехода (из слота задержки перехода) исполняется независимо от того, произошел переход или нет (введена частью ISA). - **Предположение, что переход никогда не происходит.** Продолжается выполнение инструкций, начиная с инструкции, след. за инструкцией перехода, но состояние машины не меняется до тех пор, пока рез-тат перехода точно не определен. Если переход не произошел - состояние сохраняется, если произошел - рез-таты отбрасываются, фактически произошел простой. - **Предположение, что переход всегда происходит.** Продолжается выполнение инструкций, начиная с места перехода, ... Труднее реализовать, чем предыдущий вариант. **Пример: схема предсказания «переход не произойдет»:** **Переход не произошел, нет простоя:** | I (untaken branch instruction) | IF | ID | EX | MEM | WB | | | | | | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | | I+1 | | IF | ID | EX | MEM | WB | | | | | I+2 | | | IF | ID | EX | MEM | WB | | | | I+3 | | | | IF | ID | EX | MEM | WB | | | I+4 | | | | | IF | ID | EX | MEM | WB | **Переход произошел, простой:** | I (taken branch instruction) | IF | ID | EX | MEM | WB | | | | | | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | | I+1 | | IF | Idle | Idle | Idle | idle | | | | | Branch target | | | IF | ID | EX | MEM | WB | | | | Branch target +1 | | | | IF | ID | EX | MEM | WB | | | Branch target +2 | | | | | IF | ID | EX | MEM | WB |