Spike
Awesome RISC-V

Spike

Экосистема RISC-V

Spike — это эталонный симулятор набора инструкций 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 — небольшой программы, которая перенаправляет системные вызовы из симулируемой программы на хост-компьютер.

Источники

  1. riscv-isa-sim README