Пользовательские инструкции Arm идут на встроенные процессоры Armv8-M


До сих пор компания Arm определяла все инструкции для своих ядер с преимуществом переносимости кода между решениями, поэтому код, скомпилированный для микроконтроллера на основе Arm Cortex-M33, будет работать на другом без изменений (речь идет о коде, работающем непосредственно на ядре).

Но, благодаря архитектуре с открытым исходным кодом RISC-V многие увидели преимущество пользовательских инструкций для конкретных задач, несмотря на риски фрагментации. На проходящей в эти дни Arm Techcon 2019, компания Arm объявила о поддержке пользовательских инструкций для встраиваемых процессоров ARMv8-M, начиная с ядер Arm Cortex-M33.

Внедрение пользовательских инструкций Arm для конкретных встраиваемых приложений и приложений IoT начнется в первом полугодии 2020 года без дополнительных затрат для лицензиатов и без риска фрагментации программного обеспечения с использованием исключения NOCP, если инструкции недоступны.

Сотрудники компании Arm далее объясняют:

Настраиваемые пользовательские инструкции активируются благодаря модификациям ЦП, которые резервируют пространство кодирования для проектировщиков, чтобы легко добавлять пользовательские расширения канала данных при сохранении целостности существующей программной экосистемы. Эта функция вместе с существующим интерфейсом сопроцессора позволяет расширять процессоры Cortex-M33 ускорителями различных типов, оптимизированными для использования в периферийных вычислениях, включая машинное обучение (ML) и искусственный интеллект (AI).

В частности, пользовательские инструкции Arm для Armv8-M добавляют настраиваемый модуль внутри процессора, который имеет тот же интерфейс, что и стандартное арифметико-логическое устройство (ALU) ЦПУ. Существует несколько областей пространства кодирования, доступных для настройки, и вы можете выбрать до восьми областей в зависимости от типа инструкций, которые вы хотите реализовать.

Разработчикам SoC все равно придется следовать классам расширения команд для общего назначения и FPU/M-Profile Vector Extension (MVE). В объявлении приводятся цитаты из STMicro, NXP и Silicon Labs, поэтому, с большой вероятностью, в 2020 или 2021 годах, стоит ожидать нового микроконтроллера Arm Cortex-M33 с пользовательскими инструкциями от этих компаний.

Вот пример кода (функция подсчета населения), который можно оптимизировать с помощью пользовательских инструкций:

Рукописная, оптимизированная сборка будет выглядеть следующим образом:

Этот код может быть заменен одной пользовательской инструкцией, которая экономит место, повышает производительность и эффективность, выполняя всего один цикл:

Более подробную информацию, включая технические документы, можно найти на странице продукта

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.