В мире x86 один образ операционной системы обычно может работать на всех аппаратных средствах благодаря четко определенным наборам инструкций, аппаратным и программным требованиям. Arm обеспечивает большую гибкость с точки зрения периферийных устройств, имея фиксированный набор вторжений для данной архитектуры (например, Armv8, Armv7 …), и это приводит к фрагментации, так что в прошлом вам приходилось настраивать свое программное обеспечение с помощью файлов платы и других настроек, и предоставлять один двоичный файл на плату, что приводит к большой фрагментации. С деревьями устройств все немного улучшилось, но есть еще несколько образов, которые будут работать на нескольких платах без изменений.
RISC-V обеспечивает еще большую гибкость, чем Arm, так как можно смешивать набор инструкций, так, что разработчики могут добавлять или удалять инструкции по своему усмотрению. Можно легко представить, что это может привести к полному беспорядку с бинарным кодом, работающим только на подмножестве платформ RISC-V, и множеству опций компилятора для построения кода для конкретной SoC RISC-V.
Брайан Бэйли (Brian Bailey), редактор технологии/EDA для разработки полупроводников, подробно расскажет о проблемах соответствия RISC-V, и мы постараемся обобщить ключевые моменты в этом посте.
Аллен Баум (Allen Baum), системный архитектор Esperanto Technologies и председатель целевой группы RISC-V Compliance, объясняет:
RISC-V – это стандарт ISA с открытым исходным кодом, обладающий исключительной модульностью и расширяемостью. Любой может создать реализацию, и лицензионные сборы не взимаются, за исключением коммерческого использования товарных знаков.
…
Разработчики могут свободно добавлять пользовательские расширения для повышения возможностей и производительности, в то же время не нужно включать функции, которые не нужны
…
Однако неограниченная гибкость может привести к несовместимости, которая может фрагментировать клиентскую базу и устранить стимулы для совместного развития экосистемы.
Это определяет проблему, главным образом потому, что RISC-V не контролируется одной или двумя компаниями в мире Arm и x86. Несколько компаний будут разрабатывать свои собственные продукты RISC-V, поэтому им нужно будет убедиться, что их реализация соответствует спецификации. Вот почему Целевая группа по соответствию RISC-V работает над разработкой тестов соответствия RISC-V, чтобы определить правила для обеспечения совместимости программного обеспечения.
Считается, что структура соответствия RISC-V имеет три основных элемента
- Модульный набор тестовых наборов, которые реализуют все аспекты ISA
- Golden reference signatures, определяющие правильные результаты выполнения
- Фреймворки, которые выбирают и настраивают соответствующие тестовые наборы на основе требований платформы и заявленных возможностей устройства
Запуск тестов будет сообщать о результатах провал/прохождение для каждого теста. Фреймворк является только частью процесса проверки, как описано в документации:
Целью тестов на соответствие является проверка того, соответствует ли разрабатываемый процессор открытым стандартам RISC-V или нет. Это считается нефункциональным тестированием, что означает, что оно не заменяет проверку проекта. Это можно интерпретировать как тестирование, чтобы проверить все важные аспекты спецификации, но не сосредотачиваясь на деталях, например, на всех возможных значениях операндов команд или всех комбинациях возможных регистров.
Результат, который тесты на соответствие предоставляют пользователю, является гарантией того, что спецификация была правильно интерпретирована и тестируемый проект (DUT) может быть объявлен как RISC-V-совместимый.
Инструменты все еще находятся в стадии разработки, тесты, которые необходимо выполнить, еще предстоит определить, и они будут выходить за рамки простого соответствия требованиям ISA, например, к тестам на соответствие может быть добавлена матрица когерентного кеширования Tilelink. Эти инструменты помогут обеспечить соответствие процессоров базовым спецификациям RISC-V, но неясно, как будут обрабатываться все расширения RISC-V, которые могут быть привязаны к конкретному поставщику, а некоторые могут даже оказаться в стандартных тестах соответствия RISC-V.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.