Читать ARM разрешила добавлять в ARMv8-M собственные инструкции” />~ обзор фото отзывы на techmaniacs.net

До недавних пор компания ARM, разработчик одноимённых процессорных архитектур, уделяла пристальное внимание переносимости кода. Единожды созданный код для конкретной версии ядра должен работать везде, в независимости от того, какая именно компания реализовала это ядро в «кремнии». 

Более того, ARM в прошлом году на специально созданном сайте, который был спешно удалён, прямо указывала, что для конкурирующей, открытой архитектуры RISC-V есть риск фрагментации из-за возможности добавления собственных инструкций. Однако теперь компания сама пошла на попятную.

На мероприятии ARM Techcon 2019 компания анонсировала возможность добавления собственных инструкций для процессоров с архитектурой ARMv8-M. Первыми её получат ядра Cortex-M33 для микроконтроллеров. Стоимость лицензирования при этом не изменится. Дизайн Cortex-M33, таким образом, получит возможность оптимизации для ускорения выполнения популярных ныне задач машинного обучения и искусственного интеллекта.

Архитектурно поддержка настраиваемых инструкций осуществляется за счёт добавления в состав ядра Cortex-M33 специального настраиваемого модуля, делящего интерфейсы доступа с обычным ALU. Для модификации доступно до 8 регионов, в зависимости от типа и количества специфических инструкций, которые планируется добавить. 

В качестве меры защиты от излишней фрагментации будет добавлено особое исключение NOCP, которое будет выдаваться ядром при попытке запуска неподдерживаемого кода. Кроме того, наличие базового набора инструкций всё равно остаётся обязательным. 

Внедрение поддержки наборов настраиваемых инструкций планируется начать в первой половине 2020 года. Появление новых процессоров ARM с настраиваемыми инструкциями следует ожидать в 2020 или 2021 году. Интерес проявили такие компании, как STMicro, NXP и Silicon Labs. Подробную информацию о поддержке кастомных инструкций можно найти на сайте ARM Developer.

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.