Я взял время на чтение справочное руководство для Cortex-A8: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344k/DDI0344K_cortex_a8_r3p2_trm.pdf
Из раздела 5.1:
Процессор содержит аппаратные средства прогнозирования потока программы, также известный как предсказания ветвлений. При отключении прогноза потока программы все принятые ветви несут штраф в 13 циклов. При прогнозировании потока программы , все неверно предсказанные ветви несут штраф в 13 циклов.
В основном это означает, что предсказание статического ветвления всегда считает ветви ложными. Это отличается от PowerPC, у которого есть «специальные инструкции» для подсказки процессора о принятых/не принятых филиалах (postfix +/-).
Из раздела 1.3.1:
выборки команды блока предсказывает поток команд, извлекает инструкции из кэша L1, и помещает неправдоподобные инструкций в буфер для потребления по трубопроводу декодирования.
- выборки команды, первый этап, делает предсказание.
из раздела 7.6.2:
Команда может оставаться в трубопроводе между тем неправдоподобным и выполняется. Поскольку в может существовать несколько неразрешенных ветвей, выборки команд являются спекулятивными, то есть не гарантирует, что они выполнены. Ветвь или исключительная команда в потоке кода может вызвать сброс конвейера, отбрасывая выбранные команды. Загрузки или инструкции табличные прогулки, начинающиеся без пустого конвейера, помечены спекулятивными. Если конвейер содержит какую-либо инструкцию до точки ветвления и разрешения исключения, то конвейер считается не пустым.
Я интерпретирую это, поскольку ничто не достигает стадии выполнения во время обработки ветви. Если происходит неправильное исчисление, как обнаружено при выполнении ветви в инструкции Execute, все инструкции в конвейере «промываются». Они никогда не исполняются. Это должно ответить на вопросы 2 и 4. Не так уверен в том, как выполняется «маркировка».
- Я не знаю, как он посылает сигнал. Насколько я могу судить, справочное руководство не охватывает эту часть. Угадайте, это волшебство.
(Для записи я найти справочные руководства PowerPC (e500/e600) I'm привык к тому, гораздо легче понять, из-за многочисленных образцов команд синхронизации.)
Вот ссылка на ссылки руководство для ARMv8-A: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0406c/index.html Доступно только для зарегистрированных пользователей. Я знаю кое-что о предсказании филиала PPC, если вы заинтересованы. Просто скажи это слово. – Andreas
Хорошо: :-) :-) :-). –
У меня есть доступ к справочным руководствам. Есть ли какая-то конкретная модель оружия, которую вы интересуете? – Andreas