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 — это чип, который можно переконфигурировать так, чтобы он вёл себя как другая схема, и исследователи используют его для проверки проекта на реальной скорости перед производством.
