Files
2025-02-15 15:42:36 +03:00

2.4 KiB
Raw Blame History

Статические методы обработки условных переходов.

Задержанный/отложенный переход - инструкция, след. после перехода (из слота задержки перехода) исполняется независимо от того, произошел переход или нет (введена частью ISA).

Предположение, что переход никогда не происходит.

Продолжается выполнение инструкций, начиная с инструкции, след. за инструкцией перехода, но состояние машины не меняется до тех пор, пока рез-тат перехода точно не определен. Если переход не произошел - состояние сохраняется, если произошел - рез-таты отбрасываются, фактически произошел простой.

Пример

Переход не произошел, нет простоя:

Program 1 2 3 4 5 6 7 8 9
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

Переход произошел, простой:

Program 1 2 3 4 5 6 7 8 9
I (taken branch instruction) IF ID EX MEM WB
I+1 IF - - - -
Branch target IF ID EX MEM WB
Branch target +1 IF ID EX MEM WB
Branch target +2 IF ID EX MEM WB
Предположение, что переход всегда происходит.

Продолжается выполнение инструкций, начиная с места перехода, ... Труднее реализовать, чем предыдущий вариант.