Поведение: изменение процесса во время инструкции сопроцессора

Я пытаюсь понять интерфейс RoCC чипа Rocket. Пока единственным ресурсом, который я нашел, был этот тезис: Проектирование и программирование сопроцессора для архитектуры RISC-V.

Прочитав диссертацию, у меня остались вопросы, в основном:

  1. Что происходит, когда происходит изменение процесса во время выполнения инструкции сопроцессора?

    • В этом случае TLB из L1-D$ должны быть очищены, и преобразование виртуальных в физические адреса больше не будет возможно. Что произойдет, если копро попытается получить доступ к памяти?
  2. Когда xd установлен в 0, это означает, что результат инструкции останется в регистре копро. Как ядро ​​может быть уведомлено о завершении инструкции? На линии прерывания или есть другой механизм?

  3. Можно ли установить rd равным x0 и пропустить задержку, вносимую ядром, в команды приоритетов из своего конвейера, для которых установлен бит wxd?

    • Это всего лишь идея, чтобы иметь возможность дать сигнал от копира к ядру о том, что инструкция завершена, и она должна извлечь данные из кеша.

0 ответов

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