Неопределенные инструкции процессора без выполнения вызывают ошибки?

Сейчас я пытаюсь отправлять коды динамически, например, SSE, AVX и так далее. В двоичном файле все коды, которые будут отправлены во время выполнения, связаны.

Я беспокоюсь, что неопределенные инструкции ЦП в пути кода, которые не будут выполняться в ЦП, вызывают непреднамеренное поведение из-за спекулятивного выполнения или других действий.

Тогда у меня есть два вопроса.

  1. Будет ли ошибка отчета ЦП происходить в умозрительном исполнении обычно?
  2. Неопределенные инструкции процессора без выполнения вызывают ошибки?

1 ответ

Решение

Вы слишком беспокоитесь. Спекулятивное выполнение называется спекулятивным, потому что ЦП выполняет некоторый код только в том случае, если считает, что оно того стоит, но не может предположить, что код не вызовет каких-либо исключений ЦП. Выполнение машинного кода имеет строгую последовательную семантику "инструкция за инструкцией", поэтому ЦП не может законно сообщать о проблемах из (спекулятивного) будущего относительно (логически) текущего указателя инструкций.

Другие вопросы по тегам