Стартует курс лекций об архитектуре и языке ассемблера RISC-V, поддержанный Альянсом RISC‑V

117

В феврале стартует новый цикл лекций «Архитектура и язык ассемблера RISC-V». Он предназначен для студентов МГУ, но вольным слушателем может стать любой желающий. Курс разработал и читает ведущий разработчик ОС «Альт» и преподаватель факультета вычислительной математики и кибернетики (ВМК) МГУ Георгий Курячий.

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

«RISC-V — пожалуй, наиболее стройная, непротиворечивая и понятная из всех актуальных архитектур вычислительных систем, — отмечает Георгий Курячий. — Когда изучаешь принципы построения ЭВМ, важно пореже сталкиваться с ситуацией «тут непросто, потому что так исторически сложилось». Все спецификации RISC-V открыты и доступны, и в них заложено много современных принципов разработки эффективных процессоров. В качестве заданий к лекциям слушатели курса пишут несколько программ на языке ассемблера для учебного эмулятора RISC-V, в который встроена среда разработки и визуализатор выполнения кода».

Подкаст доступен на Яндекс Музыке. Прослушать лекции и выполнить задания может любой желающий. Все лекции читаются очно для студентов МГУ и одновременно транслируются в прямом эфире на YouTube. Затем смонтированные видео лекций размещаются в свободном доступе. Теоретическая часть курса подкреплена практическими занятиями по программированию на языке ассемблера. Получить обратную связь по выполнении задания смогут все слушатели, так как проверка осуществляется автоматически в системе Ejudge.

В программу курса «Архитектура и язык ассемблера RISC-V» входят:

  • принципы развития архитектур ЭВМ; система команд RISC-V;
  • регистры и модель памяти; виды адресации;
  • стек, подпрограммы и конвенции относительно использования регистров;
  • математический сопроцессор;
  • вызов функции и системные вызовы;
  • ввод/вывод: поллинг и MMIO;
  • прерывание по таймеру;
  • увеличение быстродействия путём усложнения; кеш и предсказание перехода;
  • приёмы программирования на ассемблере;
  • методы повышения эффективности вычислений: упреждающие вычисления, предсказания и переходы и т. д.;
  • повышение производительности процессора: конвейер;
  • микропрограммы и вёрстка программы;
  • поддержка многозадачности, многоядерности и виртуализации (обзорно).

Инструкция по регистрации, аннотация курса, план лекций, ссылки на домашние задания (для зарегистрированных слушателей) находятся на страницах курса на сайте сообщества UNИX. Для эффективного освоения программы необходимы знания дискретной математики в объёме первого курса бакалавриата ВМК МГУ.