После более или менее успешных экспериментов с разработкой собственных вариантов микроархитектур RISC-V полезно посмотреть на "профессиональные" софт-ядра. Для рассмотрения было выбрано достаточно мощное, судя по описанию, и отлаженное ядро - SCR1 от компании Syntacore.
SCR1 представляет собой IP-ядро 32-х разрядного процессора архитектуры RISC-V микроконтроллерного класса, предназначенное для использования в составе различных встраиваемых и других систем.
Плюсы:
Минусы:
Ядро написано на SystemVerilog и предоставляется со всем необходимым пакетом документации и верификационным окружением. Поддерживается и обновляется по мере развития спецификаций RISC-V. Хорошо подходит для образовательных целей и используется в промышленности.
Поддерживаемые наборы команд:
RV32I - базовая целочисленная система команд
RV32E (E=Embedded) базовая целочисленная система команд
Расширение "M"
Расширение "C"
Ядро SCR1 SCR1 работает только в режиме "Machine Privilege Level" (Machine Level -режим с наивысшими привилегиями, любой исполняемый код воспринимается как надежный(profile -embedded without protection)) - можно сказать - типовой/родной режим для микроконтроллеров. Практически всегда программное обеспечение микроконтроллера работает или в режиме bare-metal - без какой-либо операционной системы, или под управлением небольшой ОС, часто - операционной системы реального времени.
Моменты, не сильно явно прописанные стандартами (да и не сильно важные в случае ядер именно микроконтроллерного класса).
Особые инструкции:
Control and Status Registers (CSRs) -набор специализированных регистров для просмотра состояния и управления ядром и подсистемами:
Структурная схема ядра представлена на рис. 9.1.
(рис 9.1) Структурная схема процессорного ядра SCR1
Как можно видеть, значительная часть модулей ядра предназначена для работы в режиме отладки приложений. Это, можно сказать, ставит ядро в разряд IP-ядер, предназначенных для достаточно серьезных задач и проектов. И это весьма чувствительно отличает данное ядро от многих более "легких" ядер.
Взаимодействие с "внешним миром" у SCR1 организовано:
SCR1 работает в модели памяти little-endian, 32-битная адресация, выравнивание на границы 32-битных слов при работе с наборами инструкций RV32I|E[M], и на границу 16-битных слов для RV32C.
Если программный код не большой (менее 64КБ), то в принципе, он может выполняться очень быстро. Достигается это за счет, так называемой, "тесносвязанной памяти" (Tightly-Coupled Memory), которую можно рассматривать, как своеобразную кэш-память.
Тесно связанная память или Tightly-Coupled Memory (TCM) -небольшая близкая к ядру память с быстрым откликом:
Карта памяти ядра SCR1 представлена на рис.9.2.
(рис 9.2) Карта памяти SCR1
Внешний интерфейс памяти- AXI4 Interface или AHB-Lite Interface.
Ядро поставляется в виде исходных текстов на Verilog (System Verilog), доступно для прямого скачивания, или через Git. Структура репозитория представлена в таблице. Помимо самих исходников в репозитории представлено верификационное окружение и документация.
| Директория | Описание |
|---|---|
| ?? riscv-tests | Исходные файлы тестов на соответствие RISC-V ISA |
riscv-compliance |
Общие исходные файлы для тестов на соответствие RISC-V |
coremark |
Исходные файлы тестов производительности EEMBC's CoreMark® benchmark |
| Docs | Документация SCR1 |
scr1_eas.pdf |
Спецификация внешней архитектуры SCR1 |
scr1_um.pdf |
Руководство пользователя SCR1 |
| Sim | Тесты и скрипты для симуляции |
tests/common |
Общие исходные файлы для тестов |
tests/riscv_isa |
RISC-V ISA тестирует исходные файлы для конкретной платформы |
tests/riscv_compliance |
Исходные файлы тестов на соответствие стандарту RISC-V |
tests/benchmarks/dhrystone21 |
Исходные тексты тестов Dhrystone 2.1 |
tests/benchmarks/coremark |
Исходные тексты тестов EEMBC's CoreMark® |
tests/isr_sample |
Пример программы-с обработчиком прерываний "Interrupt Service Routine" |
tests/hello |
Пример простой программы - "Hello" |
verilator_wrap |
Оболочки для симулятора Verilator |
| Src | SCR1 RTL исходные тексты и тестбенчи |
includes |
Заголовочные файлы |
core |
Исходные тексты компонентов ядра |
top |
Исходные файлы модулей верхнего уровня процессорного ядра |
tb |
Тестбенчи |
Требуемые ресурсы - порядка 15 kGates в базовой конфигурации RV32EC Возможности по конфигурации:
(рис 9.3) Результаты тестирования ядра SRC1 на плате Digilent Arty XC7A35T
Интегрированный Программируемый Контроллер Прерываний (Integrated Programmable Interrupt Controller -IPIC) может быть опционально включен в состав проекта SCR1
Подсистема Debug может быть опционально включена в состав проекта SCR1
поддержка стандартных функций отладки:
SCR1 имеет суммарно 33 конфигурируемые опции:
Архитектура системы команд:
Микроархитектурные опции ядра(оптимизация площади/производительности)
Адресные константы:
Опции вне ядра:
Симуляционные опции:
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.