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