Spike
Экосистема RISC-VSpike — это эталонный симулятор набора инструкций RISC-V, поддерживаемый RISC-V International.
Обзор
Spike — это эталонный симулятор набора инструкций RISC-V. Симулятор — это программа, которая имитирует процессор. Другие реализации сравнивают своё поведение с эталонным симулятором, поэтому команда, создающая новый чип RISC-V, запускает одну и ту же программу на своей разработке и на Spike и проверяет, что обе завершаются с одинаковыми регистрами и памятью.
Spike моделирует харты, сокращение от аппаратных потоков. Харт — это блок внутри процессора, который выполняет собственный поток инструкций. Spike охватывает 32-битный и 64-битный базовые наборы инструкций и стандартные расширения, включая векторы. Он также охватывает режимы привилегий машины, супервизора и пользователя, на которые полагаются операционные системы.
История
Spike был написан в UC Berkeley, где начиная с 2010 года разрабатывается набор инструкций RISC-V, а его публичный репозиторий датируется 2011 годом. Название происходит от золотого костыля, забитого в 1869 году в ознаменование завершения первой трансконтинентальной железной дороги в Соединённых Штатах.
Теперь RISC-V International поддерживает Spike в своей программной организации на GitHub. Новые расширения обычно попадают в Spike рано, часто когда их спецификации ещё являются черновиками, чтобы у разработчиков аппаратного обеспечения и компиляторов была модель для тестирования.
Где используется
Spike — это инструмент командной строки для инженеров. Аппаратные команды используют его для проверки своих проектов, а разработчики компиляторов — для тестирования сгенерированного кода. Он запускает обычные программы на C, скомпилированные для RISC-V, с помощью proxy kernel — небольшой программы, которая перенаправляет системные вызовы из симулируемой программы на хост-компьютер.
