Я не эксперт, но за последние 20 лет внедрил несколько ядер.Ключевая концепция в ваших трех частичных вопросах: полнота и видимость пользователя .Утверждать полноту означает, на мой взгляд, что ни одна часть стандарта не может быть изменена или удалена.Однако это действительно редкий стандарт, если в нем нет сомнительных моментов и разделов, которые разные люди могут по-разному интерпретировать.В конкретном случае RISC-V я хотел бы указать на помощь указать соответствие , если вы еще не видели его.
Было бы хорошо, если бы некоторые реальные эксперты ответили на этот вопрос.
- Означает ли соответствие RISC-V, что набор базовых целочисленных команд и стандартное расширение не должны быть изменены или измененыраздели?
У меня такое же понимание, как и у тебя.Не имеет смысла требовать поведения, определенного в стандарте, а затем не соблюдать этот стандарт.
Является ли информация о том, что ветка задерживается или не является частью ISA?
Опять я согласен с вами.Отложенные ветви - это открытая функция для пользователей процессора.Следовательно, ISA должен указать возможное существование таких ветвей, действительно, со страницы 15 riscv-spec-v2.2.pdf:
"Инструкции передачи управления в RV32I не имеют архитектурно видимых интервалов задержки. "
Обратите внимание на формулировку, поскольку ваша реализация не предоставляет пользователю никакого интервала задержки, вы можете делать все, что захотите.А с нестандартным расширением вы совершенно свободно можете создавать инструкции, имеющие слоты задержки, вы даже можете поместить инструкции RV32I в эти слоты.
Считается ли ПК RISC-V независимым от какой-либо задержки конвейера?
Да.