Этот вопрос не относится к какой-либо реализации ЦП, но приветствуются ответы, связанные с ЦП.
В настоящее время я использую ЦП с полной поддержкой MMU, и возникла простая проблема.
Итак, представьте ситуацию, когда происходит простой промах TLB, вызванный потоком инструкций (или кешем инструкций). Это вызовет промах TLB. Теперь, если PTE не найден, будет инициировано какое-то исключение, например «Ошибка перевода страницы». Пока никаких проблем.
Теперь, чтобы вызвать обработчик ошибок, поток инструкций (или кеш) должен получить код обработчика исключений. Для этого потребуется еще раз поиск соответствующей записи PTE в TLB и, в конечном итоге, еще один обход таблицы.
Представьте, что опять же запись PTE не найдена. Можно было бы ожидать вызова какого-то другого обработчика исключений.
Теперь, в этом последнем обработчике исключения, поскольку сам обработчик может быть не найден или не действителен, блокируется ли MMU до того, как обработчик будет выбран и выполнен (таким образом, обходя все, что делает MMU, включая отображение Phys-Virt), или есть другой метод (без смертельного исхода), чтобы справиться с этой ситуацией?
Алви