Spike
Ekosystem RISC-VSpike to referencyjny symulator zestawu instrukcji RISC-V, utrzymywany przez RISC-V International.
Przegląd
Spike to referencyjny symulator zestawu instrukcji RISC-V. Symulator to program, który imituje procesor. Inne implementacje porównują swoje zachowanie z symulatorem referencyjnym, więc zespół budujący nowy układ RISC-V uruchamia ten sam program na swoim projekcie i na Spike'u i sprawdza, czy oba kończą z tymi samymi rejestrami i pamięcią.
Spike modeluje harty, skrót od wątków sprzętowych. Hart to jednostka wewnątrz procesora, która wykonuje własny strumień instrukcji. Spike obejmuje 32-bitowe i 64-bitowe bazowe zestawy instrukcji oraz standardowe rozszerzenia, w tym wektory. Obejmuje również tryby uprzywilejowania maszyny, supervisora i użytkownika, na których polegają systemy operacyjne.
Historia
Spike został napisany na UC Berkeley, gdzie od 2010 roku projektowany jest zestaw instrukcji RISC-V, a jego publiczne repozytorium pochodzi z 2011 roku. Nazwa pochodzi od złotego gwoździa wbitego w 1869 roku na znak ukończenia pierwszej kolei transkontynentalnej w Stanach Zjednoczonych.
RISC-V International utrzymuje teraz Spike w swojej organizacji oprogramowania na GitHubie. Nowe rozszerzenia zwykle trafiają do Spike'a wcześnie, często gdy ich specyfikacje są jeszcze szkicami, dzięki czemu twórcy sprzętu i kompilatorów mają model do testowania.
Gdzie jest używane
Spike to narzędzie wiersza poleceń dla inżynierów. Zespoły sprzętowe używają go do weryfikacji swoich projektów, a twórcy kompilatorów do testowania generowanego kodu. Uruchamia on zwykłe programy w C skompilowane dla RISC-V, z pomocą proxy kernel, małego programu, który przekazuje wywołania systemowe z symulowanego programu do komputera hosta.
