Ответ 1
Если целевая ветвь условной ветки не найдена в целевом массиве
Как его не найти? вы маскируете его с помощью битовой маски, чтобы найти индекс в таблице и получить следующую цель ветвления.
Хорошо, если после того, как вы прочитаете результат, проверьте, что адрес вызова не совпадает с тегом результата, результат "не получен".
В этот момент мы переходим ко второй части инструкции.
и IQ предсказывает, что ветвь взята
Таким образом, цель ветвления говорит "не принято", и IQ предсказывает, что это будет сделано, мы имеем противоречие.
Чтобы решить противоречие, IQ выигрывает, поскольку цель ветки просто "если мы прыгаем, мы прыгаем сюда", но IQ предсказывает, если мы прыгаем или не основываемся на гораздо большей логике.
Следовательно,
тогда IQ заставит Калькулятор адресов ветки выдавать BACLEAR. Каждый BACLEAR, утверждаемый BAC, генерирует приблизительно 8 циклический пузырь в конвейере выборки команд.
Что хорошо в трубопроводе на стадии 14-19. 8 циклов, если IQ может прочитать фактический адрес цели из инструкции (в сочетании с ПК), если значение нужно прочитать в регистре (возможно, еще не удалено), это может занять немного больше времени.