### Опыт чтения курса
«Архитектура ЭВМ и язык ассемблера»
на факультете ВМК МГУ. _Георгий Курячий_
_Факультет ВМК МГУ имени М.В.Ломоносова_ 2025 --- ### О себе [Георгий Курячий](https://uneex.org/FrBrGeorge) * Разработчик [Базальт СПО](https://www.basealt.ru/company) * Участник [ALT Linux Team](https://altlinux.org) * [Преподаватель ВМК МГУ](https://uneex.org/LecturesCMC) с 1987 года ---- ### Опыт преподавания * Студентом — в [ВМШ](http://vmsh.cmc.msu.ru) * С конца 90-х — [спецкурсы](https://uneex.org/LecturesCMC) по UNIX/Linux и Python * В том числе пятидневные интенсивы * 2016-2019 — базовые дистанционные курсы первого года обучения для филиалов * 2020-… + кафедральные курсы * Linux, Python, Сети, RISC-V --- ### АЭиЯА _Архитектура ЭВМ и язык ассемблера_ * 2016-2017 — [СФ МГУ, MIPS, 96 ак. ч.](https://moodle.cs.msu.ru/course/view.php?id=42) * В соавторстве с Михаилом Рудаченко * 2019 — [ВМК, MIPS, 20 ак. ч. лекций](https://uneex.org/LecturesCMC/ArchitectureAssembler2019) * 2019 — [ФКН ВШЭ, MIPS, 40 ак. ч.](https://uneex.org/HSE/ArchitectureASM) * [Адаптирован под RISC-V](https://andrewt0301.github.io/hse-acos-course/)
Андреем Татарниковым * 2022, 2024, 2025 — [ВМК, RISC-V, 26 ак. ч. лекций](https://uneex.org/LecturesCMC/ArchitectureAssembler2025) * [Проект курса второго семестра, 96 ак. ч.](https://uneex.org/LecturesCMC/ArchitectureAssemblerProject) --- ### Принципы ### * Изучаем только то, подо что есть практика * Остальное — обзорно * К каждой лекции есть практическое Д/З * Проверяется автоматически [EJudge](https://ejudge.ru) * Лекции транслируются онлайн * Доступны для просмотра * Информационная группа в Telegram «[Особенности преподавания научно-практических дисциплин в области ИТ](https://uneex.org/LecturesCMC/ArchitectureAssembler2025/Annotation)» --- ### Практика ### * «Живая», но простая архитектура * ⇒ ~~8086~~, ~~MIPS~~, ~~[Little man computer](https://en.wikipedia.org/wiki/Little_Man_Computer)~~… * ⇒ ~~x86_64~~ … * Должна быть доступна каждому * ⇒ Эмулятор * Make Assembler GREAT AGAIN!!! * ⇒ IDE + «Игрушечная» периферия ---- ### Учебные машины ### * Базовые идеи архитектуры ЭВМ * адресация, инструкции, регистры, … * **Не** входят в спецкурс * Преподаются на ВМК с прошлого века * [Полный эмулятор](https://github.com/cmc-python/modelmachine) * Интерактивный и пакетный запуск * Автор — Владимир Лютов ---- ### Основная архитектура ### * До 2019 — MIPS, после 2021 — RISC-V * Базовый эмулятор — [RARS](https://github.com/TheThirdOne/rars) * Интерактивный и пакетный запуск *
_Нет_
практики по темам: * Виртуальная память и MPU * Аппаратные потоки (HART) * Виртуализация --- ### Лекции ### * [Магистерский спецкурс](https://uneex.org/LecturesCMC/ArchitectureAssembler2025) кафедры АСВК * 26 ак. часов * [Канал в YouTube](https://www.youtube.com/playlist?list=PL6kSdcHYB3x7TqvWZDPJM_TOBbdXQkd8v) ([копия на ЯДиске](https://disk.yandex.ru/d/exjUiN2tHH_NoA)) * 32 домашних задания * [Автоматическая проверка](https://uneex.org/static/ArchitectureAssembler2025/standings.html) Д/З ([EJudge](https://ejudge.ru)) * [Финальное задание](https://uneex.org/LecturesCMC/ArchitectureAssembler2025/Homework_BlockadeTask) в качестве экзамена * [Группа в Telegram](https://t.me/uneex_talks/15076) ---- ### Особенности спецкурса #### * Только screencast, никакой доски * Только RISC-V (без УМ и других архитектур) * Преимущественно RARS * Дополнительно про конвейер на базе [Ripes](https://ripes.me) * Контроль обязательного Д/З (недельный дедлайн) * Темы, отсутствующие в практике, вынесены в финальный обзор * К сожалению, это в т. ч. виртуальная память * Спасибо за активное участие
Михаилу Стёпушкину (aka `COKPOWEHEU`)! ---- ### [Проект курса второго семестра](https://uneex.org/LecturesCMC/ArchitectureAssemblerProject) ### * 48 ак. ч. [лекций](https://uneex.org/LecturesCMC/ArchitectureAssemblerProject#Lectures) * 48 ак. ч. [практических занятий](https://uneex.org/LecturesCMC/ArchitectureAssemblerProject/Seminars) * Три раздела: * Учебные ЭВМ * Система команд RISC-V * Надстройки классической архитектуры ЭВМ * «Сложные» темы (наподобие MMU)
продолжают оставаться
обзорными. --- ### Работа в RARS ### [](https://uneex.org/LecturesCMC/ArchitectureAssemblerProject/06_AboutRISCV#RARS) ---- ### [RARS](https://github.com/TheThirdOne/rars) ### * Только _функциональная_ эмуляция * Написан на Java как [эмулятор MIPS](https://dpetersanderson.github.io) в 2010-х * [Модифицирован под RISC-V](https://github.com/TheThirdOne/rars) * Пришлось [немного доработать](https://github.com/FrBrGeorge/rars) * Отчасти реализует устаревшее расширение **N** * Отвечает требованиям курса (наглядность и пакетный запуск) ---- ### MMIO-дисплей ### [](https://uneex.org/LecturesCMC/ArchitectureAssembler2025/08_Input_Output#Display) ---- ### Прерывания ### * Таймер * Клавиатура консоли или «лабораторного пульта» [](https://uneex.org/LecturesCMC/ArchitectureAssembler2025/08_Input_Output#DigiLab) ---- ### [Кеш и предсказатель переходов](https://uneex.org/LecturesCMC/ArchitectureAssembler2025/11_CacheBPT) ### | |  | | ------------------------ | ------------------------ | и т. д. --- ### Недостатки и планы ### * Часть практики не имеет проверяемого Д/З * «Старшая» часть курса — обзорная: * Защита памяти * Виртуальная память * Аппаратные потоки * Уровни выполнения * … * Нет прямой связи с курсом
«Операционные системы» ---- ### Что хотелось бы ### * Сменить эмулятор _с сохранением требований_ * QEMU + IDE * Внешние устройства? * QEMU-gdb + TUI * Какой-то из новых (возможно, [QtRvSim](https://github.com/cvut/qtrvsim)) * Реанимировать курс «[От ассемблера к Си](https://moodle.cs.msu.ru/course/view.php?id=45)» * …а не наоборот ☺! * Продвинуть «[большой](https://uneex.org/LecturesCMC/ArchitectureAssemblerProject)» курс во второй семестр --- ### Дружественные проекты ### * «[Каракатица](https://karakatitsariscv.github.io)» Михаила Стёпушкина (персональный проект) * [ACOS](https://andrewt0301.github.io/hse-acos-course/) Андреея Татарникова (ФКН ВШЭ) --- ## Контакты [Георгий Курячий](https://uneex.org/FrBrGeorge), [ВМК МГУ](https://cs.msu.ru), [Базальт СПО](https://www.basealt.ru) Gmail / Telergam: `FrBrGeorge`