Как именно работает статическое предсказание? а что такое слоты задержки?

Я знаю, что невыполненный прогноз всегда предполагает, что ветвление не выполнено, поэтому ПК продолжает работать нормально, если не доказано, что ветвление выполнено, поэтому удалите все инструкции за ветвью в конвейере (при условии, что ветвь разрешена на этапе MEM)

но что, если статический прогноз выполняется всегда? в моей записной книжке сказано:

Компилятор будет пытаться заполнить слоты задержки после каждой команды BRANCH командами адреса перехода. В случае, если для конкретной команды BRANCH он не сможет заполнить весь свой слот задержки, он будет нажимать NOP. Конечно, этот процессор будет сбрасывать НЕ ЗАДАЧИ команд BRANCH.

Могу ли я получить простой пример с реальным списком инструкций? а также что такое слоты задержки? какая разница между слотами задержки и NOPS?


person Mostfa shma    schedule 12.05.2020    source источник
comment
en.wikipedia.org/wiki/Delay_slot. / В чем смысл интервалов задержки? / Почему слот задержки перехода устарел или устарел?. Если слот / слоты задержки перехода полностью скрывают задержку перехода, прогнозирование не требуется. Верно ли это, если мы всегда можем заполнить слот задержки, нет необходимости в предсказании ветвления?   -  person Peter Cordes    schedule 12.05.2020
comment
@PeterCordes Я все еще пытаюсь понять концепцию слота задержки, так что же происходит, когда слот задержки вставляется в этот inst after ветвь, что эта инструкция будет выполняться независимо от того, будет ли ветка взята или нет? а если он будет взят, то будет сброшен инст после ветки?   -  person Mostfa shma    schedule 12.05.2020
comment
Инструкция после перехода выполняется всегда, независимо от того, выполняется переход или нет.   -  person Raymond Chen    schedule 12.05.2020