Поведение: изменение процесса во время инструкции сопроцессора - PullRequest
0 голосов
/ 17 декабря 2018

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

Прочитав тезис, у меня все еще есть несколько вопросов, в основном:

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

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

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

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