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 — невеликої програми, яка переспрямовує системні виклики із симульованої програми на хост-комп'ютер.
