На форуме lists.riscv.org представители Qualcomm предложили не использовать сжатые инструкции (C extension) для applications processors profile в RISC-V.
По их мнению, благодаря стандартным расширениям RISC-V и так достигается высокая плотность кода, а 16-битные инструкции делают микроархитектуру сложнее.
Имплементация compressed расширения усложняют проектирование и верификацию ядра. Это и усложнение логики декодера, дополнительная логика для поддержки не выровненной выборки (Unaligned fetch) из кэша, обработка инструкций пересекающие границы страниц памяти.
Важно понимать, что предлагается отказаться от compressed расширения только для applications processors profile, а не переписать существующую ISA RISC-V.
Compressed расширение все еще прекрасно вписывается в концепцию процессоров для встраиваемых систем.
Одним из аргументов против использования c-ext в профиле RVA23 является влияние c-ext на кодировку всех инструкций RISC-V архитектуре. В архитектуре RISC-V два младших бита инструкции указывают на формат инструкции. В стандартной кодировке из 32 доступных разрядов для кодирования инструкций два младших (с кодами 00, 01 и 10) предназначены для включения дополнительного набора сжатых инструкций, а код 11 предназначен для обозначения based (не сжатой) инструкции. Но если этот сжатый набор не нужен, то освобождаются еще три 30-разрядных слота для кодирования. Это увеличивает общий объем доступного кодирования в 32-разрядном формате в четыре раза.
Например, компания ARM для высокопроизводительных ядер, начиная с архитектура ARMv8a отказалась от поддержки Thumb.
Небольшое пояснение что же такое профиль. "Профиль" в этом контексте означает набор расширений, поддерживаемых конкретным ядром или приложением. Это позволяет разработчикам выбирать те функции, которые они хотят реализовать в своем продукте, при этом не требуется реализация всего множества расширений, предоставляемых архитектурой RISC-V.
p.s. хочу поблагодарить русскоязычное сообщество RISC-V за актуальные новостные обновления.
Post #147
2.69K

- 👍 14
- ✍ 3
- 🔥 2