Лабораторный практикум по технологиям RISC-V

Список литературы и рекомендации

Разбить на страницы
Показывать лекцию целиком

Список основной литературы

  • Таненбаум Э. С., Херберт Б. Современные операционные системы. 4-е изд. - "Издательский дом" "Питер""", 2021.
  • VirtualBox.
  • ssh(1) - Linux manual page.
  • An Introduction to Assembly Programming with RISC-V. Prof. Edson Borin, Institute of Computing, Unicamp
  • RISC-V ASM manual
  • ЮGOTO statement
  • Сара Л. Харрис, Дэвид Харрис Цифровая схемотехника и архитектура компьютера: RISC-V / пер. с англ. В. С. Яценкова, А. Ю. Романова; под ред. А. Ю. Романова. - М.: ДМК Пресс, 2021.
  • Harry H. Porter III RISC-V:An Overview of the Instruction Set Architecture
  • FreeRTOS: Real-time operating system for microcontrollers.
  • Введение в компиляторные оптимизации. Перевод курса RISC-V Toolchain and Compiler Optimization Techniques (LFD113x)
  • gcc(1) - Linux manual page
  • Perf
  • Valgrind
  • callgrind
  • cachegrind
  • time
  • Basic operating systems terms and concepts
  • ls.
  • size
  • Методы отладки. Перевод курса RISC-V Toolchain and Compiler Optimization Techniques (LFD113x)
  • gdb
  • GNU General Public License (GPL)
  • FreeRTOS / "Си для встраиваемых систем", онлайн-версия книги robotclass.ru.
  • Download FreeRTOS
  • xSemaphoreCreateMutex
  • Установка среды VSCode
  • Установка расширения ESP-IDF для Visual Studio Code
  • syscalls
  • Linux syscalls numbers for riscv64
  • C code obfuscator
  • Список дополнительной литературы

  • Computer Organization and Design The Hardware Software Interface: RISC-V Edition
  • The RISC-V Reader: An Open Architecture Atlas
  • Digital Design and Computer Architecture, RISC-V Edition aka "HH"
  • Цифровая схемотехника и архитектура компьютера: RISC-V
  • RISC-V Assembly Programming - учебник
  • Полезные материалы по RISC-V

    Некоторым учебным методическим материалам присвоен код области знаний, соответствующий Computing Curricula 2020.

    Официальные ресурсы

    Альянс RISC-V

    Официальный сайт альянса RISC-V - добровольного объединения российских компаний разработчиков аппаратного и программного обеспечения на основе архитектуры RISC-V. Целью альянса является создание открытого сообщества разработчиков для представления и защиты общих интересов, популяризации архитектуры RISC-V, создания необходимых компетенций и содействия развитию экосистемы RISC-V в нашей стране. Ресурс содержит информацию о положениях, правлении и основных треках деятельности альянса.

    Альянс RISC-V. Возможности для обучения

    Образовательный раздел Российского Альянса RISC-V. В нем представлены обучающие материалы по технологиям RISC-V, созданные при поддержке Альянса, в том числе - перевод и адаптация образовательных курсов Глобального Альянса RISC-V, записи вебинаров и митапов Российского Альянса.

    RISC-V International

    Сайт является основным интернет-ресурсом консорциума "RISC-V International" - открытого международного сообщества свободно распространяемой архитектуры RISC-V. Сообщество насчитывает свыше 3 тысяч компаний-участников из более чем 70 стран мира, активно взаимодействующих и вносящих вклад в развитие экосистемы RISC-V. Здесь вы найдете официальные документы консорциума: от стратегии развития сообщества до спецификации архитектуры набора команд. Также найдете полезную информацию о компаниях-участниках, анонсах мероприятий сообщества, различных менторских и амбассадорских программах. Не менее важным является открыто пополняемый список академических материалов и курсов по изучению экосистемы RISC-V.

    RISC-V. RISC-V Learn

    Ресурс открытого международного сообщества "RISC-V International", посвященный образованию и изучению экосистемы RISC-V; представлены методические и учебные материалы сообщества. Ресурс располагает обширной базой материалов и курсов по изучению предмета, среди которых: открытые и платные программы обучения, программы тренингов от партнеров, сборники свободных материалов вузов. Ресурс будет полезен всем, вне зависимости от уровня знаний и опыта и поможет достичь желанной цели, будь то получение новых навыков или карьерных возможностей.

    RISC-V Exchange

    RISC-V Exchange - база материалов образовательных курсов по RISC-V от ведущих университетов мира. Курсы посвящены разработке аппаратных средств, программному обеспечению. На сайте также представлены всевозможные услуги и учебные предложения от сообщества RISC-V.

    RISC-V Specifications

    Сайт предоставляет официальную документацию и спецификации для архитектуры открытого набора команд RISC-V, например, такие как User-Level ISA Specification, Privileged ISA Specification, Debug Specification, ELF Specification и другие.

    Каталог плат от RISC-V сообщества

    Данный сайт является каталогом различных платформ и плат, основанных на архитектуре RISC-V. Этот ресурс предназначен для разработчиков, которые ищут готовые решения для создания устройств на основе RISC-V. Среди плат, представленных на сайте, можно найти различные типы, такие как отладочные платы, демонстрационные платы с СнК (SoC), платы расширения и многое другое. Некоторые из них могут быть использованы для создания встраиваемых систем, а другие - для построения более мощных вычислительных систем.

    RISC-V International Youtube

    YouTube-канал RISC-V International - это официальный канал международной организации RISC-V Foundation, которая является крупнейшим сообществом разработчиков и компаний, работающих с архитектурой RISC-V. На канале представлены различные видео, связанные с архитектурой RISC-V, включая конференции, вебинары, интервью и презентации. Видеоматериалы содержат информацию о новых разработках в области RISC-V, а также о технических аспектах и примерах применения архитектуры RISC-V.

    Образы RISC-V ядер

    На сайте представлен каталог компонентов, платформ и инструментов, связанных с архитектурой RISC-V. На этом ресурсе размещаются компоненты, которые могут быть использованы для создания устройств на основе архитектуры RISC-V, таких как ядра процессоров, библиотеки и драйверы. С помощью фильтров на сайте можно легко найти нужный компонент или платформу. Например, можно выбрать категорию ядер процессоров и найти список доступных ядер, включая информацию о спецификациях, документации и других связанных материалах. Аналогично можно найти библиотеки и драйверы для различных компонентов.

    RISC-V Software Repos

    Репозитории программного обеспечения RISC-V, которое поддерживается RISC-V International. На странице размещены исходные источники для многих проектов с открытым исходным кодом. Так, например, на сайте представлены такие инструменты как: симулятор RISC-V spike, платформа архитектурного тестирования riscof, эталонная реализация бинарного интерфейса супервизора RISCV - opensbi и др.

    Создание приложений на базе RISC-V и FreeRTOS [K(C-3.6)] [K(C-5.2)]

    Вводный курс, предназначенный для разработчиков, интересующихся RISC-V и операционными системами реального времени (RTOS). В рамках материала данного курса и лабораторных работ слушатели получат навыки интеграции RISC-V и FreeRTOS, а также узнают, как применять open-source процессоры и RTOS в различных встраиваемых приложениях. Курс требует предварительного знания основ встраиваемых систем и процессоров, а также хорошего понимания того, как компилируется и запускается код, написанный на языке C.

    Инструментарий RISC-V и компиляторные оптимизации [K(C-5.5)]

    Данный курс предназначен для людей, которые работают с поставщиками RISC-V процессоров, а также для разработчиков, использующих отладочные платы на базе этой процессорной архитектуры. Курс включает в себя введение в наборы инструментов компиляции и основы кросс-компиляции. Слушатели познакомятся с популярными наборами инструментов компиляции LLVM и GCC. Этот курс также поможет приобрести навыки оптимизации приложений с точки зрения кода и производительности. Предполагается, что для понимания материала курса необходимо, чтобы слушатель уже был знаком с разработкой приложений на C/C++ и процессом их компиляции, инструментом git и установкой пакетов в ОС Linux.

    Приложения для RISC-V-микроконтроллеров [K(C-3.6)]

    Данный вводный курс дает базовый опыт проектирования и разработки встраиваемых приложений на основе микроконтроллеров с RISC-V ядрами. Курс подходит людям, которые уже разрабатывали приложения на основе систем вроде Arduino Uno, а также любителям. В рамках курса слушатели познакомятся с программным пакетом Five Freedom Studio, который предназначен для создания встраиваемых систем на базе RISC-V процессоров. Предполагается, что слушатели знакомы с языком C и основами цифровой схемотехники.

    Основы программирования на языке ассемблера под архитектуру RISC-V [K(C-5.5)] [K(C-6.1)]

    Вводный курс, который знакомит с RISC-V ассемблером, необходимым для задач низкоуровневой разработки, такими как отладка и нахождение критичных для производительности участков приложения. Материал предназначен для программистов, которые хотят понимать, какие инструкции в действительности будут исполняться процессором для разработанного ими кода. В этом курсе обсуждается набор инструментов RISC-V GNU, архитектура набора инструкций RISC-V (ISA), псевдоинструкции и директивы ассемблера, интерфейс прикладного программирования, взаимодействие с C-библиотеками, дизассемблирования и многое другое. Основные понятия, такие как циклы, условия и функции, изучаются путем разработки программ на ассемблере, работающих на RISC-V в среде Linux.

    Сквозной лабораторный практикум по технологиям RISC-V [K(C-3.6)] [K(C-5.2)] [K(C-5.5)]

    Практикум ориентирован на широкую аудиторию студентов технических вузов, обучающихся по специальностям, связанным с разработкой ПО и информационно-вычислительной техникой. В рамках данного курса обучающиеся освоят практические навыки по следующим темам: введение в инструменты разработчика RISC-V на примере Syntacore Kit, язык ассемблера для RISC-V, оптимизации ПО на уровне компилятора и методы отладки для RISC-V, разработка ПО для операционных систем реального времени (ОСРВ) на примере FreeRTOS, программирование микроконтроллеров на базе RISC-V

    Проектирования ядра RISC-V [K(C-6.1)]

    Курс предназначен для всех, кто интересуется аппаратным обеспечением. Независимо от уровня подготовки, участники приобретут новые навыки, которые можно сразу применять. Предварительное знание цифровой логики не требуется. Это ускоренный курс по цифровой логике и базовой архитектуре процессоров. С помощью онлайн-среды разработки Makerchip вы реализуете всё - от логических элементов до простого процессорного ядра RISC-V. Курс также познакомит вас с ключевыми технологиями для открытого аппаратного обеспечения, такими как RISC-V и Transaction-Level Verilog.

    Введение в RISC-V [K(C-5.5)] [K(C-6.1)]

    Курс от Linux Foundation Training and Certification создан для энтузиастов RISC-V, разработчиков аппаратного и программного обеспечения, а также любителей технологий с интересом к открытой архитектуре команд. Курс обновлен и расширен на основе рекомендаций сообщества RISC-V и включает новые технические темы, такие как примеры ассемблера RISC-V с использованием симулятора Venus на Visual Studio Code, обзор архитектуры RISC-V с акцентом на регистры процессора, кодирование инструкций и бинарный интерфейс приложений. Также рассматриваются команды и псевдокоманды языка ассемблера RISC-V, инструменты и приложения для разработки с ядрами RISC-V, а также ресурсы для сообщества, включая информацию о RISC-V International и экосистеме RISC-V.

    Введение в функциональную верификацию RISC-V ядер [K(C-6.1)]

    Курс знакомит с основными подходами к функциональной верификации RISC-V ядер, использующимися в индустрии микроэлектроники в настоящее время. Ядром курса являются практические занятия, реализующие полный маршрут 3 различных подходов к тестированию (от простого к сложному). Однако, без базовых теоретических знаний осознанно их выполнить непросто, так что в курсе представлен блок теоретического материала, формирующий контекст восприятия.

    Основы проектирования ОС: лабораторный практикум на xv6 под RISC-V [K(C-5.2)] [K(C-5.5)]

    Курс призван заложить базу для дальнейшего изучения проектирования и разработки компонентов и модулей ядра различных операционных системы для различных архитектур CPU, включая десктопные и серверные ОС на базе Linux, ОС для встроенных систем с архитектурой RISC-V, и другие. Курс может быть полезем системным и прикладным программиста для понимания особенностей работы и ограничений возможностей операционных систем. Кроме того, многие архитектурные и алгоритмические решения, используемые при проектировании и разработке операционных систем, могут применяться и в других задачах.

    Учебные курсы и материалы

    Архитектуры процессорных систем (НИУ МИЭТ) [K(C-6.1)]

    Открытый, свободно распространяемый сборник материалов курса "Архитектуры процессорных систем", читаемого в Национальном исследовательском университете МИЭТ. Целью курса "Архитектуры процессорных систем" является изучение устройства и способов организации процессоров и систем под их управлением.

    Архитектура и язык ассемблера RISC-V (МГУ имени М. В. Ломоносова) [K(C-5.5)] [K(C-6.1)]

    В курсе прослеживается связь между конкретной организацией процессора и общими принципами построения вычислительных систем. Планируется решение задач на языке ассемблера с последующей проверкой в системе EJudge. В учебном процессе используются эмулятор, среда разработки и визуализатор выполнения кода RISC-V.

    Введение в FPGA и Verilog (НИУ МФТИ) [K(C-6.2)]

    Открытый репозиторий, в котором хранятся задания к лабораторным работам, задачи семинаров, слайды презентаций, заметки и другие материалы для курса "Введение в FPGA и Verilog". В том числе есть ссылки на записи лекций на YouTube.

    Computer Architectures and Operating Systems (НИУ ВШЭ) [K(C-5.2)] [K(C-6.1)]

    Курс, созданный для тех, кто хочет погрузится в изучение архитектуры, основанной на наборе команд RISC-V, и научится программированию на языке ассемблера под данную архитектуру. Целью курса является введение в основы работы операционных систем и аппаратуры. Курс разделен на две части. Первая посвящена компьютерным архитектурам и языку ассемблера. Данный материал преподается на основе архитектуры набора команд RISC-V и соответствующего языка ассемблера. Вторая часть рассказывает об организации операционных систем и системном программировании на базе ОС Linux и языка C.

    Школа синтеза цифровых схем [K(C-6.1)] [K(C-6.2)]

    Образовательная инициатива, которая включает в себя подборку тематических материалов для быстрого освоения современных подходов к проектированию цифровых микросхем. Программа разработана на основе курса Массачусетского Технологического института (MIT): он расширен до семестра и дополнен материалами уровня университетского лабораторного практикума по реконфигурируемым микросхемам FPGA. Программа также содержит элементы курсов компьютерной архитектуры и микроархитектуры процессорных ядер, предоставляя базовые навыки использования профессиональных средств проектирования микросхем ASIC.

    Complex Digital Systems (MIT) [K(C-6.1)] [K(C-6.2)]

    Курс "Complex Digital Systems" Массачусетского технологического института (MIT) посвящен основам проектирования сложных цифровых систем: от комбинационных схем до конвейеризации в микропроцессорной технике. Кроме того, курс также содержит ссылки на другие полезные ресурсы, связанные с изучением цифровых систем и электроники. Этот курс может быть полезен всем, кто интересуется цифровыми системами и их применениями.

    Computation Structures (MIT) [K(C-5.6)]

    Этот курс знакомит с архитектурой цифровых систем, подчеркивая структурные принципы, общие для широкого спектра технологий. Он охватывает такие темы, как многоуровневые стратегии реализации, определение новых примитивов и их механизация с использованием элементов более низкого уровня. Он также включает анализ потенциального параллелизма, ограничений приоритета и показателей производительности, конвейерных и многомерных систем, проблем проектирования наборов инструкций и архитектурной поддержки современных программных структур.

    Computer Laboratory RISC-V Implementation (University of Cambridge) [K(C-6.1)] [K(C-6.2)]

    Данный курс "Электронный дизайн, коммуникации и компьютерная архитектура" разработан в Кембриджском университете. Студенту предлагается спроектировать процессор на основе архитектуры RISC-V с использованием языка описания аппаратуры Verilog и протестировать его функциональность на плате FPGA. На веб-странице представлены подробные инструкции по выполнению упражнения, требования к дизайну процессора и тестовые наборы для проверки его работы. Цель упражнения - углубить понимание студентами работы и архитектуры процессоров и дать практические навыки разработки цифровых систем.

    Computer Organization and Design RISC-V Edition (York University) [K(C-6.1)] [K(C-6.2)]

    В основе данного курса лежит книга Дэвида Паттерсона и Джона Хеннесси "Компьютерная организация и проектирование RISC-V Edition. Аппаратно-программный интерфейс". В этом курсе вы узнаете: как программы переводятся с языка высокого уровня, такого как C, C++, Java, на более низкий уровень языка, который машина понимает правильно; об аппаратном и программном интерфейсе и о том, что на самом деле означает производительность программы; о запуске программы, насколько точно программа выполняется с той скоростью, с какой выполняется задача или процессы в рамках этой программы; как разработчики аппаратных средств повышают производительность.

    Computer Architectures and Engineering (The University of California, Berkeley) [K(C-5.6)] [K(C-6.1)] [K(C6.2)]

    В рамках данного курса рассказывается, как программное обеспечение взаимодействует с аппаратной платформой и как тенденции в технологиях, приложениях и экономике приводят к постоянным изменениям в этой области. В курсе рассматриваются различные формы параллелизма: на уровне инструкций, на уровне данных, на уровне потоков, на уровне шлюзов, и как их можно использовать в совокупности с различными архитектурами вычислительной техники.

    Computer Architectures (Czech Technical University) [K(C-5.2)] [K(C-6.1)]

    Курс знакомит с архитектурой вычислительной системы и с функциональностью ее типичных подсистем. Акцент делается на разъяснении взаимосвязи аппаратных компонентов с поддержкой программного обеспечения, главным образом на более низком уровне взаимодействия операционной системы с драйверами устройств, работой с виртуальной памятью и т.д.

    Architectures of Computer Systems (Czech Technical University) [K(C-6.1)] [K(C-6.2)]

    В данном курсе рассматриваются принципы проектирования процессоров с подробным изучением конвейерной обработки команд и иерархии памяти. Слушатель изучит различия между RISC и CISC архитектурами, обучится принципам обработки команд как в скалярных, так и в суперскалярных процессорах, разработке которых посвящена большая часть курса. Входным порогом является базовое знание ассемблера и языка С, комбинационных и последовательностных схем.

    Advanced Computer Architectures (Czech Technical University) [K(C-5.2)] [K(C-6.1)]

    Курс расширяет знания студентов о современных компьютерных архитектурах. Особое внимание уделяется проблеме параллелизма: реализации параллелизма в аппаратных средствах, использованию методов параллельного программирования, архитектурам современных компьютеров, использующих параллелизм на уровне инструкций и потоков, расширенной потоковой обработке инструкций, памяти и периферийной подсистеме. Акцент делается на понимании взаимных зависимостей аппаратного и программного обеспечения, понимании общих принципов выполнения инструкций в суперскалярном процессоре и разработке программного обеспечения с эффективным использованием доступных аппаратных ресурсов.

    RVfpga. Complete Courses in Computer Architecture SoC Design (компания Imagination Technologies) [K(C-5.2)] [K(C-6.1)]

    Курс RVfpga - это комплексный онлайн-курс, предназначенный для студентов и любителей, заинтересованных в изучении проектирования на базе ПЛИС с использованием RISC-V. Помимо лекций, в состав курса входят лабораторные работы, которые демонстрируют, как собрать SoC RISCV из ядра и других "строительных" блоков, как портировать его на FPGA и как впоследствии запрограммировать.

    Digital Design and Computer Architecture (учебное пособие Sarah L. Harris и David Harris, материалы Harvey Mudd College) [K(C-5.2)] [K(C-6.1)]

    Материалы учебного пособия, предназначены для начинающих разработчиков электроники и охватывают основы цифровой схемотехники, включая логические операции, булеву алгебру, комбинационные и последовательные цифровые схемы. Видеоуроки содержат материалы лекций и демонстрации на примерах, а также практические задания для проверки понимания материала. Курс предназначен для студентов, преподавателей и любителей электроники, которые хотят изучить основы цифровой электроники

    Compilation of RISC-V courses (компания Maven Silicon) [K(C-5.2)] [K(C-6.1)]

    Курсы Maven Silicon содержат в себе всю информацию, которая необходима для RTL-разработки процессорных систем на архитектуре RISC-V. В них подробно объясняют архитектуру набора команд RISC-V RV32I с примерами, знакомят с полным маршрутом разработки RTL, языком описании аппаратуры Verilog HDL, статическом временном анализе и методологией верификации UVM.

    Базовый курс от RISC-V Foundation

    Курс начального уровня по основам работы с архитектурой RISC-V. В рамках курса поэтапно рассматриваются задачи настройки и запуска операционных систем Linux и Zephyr на популярных платформах RISC-V: QEMU, HiFive Unleashed и Microsemi PolarFIre FPGA.

    Коллекция оригинальных курсов RISC-V от The Linux Foundation

    Подборка курсов от The Linux Foundation по технологии RISC-V, состоящая из 10 курсов, по таким темам как введение в технологию RISC-V, проектирование RISC-V микропроцессорного ядра, наборы инструментов и компиляторные оптимизации для написанию программного обеспечения под RISCV платформу, разработка приложений с использованием ОСРВ FreeRTOS для RISC-V, встраиваемое программное обеспечение микроконтроллеров RISC-V, ассемблер RISC-V и др.

    Introduction to RISC-V (The Linux Foundation)

    Открытый курс, объясняющий аспекты понимания экосистемы сообщества RISC-V, спецификаций на RISC-V и способа их курирования и разработки, а также рассматривающий технические аспекты работы с RISC-V (как со стороны разработчика, так и со стороны конечного пользователя). Кроме того, в курсе рассказывается о выгоде, которую люди и организации могут извлечь из RISC-V, и предлагается внести самому свой вклад в него: применить RISC-V ISA в действии с помощью симулятора, загружающего операционную систему Linux. Курс подразумевает собой общий обзор сообщества RISC-V, а также то, как начать работу с RISC-V ISA, курс может дать основные знания, которые необходимы для эффективного участия в сообществе RISC-V, внесения вклада в спецификации ISA или для разработки широкого спектра программных проектов RISC-V. После завершения курса обещается лучшее понимание терминологии, ресурсов и рабочего процесса, которые понадобятся для завершения пути к RISC-V.

    Software Engineering Basics for Embedded Systems (The Linux Foundation)

    Бесплатный курс обучения "Основы разработки программного обеспечения для встраиваемых систем". Курс представляет собой введение в проектирование высококачественных систем и программного обеспечения для всех, кто хочет создавать безопасные или критически важные системы. Учащиеся должны иметь некоторый предшествующий опыт разработки программного обеспечения или интеграции продуктов, в идеале в проектах с открытым исходным кодом.

    Building a RISC-V CPU Core (The Linux Foundation)

    Данный курс знакомит с основами цифровой схемотехники и азами микроархитектуры процессоров. Программа подходит начинающим разработчикам, так как не требует предварительного знания основ цифрового дизайна. В ходе курса студенты будут выполнять лабораторные работы, в рамках которых они пройдут путь от имплементации логических вентилей до создания собственного простого, но полноценного RISC-V процессора, используя бесплатную онлайн среду разработки Markerchip.

    Computer Architecture with an Industrial RISC-V Core (The Linux Foundation)

    Курс предоставляет практический опыт работы с архитектурой RISC-V и учит разработке и компиляции кода на C и ассемблере RISC-V для SoC RVFpga, а также использованию и расширению системы ввода/вывода RVfpga SoC. Вы также узнаете, как настроить микроархитектуру ядра VeeR EH1 CoreTM и протестировать его различные функции с помощью счетчиков производительности и отраслевых стандартных бенчмарков. Наконец, курс предоставляет пошаговые инструкции по выполнению программ на плате Nexys A7 и симуляции программ с использованием: Whisper ISS; RVfpga-ViDBo, основанного на Verilator; RVfpga-Pipeline; и RVfpga-Trace. По завершении курса учащиеся должны уметь использовать RISC-V для улучшения безопасности, энергопотребления и производительности процессоров.

    Видеоматериалы

    Лекторий Зимней школы "Программирование для RISC-V"

    В лекторий входит серия лекций об особенностях разработки и оптимизации программного обеспечения. На лектории вы изучите основы архитектур ЭВМ, познакомитесь с современной открытой архитектурой RISC?V, освоите методы повышения производительности ПО и погрузитесь в особенности оптимизации программ.

    Вебинары Альянса RISC-V. Открытая архитектура RISC-V. Константин Владимиров (Syntacore)

    Рассматриваются основные принципы архитектуры команда (ISA) RISC-V, а также ее преимущества, о базовом наборе, псевдооперациях, сжатых инструкциях и расширениях базового набора ISA.

    Вебинары Альянса RISC-V. Инструменты разработчика RISC-V. Константин Владимиров (Syntacore).

    На вебинаре рассказывается об основных инструментах для компиляции, компоновки и отладки приложений. Для того чтобы понять специфику разработки под RISC-V затрагиваются вопросы кросскомпиляции и такие понятия как ABI, sysroot и multilib. Рассматриваются симуляторы для запуска программ и демонстрируется запуск ядра Linux на системном QEMU.

    Вебинары Альянса RISC-V. Разработка специализированных инструкций RISC-V. Часть 1, часть 2. Евгений Примаков (НИЛ ЭСК МИЭТ).

    Открытые реализации и расширяемость RISC-V позволяют по-новому взглянуть на встречающийся в индустрии подход к разработке специализированных процессоров. Вебинар посвящён краткому обзору процесса разработки кастомных инструкций процессора в пределах спецификации RISC-V. Затрагиваются вопросы полного цикла разработки: от RTL до GNU binutils.

    Вебинары Альянса RISC-V. Опыт использования RISC-V плат в области ИИ. Алексей Григорьев (YADRO).

    Материал вебинара подготовлен на основе опыта портирования на RISC-V различных ML/DL продуктов. Представлено сравнение производительности (для алгоритмов искусственного интеллекта) доступных RISC-V плат c более популярными платформами, предлагаются возможные оптимизации для доступных RISC-V CPU. Также поговорим о планах по развитию экосистемы искусственного интеллекта на RISC-V и о требованиях к будущим CPU для эффективного использования в задачах искусственного интеллекта.

    Вебинары Альянса RISC-V. Микроконтроллеры RISC-V в России: настоящее и будущее. Константин Окунев, Михаил Лямаев (АО Элемент, ДЦ VOSTOK).

    Вебинар, открывающий соответствующую серию, посвящённую новым российским продуктам и обучению работе с ними. Представлены продукты, выходящие на рынок в 2024 году, и инструкции по первым шагам и особенностям разработки программного обеспечения для них.

    Вебинары Альянса RISC-V. Приложения для микроконтроллеров RISC-V. Часть 1. Часть 2. Андрей Ильченко (МАИ).

    Две части вебинара, посвящённых презентации переведённых и адаптированных курсов Глобального Альянса RISC-V. Рассказывается об адаптации курса Microcontroller Applications with RISC-V (LFD115x), где рассматривает платформа RISC-V, основные инструменты разработки, приводятся примеры работы с вводом-выводом, ШИМ, использования прерываний.

    Вебинары Альянса RISC-V. Матричные расширения RISC-V. Ожидания и рефернесы. Пузикова Валерия (YADRO).

    Рассмотрены матричные расширения, разрабатываемые в RISC-V International. Рассказывается о текущем статусе их разработки и планах рабочих групп, а также об ожиданиях от подобных расширений, сформированных на основе анализа таких референсов, как Intel AMX, Apple AMX, Power MMA, Arm SME, SiFive VCIX.

    Вебинары Альянса RISC-V. Лабораторный практикум RISC-V. Заславский Марк (ЛЭТИ).

    Представлен сквозной лабораторный практикум по технологии RISC-V, включающий 15 лабораторных работ по пяти основным аспектам разработки (ассемблер и архитектура RISC-V, отладка и инструменты разработки, программирование микроконтроллеров и операционные системы реального времени).

    Вебинары Альянса RISC-V. Основы программирования на языке ассемблера RISC-V. Булах Дмитрий (МИЭТ).

    Представлена адаптация курса Foundations of RISC-V Assembly Programming (LFD117x). Рассмотрели возможности компиляции, запуска и отладки программ, написанных на языке ассемблера, как с применением эмуляторов, так и средств кросс-компиляции. Все примеры рассмотрены для непривилегированных инструкций языка. Курс может быть частью любого вводного курса по низкоуровневому программированию, изначально рассчитан на широкую аудиторию с начальным опытом программирования на компилируемых языках.

    Вебинары Альянса RISC-V. Внутри матрицы: T-Head RISC-V Matrix Extension. Пузикова Валерия, Соколов Андрей (YADRO).

    Рассмотрены характеристики матричного расширения компании T-Head. Показано, как можно использовать данное расширение при реализации матричного умножения. Данный материал также предлагается на занятиях слушателям соответствующего интенсива ИТ-кампуса Неймарк.

    Machine-Readable Specifications of RISC-V ISA. Alexander Kamkin, Andrei Tatarnikov.

    В данном видео рассказывается о машиночитаемой спецификации архитектуры набора команд RISCV ISA. Это попытка формализовать RISC-V ISA таким, образом, чтобы можно было автоматизировать такие задачи как проектирование CPU, автоматизация кросс-инструментальной разработки и различные виды верификации: функциональную проверку, проверку безопасности, проверку аппаратного и программного обеспечения. Автор также рассказывает о приложении для генерации тестовых программ, над которым они работают в институте системного программирования РАН.

    Системы на кристалле на базе IP ядер RISС V (компания Macro Group Ltd)

    Запись вебинара по продуктам Xilinx, посвященный свободным IP ядрам. На вебинаре рассматривают какими бывают свободные процессорные IP-ядра, где их взять и как правильно выбрать. Также рассматривается пример реализации системы на кристалле на основе процессорного ядра RISC-V и отладочной платы ARTY на базе ПЛИС Xilinx Artix-7.

    Статьи и обзоры

    Исследование технологии RISC-V. Фролов В.А., Галактионов В.А., Санжаров В.В.

    В данном исследовании были проанализированы существующие популярные системы команд процессора и сделаны выводы о перспективности направления RISC-V и других открытых систем команд CPU. В работе даются ответы на следующие вопросы: почему система команд процессора - это действительно важно? Почему именно RISC-V, чем он лучше остальных? Какие возможности RISC-V открывает для российских разработчиков и какие у него есть аналоги.

    Case Study for Running Memory-Bound Kernels on RISC-V CPUs. Valentin Volokitin, Evgeny Kozinov, Valentina Kustikova, Alexey Liniov, Iosif Meyerov

    В статье анализируется производительность двух устройств RISC-V при выполнении трех приложений, связанных с памятью: широко используемый STREAM-тест, алгоритм транспонирования плотных матриц и алгоритм размытия по Гауссу. Авторы показывают, что по сравнению с процессорами x86 и ARM устройства RISC-V по-прежнему будут уступать по времени вычислений, но очень хорошо использовать ресурсы. Демонстрируется, что хорошо разработанные методы оптимизации памяти для процессоров x86 повышают производительность процессоров RISC-V.

    RISC-V с нуля

    В данной статье исследуются различные низкоуровневые концепции (компиляция и компоновка, примитивные среды выполнения, ассемблер и многое другое) через призму архитектуры RISC-V и ее экосистемы. Автор знакомит читателей с экосистемой RISC-V и приводит подробные инструкции как настроить цепочки инструментов, чтобы запустить простую программу на C на эмулированном оборудовании RISC-V.

    Начинаем изучать RISC-V

    Статья "Начинаем изучать RISC-V" представляет собой введение в открытую ISA архитектуру RISC-V. Она объясняет, что это такое, какие преимущества она имеет перед другими архитектурами и какие возможности она предоставляет для создания микропроцессоров. Статья написана доступным языком и предназначена для широкой аудитории, интересующейся архитектурой компьютеров и процессоров.

    Разбираемся в архитектурах: x86, ARM и RISC-V

    Данный материал является обзором архитектур процессоров x86, ARM и RISC-V. В статье рассмотрены их отличия, преимущества и недостатки, а также применение в различных устройствах. Описаны особенности архитектур, такие как размер инструкций, режимы адресации и управление энергопотреблением. В заключении приведены рекомендации при выборе процессора для конкретных задач.

    Исследователи тестируют экспериментальный суперкомпьютер RISC-V

    Группа исследователей из Болонского университета и Cineca изучила экспериментальный кластер суперкомпьютеров RISC-V с восемью узлами и 32 ядрами. Демонстрация показала, что даже несколько скромных SoC Freedom U740 от SiFive могут запускать приложения для суперкомпьютеров при относительно низком энергопотреблении. Более того, кластер работал хорошо и поддерживал базовый стек высокопроизводительных вычислений.

    О русскоязычном издании учебника "Цифровая схемотехника и архитектура компьютера: RISC-V"

    Русскоязычное издание учебника, ставшее отправной точкой для обучения проектированию процессоров на ПЛИС и архитектуре RISC-V во многих вузах, будет полезно студентам, инженерам, а также широкому кругу читателей, интересующихся современной схемотехникой. В учебнике вас проведут, начиная от логических элементов и двоичных чисел, заканчивая работой с готовым RISCV процессором.

    Ассемблер RISC-V для начинающих

    Если вы не знаете ни одного ассемблера, или не имеете большого опыта кодинга, то ассемблер RISCV может быть одним из лучших вариантов для того, чтобы погрузиться в эту тему. Данная статья поможет разобраться с чего начать свой путь. Архитектура RISC-V обладает современным и простым набором команд, спроектированным с учетом современных требований, она придумана специально для того, чтобы быть простой в изучении и вместе с тем, практически эффективна для реализации высокопроизводительных микропроцессоров

    A Survey on RISC-V-Based Machine Learning Ecosystem

    В данной статье рассматривается экосистема для машинного обучения на основе RISC-V, используемой для классификации систем на кристалле (SoC) и ядер ЦП. Более того, часть этой работы посвящена таким проблемам, как энергоэффективность и надежность при разработке приложений с открытым исходным кодом (OSH) в области искусственного интеллекта (AI) и машинного обучения (ML), что обосновано необходимостью найти вычислительную мощность для более совершенных и ресурсоемких алгоритмов и приложений AI и в создании аппаратных ускорителей, связанных с машинным обучением.

    Литература

    Organization and Design: The Hardware/Software design

    В книге показана взаимосвязь между аппаратными средствами и программным обеспечением. По мнению авторов, в течение следующего десятилетия большинству программистов придется разбираться в аппаратно-программном интерфейсе, если они хотят, чтобы программы эффективно работали на параллельных компьютерах. Аудитория этой книги включает в себя тех, у кого мало опыта в языке ассемблера или логическом дизайне, которым необходимо понимать, как устроен компьютер и почему он работает так, как работает.

    The RISC-V Reader: An Open Architecture Atlas

    The RISC-V Reader - это краткое введение и справочник для разработчиков встраиваемых систем, включает набор инструкций с подробным описанием каждой из них. Архитектура RISC-V используется как в простых микроконтроллерах, так и в серверах для быстрых облачных вычислений. Десять глав знакомят с полным набором инструкций RISC-V, а программировать читатели могут начать уже после 2 главы. В книге показано, как RISC-V собрал в себе лучшие идеи прошлых архитектур, избегая при этом их ошибок.

    Digital Design and Computer Architecture, RISC-V Edition

    В книге представлен современный подход к разработке цифровых устройств. Авторы начинают с цифровых логических элементов, переходят к разработке комбинационных и последовательностных схем, а затем используют эти базовые блоки как основу для самого сложного: разработки настоящего процессора RISC-V. По всему тексту приводятся примеры на языках SystemVerilog и VHDL. В издание вошли новые материалы о системах ввода/вывода применительно к процессорам общего назначения как для ПК, так и для микроконтроллеров. Русский перевод: Цифровая схемотехника и архитектура компьютера: RISC-V

    An Introduction to Assembly Programming with RISC-V

    Учебник по программированию на языке ассемблера RISC-V. В качестве примеров используется код, использующий набор инструкций архитектуры RISC-V. В первой части книги читатель обзорно познакомится с тем, как устроен компьютер и как исполняются программы, а затем начнет знакомство с языком ассемблер. Во второй части фокус переходит к разработке пользовательских программ, т.е. тех, которые работают с данными, хранящимися в регистрах процессора и основной памяти. В третьей части внимание уделяется программированию на системном уровне, включая взаимодействие с периферией и устойчивостью системы к случайным или злонамеренным ошибкам в коде.

    Симуляторы, эмуляторы, наборы инструментов

    Jupiter

    Кроссплатформенный компилятор и симулятор исполнения ассемблерного кода для архитектуры RISC-V с открытым исходным кодом. Поддерживает все инструкции по работе с целыми числами, числами с плавающей запятой одинарной и двойной точности, атомарными инструкциями, умножением и делением. Симулятор создавался для учебных целей, имеет интуитивно понятный графический интерфейс, может использоваться через командную строку. Может работать с несколькими файлами, что дает возможности выстраивать структуру проекта.

    Venus

    Симулятор исполнения ассемблерного кода для архитектуры RISC-V с открытым исходным кодом. Поддерживает все инструкции стандарта RV32IM. Реализовано пошаговое выполнение кода, точки останова, подсветка синтаксиса, просмотр машинного кода и исходных инструкций рядом друг с другом, вывод значений в регистрах и по адресам в памяти.

    Spike

    Симулятор исполнения ассемблерного кода для архитектуры RISC-V с открытым исходным кодом. Реализует функциональную модель, поддерживающую несколько аппаратных потоков. Поддерживает большое количество функций из стандарта RISC-V ISA. Реализован интерактивный режим отладки, возможна отладка с использованием gdb.

    RARS

    Сборщик и симулятор исполнения ассемблерного кода под архитектуру RISC-V с открытым исходным кодом. Представляет удобное окружение разработки для людей, только знакомящихся с RISC-V. Реализует стандарт RISC-V IMFDN Base (riscv32 и riscv64). Реализован отладчик, возможность просмотра машинного кода и исходных инструкций рядом друг с другом, сборка проекта из нескольких файлов.

    Ripes / (Web-RIPES)

    Графически симулятор для изучения ассемблера RISC-V, есть возможность программирования на языке С, с потактовой симуляцией программы и с иллюстрацией обновления каждой стадии конвейера. Так же добавлен эмулятор cache памяти с настройкой архитектуры кэша, политик замещения. Web-реализация симулятора RIPES простых ядер RISC-V на основе цифровых схем может точно учитывать микроархитектурные особенности: конвейер, кэши, суперскалярность и прочее. В состав эмулятора входят набор 32 и 64-битных ядер, как одноцикловых, так и многостадийных суперскалярных.

    RISC-V Interpreter

    Популярный интерпретатор RISC-V Корнельского университета, оснащенный простым и понятным интерфейсом.

    QtRvSim

    Симулятор процессора RISC-V для образовательных целей, разработан образовательным проектом Computer Architectures в Чешском техническом университете. Git со всех необходимым для установки и инструкцией по сборке и пакетам. Кроме того, QtRVSim экспериментально доступен для WebAssembly и может быть запущен в большинстве браузеров без установки.

    rv8

    Симулятор RISC-V для x86-64, включающий высокопроизводительный двоичный транслятор x86-64, симулятор пользовательского режима, полнофункциональный системный эмулятор, инструмент двоичного анализа ELF и метаданные ISA.

    RISC-V ALE

    Онлайн-эмулятор по сборке RISC-V. Страница с интерактивной онлайн-средой обучения: есть терминал, запуск и отладка, возможность загрузки файлов, настройки. Также представлены упражнения или учебное пособие, чтобы начать изучать язык ассемблера RISC-V.

    riscv-easy-as-pi

    Инструкция по настройке набора инструментов для компиляции и сборки исполняемых файлов для RISC-V, который будет запускаться на одноплатном компьютере RPi. В качестве компилятора используется набор GNU, а для программирования и отладки целевой платформы - openOCD.

    Opensource RISC-V processors from Academia

    VexRiscv

    В этом репозитории размещена 32-разрядная реализация процессора RISC-V, совместимая с FPGA, написанная на SpinalHDL. Описание аппаратного обеспечения этого процессора выполнено с использованием программно-ориентированного подхода.

    Picorv32

    Репозиторий с файлами PicoRV32 - ядро процессора, которое реализует набор команд RISC-V RV32IMC. Оно может быть сконфигурировано как ядро RV32E, RV32I, RV32IC, RV32IM или RV32IMC и, при необходимости, содержит встроенный контроллер прерываний. Этот процессор предназначен для использования в качестве вспомогательного процессора в конструкциях FPGA и ASIC.

    Neorv32 Processor

    Комплементарный пакет, основанный на RISC-V ЦП, вместе с периферийным интерфейсом, встроенной памятью и программной средой, составляющий полномасштабную платформу СнК с возможностью настройки для различных FPGA, плат и toolchain-ов. Основной акцент используемого процессора сделан на безопасность исполнения и баланс между малым размером и производительностью. Работает "из коробки" и, благодаря открытой документации, подходит как начинающим, так и продвинутым пользователям FPGA/RISC-V.

    RiscvOrca

    Пакет разработки, написанный на VHDL и содержащий оптимизированное для FPGA ядро RISC-V на основе архитектуры набора команд RV32IM. Существует возможность преобразования пакета до стандартного ядра RV32I/RV32E. Проект подходит для тестирования FPGA, а также полезен в качестве базиса для более сложных проектов на основе архитектуры RISC-V.

    Vroom

    Новейшая высокопроизводительная реализация ядра RISC-V на основе архитектуры набора команд RV64-IMAFDCHBK(V). К основным целям и преимуществам проекта можно отнести высокую частоту выполнения инструкций за такт, поддержку многоядерности и двусторонней одновременной многопоточности. Проект находится на стадии активной разработки с подробной документацией и описанием текущего прогресса и ближайших шагов команды разработчиков.

    SonicBOOM

    Out-of-Order Machine (BOOM) - синтезируемое и параметризуемое ядро RISC-V на основе архитектуры набора команд RV64GC с открытым исходным кодом, написанное на языке описания аппаратуры Chisel. Ядро BOOM в первую очередь оптимизирован для ASIC, но также приспособлен для использования на FPGA.

    Serv

    Ядро на основе архитектуры набора команд RV31I, претендующее на звание самого маленького в мире RISC-V процессора. Проект располагает открытым исходным Verilog кодом, подробным мануалом, инструкцией для быстрого старта и серией обучающих роликов, подходящих как опытным пользователям, так и для первого знакомства с архитектурой RISC-V. Версия разработки не является окончательной, но уже получила награды и признание среди научных инженерных кругов.

    OpenC910

    Высокопроизводительный 64-разрядный процессор, совместимый с RISC-V, основанный на наборе инструкций RV64GC и реализующий технологию XIE (XuanTie Instruction Extension). Основные направление проекта - обеспечение высокой производительности в потоке управления, вычислениях и частоте. Процессор использует современный 12-ступенчатый суперскалярный высокочастотный конвейер, включает в себя контроллеры прерывания CLINT и PLIC, поддерживает когерентность аппаратного кэша и многое другое.

    Noel-V

    Синтезируемая VHDL-модель процессора, реализующая архитектуру RISC-V на основе набора инструкций RV32/64IMAFDB*CH. Благодаря своей высокопроизводительной и отказоустойчивой конструкции, идеально подходит для спутников, планетоходов и других космических систем. Процессор может быть эффективно реализован на технологиях FPGA и ASIC, а пользователи для работы имеют доступ к обширной библиотеке существующего программного обеспечения и инструментов.

    vivado-risc-v

    Репозиторий содержит FPGA-прототип полнофункционального Linux-сервера RISC-V с онлайнрепозиторием Linux и ежедневным обновлением пакетов. Проект включает в себя сценарии и исходники для создания RISC-V СнК HDL, проекта Xilinx Vivado, FPGA bitstream и загрузочную SD-карту с двоичным интерфейсом и открытым исходным кодом RISC-V. Проект используется в качестве эталонного решения для проверки поддержки RISC-V в Eclipse TCF.

    Building a RISC-V CPU Core

    Проект является открытым исходным кодом и содержит описание и код для пошаговой реализации процессора на основе архитектуры RISC-V. Реализация начинается с построения базового процессора, затем добавляются различные инструкции и компоненты, такие как арифметические операции, умножение, деление, память и ввод-вывод. В проекте использованы языки Verilog и C для описания аппаратной части и тестирования процессора соответственно. Проект предоставляет уникальную возможность понять, как работает процессор, и изучить основы архитектуры компьютера и цифровой электроники. Также он может быть использован в качестве основы для создания собственного процессора или углубленного изучения архитектуры RISC-V.

    XiangShan

    Высокопроизводительное процессорное ядро RISC-V с открытым исходным кодом. Проект Института вычислительных технологий Китайской академии наук. Репозиторий содержит статьи Института по теме исследований RISC-V, документацию на процессорное ядро, а также исходные коды HDL Verilog ядра, fpu, L2/L3 кэш подмодулей и инструментарий для симуляции работы ядра.

    Страницы:

    Список основной литературы

  • Таненбаум Э. С., Херберт Б. Современные операционные системы. 4-е изд. - "Издательский дом" "Питер""", 2021.
  • VirtualBox.
  • ssh(1) - Linux manual page.
  • An Introduction to Assembly Programming with RISC-V. Prof. Edson Borin, Institute of Computing, Unicamp
  • RISC-V ASM manual
  • ЮGOTO statement
  • Сара Л. Харрис, Дэвид Харрис Цифровая схемотехника и архитектура компьютера: RISC-V / пер. с англ. В. С. Яценкова, А. Ю. Романова; под ред. А. Ю. Романова. - М.: ДМК Пресс, 2021.
  • Harry H. Porter III RISC-V:An Overview of the Instruction Set Architecture
  • FreeRTOS: Real-time operating system for microcontrollers.
  • Введение в компиляторные оптимизации. Перевод курса RISC-V Toolchain and Compiler Optimization Techniques (LFD113x)
  • gcc(1) - Linux manual page
  • Perf
  • Valgrind
  • callgrind
  • cachegrind
  • time
  • Basic operating systems terms and concepts
  • ls.
  • size
  • Методы отладки. Перевод курса RISC-V Toolchain and Compiler Optimization Techniques (LFD113x)
  • gdb
  • GNU General Public License (GPL)
  • FreeRTOS / "Си для встраиваемых систем", онлайн-версия книги robotclass.ru.
  • Download FreeRTOS
  • xSemaphoreCreateMutex
  • Установка среды VSCode
  • Установка расширения ESP-IDF для Visual Studio Code
  • syscalls
  • Linux syscalls numbers for riscv64
  • C code obfuscator
  • Список дополнительной литературы

  • Computer Organization and Design The Hardware Software Interface: RISC-V Edition
  • The RISC-V Reader: An Open Architecture Atlas
  • Digital Design and Computer Architecture, RISC-V Edition aka "HH"
  • Цифровая схемотехника и архитектура компьютера: RISC-V
  • RISC-V Assembly Programming - учебник
  • Полезные материалы по RISC-V

    Некоторым учебным методическим материалам присвоен код области знаний, соответствующий Computing Curricula 2020.

    Официальные ресурсы

    Альянс RISC-V

    Официальный сайт альянса RISC-V - добровольного объединения российских компаний разработчиков аппаратного и программного обеспечения на основе архитектуры RISC-V. Целью альянса является создание открытого сообщества разработчиков для представления и защиты общих интересов, популяризации архитектуры RISC-V, создания необходимых компетенций и содействия развитию экосистемы RISC-V в нашей стране. Ресурс содержит информацию о положениях, правлении и основных треках деятельности альянса.

    Альянс RISC-V. Возможности для обучения

    Образовательный раздел Российского Альянса RISC-V. В нем представлены обучающие материалы по технологиям RISC-V, созданные при поддержке Альянса, в том числе - перевод и адаптация образовательных курсов Глобального Альянса RISC-V, записи вебинаров и митапов Российского Альянса.

    RISC-V International

    Сайт является основным интернет-ресурсом консорциума "RISC-V International" - открытого международного сообщества свободно распространяемой архитектуры RISC-V. Сообщество насчитывает свыше 3 тысяч компаний-участников из более чем 70 стран мира, активно взаимодействующих и вносящих вклад в развитие экосистемы RISC-V. Здесь вы найдете официальные документы консорциума: от стратегии развития сообщества до спецификации архитектуры набора команд. Также найдете полезную информацию о компаниях-участниках, анонсах мероприятий сообщества, различных менторских и амбассадорских программах. Не менее важным является открыто пополняемый список академических материалов и курсов по изучению экосистемы RISC-V.

    RISC-V. RISC-V Learn

    Ресурс открытого международного сообщества "RISC-V International", посвященный образованию и изучению экосистемы RISC-V; представлены методические и учебные материалы сообщества. Ресурс располагает обширной базой материалов и курсов по изучению предмета, среди которых: открытые и платные программы обучения, программы тренингов от партнеров, сборники свободных материалов вузов. Ресурс будет полезен всем, вне зависимости от уровня знаний и опыта и поможет достичь желанной цели, будь то получение новых навыков или карьерных возможностей.

    RISC-V Exchange

    RISC-V Exchange - база материалов образовательных курсов по RISC-V от ведущих университетов мира. Курсы посвящены разработке аппаратных средств, программному обеспечению. На сайте также представлены всевозможные услуги и учебные предложения от сообщества RISC-V.

    RISC-V Specifications

    Сайт предоставляет официальную документацию и спецификации для архитектуры открытого набора команд RISC-V, например, такие как User-Level ISA Specification, Privileged ISA Specification, Debug Specification, ELF Specification и другие.

    Каталог плат от RISC-V сообщества

    Данный сайт является каталогом различных платформ и плат, основанных на архитектуре RISC-V. Этот ресурс предназначен для разработчиков, которые ищут готовые решения для создания устройств на основе RISC-V. Среди плат, представленных на сайте, можно найти различные типы, такие как отладочные платы, демонстрационные платы с СнК (SoC), платы расширения и многое другое. Некоторые из них могут быть использованы для создания встраиваемых систем, а другие - для построения более мощных вычислительных систем.

    RISC-V International Youtube

    YouTube-канал RISC-V International - это официальный канал международной организации RISC-V Foundation, которая является крупнейшим сообществом разработчиков и компаний, работающих с архитектурой RISC-V. На канале представлены различные видео, связанные с архитектурой RISC-V, включая конференции, вебинары, интервью и презентации. Видеоматериалы содержат информацию о новых разработках в области RISC-V, а также о технических аспектах и примерах применения архитектуры RISC-V.

    Образы RISC-V ядер

    На сайте представлен каталог компонентов, платформ и инструментов, связанных с архитектурой RISC-V. На этом ресурсе размещаются компоненты, которые могут быть использованы для создания устройств на основе архитектуры RISC-V, таких как ядра процессоров, библиотеки и драйверы. С помощью фильтров на сайте можно легко найти нужный компонент или платформу. Например, можно выбрать категорию ядер процессоров и найти список доступных ядер, включая информацию о спецификациях, документации и других связанных материалах. Аналогично можно найти библиотеки и драйверы для различных компонентов.

    RISC-V Software Repos

    Репозитории программного обеспечения RISC-V, которое поддерживается RISC-V International. На странице размещены исходные источники для многих проектов с открытым исходным кодом. Так, например, на сайте представлены такие инструменты как: симулятор RISC-V spike, платформа архитектурного тестирования riscof, эталонная реализация бинарного интерфейса супервизора RISCV - opensbi и др.

    Создание приложений на базе RISC-V и FreeRTOS [K(C-3.6)] [K(C-5.2)]

    Вводный курс, предназначенный для разработчиков, интересующихся RISC-V и операционными системами реального времени (RTOS). В рамках материала данного курса и лабораторных работ слушатели получат навыки интеграции RISC-V и FreeRTOS, а также узнают, как применять open-source процессоры и RTOS в различных встраиваемых приложениях. Курс требует предварительного знания основ встраиваемых систем и процессоров, а также хорошего понимания того, как компилируется и запускается код, написанный на языке C.

    Инструментарий RISC-V и компиляторные оптимизации [K(C-5.5)]

    Данный курс предназначен для людей, которые работают с поставщиками RISC-V процессоров, а также для разработчиков, использующих отладочные платы на базе этой процессорной архитектуры. Курс включает в себя введение в наборы инструментов компиляции и основы кросс-компиляции. Слушатели познакомятся с популярными наборами инструментов компиляции LLVM и GCC. Этот курс также поможет приобрести навыки оптимизации приложений с точки зрения кода и производительности. Предполагается, что для понимания материала курса необходимо, чтобы слушатель уже был знаком с разработкой приложений на C/C++ и процессом их компиляции, инструментом git и установкой пакетов в ОС Linux.

    Приложения для RISC-V-микроконтроллеров [K(C-3.6)]

    Данный вводный курс дает базовый опыт проектирования и разработки встраиваемых приложений на основе микроконтроллеров с RISC-V ядрами. Курс подходит людям, которые уже разрабатывали приложения на основе систем вроде Arduino Uno, а также любителям. В рамках курса слушатели познакомятся с программным пакетом Five Freedom Studio, который предназначен для создания встраиваемых систем на базе RISC-V процессоров. Предполагается, что слушатели знакомы с языком C и основами цифровой схемотехники.

    Основы программирования на языке ассемблера под архитектуру RISC-V [K(C-5.5)] [K(C-6.1)]

    Вводный курс, который знакомит с RISC-V ассемблером, необходимым для задач низкоуровневой разработки, такими как отладка и нахождение критичных для производительности участков приложения. Материал предназначен для программистов, которые хотят понимать, какие инструкции в действительности будут исполняться процессором для разработанного ими кода. В этом курсе обсуждается набор инструментов RISC-V GNU, архитектура набора инструкций RISC-V (ISA), псевдоинструкции и директивы ассемблера, интерфейс прикладного программирования, взаимодействие с C-библиотеками, дизассемблирования и многое другое. Основные понятия, такие как циклы, условия и функции, изучаются путем разработки программ на ассемблере, работающих на RISC-V в среде Linux.

    Сквозной лабораторный практикум по технологиям RISC-V [K(C-3.6)] [K(C-5.2)] [K(C-5.5)]

    Практикум ориентирован на широкую аудиторию студентов технических вузов, обучающихся по специальностям, связанным с разработкой ПО и информационно-вычислительной техникой. В рамках данного курса обучающиеся освоят практические навыки по следующим темам: введение в инструменты разработчика RISC-V на примере Syntacore Kit, язык ассемблера для RISC-V, оптимизации ПО на уровне компилятора и методы отладки для RISC-V, разработка ПО для операционных систем реального времени (ОСРВ) на примере FreeRTOS, программирование микроконтроллеров на базе RISC-V

    Проектирования ядра RISC-V [K(C-6.1)]

    Курс предназначен для всех, кто интересуется аппаратным обеспечением. Независимо от уровня подготовки, участники приобретут новые навыки, которые можно сразу применять. Предварительное знание цифровой логики не требуется. Это ускоренный курс по цифровой логике и базовой архитектуре процессоров. С помощью онлайн-среды разработки Makerchip вы реализуете всё - от логических элементов до простого процессорного ядра RISC-V. Курс также познакомит вас с ключевыми технологиями для открытого аппаратного обеспечения, такими как RISC-V и Transaction-Level Verilog.

    Введение в RISC-V [K(C-5.5)] [K(C-6.1)]

    Курс от Linux Foundation Training and Certification создан для энтузиастов RISC-V, разработчиков аппаратного и программного обеспечения, а также любителей технологий с интересом к открытой архитектуре команд. Курс обновлен и расширен на основе рекомендаций сообщества RISC-V и включает новые технические темы, такие как примеры ассемблера RISC-V с использованием симулятора Venus на Visual Studio Code, обзор архитектуры RISC-V с акцентом на регистры процессора, кодирование инструкций и бинарный интерфейс приложений. Также рассматриваются команды и псевдокоманды языка ассемблера RISC-V, инструменты и приложения для разработки с ядрами RISC-V, а также ресурсы для сообщества, включая информацию о RISC-V International и экосистеме RISC-V.

    Введение в функциональную верификацию RISC-V ядер [K(C-6.1)]

    Курс знакомит с основными подходами к функциональной верификации RISC-V ядер, использующимися в индустрии микроэлектроники в настоящее время. Ядром курса являются практические занятия, реализующие полный маршрут 3 различных подходов к тестированию (от простого к сложному). Однако, без базовых теоретических знаний осознанно их выполнить непросто, так что в курсе представлен блок теоретического материала, формирующий контекст восприятия.

    Основы проектирования ОС: лабораторный практикум на xv6 под RISC-V [K(C-5.2)] [K(C-5.5)]

    Курс призван заложить базу для дальнейшего изучения проектирования и разработки компонентов и модулей ядра различных операционных системы для различных архитектур CPU, включая десктопные и серверные ОС на базе Linux, ОС для встроенных систем с архитектурой RISC-V, и другие. Курс может быть полезем системным и прикладным программиста для понимания особенностей работы и ограничений возможностей операционных систем. Кроме того, многие архитектурные и алгоритмические решения, используемые при проектировании и разработке операционных систем, могут применяться и в других задачах.

    Учебные курсы и материалы

    Архитектуры процессорных систем (НИУ МИЭТ) [K(C-6.1)]

    Открытый, свободно распространяемый сборник материалов курса "Архитектуры процессорных систем", читаемого в Национальном исследовательском университете МИЭТ. Целью курса "Архитектуры процессорных систем" является изучение устройства и способов организации процессоров и систем под их управлением.

    Архитектура и язык ассемблера RISC-V (МГУ имени М. В. Ломоносова) [K(C-5.5)] [K(C-6.1)]

    В курсе прослеживается связь между конкретной организацией процессора и общими принципами построения вычислительных систем. Планируется решение задач на языке ассемблера с последующей проверкой в системе EJudge. В учебном процессе используются эмулятор, среда разработки и визуализатор выполнения кода RISC-V.

    Введение в FPGA и Verilog (НИУ МФТИ) [K(C-6.2)]

    Открытый репозиторий, в котором хранятся задания к лабораторным работам, задачи семинаров, слайды презентаций, заметки и другие материалы для курса "Введение в FPGA и Verilog". В том числе есть ссылки на записи лекций на YouTube.

    Computer Architectures and Operating Systems (НИУ ВШЭ) [K(C-5.2)] [K(C-6.1)]

    Курс, созданный для тех, кто хочет погрузится в изучение архитектуры, основанной на наборе команд RISC-V, и научится программированию на языке ассемблера под данную архитектуру. Целью курса является введение в основы работы операционных систем и аппаратуры. Курс разделен на две части. Первая посвящена компьютерным архитектурам и языку ассемблера. Данный материал преподается на основе архитектуры набора команд RISC-V и соответствующего языка ассемблера. Вторая часть рассказывает об организации операционных систем и системном программировании на базе ОС Linux и языка C.

    Школа синтеза цифровых схем [K(C-6.1)] [K(C-6.2)]

    Образовательная инициатива, которая включает в себя подборку тематических материалов для быстрого освоения современных подходов к проектированию цифровых микросхем. Программа разработана на основе курса Массачусетского Технологического института (MIT): он расширен до семестра и дополнен материалами уровня университетского лабораторного практикума по реконфигурируемым микросхемам FPGA. Программа также содержит элементы курсов компьютерной архитектуры и микроархитектуры процессорных ядер, предоставляя базовые навыки использования профессиональных средств проектирования микросхем ASIC.

    Complex Digital Systems (MIT) [K(C-6.1)] [K(C-6.2)]

    Курс "Complex Digital Systems" Массачусетского технологического института (MIT) посвящен основам проектирования сложных цифровых систем: от комбинационных схем до конвейеризации в микропроцессорной технике. Кроме того, курс также содержит ссылки на другие полезные ресурсы, связанные с изучением цифровых систем и электроники. Этот курс может быть полезен всем, кто интересуется цифровыми системами и их применениями.

    Computation Structures (MIT) [K(C-5.6)]

    Этот курс знакомит с архитектурой цифровых систем, подчеркивая структурные принципы, общие для широкого спектра технологий. Он охватывает такие темы, как многоуровневые стратегии реализации, определение новых примитивов и их механизация с использованием элементов более низкого уровня. Он также включает анализ потенциального параллелизма, ограничений приоритета и показателей производительности, конвейерных и многомерных систем, проблем проектирования наборов инструкций и архитектурной поддержки современных программных структур.

    Computer Laboratory RISC-V Implementation (University of Cambridge) [K(C-6.1)] [K(C-6.2)]

    Данный курс "Электронный дизайн, коммуникации и компьютерная архитектура" разработан в Кембриджском университете. Студенту предлагается спроектировать процессор на основе архитектуры RISC-V с использованием языка описания аппаратуры Verilog и протестировать его функциональность на плате FPGA. На веб-странице представлены подробные инструкции по выполнению упражнения, требования к дизайну процессора и тестовые наборы для проверки его работы. Цель упражнения - углубить понимание студентами работы и архитектуры процессоров и дать практические навыки разработки цифровых систем.

    Computer Organization and Design RISC-V Edition (York University) [K(C-6.1)] [K(C-6.2)]

    В основе данного курса лежит книга Дэвида Паттерсона и Джона Хеннесси "Компьютерная организация и проектирование RISC-V Edition. Аппаратно-программный интерфейс". В этом курсе вы узнаете: как программы переводятся с языка высокого уровня, такого как C, C++, Java, на более низкий уровень языка, который машина понимает правильно; об аппаратном и программном интерфейсе и о том, что на самом деле означает производительность программы; о запуске программы, насколько точно программа выполняется с той скоростью, с какой выполняется задача или процессы в рамках этой программы; как разработчики аппаратных средств повышают производительность.

    Computer Architectures and Engineering (The University of California, Berkeley) [K(C-5.6)] [K(C-6.1)] [K(C6.2)]

    В рамках данного курса рассказывается, как программное обеспечение взаимодействует с аппаратной платформой и как тенденции в технологиях, приложениях и экономике приводят к постоянным изменениям в этой области. В курсе рассматриваются различные формы параллелизма: на уровне инструкций, на уровне данных, на уровне потоков, на уровне шлюзов, и как их можно использовать в совокупности с различными архитектурами вычислительной техники.

    Computer Architectures (Czech Technical University) [K(C-5.2)] [K(C-6.1)]

    Курс знакомит с архитектурой вычислительной системы и с функциональностью ее типичных подсистем. Акцент делается на разъяснении взаимосвязи аппаратных компонентов с поддержкой программного обеспечения, главным образом на более низком уровне взаимодействия операционной системы с драйверами устройств, работой с виртуальной памятью и т.д.

    Architectures of Computer Systems (Czech Technical University) [K(C-6.1)] [K(C-6.2)]

    В данном курсе рассматриваются принципы проектирования процессоров с подробным изучением конвейерной обработки команд и иерархии памяти. Слушатель изучит различия между RISC и CISC архитектурами, обучится принципам обработки команд как в скалярных, так и в суперскалярных процессорах, разработке которых посвящена большая часть курса. Входным порогом является базовое знание ассемблера и языка С, комбинационных и последовательностных схем.

    Advanced Computer Architectures (Czech Technical University) [K(C-5.2)] [K(C-6.1)]

    Курс расширяет знания студентов о современных компьютерных архитектурах. Особое внимание уделяется проблеме параллелизма: реализации параллелизма в аппаратных средствах, использованию методов параллельного программирования, архитектурам современных компьютеров, использующих параллелизм на уровне инструкций и потоков, расширенной потоковой обработке инструкций, памяти и периферийной подсистеме. Акцент делается на понимании взаимных зависимостей аппаратного и программного обеспечения, понимании общих принципов выполнения инструкций в суперскалярном процессоре и разработке программного обеспечения с эффективным использованием доступных аппаратных ресурсов.

    RVfpga. Complete Courses in Computer Architecture SoC Design (компания Imagination Technologies) [K(C-5.2)] [K(C-6.1)]

    Курс RVfpga - это комплексный онлайн-курс, предназначенный для студентов и любителей, заинтересованных в изучении проектирования на базе ПЛИС с использованием RISC-V. Помимо лекций, в состав курса входят лабораторные работы, которые демонстрируют, как собрать SoC RISCV из ядра и других "строительных" блоков, как портировать его на FPGA и как впоследствии запрограммировать.

    Digital Design and Computer Architecture (учебное пособие Sarah L. Harris и David Harris, материалы Harvey Mudd College) [K(C-5.2)] [K(C-6.1)]

    Материалы учебного пособия, предназначены для начинающих разработчиков электроники и охватывают основы цифровой схемотехники, включая логические операции, булеву алгебру, комбинационные и последовательные цифровые схемы. Видеоуроки содержат материалы лекций и демонстрации на примерах, а также практические задания для проверки понимания материала. Курс предназначен для студентов, преподавателей и любителей электроники, которые хотят изучить основы цифровой электроники

    Compilation of RISC-V courses (компания Maven Silicon) [K(C-5.2)] [K(C-6.1)]

    Курсы Maven Silicon содержат в себе всю информацию, которая необходима для RTL-разработки процессорных систем на архитектуре RISC-V. В них подробно объясняют архитектуру набора команд RISC-V RV32I с примерами, знакомят с полным маршрутом разработки RTL, языком описании аппаратуры Verilog HDL, статическом временном анализе и методологией верификации UVM.

    Базовый курс от RISC-V Foundation

    Курс начального уровня по основам работы с архитектурой RISC-V. В рамках курса поэтапно рассматриваются задачи настройки и запуска операционных систем Linux и Zephyr на популярных платформах RISC-V: QEMU, HiFive Unleashed и Microsemi PolarFIre FPGA.

    Коллекция оригинальных курсов RISC-V от The Linux Foundation

    Подборка курсов от The Linux Foundation по технологии RISC-V, состоящая из 10 курсов, по таким темам как введение в технологию RISC-V, проектирование RISC-V микропроцессорного ядра, наборы инструментов и компиляторные оптимизации для написанию программного обеспечения под RISCV платформу, разработка приложений с использованием ОСРВ FreeRTOS для RISC-V, встраиваемое программное обеспечение микроконтроллеров RISC-V, ассемблер RISC-V и др.

    Introduction to RISC-V (The Linux Foundation)

    Открытый курс, объясняющий аспекты понимания экосистемы сообщества RISC-V, спецификаций на RISC-V и способа их курирования и разработки, а также рассматривающий технические аспекты работы с RISC-V (как со стороны разработчика, так и со стороны конечного пользователя). Кроме того, в курсе рассказывается о выгоде, которую люди и организации могут извлечь из RISC-V, и предлагается внести самому свой вклад в него: применить RISC-V ISA в действии с помощью симулятора, загружающего операционную систему Linux. Курс подразумевает собой общий обзор сообщества RISC-V, а также то, как начать работу с RISC-V ISA, курс может дать основные знания, которые необходимы для эффективного участия в сообществе RISC-V, внесения вклада в спецификации ISA или для разработки широкого спектра программных проектов RISC-V. После завершения курса обещается лучшее понимание терминологии, ресурсов и рабочего процесса, которые понадобятся для завершения пути к RISC-V.

    Software Engineering Basics for Embedded Systems (The Linux Foundation)

    Бесплатный курс обучения "Основы разработки программного обеспечения для встраиваемых систем". Курс представляет собой введение в проектирование высококачественных систем и программного обеспечения для всех, кто хочет создавать безопасные или критически важные системы. Учащиеся должны иметь некоторый предшествующий опыт разработки программного обеспечения или интеграции продуктов, в идеале в проектах с открытым исходным кодом.

    Building a RISC-V CPU Core (The Linux Foundation)

    Данный курс знакомит с основами цифровой схемотехники и азами микроархитектуры процессоров. Программа подходит начинающим разработчикам, так как не требует предварительного знания основ цифрового дизайна. В ходе курса студенты будут выполнять лабораторные работы, в рамках которых они пройдут путь от имплементации логических вентилей до создания собственного простого, но полноценного RISC-V процессора, используя бесплатную онлайн среду разработки Markerchip.

    Computer Architecture with an Industrial RISC-V Core (The Linux Foundation)

    Курс предоставляет практический опыт работы с архитектурой RISC-V и учит разработке и компиляции кода на C и ассемблере RISC-V для SoC RVFpga, а также использованию и расширению системы ввода/вывода RVfpga SoC. Вы также узнаете, как настроить микроархитектуру ядра VeeR EH1 CoreTM и протестировать его различные функции с помощью счетчиков производительности и отраслевых стандартных бенчмарков. Наконец, курс предоставляет пошаговые инструкции по выполнению программ на плате Nexys A7 и симуляции программ с использованием: Whisper ISS; RVfpga-ViDBo, основанного на Verilator; RVfpga-Pipeline; и RVfpga-Trace. По завершении курса учащиеся должны уметь использовать RISC-V для улучшения безопасности, энергопотребления и производительности процессоров.

    Видеоматериалы

    Лекторий Зимней школы "Программирование для RISC-V"

    В лекторий входит серия лекций об особенностях разработки и оптимизации программного обеспечения. На лектории вы изучите основы архитектур ЭВМ, познакомитесь с современной открытой архитектурой RISC?V, освоите методы повышения производительности ПО и погрузитесь в особенности оптимизации программ.

    Вебинары Альянса RISC-V. Открытая архитектура RISC-V. Константин Владимиров (Syntacore)

    Рассматриваются основные принципы архитектуры команда (ISA) RISC-V, а также ее преимущества, о базовом наборе, псевдооперациях, сжатых инструкциях и расширениях базового набора ISA.

    Вебинары Альянса RISC-V. Инструменты разработчика RISC-V. Константин Владимиров (Syntacore).

    На вебинаре рассказывается об основных инструментах для компиляции, компоновки и отладки приложений. Для того чтобы понять специфику разработки под RISC-V затрагиваются вопросы кросскомпиляции и такие понятия как ABI, sysroot и multilib. Рассматриваются симуляторы для запуска программ и демонстрируется запуск ядра Linux на системном QEMU.

    Вебинары Альянса RISC-V. Разработка специализированных инструкций RISC-V. Часть 1, часть 2. Евгений Примаков (НИЛ ЭСК МИЭТ).

    Открытые реализации и расширяемость RISC-V позволяют по-новому взглянуть на встречающийся в индустрии подход к разработке специализированных процессоров. Вебинар посвящён краткому обзору процесса разработки кастомных инструкций процессора в пределах спецификации RISC-V. Затрагиваются вопросы полного цикла разработки: от RTL до GNU binutils.

    Вебинары Альянса RISC-V. Опыт использования RISC-V плат в области ИИ. Алексей Григорьев (YADRO).

    Материал вебинара подготовлен на основе опыта портирования на RISC-V различных ML/DL продуктов. Представлено сравнение производительности (для алгоритмов искусственного интеллекта) доступных RISC-V плат c более популярными платформами, предлагаются возможные оптимизации для доступных RISC-V CPU. Также поговорим о планах по развитию экосистемы искусственного интеллекта на RISC-V и о требованиях к будущим CPU для эффективного использования в задачах искусственного интеллекта.

    Вебинары Альянса RISC-V. Микроконтроллеры RISC-V в России: настоящее и будущее. Константин Окунев, Михаил Лямаев (АО Элемент, ДЦ VOSTOK).

    Вебинар, открывающий соответствующую серию, посвящённую новым российским продуктам и обучению работе с ними. Представлены продукты, выходящие на рынок в 2024 году, и инструкции по первым шагам и особенностям разработки программного обеспечения для них.

    Вебинары Альянса RISC-V. Приложения для микроконтроллеров RISC-V. Часть 1. Часть 2. Андрей Ильченко (МАИ).

    Две части вебинара, посвящённых презентации переведённых и адаптированных курсов Глобального Альянса RISC-V. Рассказывается об адаптации курса Microcontroller Applications with RISC-V (LFD115x), где рассматривает платформа RISC-V, основные инструменты разработки, приводятся примеры работы с вводом-выводом, ШИМ, использования прерываний.

    Вебинары Альянса RISC-V. Матричные расширения RISC-V. Ожидания и рефернесы. Пузикова Валерия (YADRO).

    Рассмотрены матричные расширения, разрабатываемые в RISC-V International. Рассказывается о текущем статусе их разработки и планах рабочих групп, а также об ожиданиях от подобных расширений, сформированных на основе анализа таких референсов, как Intel AMX, Apple AMX, Power MMA, Arm SME, SiFive VCIX.

    Вебинары Альянса RISC-V. Лабораторный практикум RISC-V. Заславский Марк (ЛЭТИ).

    Представлен сквозной лабораторный практикум по технологии RISC-V, включающий 15 лабораторных работ по пяти основным аспектам разработки (ассемблер и архитектура RISC-V, отладка и инструменты разработки, программирование микроконтроллеров и операционные системы реального времени).

    Вебинары Альянса RISC-V. Основы программирования на языке ассемблера RISC-V. Булах Дмитрий (МИЭТ).

    Представлена адаптация курса Foundations of RISC-V Assembly Programming (LFD117x). Рассмотрели возможности компиляции, запуска и отладки программ, написанных на языке ассемблера, как с применением эмуляторов, так и средств кросс-компиляции. Все примеры рассмотрены для непривилегированных инструкций языка. Курс может быть частью любого вводного курса по низкоуровневому программированию, изначально рассчитан на широкую аудиторию с начальным опытом программирования на компилируемых языках.

    Вебинары Альянса RISC-V. Внутри матрицы: T-Head RISC-V Matrix Extension. Пузикова Валерия, Соколов Андрей (YADRO).

    Рассмотрены характеристики матричного расширения компании T-Head. Показано, как можно использовать данное расширение при реализации матричного умножения. Данный материал также предлагается на занятиях слушателям соответствующего интенсива ИТ-кампуса Неймарк.

    Machine-Readable Specifications of RISC-V ISA. Alexander Kamkin, Andrei Tatarnikov.

    В данном видео рассказывается о машиночитаемой спецификации архитектуры набора команд RISCV ISA. Это попытка формализовать RISC-V ISA таким, образом, чтобы можно было автоматизировать такие задачи как проектирование CPU, автоматизация кросс-инструментальной разработки и различные виды верификации: функциональную проверку, проверку безопасности, проверку аппаратного и программного обеспечения. Автор также рассказывает о приложении для генерации тестовых программ, над которым они работают в институте системного программирования РАН.

    Системы на кристалле на базе IP ядер RISС V (компания Macro Group Ltd)

    Запись вебинара по продуктам Xilinx, посвященный свободным IP ядрам. На вебинаре рассматривают какими бывают свободные процессорные IP-ядра, где их взять и как правильно выбрать. Также рассматривается пример реализации системы на кристалле на основе процессорного ядра RISC-V и отладочной платы ARTY на базе ПЛИС Xilinx Artix-7.

    Статьи и обзоры

    Исследование технологии RISC-V. Фролов В.А., Галактионов В.А., Санжаров В.В.

    В данном исследовании были проанализированы существующие популярные системы команд процессора и сделаны выводы о перспективности направления RISC-V и других открытых систем команд CPU. В работе даются ответы на следующие вопросы: почему система команд процессора - это действительно важно? Почему именно RISC-V, чем он лучше остальных? Какие возможности RISC-V открывает для российских разработчиков и какие у него есть аналоги.

    Case Study for Running Memory-Bound Kernels on RISC-V CPUs. Valentin Volokitin, Evgeny Kozinov, Valentina Kustikova, Alexey Liniov, Iosif Meyerov

    В статье анализируется производительность двух устройств RISC-V при выполнении трех приложений, связанных с памятью: широко используемый STREAM-тест, алгоритм транспонирования плотных матриц и алгоритм размытия по Гауссу. Авторы показывают, что по сравнению с процессорами x86 и ARM устройства RISC-V по-прежнему будут уступать по времени вычислений, но очень хорошо использовать ресурсы. Демонстрируется, что хорошо разработанные методы оптимизации памяти для процессоров x86 повышают производительность процессоров RISC-V.

    RISC-V с нуля

    В данной статье исследуются различные низкоуровневые концепции (компиляция и компоновка, примитивные среды выполнения, ассемблер и многое другое) через призму архитектуры RISC-V и ее экосистемы. Автор знакомит читателей с экосистемой RISC-V и приводит подробные инструкции как настроить цепочки инструментов, чтобы запустить простую программу на C на эмулированном оборудовании RISC-V.

    Начинаем изучать RISC-V

    Статья "Начинаем изучать RISC-V" представляет собой введение в открытую ISA архитектуру RISC-V. Она объясняет, что это такое, какие преимущества она имеет перед другими архитектурами и какие возможности она предоставляет для создания микропроцессоров. Статья написана доступным языком и предназначена для широкой аудитории, интересующейся архитектурой компьютеров и процессоров.

    Разбираемся в архитектурах: x86, ARM и RISC-V

    Данный материал является обзором архитектур процессоров x86, ARM и RISC-V. В статье рассмотрены их отличия, преимущества и недостатки, а также применение в различных устройствах. Описаны особенности архитектур, такие как размер инструкций, режимы адресации и управление энергопотреблением. В заключении приведены рекомендации при выборе процессора для конкретных задач.

    Исследователи тестируют экспериментальный суперкомпьютер RISC-V

    Группа исследователей из Болонского университета и Cineca изучила экспериментальный кластер суперкомпьютеров RISC-V с восемью узлами и 32 ядрами. Демонстрация показала, что даже несколько скромных SoC Freedom U740 от SiFive могут запускать приложения для суперкомпьютеров при относительно низком энергопотреблении. Более того, кластер работал хорошо и поддерживал базовый стек высокопроизводительных вычислений.

    О русскоязычном издании учебника "Цифровая схемотехника и архитектура компьютера: RISC-V"

    Русскоязычное издание учебника, ставшее отправной точкой для обучения проектированию процессоров на ПЛИС и архитектуре RISC-V во многих вузах, будет полезно студентам, инженерам, а также широкому кругу читателей, интересующихся современной схемотехникой. В учебнике вас проведут, начиная от логических элементов и двоичных чисел, заканчивая работой с готовым RISCV процессором.

    Ассемблер RISC-V для начинающих

    Если вы не знаете ни одного ассемблера, или не имеете большого опыта кодинга, то ассемблер RISCV может быть одним из лучших вариантов для того, чтобы погрузиться в эту тему. Данная статья поможет разобраться с чего начать свой путь. Архитектура RISC-V обладает современным и простым набором команд, спроектированным с учетом современных требований, она придумана специально для того, чтобы быть простой в изучении и вместе с тем, практически эффективна для реализации высокопроизводительных микропроцессоров

    A Survey on RISC-V-Based Machine Learning Ecosystem

    В данной статье рассматривается экосистема для машинного обучения на основе RISC-V, используемой для классификации систем на кристалле (SoC) и ядер ЦП. Более того, часть этой работы посвящена таким проблемам, как энергоэффективность и надежность при разработке приложений с открытым исходным кодом (OSH) в области искусственного интеллекта (AI) и машинного обучения (ML), что обосновано необходимостью найти вычислительную мощность для более совершенных и ресурсоемких алгоритмов и приложений AI и в создании аппаратных ускорителей, связанных с машинным обучением.

    Литература

    Organization and Design: The Hardware/Software design

    В книге показана взаимосвязь между аппаратными средствами и программным обеспечением. По мнению авторов, в течение следующего десятилетия большинству программистов придется разбираться в аппаратно-программном интерфейсе, если они хотят, чтобы программы эффективно работали на параллельных компьютерах. Аудитория этой книги включает в себя тех, у кого мало опыта в языке ассемблера или логическом дизайне, которым необходимо понимать, как устроен компьютер и почему он работает так, как работает.

    The RISC-V Reader: An Open Architecture Atlas

    The RISC-V Reader - это краткое введение и справочник для разработчиков встраиваемых систем, включает набор инструкций с подробным описанием каждой из них. Архитектура RISC-V используется как в простых микроконтроллерах, так и в серверах для быстрых облачных вычислений. Десять глав знакомят с полным набором инструкций RISC-V, а программировать читатели могут начать уже после 2 главы. В книге показано, как RISC-V собрал в себе лучшие идеи прошлых архитектур, избегая при этом их ошибок.

    Digital Design and Computer Architecture, RISC-V Edition

    В книге представлен современный подход к разработке цифровых устройств. Авторы начинают с цифровых логических элементов, переходят к разработке комбинационных и последовательностных схем, а затем используют эти базовые блоки как основу для самого сложного: разработки настоящего процессора RISC-V. По всему тексту приводятся примеры на языках SystemVerilog и VHDL. В издание вошли новые материалы о системах ввода/вывода применительно к процессорам общего назначения как для ПК, так и для микроконтроллеров. Русский перевод: Цифровая схемотехника и архитектура компьютера: RISC-V

    An Introduction to Assembly Programming with RISC-V

    Учебник по программированию на языке ассемблера RISC-V. В качестве примеров используется код, использующий набор инструкций архитектуры RISC-V. В первой части книги читатель обзорно познакомится с тем, как устроен компьютер и как исполняются программы, а затем начнет знакомство с языком ассемблер. Во второй части фокус переходит к разработке пользовательских программ, т.е. тех, которые работают с данными, хранящимися в регистрах процессора и основной памяти. В третьей части внимание уделяется программированию на системном уровне, включая взаимодействие с периферией и устойчивостью системы к случайным или злонамеренным ошибкам в коде.

    Симуляторы, эмуляторы, наборы инструментов

    Jupiter

    Кроссплатформенный компилятор и симулятор исполнения ассемблерного кода для архитектуры RISC-V с открытым исходным кодом. Поддерживает все инструкции по работе с целыми числами, числами с плавающей запятой одинарной и двойной точности, атомарными инструкциями, умножением и делением. Симулятор создавался для учебных целей, имеет интуитивно понятный графический интерфейс, может использоваться через командную строку. Может работать с несколькими файлами, что дает возможности выстраивать структуру проекта.

    Venus

    Симулятор исполнения ассемблерного кода для архитектуры RISC-V с открытым исходным кодом. Поддерживает все инструкции стандарта RV32IM. Реализовано пошаговое выполнение кода, точки останова, подсветка синтаксиса, просмотр машинного кода и исходных инструкций рядом друг с другом, вывод значений в регистрах и по адресам в памяти.

    Spike

    Симулятор исполнения ассемблерного кода для архитектуры RISC-V с открытым исходным кодом. Реализует функциональную модель, поддерживающую несколько аппаратных потоков. Поддерживает большое количество функций из стандарта RISC-V ISA. Реализован интерактивный режим отладки, возможна отладка с использованием gdb.

    RARS

    Сборщик и симулятор исполнения ассемблерного кода под архитектуру RISC-V с открытым исходным кодом. Представляет удобное окружение разработки для людей, только знакомящихся с RISC-V. Реализует стандарт RISC-V IMFDN Base (riscv32 и riscv64). Реализован отладчик, возможность просмотра машинного кода и исходных инструкций рядом друг с другом, сборка проекта из нескольких файлов.

    Ripes / (Web-RIPES)

    Графически симулятор для изучения ассемблера RISC-V, есть возможность программирования на языке С, с потактовой симуляцией программы и с иллюстрацией обновления каждой стадии конвейера. Так же добавлен эмулятор cache памяти с настройкой архитектуры кэша, политик замещения. Web-реализация симулятора RIPES простых ядер RISC-V на основе цифровых схем может точно учитывать микроархитектурные особенности: конвейер, кэши, суперскалярность и прочее. В состав эмулятора входят набор 32 и 64-битных ядер, как одноцикловых, так и многостадийных суперскалярных.

    RISC-V Interpreter

    Популярный интерпретатор RISC-V Корнельского университета, оснащенный простым и понятным интерфейсом.

    QtRvSim

    Симулятор процессора RISC-V для образовательных целей, разработан образовательным проектом Computer Architectures в Чешском техническом университете. Git со всех необходимым для установки и инструкцией по сборке и пакетам. Кроме того, QtRVSim экспериментально доступен для WebAssembly и может быть запущен в большинстве браузеров без установки.

    rv8

    Симулятор RISC-V для x86-64, включающий высокопроизводительный двоичный транслятор x86-64, симулятор пользовательского режима, полнофункциональный системный эмулятор, инструмент двоичного анализа ELF и метаданные ISA.

    RISC-V ALE

    Онлайн-эмулятор по сборке RISC-V. Страница с интерактивной онлайн-средой обучения: есть терминал, запуск и отладка, возможность загрузки файлов, настройки. Также представлены упражнения или учебное пособие, чтобы начать изучать язык ассемблера RISC-V.

    riscv-easy-as-pi

    Инструкция по настройке набора инструментов для компиляции и сборки исполняемых файлов для RISC-V, который будет запускаться на одноплатном компьютере RPi. В качестве компилятора используется набор GNU, а для программирования и отладки целевой платформы - openOCD.

    Opensource RISC-V processors from Academia

    VexRiscv

    В этом репозитории размещена 32-разрядная реализация процессора RISC-V, совместимая с FPGA, написанная на SpinalHDL. Описание аппаратного обеспечения этого процессора выполнено с использованием программно-ориентированного подхода.

    Picorv32

    Репозиторий с файлами PicoRV32 - ядро процессора, которое реализует набор команд RISC-V RV32IMC. Оно может быть сконфигурировано как ядро RV32E, RV32I, RV32IC, RV32IM или RV32IMC и, при необходимости, содержит встроенный контроллер прерываний. Этот процессор предназначен для использования в качестве вспомогательного процессора в конструкциях FPGA и ASIC.

    Neorv32 Processor

    Комплементарный пакет, основанный на RISC-V ЦП, вместе с периферийным интерфейсом, встроенной памятью и программной средой, составляющий полномасштабную платформу СнК с возможностью настройки для различных FPGA, плат и toolchain-ов. Основной акцент используемого процессора сделан на безопасность исполнения и баланс между малым размером и производительностью. Работает "из коробки" и, благодаря открытой документации, подходит как начинающим, так и продвинутым пользователям FPGA/RISC-V.

    RiscvOrca

    Пакет разработки, написанный на VHDL и содержащий оптимизированное для FPGA ядро RISC-V на основе архитектуры набора команд RV32IM. Существует возможность преобразования пакета до стандартного ядра RV32I/RV32E. Проект подходит для тестирования FPGA, а также полезен в качестве базиса для более сложных проектов на основе архитектуры RISC-V.

    Vroom

    Новейшая высокопроизводительная реализация ядра RISC-V на основе архитектуры набора команд RV64-IMAFDCHBK(V). К основным целям и преимуществам проекта можно отнести высокую частоту выполнения инструкций за такт, поддержку многоядерности и двусторонней одновременной многопоточности. Проект находится на стадии активной разработки с подробной документацией и описанием текущего прогресса и ближайших шагов команды разработчиков.

    SonicBOOM

    Out-of-Order Machine (BOOM) - синтезируемое и параметризуемое ядро RISC-V на основе архитектуры набора команд RV64GC с открытым исходным кодом, написанное на языке описания аппаратуры Chisel. Ядро BOOM в первую очередь оптимизирован для ASIC, но также приспособлен для использования на FPGA.

    Serv

    Ядро на основе архитектуры набора команд RV31I, претендующее на звание самого маленького в мире RISC-V процессора. Проект располагает открытым исходным Verilog кодом, подробным мануалом, инструкцией для быстрого старта и серией обучающих роликов, подходящих как опытным пользователям, так и для первого знакомства с архитектурой RISC-V. Версия разработки не является окончательной, но уже получила награды и признание среди научных инженерных кругов.

    OpenC910

    Высокопроизводительный 64-разрядный процессор, совместимый с RISC-V, основанный на наборе инструкций RV64GC и реализующий технологию XIE (XuanTie Instruction Extension). Основные направление проекта - обеспечение высокой производительности в потоке управления, вычислениях и частоте. Процессор использует современный 12-ступенчатый суперскалярный высокочастотный конвейер, включает в себя контроллеры прерывания CLINT и PLIC, поддерживает когерентность аппаратного кэша и многое другое.

    Noel-V

    Синтезируемая VHDL-модель процессора, реализующая архитектуру RISC-V на основе набора инструкций RV32/64IMAFDB*CH. Благодаря своей высокопроизводительной и отказоустойчивой конструкции, идеально подходит для спутников, планетоходов и других космических систем. Процессор может быть эффективно реализован на технологиях FPGA и ASIC, а пользователи для работы имеют доступ к обширной библиотеке существующего программного обеспечения и инструментов.

    vivado-risc-v

    Репозиторий содержит FPGA-прототип полнофункционального Linux-сервера RISC-V с онлайнрепозиторием Linux и ежедневным обновлением пакетов. Проект включает в себя сценарии и исходники для создания RISC-V СнК HDL, проекта Xilinx Vivado, FPGA bitstream и загрузочную SD-карту с двоичным интерфейсом и открытым исходным кодом RISC-V. Проект используется в качестве эталонного решения для проверки поддержки RISC-V в Eclipse TCF.

    Building a RISC-V CPU Core

    Проект является открытым исходным кодом и содержит описание и код для пошаговой реализации процессора на основе архитектуры RISC-V. Реализация начинается с построения базового процессора, затем добавляются различные инструкции и компоненты, такие как арифметические операции, умножение, деление, память и ввод-вывод. В проекте использованы языки Verilog и C для описания аппаратной части и тестирования процессора соответственно. Проект предоставляет уникальную возможность понять, как работает процессор, и изучить основы архитектуры компьютера и цифровой электроники. Также он может быть использован в качестве основы для создания собственного процессора или углубленного изучения архитектуры RISC-V.

    XiangShan

    Высокопроизводительное процессорное ядро RISC-V с открытым исходным кодом. Проект Института вычислительных технологий Китайской академии наук. Репозиторий содержит статьи Института по теме исследований RISC-V, документацию на процессорное ядро, а также исходные коды HDL Verilog ядра, fpu, L2/L3 кэш подмодулей и инструментарий для симуляции работы ядра.

    Вернуться к учебному плану