50.9.1. ОТЛОЖЕННЫЕ ПЕРЕХОДЫ





(X - инструкция перехода) (A,B - инструкции плсде перехода когда он выполнен). Условный переход сбрасывает конвеер при своем выполнении. Можно ли как-нибудь минимизировать это влияние? Да, для этого служат отложенные переходы (Delayed branches). Они используются на RISC процессорах (например HP-PA).

Идея: Выполняется переход (но не происходит сброса конвеера, а начинается предвыборка с уже нового адресса, а команды которые сидят в конвеере выполняются независимо от того будет переход или нет: (Если нам нечего поставить то можем окно отложенного перехода заполнить командами NOP (No Operation)) Пример HP-PA LDW 0x20(r30), r2 COMI B, >10,r2,main+80 LDW 0x24(r30), r3 // выполняестся в оюбом случае // был выполнен переход или нет +----------+ | ... | +----------+ | условный | | переход | +----------+ ---+ | команды | | окно отложенного перехода | | | (эти команды выполнятся по любому) +----------+ ---+ | ... | +----------+ Переход не выполнен:

Переход выполнен:

Как мы видем конвеер не стоит.

Index Prev Next