Rocket Chip
Екосистема RISC-VRocket Chip генерує послідовні ядра RISC-V та повноцінні системи на кристалі з вихідного коду Chisel. SiFive базував свої перші комерційні ядра на ньому, а Chipyard використовує його як основу для своїх проектів.
Огляд
Rocket Chip — це генератор систем на кристалі RISC-V. Система на кристалі — це одна мікросхема, що містить процесорні ядра разом із кешами, контролерами пам'яті та з'єднаннями з іншими пристроями. Генератор — це програма, яка створює проєкт апаратного забезпечення на основі набору параметрів, тому той самий код може видавати як невеликий одноядерний проєкт, так і великий багатоядерний.
Його основне ядро, Rocket, є ядром із послідовним виконанням, що означає, що воно виконує інструкції в тому порядку, у якому їх перелічує програма. Rocket має п'ятиступеневий конвеєр — організацію, за якої кожна інструкція проходить через п'ять етапів, і кілька інструкцій виконуються одночасно. Воно реалізує 64-бітний набір інструкцій RISC-V із блоком керування пам'яттю — апаратним забезпеченням, що лежить в основі віртуальної пам'яті, тому може завантажувати Linux. Проєкт написано на Chisel — мові конструювання апаратного забезпечення, побудованій на мові програмування Scala.
Історія
Rocket Chip походить з UC Berkeley, з групи, яка розробила набір інструкцій RISC-V. Krste Asanović і колеги описали його в технічному звіті 2016 року "The Rocket Chip Generator", і Berkeley побудував з його допомогою багато дослідницьких чипів.
SiFive, компанія, заснована творцями RISC-V, побудувала свої перші комерційні ядра на Rocket. CHIPS Alliance, відкрита апаратна група Linux Foundation, тепер розміщує проєкт.
Де використовується
Більшість користувачів знайомляться з Rocket через Chipyard — фреймворк, який поєднує Rocket, BOOM та інші блоки в повноцінні чипи. Chipyard запускає ці чипи в програмній симуляції, на FPGA або за допомогою виробничих інструментів. FPGA — це чип, який можна переконфігурувати так, щоб він поводився як інша схема, і дослідники використовують його для перевірки проєкту на реальній швидкості перед виробництвом.
