URL данного справочника
НавигаторИнструкции базового набора RV32I:
|
Инструкции базового набора RV32IRV32I является основой системы команд RISC-V. Он обязателен для реализации в любом процессоре. При необходимости к базовому набору могут быть добавлены стандартные расширения и даже дополнительные инструкции, разработанные пользователем. Например, в состав RV32I не входят умножение и деление. Если предполагается частое использование этих операций в приложениях, то стоит добавить расширение M, содержащее соответствующий набор инструкций. Как легко догадаться из названия, набор RV32I предназначен для работы с 32-битными целыми числами. Предусмотрено увеличение разрядности до 64 (RV64I) и 128 (RV128I) битов. Последнее из названных расширений на данный момент (май 2024) не вполне детализировано. Для операций над вещественными числами разработаны расширения F, D и Q (32, 64 и 128 битов соответственно). Все они базируются на общепринятом стандарте IEEE 754-2008. В базовом наборе RV32I всего 40 инструкций. Это заметно упрощает его аппаратную реализацию, а также делает возможным быстрое изучение. В то же время, минималистичность системы команд потребует применения некоторых специфических приемов при составлении программ. Например, из-за отсутствия инструкций копирования данных из одного регистра в другой приходится использовать "фиктивное" сложение с нулем, а по причине отсутствия логической операции NOT используется XOR с маской из всех единиц. С примерами можно познакомиться в описаниях сответствующих инструкций. Почти все инструкции RISC-V имеют разрядность 32 бита. Исключение составляет расширение C, предусматривающее сжатую до 16 битов форму кодирования наиболее часто встречающихся команд. Каждая такая команда перед выполнением "разворачивается" в полный 32-битный формат. Примеры кодирования инструкций показаны при их описании. Коды и работа всех инструкций набора RV32I были проверены с помощью online-симулятора Venus. Из того, что я опробовал, он показался мне наиболее простым для освоения. К сожалению, никаких других инструкций симулятор не поддерживает. |