Опубликован: 19.01.2025 | Доступ: свободный | Студентов: 0 / 0 | Длительность: 05:57:00
Лекция 17:

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

< Лекция 16 || Лекция 17: 123

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

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

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

  1. Computer Organization and Design The Hardware Software Interface: RISC-V Edition
  2. The RISC-V Reader: An Open Architecture Atlas
  3. Digital Design and Computer Architecture, RISC-V Edition aka "H&H"
  4. Цифровая схемотехника и архитектура компьютера: RISC-V
  5. 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 для улучшения безопасности, энергопотребления и производительности процессоров.

< Лекция 16 || Лекция 17: 123