Spike
Awesome RISC-V

Spike

Ecossistema RISC-V

Spike é o simulador de referência para o conjunto de instruções RISC-V, mantido pela RISC-V International.

Visão geral

Spike é o simulador de referência para o conjunto de instruções RISC-V. Um simulador é um programa que imita um processador. Outras implementações comparam seu comportamento com o de um simulador de referência, então uma equipe que está construindo um novo chip RISC-V executa o mesmo programa em seu projeto e no Spike e verifica se ambos terminam com os mesmos registradores e memória.

Spike modela harts, abreviação de threads de hardware. Um hart é uma unidade dentro de um processador que executa seu próprio fluxo de instruções. Spike cobre os conjuntos de instruções base de 32 bits e 64 bits e as extensões padrão, incluindo vetores. Ele também cobre os modos de privilégio machine, supervisor e user dos quais os sistemas operacionais dependem.

Histórico

O Spike foi escrito na UC Berkeley, onde o conjunto de instruções RISC-V foi projetado a partir de 2010, e seu repositório público data de 2011. O nome vem do golden spike cravado em 1869 para marcar a conclusão da primeira ferrovia que atravessou os Estados Unidos.

A RISC-V International agora mantém o Spike em sua organização de software no GitHub. Novas extensões geralmente chegam ao Spike cedo, muitas vezes enquanto suas especificações ainda são rascunhos, para que desenvolvedores de hardware e de compiladores tenham um modelo para testar.

Onde é usado

Spike é uma ferramenta de linha de comando para engenheiros. Equipes de hardware a usam para verificar seus projetos, e desenvolvedores de compiladores a usam para testar o código gerado. Ele executa programas C comuns compilados para RISC-V, com a ajuda do proxy kernel, um pequeno programa que encaminha chamadas de sistema do programa simulado para o computador host.

Fontes

  1. riscv-isa-sim README